Software Process and Models

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.
Software Development Life-Cycle Models
Lecture # 2 : Process Models
1COM6030 Systems Analysis and Design © University of Sheffield 2005 COM 6030 Software Analysis and Design Lecture 2- Software Process Models and Project.
CS487 Software Engineering Omar Aldawud
TCS2411 Software Engineering1 Software Life Cycle “What happens in the ‘life’ of software”
CSE 470 : Software Engineering The Software Process.
Chapter 3 Process Models
Chapter 2 Software Process Models
The software process A software process is a set of activities and associated results which lead to the production of a software product. This may involve.
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
Chapter :Software Process Model
R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering1 Advanced Software Engineering Dr. Cheng Overview of Software Engineering.
CS 501: Software Engineering
SOFTWARE ENGINEERING LECTURE-3 CSE-477.
Developed by Reneta Barneva, SUNY Fredonia The Process.
Chapter : Software Process
1COM6030 Systems Analysis and Design © University of Sheffield 2005 COM 6030 Software Analysis and Design Lecture 2- Software Process Models and Project.
CSE-433: Software Engineering Md. Kamal Hossen
Chapter 2 The process Process, Methods, and Tools
Chapter 2 The Process.
THE PROTOTYPING MODEL The prototyping model begins with requirements gathering. Developer and customer meet and define the overall objectives for the software.
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.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Chapter 2 The Process.
PART ONE The Product and the Process Chapter 2 The Process  Software Engineering: A Layered Technology a “quality” focus process model methods tools.
Prescriptive Process Models
Capability Maturity Models Software Engineering Institute (supported by DoD) The problems of software development are mainly caused by poor process management.
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.
Software Process Model
1 CS 501 Spring 2004 CS 501: Software Engineering Lecture 2 Software Processes.
Introduction to Software Development (Software Engineering - I)
Developed by Reneta Barneva, SUNY Fredonia The Process.
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.
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 Engineering Introduction (The Process). Objectives lTo define software engineering lTo introduce a range of software engineering process models.
Process Asad Ur Rehman Chief Technology Officer Feditec Enterprise.
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 Model Process
Chapter 1: Introduction Omar Meqdadi SE 3860 Lecture 1 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
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.
Jaypee Institute of Information Technology, Noida.
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.
Software Project Management Unit 1. Evolving role of software S/w now a days resides in the mobile, mainframes The main role of the s/w is to transform.
Chapter 2: The Process. What is Process? Software Engineering Process is the glue that holds the technology layers together and enables rational and timely.
Lecture 3 Prescriptive Process Models
Software Life Cycle “What happens in the ‘life’ of software”
Software Process Models
Chapter 2 SW Process Models
Software Process Models
Software Life Cycle Models
Level 1 Level 1 – Initial: The software process is characterized as ad hoc and occasionally even chaotic. Few processes are defined, and success depends.
Introduction to Software Engineering
Software Process Models
Software Engineering I
Software Processes Process should be
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:

Software Process and Models Instructor: Dr. Jerry Gao

Software Process Models - Waterfall Model - Prototyping Model - RAD Model - Evolutionary Software Process Models - Incremental Model - Spiral Model - Component Assembly Model - Concurrent Development Model - Process Maturity - Process and Product Jerry Gao, Ph.D. Jan. 1999

Common Process Framework Software Process - A common software process framework: - can be used to all software projects. - a number of task sets, including tasks, milestones,deliverables, and SQA points. - Umbrella activities: - project tracking and control - technical reviews (formal or informal) - software quality assurance (SQA) - configuration management - documentation - measurement - management of reuse and risk Common Process Framework Common Process Framework Framework Activities Task Sets Tasks Milestones, deliverables SQA points Umbrella activities:

Software Process Models Concepts: - a process model or a software engineering paradigm: --> refers to a strategy to encompasses the process, methods, and tools together to effectively manage and deliver a software product. Select a process model based on: - the nature of the project and application - the methods and tools to be used - the controls and deliverables There are four fundamental process activities: - Software specification. - Software development - Software validation - Software maintenance (or evolution)

Technical Development Problem Solving Loop All software development can be viewed as a software problem solving loop. It consists of four stages: - problem definition - identify problems and define them - technical development - find the solutions to solve them - solution integration - apply solutions and deliver the system - status QUO - current state of affairs. Problem Definition Status QUO Technical Development Solution Integration

The ‘Waterfall’ Model The waterfall model - the linear sequential model, also called the “classic life cycle” ---> a systematic, sequential approach to software development that begins at the system level and progress through analysis, design, coding, testing, and maintenance. Requirements definition System & software design Implementation and unit testing Integration and system testing Operation and maintenance

The Waterfall Model The waterfall model is the oldest and most widely used paradigm for software engineering. Advantages: Simple, step-by-step, focused, and easy to follow.. Problems: - Inflexible because real projects rarely follow the sequential flow that the model proposes. - It is often difficult for the customers to state all requirements explicitly. - The customer must have patience to wait to validate the software product in the late phases. (until programs are implemented) - Customers are involved the project in the beginning. - Developers are often delayed unnecessarily between phases.

The Prototyping Model - step 1: Requirements gathering - step 2: A “quick design” -> focuses on visible functions and behaviors of the product - step 3: Prototype construction - step 4: Customer evaluation of the prototype loop back step 1. Build/revise Mock-up Listen to customer Customer test-drives mock-up

The 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 Problems: - The prototype can serve as “the first system”. Brooks recommends we throw away. - Developers usually attempt to develop the product based on the prototype. - Developers often makes implementation compromises in order to get a prototyping working quickly. - Customers may be unaware that the prototype is not a product, which is held with .

The RAD Model Rapid Application Development (RAD) is a linear sequential software development process model that emphasize 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. Advantages: - Short development time - Cost reduction due to software reuse and component-based construction Problems: - For large, but scalable projects, RAD requires sufficient resources. - RAD requires developers and customers who are committed to the schedule. - Constructed software are project-specific, and may not be well modularized. - Its quality depends on the quality of existing components. - Not appropriate projects with high technical risk and new technologies.

The RAD Model Business Modeling Data Modeling Process Modeling Modeling information flow among functions Modeling information flow in terms of business data and objects Team # i Defining functional processes by mapping the two previous results Business Modeling Use fourth generation techniques or automatic tools to construct software Data Modeling Testing new components perform integration tests Process Modeling Application Generation 60-90 days Testing & Turnover

The RAD Model Rapid Application Development (RAD) is a linear sequential software development process model that emphasize 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. Advantages: - Short development time - Cost reduction due to software reuse and component-based construction Problems: - For large, but scalable projects, RAD requires sufficient resources. - RAD requires developers and customers who are committed to the schedule. - Constructed software are project-specific, and may not be well modularized. - Its quality depends on the quality of existing components. - Not appropriate projects with high technical risk and new technologies.

Evolutionary Software Process Models Classic process models are not designed to deliver a production system due to their assumptions on: - A complete system will be delivered after the linear sequence is completed. - Customer knows what they want at the early stage. The realty in a software production process --> - A lot of requirements changes during the production course - A lot of iterative activities and work because of the evolutionary nature of software production To cope with the product evolution, several evolution process models are proposed: - the incremental model - the spiral model - the component assembly model - the concurrent development model Jerry Gao, Ph.D. Jan. 1999

The Incremental Model The Incremental Model combines elements of the linear sequential model with the iterative philosophy of prototyping. The first increment is a core product. The incremental process model: - Iterative in nature, like prototyping. - Focus on the delivery of a operational product with each increment. - Particular useful when staffing is unavailable for a complete implementation by the business deadline. System/Information engineering analysis design code test delivery of 1st increment Increment 2 analysis design code test Increment 3 analysis design code test Increment 4 analysis design code test

The Spiral Model The spiral model (by Boehm[BOE88]) - is an evolutionary software process model - couples the iterative nature of prototyping - include the systematic aspects of the linear sequential model. - provides the potential for rapid development of incremental versions of the software. The spiral model is divided into a number of framework activities (regions): - customer communication - planning (resources, timelines, etc.) - risk analysis - engineering - construction & release - customer evaluation Each region is populated by a series of work tasks.

The Spiral Model The spiral model (by Boehm[BOE88]) - is an evolutionary software process model - couples the iterative nature of prototyping - include the systematic aspects of the linear sequential model. - provides the potential for rapid development of incremental versions of the software. The spiral model is divided into a number of framework activities (regions): - customer communication - planning (resources, timelines, etc.) - risk analysis - engineering - construction & release - customer evaluation Each region is populated by a series of work tasks.

The Spiral Model Risk Analysis Product Maintenance Projects Planning Project entry point axis Planning Customer Communication Product Enhancement Projects Engineering New Product Development Projects Customer Evaluation Concept Development Projects Construction & Release The spiral model -- a realistic approach to the development of large scale systems and software. - may be difficult to convince customers that the evolutionary approach is controllable. - a relatively new model, and has not used as widely as the linear sequential or prototyping paradigms.

The Component Assembly Model Identify candidate component Planning Risk Analysis Customer Communication Construct nth iteration of system Look up components in library Engineering Customer Evaluation Extract components if available Put new components in library Construction & Release Build components if unavailable

The Component Assembly Model Object Technologies -- the technical framework for a component-based process model for software engineering. The component assembly model - incorporates many of the characteristics of the spiral model - is an evolutionary in nature - demand an iterative approach to the creation of software - leads to software reuse, and reusability Advantages: - demand software reuse --> cost reduction --> reduction in development cycle time What is the limitation of the component assembly model? What are the current problems in this model?

The Concurrent Development Model none Under development Awaiting changes Under review Under Revision Baselined Done

The Concurrent Development Model The concurrent development model - called concurrent engineering. --> provides an accurate state of the current state of a project. - Focus on concurrent engineering activities in a software engineering process such as prototyping, analysis modeling, requirements specification and design. - Represented schematically as a series of major technical activities, tasks, and their associated states. - Defined as a series of events that trigger transitions from state to state for each of the software engineering activities. Two ways to achieve the concurrency: - system and component activities occur simultaneously and can be modeling using the state-oriented approach - a typical client/server application is implemented with many components, each can be designed and realized concurrently. Application: all types of software development

Software Process Maturity Five process maturity levels: Level 1: Initial - Software process --> ad hoc, and occasionally even chaotic. Level 2: Repeatable - Basic project management processes are established to track cost, schedule, and functionality. Level 3: Defined - In software process, both management and engineering activities is documented, standardized, and integrated into an organization-wide software process. Level 4: Managed - Detailed measures of the software process and product quality are collected. Both the software process and products are quantitatively understood and controlled using detailed measures. Level 5: Optimizing - Continuous process improvement is enabled by quantitative feedback from the process and from testing innovative ideas and technologies.