Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "Chapter 2: The Process. What is Process? Software Engineering Process is the glue that holds the technology layers together and enables rational and timely."— Presentation transcript:

1 Chapter 2: The Process

2 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

3 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

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

5 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

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

7 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

8 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

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

10 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

11 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

12 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

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

14 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

15 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

16 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

17 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

18 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

19 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

20 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

21 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

22 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

23 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

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

25 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

26 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

27 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

28 The Spiral Model (cont.) 28

29 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

30 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

31 Win Win Spiral Model (cont.) 31

32 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

33 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

34 Component-Based Development Model (cont.) 34

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


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

Similar presentations


Ads by Google