Chapter 2: The Process. What is Process? Software Engineering Process is the glue that holds the technology layers together and enables rational and timely.

Slides:



Advertisements
Similar presentations
Prescriptive Process models
Advertisements

The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Lecture # 2 : Process Models
CS487 Software Engineering Omar Aldawud
Chapter 3 Process Models
Chapter 2 Software Process Models
Chapter 2 – Software Processes
Software Process Models
1 CS 425/625 Software Engineering CS 425/625 Software Engineering Software Processes Based on Chapter 4 of the textbook [SE-7] Ian Sommerville, Software.
CS 425/625 Software Engineering Software Processes
Developed by Reneta Barneva, SUNY Fredonia The Process.
S/W Project Management Software Process Models. Objectives To understand  Software process and process models, including the main characteristics of.
Chapter 2 The process Process, Methods, and Tools
Chapter 2 The Process.
Software Process and Models
THE PROTOTYPING MODEL The prototyping model begins with requirements gathering. Developer and customer meet and define the overall objectives for the software.
1 REQUIREMENT ENGINEERING Chapter 7. 2 REQUIREMENT ENGINEERING Definition Establishing what the customer requires from a software system. OR It helps.
1 Chapter 2 The Process. 2 Process  What is it?  Who does it?  Why is it important?  What are the steps?  What is the work product?  How to ensure.
1M.Sc.(I.T.), VNSGU, Surat. Structured Analysis Focuses on what system or application is required to do. It does not state how the system should be implement.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
PART ONE The Product and the Process Chapter 2 The Process  Software Engineering: A Layered Technology a “quality” focus process model methods tools.
1 Chapter 5 Software Engineering Practice. 2 What is “Practice”? Practice is a broad array of concepts, principles, methods, and tools that you must consider.
Software Processes n What is a process?  Sequence of steps required to develop or maintain software n Characteristics  prescribes major activities 
Software Engineering Spring (C) Vasudeva VarmaClass of 32 CS3600: Software Engineering: Process and Product* *Most of the Content drawn.
Software Engineering MCS-2 Lecture # 6
1/23 Prescriptive Process Models. 2/23 Prescriptive Models Prescriptive process models advocate an orderly approach to software engineering Prescriptive.
Chapter 4 프로세스 모델 Process Models
Introduction to Software Engineering.  Software Characteristics  Components  Applications  Layered Technologies  Processes  Methods And Tools 
Introduction to Software Development (Software Engineering - I)
Developed by Reneta Barneva, SUNY Fredonia The Process.
Chapter 2 – Software Processes Lecture 1 Chapter 2 Software Processes1.
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.
Software Development Life Cycle (SDLC)
Process Asad Ur Rehman Chief Technology Officer Feditec Enterprise.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
Software Model Process
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Software Process By Sabeen Amjad Chapter-2. Objectives To comprehend  Software process  Software Engineering as layered technology  Generic view of.
Software Engineering CE 501 Prepared by : Jay Dave.
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.
Software Process Models. Process model or software engineering paradigm – development strategy encompassing Process Method Tool Generic phases Chosen.
Systems Development Life Cycle
1 Chapter 2 SW Process Models. 2 Objectives  Understand various process models  Understand the pros and cons of each model  Evaluate the applicability.
C_ITIP211 LECTURER: E.DONDO. Unit 1 : The Systems Development Environment.
Methodologies/Life Cycle Models
Methodologies and Algorithms
Lecture 3 Prescriptive Process Models
Software Life Cycle “What happens in the ‘life’ of software”
Software Processes (a)
CS 425/625 Software Engineering Software Processes
Rapid Application Development Model
Software development life cycle models
Chapter 2 SW Process Models
Software Process Models
Object oriented system development life cycle
Life Cycle Models PPT By :Dr. R. Mall.
Software Life Cycle Models
Software Processes.
Introduction to Software Engineering
Software Engineering Lecture 18.
Software Process Models
SOFTWARE LIFE-CYCLES Beyond the Waterfall.
CS310 Software Engineering Lecturer Dr.Doaa Sami
Software Processes Process should be
Software Engineering Lecture 17.
SNS College of Engineering Coimbatore
The Waterfall Model Also known as: classic life cycle, the waterfall model, the linear model Rarely projects are sequential (allows iteration indirectly)
Evolutionary Software Process Models
Presentation transcript:

Chapter 2: The Process

What is Process? Software Engineering Process is the glue that holds the technology layers together and enables rational and timely development of computer software. Keys of Process: ◦ Management control of software projects; ◦ Technical methods are applied; ◦ Work products (models, documents, data etc.) are produced; ◦ Milestones are established; ◦ Quality is ensured; ◦ And change is properly managed. 2

What is SW Engineering Method? Software Engineering Methods provide the technical how-to’s for building software. The sequential tasks of Method are: ◦ Requirement analysis; ◦ Program construction; ◦ Testing and Support. 3

What is the Software Engineering Tool? Software Engineering Tool provide automated or semi-automated support for the process and the methods. 4

Generic View of SW Engineering Engineering is the analysis, design, construction, verification and management of technical entities. The following questions must be asked and answered: ◦ What is the problem to be solved? ◦ What characteristics of the entity are used to solve the problem? ◦ How will the entity (the solution) be realized? ◦ How will the entity be constructed? ◦ What approach will be used to uncover errors? ◦ How will the entity be supported over the long term, when corrections, adaptations, and enhancements are requested by users of the entity. 5

Basic Phases of SW Development The definition phase focuses on what. The development phase focuses on how. The support phase focuses on changing. 6

Types of Software Change Corrective Maintenance (Correction) changes the software to correct defects. Adaption Maintenance (Adaption) results in modification to the software to accommodate changes to its external environment. Perfective maintenance (Enhancement) extends the software beyond its original requirements. Prevention maintenance (Prevention) often called sw reengineering and makes to computer programs can be more easily corrected, adapted and enhanced. 7

Types of SW Development Process Models Software Life Cycle or Linear Sequential Model Prototyping Model RAD Model Evolutionary Process Model ◦ Incremental Model ◦ Spiral Model ◦ Win Win Spiral Model 8

Linear Sequential Model 9 Analysis Design Code Test System/Information Engineering

Linear Sequential Model (cont.) Sometimes called Classic Life Cycle or the waterfall model The model is to develop software that begins in sequential process analysis, design, code and test. 10

Linear Sequential Model (cont.) Software analysis is the process of breaking a complex topic or substance into smaller parts to gain a better understanding of it. Software design is a process of problem-solving and planning for a software solution. It includes low- level component and algorithm implementation issues as well as the architectural view. Coding is the process of designing, writing, testing, debugging, and maintaining the source code of computer programs. Software Testing is an investigation conducted to provide stakeholders with information about the quality of the product or service under test. 11

Linear Sequential Model Limitations The requirements of a system can be frozen before the design begins. But for new systems, determining the requirements is difficult as the user does not even know the requirements. Freezing the requirements usually requires choosing the hardware. A large project might take a few years to complete, so hardware maybe become obsolete. 12

Prototyping Model 13 Listen to Customer Build/Revise Customer test drives

Advantages of Prototyping Model Advantages: ◦ Easy and quick to identify customer requirements ◦ Customers can validate the prototype at the earlier stage and provide their inputs and feedback ◦ Good to deal with the following cases:  Customer can not provide the detailed requirements  Very complicated system-user interactions  Use new technologies, hardware and algorithms  Develop new domain application systems 14

Disadvantages of Prototyping Model The prototype can serve as “the first system” Developers usually attempt to develop the product based on the prototype. Customers may be unaware that the prototype is not a product, which is held with. 15

RAD Model Rapid Application Development is an incremental software development process model that emphasizes an extremely short development cycle. ◦ A high-speed adaptation of linear sequential model ◦ Component-based construction ◦ Effective when requirements are well understood and project scope is constrained. 16

RAD Model (cont.) 17 Business Modeling Data Modeling Process Modeling Application Generation Testing and Turnover Business Modeling Data Modeling Process Modeling Application Generation Testing and Turnover Business Modeling Data Modeling Process Modeling Application Generation Testing and Turnover Team 1 Team 2 Team 3

RAD Model (cont.) Business Modeling. The information flow among business functions. What information is generated? Who generates it? Where does the information go? Who processes it? Data Modeling. The characters of each object are identified and relationships between these objects defined. Process Modeling. Process descriptions are created for adding, modifying, or retrieving a data object. 18

RAD Model (cont.) Application Generation. RAD assumes the use of fourth generation techniques that means using automated tools are used to facilitate construction of software. Testing and Turnover. New components must be tested and all interfaces must be fully exercised. 19

Advantages of RAD Model Required not many time to develop Each major functions can be addressed by a separate RAD team and then integrated to form a whole. 20

Disadvantages of RAD Model For large but scalable projects, RAD requires sufficient human resources to create the right number of RAD teams. Not all types of applications are appropriate for RAD. E.g., system cannot be modularized, built components. RAD is appropriate when technical risks are high. E.g., new application makes heavy use of new technology. 21

Evolutionary SW Process Model Evolutionary models are iterative. Evolutionary models are characterized in a manner that enables software engineers to develop increasingly more complete versions of software. 22

Incremental Model The incremental model combines elements of the linear sequential model (applied repetitively) with the iterative philosophy of prototyping. The first increment is often a core product. Modification of the core product to better meet the needs of the customer and the delivery of additional features and functionality. 23

Incremental Model (cont.) 24 A D C T Product... A D C T Product A D C T...

Advantages of Incremental Model Users may experiment with delivered increments while others are being developed. Easier to test and debug during a smaller iteration. Incremental development is especially useful when staffing us unavailable for a complete implementation by the business deadline. Early increments can be implemented with fewer people. 25

Disadvantages of Incremental Model Each phase of an iteration is rigid. Problems may arise pertaining to system architecture because not all requirements are gathered up front for the entire software life cycle. 26

The Spiral Model The spiral model is an evolutionary software process model that couples the iterative nature of prototyping with the controlled and systematic aspects of the linear sequential model. 27

The Spiral Model (cont.) 28

The Spiral Model (cont.) A spiral model is divided into a number of framework activities, also called task regions. Customer Communication – to establish effective communication between developer and customer. Planning – to define resources, timelines, and other project- related information. Risk analysis – to assess both technical and management risks. Engineering – to build one or more representations of the application. Construction and release – to construct, test, install, and provide user support (e.g., documentation and training) Customer evaluation – obtain customer feedback based on evaluation of the software representations created during the engineering stage and implemented during. 29

Win Win Spiral Model Spiral Model defines a set of negotiation activities at the beginning of each pass around the spiral. Rather than a single customer communication activity, the following activities are defined: ◦ Identification of the system or subsystem’s key “stakeholder.” ◦ Determination of the stakeholders’ “win conditions.” ◦ Negotiation of the stakeholders’ win conditions to reconcile them into a set of win-win conditions for all concerned (including the software project team). 30

Win Win Spiral Model (cont.) 31

Advantages of Win Win Spiral Model Customer wins by getting the system or product that satisfies the majority of the customer’s needs Developer wins by working to realistic and achievable budgets and deadlines. 32

Component-Based Development Model CBD model incorporates many of the characteristics of the spiral model. CBD model composes applications from prepackaged software components (call classes). The CBD model leads to software reuse, and reusability provides software engineers with a number of measurable benefits. 33

Component-Based Development Model (cont.) 34

Literatures en.wikipedia.org Ian Sommerville “Software Engineering 6 th Edition” – Roger S. Pressman “Software Engineering: a practitioner’s approach 5 th Edition” –