Software Engineering - Abdul Majeed. What is software? Definition of Software Engineering Software Process Generic view of Software Engineering Software.

Slides:



Advertisements
Similar presentations
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Advertisements

Lecture # 2 : Process Models
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 المحاضرة الثانية.
Software Project Management
Software Engineering CSE470: Process 15 Software Engineering Phases Definition: What? Development: How? Maintenance: Managing change Umbrella Activities:
Chapter 2 – Software Processes
ISNE101 Dr. Ken Cosh. Recap  We’ve been talking about Software…  Application vs System Software  Programming Languages  Vs Natural Languages  Syntax,
Unit 231 Software Engineering Introduction to SWE What is SDLC Phases of SDLC.
COMP 6710 Course NotesSlide 2-0 Auburn University Computer Science and Software Engineering Course Notes Set 2: Software Process Models Computer Science.
Overview of Software Engineering Principles
Introduction to Software Engineering Dr. Basem Alkazemi
Unit 191 Introduction to Software Engineering The objective of this section is to introduce the subject of software engineering. When you have read this.
Chapter 1 Software Development. Copyright © 2005 Pearson Addison-Wesley. All rights reserved. 1-2 Chapter Objectives Discuss the goals of software development.
Software Engineering COMP 201
CSC Software Engineering I 1 Overview - Software Lifecycles, Processes, Methods and Tools Software lifecycle basics Software lifecycles – build-and-fix.
Overview of Software Engineering Principles CSCI 599: Software Engineering for Embedded Systems August 27, 2002.
CSC x402 Requirements Engineering 1 Overview - Software Lifecycles, Processes, Methods and Tools Software lifecycle basics Software lifecycles – build-and-fix.
Software lifecycle. CS351 - Software Engineering (AY2004)2 Software lifecycle “student view” Design & Specification Coding Testing (optional) Hand it.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 An Introduction to Software Engineering.
Software Lifecycle Software Lifecycle Basics Lifecycle Models Methods and Tools.
Chapter 3 Software Processes.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 System and Software Engineering.
1 CMPT 275 Software Engineering Software life cycle.
CSI315 Web Applications and Technology Overview of Systems Development (342)
Software Engineering Methodologies (Introduction)
Chapter 2 The process Process, Methods, and Tools
Chapter 2 The Process.
Dillon: CSE470: SE, Process1 Software Engineering Phases l Definition: What? l Development: How? l Maintenance: Managing change l Umbrella Activities:
Objectives of the Lecture
UNIVERSITI TENAGA NASIONAL “Generates Professionals” CHAPTER 4 : Part 1 INTRODUCTION TO SOFTWARE DEVELOPMENT: SYSTEM ANALYSIS & DESIGN.
Software EngineeringIntroduction Slide 1 Software Engineering Mr. Ahmad Al-Ghoul.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 An Introduction to Software Engineering.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Instructor: Peter Clarke
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 Software Engineering The first lecture.
Introduction to Software Engineering
2-Oct-15 Introduction to SWE1 Introduction to Software Engineering Softwares Importance of SWE Basic SWE Concepts.
Software engineering. What is software engineering? Software engineering is an engineering discipline which is concerned with all aspects of software.
INTRODUCTION What is software? What is software engineering?
Topic (1)Software Engineering (601321)1 Introduction Complex and large SW. SW crises Expensive HW. Custom SW. Batch execution.
Software Engineering Introduction and Overview Takes customer-defined goals and constraints and derives a representation of function, performance, interfaces,
Software Engineering EKT 420 MOHAMED ELSHAIKH KKF 8A – room 4.
CS451 - Lecture 3 1 CS451 Lecture 3: Software Lifecycle and Product Yugi Lee STB #555 (816) * Acknowledgement:
An Introduction to Software Engineering. What is Software?
Chapter 1: Introduction Omar Meqdadi SE 2730 Lecture 1 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Software Development Cycle What is Software? Instructions (computer programs) that when executed provide desired function and performance Data structures.
Lecture 1 The University of Lahore Software Engineering Saeed Akhtar
Software Engineering, COMP201 Slide 1 Introduction to software engineering Lecture 1.
1 Software Engineering Ian Sommerville th edition Instructor: Mrs. Eman ElAjrami University Of Palestine.
Historical Aspects Origin of software engineering –NATO study group coined the term in 1967 Software crisis –Low quality, schedule delay, and cost overrun.
Lecture Introduction to Software Development SW Engg. Development Process Instructor :Muhammad Janas khan Thursday, September.
1-1 Software Development Objectives: Discuss the goals of software development Identify various aspects of software quality Examine two development life.
Developed by Reneta Barneva, SUNY Fredonia The Process.
Chapter 2 – Software Processes Lecture 1 Chapter 2 Software Processes1.
Software Engineering Jon Walker. What is Software Engineering? Why do we call it Software Engineering? Why not just call it programming or software development?
KUFA UNIVERSITY Department of Computer Science. Fundamentals of Software Engineering Presented By Neamah Hassan Presented By Neamah Hassan.
Assoc. Prof. Dr. Ahmet Turan ÖZCERİT.  System and Software  System Engineering  Software Engineering  Software Engineering Standards  Software Development.
Software Development Life Cycle (SDLC)
Software Engineering Issues Software Engineering Concepts System Specifications Procedural Design Object-Oriented Design System Testing.
Process Asad Ur Rehman Chief Technology Officer Feditec Enterprise.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Chapter 1: Introduction Omar Meqdadi SE 3860 Lecture 1 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Lectures 2 & 3: Software Process Models Neelam Gupta.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 1 Slide 1 Chapter 1 Introduction As modified by Randy Smith.
L ECTURE 1 Introduction Getting started with software engineering.
 System Requirement Specification and System Planning.
Lecture 3 Prescriptive Process Models
Software Life Cycle “What happens in the ‘life’ of software”
An Introduction to Software Engineering
Presentation transcript:

Software Engineering - Abdul Majeed

What is software? Definition of Software Engineering Software Process Generic view of Software Engineering Software Process Paradigms Software Testing Strategies Contents of the Seminar

What is software? Computer programs and associated documentation Software products may be developed for a particular customer or may be developed for a general market Software products may be –Generic - developed to be sold to a range of different customers –Bespoke (custom) - developed for a single customer according to their specification

What is software engineering? Software engineering is an engineering discipline which is concerned with all aspects of software production (development and maintenance). In general sense the product will exist three times of the development duration so the total efforts will be distributed as 30/70 or 40/60 for development and maintenance respectively.

Economic and Management aspects of SE Software production = development + maintenance (evolution) Development costs will be 40% –40% analysis and design –20% coding –40% testing Maintenance costs > 60% of all development costs –20% corrective –30% adaptive –50% perfective Quicker development is not always preferable –higher up-front costs may defray downstream costs –poorly designed/implemented software is a critical cost factor

Economic and Management aspects of SE

What is the difference between software engineering and computer science? Computer ScienceSoftware Engineering is concerned with Computer science theories are currently insufficient to act as a complete underpinning for software engineering, BUT it is a foundation for practical aspects of software engineering  theory  fundamentals  the practicalities of developing  delivering useful software

What is the difference between software engineering and system engineering? Software engineering is part of System engineering System engineering is concerned with all aspects of computer-based systems development including –hardware, –software and –process engineering System engineers are involved in system specification, architectural design, integration and deployment

What is a software process? A set of activities whose goal is the development or evolution of software Generic activities in all software processes are: –Specification - what the system should do and its development constraints –Development - production of the software system –Validation - checking that the software is what the customer wants –Evolution - changing the software in response to changing demands

Generic view of SE There are Three Phases of any software process 1.Definition phase which include activities such as - System/Information engineering - Software project planning - Requirement analysis 2. Development phase which include activities such as - Design - Coding - Testing 3. Maintenance which include activities such as - Fixing the bugs - Adaptation - Enhancement

Software Process Paradigms Different categories of software process paradigms are - Classical Life Cycle Model/ Linear Sequential Model/Waterfall Model - Prototype Model - Rapid Application Development Model (RAD) - Evolutionary Model (Incremental and Spiral Model) - Component based model - Formal Transformation

Software Development Lifecycle Waterfall Model Requirements Design Implementation Integration Validation Deployment

Software Development Lifecycle Spiral Model

Requirements Problem Definition → Requirements Specification –determine exactly what the customer and user want –develop a contract with the customer –specifies what the software product is to do Difficulties –client asks for wrong product –client is computer/software illiterate –specifications are ambiguous, inconsistent, incomplete

Architecture/Design Requirements Specification → Architecture/Design –architecture: decompose software into modules with interfaces –design: develop module specifications (algorithms, data types) –maintain a record of design decisions and traceability –specifies how the software product is to do its tasks Difficulties –miscommunication between module designers –design may be inconsistent, incomplete, ambiguous

Architecture vs. Design Architecture is concerned with the selection of architectural elements, their interactions, and the constraints on those elements and their interactions necessary to provide a framework in which to satisfy the requirements and serve as a basis for the design. Design is concerned with the modularization and detailed interfaces of the design elements, their algorithms and procedures, and the data types needed to support the architecture and to satisfy the requirements.

Implementation & Integration Design → Implementation –implement modules; verify that they meet their specifications –combine modules according to the design –specifies how the software product does its tasks Difficulties –module interaction errors –order of integration may influence quality and productivity

Testing is categorized into - Unit Testing verifies the coding of the product - Integration Testing verifies the design of the product - Validation Testing verifies the requirement - System Testing verifies system engineering Software Testing Strategy

Unit testing Integration testing Validation testing System testing Code Design Requirements System engineering Software Testing Strategy

Integration testing includes - Top down using stubs - Bottom up using drivers Validation testing includes - Alpha testing - Beta testing System testing includes - Recovery testing - Security testing - Stress testing - Performance testing