Docsity
Docsity

Prepare for your exams
Prepare for your exams

Study with the several resources on Docsity


Earn points to download
Earn points to download

Earn points by helping other students or get them with a premium plan


Guidelines and tips
Guidelines and tips

Software Process Models - Lecture Slides | CS 230, Study Guides, Projects, Research of Software Engineering

Material Type: Project; Class: Intro to Software Engineering; Subject: Computer Science; University: West Virginia University; Term: Unknown 2006;

Typology: Study Guides, Projects, Research

Pre 2010

Uploaded on 07/30/2009

koofers-user-nt0
koofers-user-nt0 🇺🇸

10 documents

1 / 31

Toggle sidebar

Related documents


Partial preview of the text

Download Software Process Models - Lecture Slides | CS 230 and more Study Guides, Projects, Research Software Engineering in PDF only on Docsity! Slide 1CS 230 Introduction to Software EngineeringCopyright © K.Goseva 2006 SOFTWARE PROCESS MODELS Slide 2CS 230 Introduction to Software EngineeringCopyright © K.Goseva 2006 Software Process Models • Process model (Life-cycle model) - steps through which the product progresses • Requirements phase • Specification phase • Design phase • Implementation phase • Integration phase • Maintenance phase • Retirement Slide 5CS 230 Introduction to Software EngineeringCopyright © K.Goseva 2006 Waterfall Model • Only model widely used until early 1980s • Characterized by • Feedback loops • Documentation-driven Slide 6CS 230 Introduction to Software EngineeringCopyright © K.Goseva 2006 Waterfall Model (contd) • Advantages • Enforces disciplined approach o Documentation for each phase o Products of each phase checked by SQA group • Maintenance is easier o Every change reflected in the relevant documentation • Disadvantages • Working version of the software will not be available until late in the project time-span • Specifications are long, detailed, written in a style unfamiliar to the client • “Blocking states” – some project team members must wait for other team members to complete dependent tasks Slide 7CS 230 Introduction to Software EngineeringCopyright © K.Goseva 2006 Incremental Model • Divide project into builds – modules interacting to provide a specific functionality • Typical product - 5 to 25 builds Slide 10CS 230 Introduction to Software EngineeringCopyright © K.Goseva 2006 Rapid Prototyping Model • First step - construct the prototype as rapidly as possible • Only those aspects of the software that will be visible to the customer/user • Linear model – no feedback loops Slide 11CS 230 Introduction to Software EngineeringCopyright © K.Goseva 2006 Rapid Prototyping Model (contd) • Rapid prototype • Used in the requirements phase • Evaluated by the customer/user • Then, it is discarded - do not turn into product • Rapid prototyping model is not proven and has its own problems • Possible solution o Rapid prototyping for defining requirements o Waterfall model for rest of life cycle Slide 12CS 230 Introduction to Software EngineeringCopyright © K.Goseva 2006 Spiral Model • Minimize risk via the use of prototype and other means • Simplified form - Waterfall model plus risk analysis • Precede each phase by • Alternatives • Risk analysis • Follow each phase by • Evaluation • Planning of next phase Slide 15CS 230 Introduction to Software EngineeringCopyright © K.Goseva 2006 Analysis of Spiral Model • Strengths • Answers the question “How much to test ?” in terms of risk • No distinction between development and maintenance (another cycle of the model) • Weaknesses • Internal (in-house) development only o For contract software, all risk analysis must be performed before the contract is signed, not in the spiral model • Large-scale software only o For small software performing risk analysis would significantly affect the profit potential Slide 16CS 230 Introduction to Software EngineeringCopyright © K.Goseva 2006 Agile Process Models • Agile software engineering combines a philosophy and a set of development guidelines • Philosophy o Encourages customer satisfaction and early incremental delivery of the software o Small highly motivated project teams o Informal methods o Minimal software engineering work products o Overall development simplicity • Development guidelines o Stress delivery over analysis and design o Active and continuous communication between developers and customers Slide 17CS 230 Introduction to Software EngineeringCopyright © K.Goseva 2006 Agile Process Models (contd) • There are many agile process models • Extreme Programming (XP) • Adaptive Software Development (ASD) • Dynamic System Development Method (DSDM) • Scrum • Crystal • Feature Driven Development (FDD) • Agile Modeling (AM) Reading: Choose “Agile Methods” from http://www.computer.org/portal/site/seportal/index.jsp Slide 20CS 230 Introduction to Software EngineeringCopyright © K.Goseva 2006 Features of XP • Computers are put in center of large room lined with cubicles • Client representative works with the XP team at all the times • Individual cannot work overtime for 2 successive weeks • There is no specialization • all members of the XP team work on specification, design, code, and testing • There is no overall design phase before various builds are constructed – refactoring Slide 21CS 230 Introduction to Software EngineeringCopyright © K.Goseva 2006 Features of XP • Advantages • Useful when requirements are vague or changing • Emphasis on teamwork and communication • Programmer estimates before committing to a schedule • Continuous measurement; frequent, extensive testing • Disadvantages • Limited to small products and small teams - can be disastrous when programs are larger than a few thousand lines of code or when the work involves more than a few people. • Lack of design documentation • Lack of a structured review process Slide 22CS 230 Introduction to Software EngineeringCopyright © K.Goseva 2006 Synchronize-and-Stabilize Model • Microsoft’s life-cycle model – version of incremental model • Requirements analysis — interview potential customers; list of features with priorities • Draw up specifications • Divide project into 3 or 4 builds • Each build is carried out by small teams working in parallel Slide 25CS 230 Introduction to Software EngineeringCopyright © K.Goseva 2006 Fountain Model • Overlap (parallelism) • Arrows (iteration) • Smaller maintenance circle Slide 26CS 230 Introduction to Software EngineeringCopyright © K.Goseva 2006 Unified Process • Unified process is a framework for OO software engineering using UML (Unified Modeling Language) • Book by Ivar Jacobson, Grady Booch, and James Rumbaugh (1999) • Unified process (UP) is an attempt to draw on the best features and characteristics of conventional software process models, but characterize them in a way that implements many of the best principles of agile software development Slide 27CS 230 Introduction to Software EngineeringCopyright © K.Goseva 2006 Unified Process: Phases • Inception phase • Encompasses the customer communication and planning activities • Rough architecture, plan, preliminary use-cases • Elaboration phase • Encompasses the customer communication and modeling activities • Refines and expands preliminary use-cases • Expands architectural representation to include: use-case model, analysis model, design model, implementation model, and deployment model • The plan is carefully reviewed and modified if needed • Construction phase • Analysis and design models are completed to reflect the final version of the software increment • Using the architectural model as an input develop or acquire the software components, unit tests are designed and executed, integration activities are conducted • Use-cases are used to derive acceptance tests Slide 30CS 230 Introduction to Software EngineeringCopyright © K.Goseva 2006 Unified Process: Major work products Construction phase Design model Software components Integrated software increment Test plan and procedure Test cases Support documentation user manuals installation manuals description of current increment Transition phase Delivered software increment Beta test reports General user feedback Slide 31CS 230 Introduction to Software EngineeringCopyright © K.Goseva 2006 Conclusions • Different process models, each with its own strengths and weaknesses • Criteria for deciding on a model include • Organization • Its management style • Skills of the employees • Product nature
Docsity logo



Copyright © 2024 Ladybird Srl - Via Leonardo da Vinci 16, 10126, Torino, Italy - VAT 10816460017 - All rights reserved