CS 451 Software Engineering Winter TermPROCESS MODELPrescriptive ModelsPRESCRIPTIVE MODELSPROCESS MODELSPROCESS MODELS – WATERFALLPROCESS MODELS – WATERFALLPROCESS MODELS – WATERFALLPROCESS MODELS – WATERFALLPROCESS MODELS – INCREMENTAL PROCESS MODELPROCESS MODELS – INCREMENTAL PROCESS MODELPROCESS MODELS – EVOLUTIONARY PROCESS MODEL - PROTOTYPINGPROCESS MODELS – EVOLUTIONARY PROCESS MODEL - PROTOTYPINGPROCESS MODELS – EVOLUTIONARY PROCESS MODEL - PROTOTYPINGPROCESS MODELS – EVOLUTIONARY PROCESS MODEL - PROTOTYPINGPROCESS MODELS – EVOLUTIONARY PROCESS MODEL – SPRIAL MODELPROCESS MODELS – EVOLUTIONARY PROCESS MODEL – SPRIAL MODELPROCESS MODELS – EVOLUTIONARY PROCESS MODEL – SPRIAL MODELPROCESS MODELS – SPECIALIZED PROCESS MODEL FORMAL METHODS MODELPROCESS MODELS – SPECIALIZED PROCESS MODEL FORMAL METHODS MODELAgile DevelopmentManifestoAGILE ≠ HACK OUT SOLUTONS! Agile PrinciplesAgile PrinciplesAgile PrinciplesAgile PrinciplesAGILE PROCESS MODELSAgile Process Models EXTREME PROGRAMMINGEXTREME PROGRAMMINGEXTREME PROGRAMMINGEXTREME PROGRAMMINGEXTREME PROGRAMMINGEXTREME PROGRAMMINGSummaryDrexel University 1 CS 451 Software Engineering Winter Term Yuanfang Cai Room 104, University Crossings 215.895.0298 [email protected] University PROCESS MODEL A structured collection of practices Describe characteristics of effective process CMMI is not a process CMMI describes the characteristics of effective processes 2Drexel University Prescriptive Models 3Drexel University PRESCRIPTIVE MODELS Regardless of the model, all models contain the following components: communication planning modeling construction deployment Which of these phases do you think is most difficult and in what situations? 4Drexel University PROCESS MODELS What do you think the most popular process model is? Waterfall Incremental Evolutionary Formal 5Drexel University PROCESS MODELS – WATERFALL The “Classic Life Cycle”, The “Textbook Cycle” A systematic, sequential approach with the following steps: Customer Specification of Requirements (Communication) Planning (Estimating, Scheduling, Tracking) Modeling (Analysis and Design) Construction (Code and Test) Deployment (Delivery, Support, and Feedback) 6Drexel University PROCESS MODELS – WATERFALL The book calls the first phase communication. I do not like this definition as communication must occur at all stages. 7Drexel University PROCESS MODELS – WATERFALL When is the waterfall process model appropriate? In a purest sense, probably never. I have never worked on a project that follows a completely linear progression. However, the waterfall process is appropriate if followed in spirit if not the letter of the model in some situations: Well defined projects Projects with no technology risks Well defined domains Stable requirements 8Drexel University PROCESS MODELS – WATERFALL Why is it difficult to follow? Hard to follow a strictly sequential path. Customers have difficulty stating ALL the requirements explicitly Customers business model changes during the course of developing the application Customers are required to have patience, since a working program is not available until very late in the process. 9Drexel University PROCESS MODELS – INCREMENTAL PROCESS MODEL Even with well defined projects, a linear approach is often difficult. Additionally, sometimes a portion of the software needs to be delivered early. The incremental model combines elements of the waterfall model applied in an iterative fashion. Incremental model delivers an operational product with each increment. Works well for project resource management (staffing). 10Drexel University PROCESS MODELS – INCREMENTAL PROCESS MODEL 11Drexel University PROCESS MODELS – EVOLUTIONARY PROCESS MODEL - PROTOTYPING Customers define general objectives, but does not identify the details. Often, the customer doesn’t know what they want the system to look like. A repeating cycle of the following steps include: Communication Quick Plan Modeling Quick Design Construction of Prototype Deployment & Feedback 12Drexel University PROCESS MODELS – EVOLUTIONARY PROCESS MODEL - PROTOTYPING Depending upon the complexity I recommend a first pass with “Paper Prototypes”. “Paper” can be virtual with mockups of the application being developed in either a development environment like Visual Studio or even HTML. Second pass could be a semi functional application with no data connectivity. 13Drexel University PROCESS MODELS – EVOLUTIONARY PROCESS MODEL - PROTOTYPING Third pass for the developers to try any unknown technical issues. Often good for these prototypes to be used for requirements gathering and to reduce technology risks. Best if the prototype is a throw-away. One good reason to develop your prototype in a different language/system than the final project 14Drexel University PROCESS MODELS – EVOLUTIONARY PROCESS MODEL - PROTOTYPING Drawbacks: Customers like the prototype and want to place it in production. Developers forget the design decisions and their mistakes leak into the production system. 15Drexel University PROCESS MODELS – EVOLUTIONARY PROCESS MODEL – SPRIAL MODEL An evolutionary software model that couples the iterative nature of prototyping with the controlled and systematic aspects of the waterfall model. This is true, but with one addition: risk analysis. At each cycle through the spiral, milestones are achieved and risk is reevaluated. 16Drexel University PROCESS MODELS – EVOLUTIONARY PROCESS MODEL – SPRIAL MODEL 17Drexel University PROCESS MODELS – EVOLUTIONARY PROCESS MODEL – SPRIAL MODEL Most developers lean towards evolutionary process models. They have inherent problems: Prototyping and similar evolutionary models are hard to plan, thus hard to estimate, thus hard to contract. How many cycles will there be? Speed of evolution is difficult to dictate Is the third statement true? Why is this a goal? 18Drexel University PROCESS MODELS – SPECIALIZED PROCESS MODEL FORMAL METHODS MODEL The Formal Methods Model encompasses a set of activities that leads to formal mathematical specification of
View Full Document