Software Process Models

Slides:



Advertisements
Similar presentations
Prescriptive Process models
Advertisements

1 Requirements and the Software Lifecycle The traditional software process models Waterfall model Spiral model The iterative approach Chapter 3.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Software Development Life-Cycle Models
Lecture # 2 : Process Models
Chapter 3 Prescriptive Process Models
CS487 Software Engineering Omar Aldawud
CSE 436—Personal Software Processes, Software Development Models Ron K. Cytron 3 October 2005.
Chapter 3 Process Models
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
29 September Interactions  There is no “right answer”  Typically people and product are fixed  … can adapt process  (which is where we will.
Software Process Models
1 Prescriptive Process Models. 2 Prescriptive Models Prescriptive process models advocate an orderly approach to software engineering Prescriptive process.
Chapter 2 The Software Process
COMP 6710 Course NotesSlide 2-0 Auburn University Computer Science and Software Engineering Course Notes Set 2: Software Process Models Computer Science.
INTROSE Introduction to Software Engineering Raymund Sison, PhD College of Computer Studies De La Salle University Software: Definitions,
1 CMPT 275 Software Engineering Software life cycle.
Chapter 2 The process Process, Methods, and Tools
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.
Prescriptive Process Models
Capability Maturity Models Software Engineering Institute (supported by DoD) The problems of software development are mainly caused by poor process management.
1 5.1 Software Engineering Practice  Provide value to the user  KIS—keep it simple!  Maintain the product and project “vision”  What you produce,
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.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Coming up: Software Engineering: A Practitioner’s Approach, 6/e Chapter 5 Practice: A Generic View copyright © 1996, 2001, 2005 R.S. Pressman & Associates,
Chapter 2 Process Models
Software Engineering MCS-2 Lecture # 6
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Chapter 4 프로세스 모델 Process Models
1 Software Engineering: A Practitioner’s Approach, 7/e Chapter 2 Process: A Generic View Software Engineering: A Practitioner’s Approach, 7/e Chapter 2.
Process Asad Ur Rehman Chief Technology Officer Feditec Enterprise.
The Code and Fix model It is a simple two phase model. In first phase: code is developed In second phase: fix the code until the client is not satisfied.
Meghe Group of Institutions Department for Technology Enhanced Learning 1.
Chapter :Software Process Model. Chapter 4: Topic Covered About software process model Build and Fix Model Why Models are needed? ◦Process as a "black.
1 Chapter 2 SW Process Models. 2 Objectives  Understand various process models  Understand the pros and cons of each model  Evaluate the applicability.
Chapter 2: The Process. What is Process? Software Engineering Process is the glue that holds the technology layers together and enables rational and timely.
Process 4 Hours.
Chapter 3 Prescriptive Process Models
Methodologies and Algorithms
Lecture 3 Prescriptive Process Models
Software Life Cycle “What happens in the ‘life’ of software”
SNS College of Engineering Coimbatore
Chapter :Software Process Model
CS 425/625 Software Engineering Software Processes
Software Engineering (CSI 321)
Software Engineering: A Practitioner’s Approach
Software Process Models
Chapter 2 SW Process Models
Software Process Models
Life Cycle Models PPT By :Dr. R. Mall.
Software Life Cycle Models
Software Engineering: A Practitioner’s Approach, 7/e Chapter 2 Prescriptive Process Models copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc.
Software Engineering: A Practitioner’s Approach, 7/e Chapter 2 Prescriptive Process Models copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc.
Prescriptive Process Models
Requirements and the Software Lifecycle
Introduction to Software Engineering
Chapter 2 – Software Processes
Software life cycle models
Process Models Coming up: Prescriptive Models.
Chapter 2 Process Models
Chapter 2 Process Models
Chapter 3 Prescriptive Process Models
For University Use Only
Software Processes Process should be
Software Engineering Practice: A Generic View
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)
Chapter 2 Process Models
Prescriptive Process Models Pertemuan-3
Presentation transcript:

Software Process Models (Source: Pressman, R. Software Engineering: A Practitioner’s Approach. McGraw-Hill, 2005)

Generic Process Framework Communication Involves communication among the customer and other stake holders; encompasses requirements gathering Planning Establishes a plan for software engineering work; addresses technical tasks, resources, work products, and work schedule Modeling (Analyze, Design) Encompasses the creation of models to better under the requirements and the design Construction (Code, Test) Combines code generation and testing to uncover errors Deployment Involves delivery of software to the customer for evaluation and feedback 2

Modeling: Software Requirements Analysis Helps software engineers to better understand the problem they will work to solve Encompasses the set of tasks that lead to an understanding of what the business impact of the software will be, what the customer wants, and how end-users will interact with the software Uses a combination of text and diagrams to depict requirements for data, function, and behavior Provides a relatively easy way to understand and review requirements for correctness, completeness and consistency 3

Modeling: Software Design Brings together customer requirements, business needs, and technical considerations to form the “blueprint” for a product Creates a model that that provides detail about software data structures, software architecture, interfaces, and components that are necessary to implement the system Architectural design Represents the structure of data and program components that are required to build the software Considers the architectural style, the structure and properties of components that constitute the system, and interrelationships that occur among all architectural components User Interface Design Creates an effective communication medium between a human and a computer Identifies interface objects and actions and then creates a screen layout that forms the basis for a user interface prototype Component-level Design Defines the data structures, algorithms, interface characteristics, and communication mechanisms allocated to each software component 4

Software Process Models Prescriptive Process Models Agile Process Models Traditional process models Waterfall Model V Model Incremental model Evolutionary process models Prototyping Spiral Model SCRUM RUP XP ..... ....

Prescriptive Process Model Defines a distinct set of activities, actions, tasks, milestones, and work products that are required to engineer high-quality software The activities may be linear, incremental, or evolutionary 6

Waterfall Model (Diagram) Communication Project initiation Requirements gathering Planning Estimating Scheduling Tracking Modeling Analysis Design Construction Code Test Deployment Delivery Support Feedback 7

Waterfall Model (Description) Oldest software lifecycle model and best understood by upper management Used when requirements are well understood and risk is low Work flow is in a linear (i.e., sequential) fashion Used often with well-defined adaptations or enhancements to current software 8

Waterfall Model (Problems) Doesn't support iteration, so changes can cause confusion Difficult for customers to state all requirements explicitly and up front Requires customer patience because a working version of the program doesn't occur until the final phase Problems can be somewhat alleviated in the model through the addition of feedback loops (see the next slide) 9

V Model (Diagram) 10

V Model (Description) A variation of waterfall model depicts the relationship of quality assurance actions to the actions associated with communication, modeling and early code construction activates. Team first moves down the left side of the V to refine the problem requirements. Once code is generated, the team moves up the right side of the V, performing a series of tests that validate each of the models created as the team moved down the left side. 11

Incremental Model (Diagram) Communication Planning Modeling Construction Deployment Increment #2 Communication Planning Modeling Construction Deployment Increment #3 Communication Planning Modeling Construction Deployment 12

Incremental Model (Description) Used when requirements are well understood Multiple independent deliveries are identified Work flow is in a linear (i.e., sequential) fashion within an increment and is staggered between increments Iterative in nature; focuses on an operational product with each increment Provides a needed set of functionality sooner while delivering optional components later Useful also when staffing is too short for a full-scale development 13

Prototyping Model (Diagram) Quick Planning Communication Start Modeling Quick Design Deployment, Delivery, and Feedback Construction Of Prototype 14

Prototyping Model (Description) Follows an evolutionary and iterative approach Used when requirements are not well understood Serves as a mechanism for identifying software requirements Focuses on those aspects of the software that are visible to the customer/user Feedback is used to refine the prototype 15

Prototyping Model (Potential Problems) The customer sees a "working version" of the software, wants to stop all development and then buy the prototype after a "few fixes" are made Developers often make implementation compromises to get the software running quickly (e.g., language choice, user interface, operating system choice, inefficient algorithms) Lesson learned Define the rules up front on the final disposition of the prototype before it is built In most circumstances, plan to discard the prototype and engineer the actual production software with a goal toward quality 16

Spiral Model (Diagram) Planning Communication Modeling Start Start Deployment Construction 17

Spiral Model (Description) Invented by Dr. Barry Boehm in 1988 while working at TRW Follows an evolutionary approach Used when requirements are not well understood and risks are high Inner spirals focus on identifying software requirements and project risks; may also incorporate prototyping Outer spirals take on a classical waterfall approach after requirements have been defined, but permit iterative growth of the software Operates as a risk-driven model…a go/no-go decision occurs after each complete spiral in order to react to risk determinations Requires considerable expertise in risk assessment Serves as a realistic model for large-scale software development 18

General Weaknesses of Evolutionary Process Models Prototyping poses a problem to project planning because of the uncertain number of iterations required to construct the product Evolutionary software processes do not establish the maximum speed of the evolution If too fast, the process will fall into chaos If too slow, productivity could be affected Software processes should focus first on flexibility and extensibility, and second on high quality We should prioritize the speed of the development over zero defects Extending the development in order to reach higher quality could result in late delivery 19

Activity cost distribution

Product development costs

What are the costs of software engineering? Roughly 60% of costs are development costs, 40% are testing costs. For custom software, evolution costs often exceed development costs. Costs vary depending on the type of system being developed and the requirements of system attributes such as performance and system reliability. Distribution of costs depends on the development model that is used.