Software Process Models

Slides:



Advertisements
Similar presentations
Prescriptive Process models
Advertisements

2003 Mateusz Żochowski, Marcin Borzymek Software Life Cycle Analysis.
Computer Science Department
1 Requirements and the Software Lifecycle The traditional software process models Waterfall model Spiral model The iterative approach Chapter 3.
1 Software Processes A Software process is a set of activities and associated results which lead to the production of a software product. Activities Common.
Software Development Life-Cycle Models
Lecture # 2 : Process Models
Unit 2. Software Lifecycle
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
Software Project Management
CS487 Software Engineering Omar Aldawud
Software Engineering CSE470: Process 15 Software Engineering Phases Definition: What? Development: How? Maintenance: Managing change Umbrella Activities:
IS2210: Systems Analysis and Systems Design and Change
CSE 470 : Software Engineering The Software Process.
What is Software Design?. Systems Development Life- Cycle Planning Analysis Design Implementation Design.
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.
MapleLeaf, LLC SDLC Methodology. MapleLeaf, LLC, has established standard phases and processes in regards to project management methodologies for planning.
Software Process Models
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
1 CS 425/625 Software Engineering CS 425/625 Software Engineering Software Processes Based on Chapter 4 of the textbook [SE-7] Ian Sommerville, Software.
Requirements - Why What and How? Sriram Mohan. Outline Why ? What ? How ?
1 CS 691z/791z Topics on Software Engineering CS 691z/791z Topics on Software Engineering Software Processes Based on Chapter 4 of the book [SE-8] Ian.
CS 425/625 Software Engineering Software Processes
Iterative development and The Unified process
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Chapter 2- Software Process Lecture 4. Software Engineering We have specified the problem domain – industrial strength software – Besides delivering the.
Software Life Cycle Model
S/W Project Management
1 Building and Maintaining Information Systems. 2 Opening Case: Yahoo! Store Allows small businesses to create their own online store – No programming.
S/W Project Management Software Process Models. Objectives To understand  Software process and process models, including the main characteristics of.
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
1 CMPT 275 Software Engineering Software life cycle.
Chapter 2 The process Process, Methods, and Tools
ITEC224 Database Programming
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
What is a life cycle model? Framework under which a software product is going to be developed. – Defines the phases that the product under development.
Topic (1)Software Engineering (601321)1 Introduction Complex and large SW. SW crises Expensive HW. Custom SW. Batch execution.
Object-oriented Analysis and Design Stages in a Software Project Requirements Writing Analysis Design Implementation System Integration and Testing Maintenance.
Project Life Cycles.
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.
An Introduction to Software Engineering
Chapter 4 프로세스 모델 Process Models
Software Process Model
Cmpe 589 Spring 2006 Lecture 2. Software Engineering Definition –A strategy for producing high quality software.
Software Life Cycle The software life cycle is the sequence of activities that occur during software development and maintenance.
J. Scott Hawker p. 1Some material © Rational Corp. Rational Unified Process Overview See and use the RUP Browser on lab machines.
Developed by Reneta Barneva, SUNY Fredonia The Process.
1 - 1 Systems Analysis and Design, Key Ideas Many failed systems were abandoned because analysts tried to build wonderful systems without understanding.
CSPC 464 Fall 2014 Son Nguyen. 1. The Process of Software Architecting, Peter Eeles, Peter Cripss 2. Software Architecture for Developers, Simon Brown.
Software Development Life Cycle (SDLC)
Process Asad Ur Rehman Chief Technology Officer Feditec Enterprise.
Unit – I Presentation. Unit – 1 (Introduction to Software Project management) Definition:-  Software project management is the art and science of planning.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
By : Hisham Kahlifa Shreef Foda Khaled monir Tamer medhat Supervisor : Dr Doaa Nabil.
Topic:- At the end we will be able to explain:- Why it is called Meta Model ?? Spiral Model Its Advantages & Disadvantages… Phases of Spiral Model...
1 Chapter 2 SW Process Models. 2 Objectives  Understand various process models  Understand the pros and cons of each model  Evaluate the applicability.
SOFTWARE DEVELOPMENT Presented By : Emporiumtech This presentation is brought you by
Methodologies and Algorithms
Lecture 3 Prescriptive Process Models
Software Life Cycle “What happens in the ‘life’ of software”
Software Process Models
Life Cycle Models PPT By :Dr. R. Mall.
Classical Waterfall Model
Requirements and the Software Lifecycle
Introduction to Software Engineering
Software Process Models
CS310 Software Engineering Lecturer Dr.Doaa Sami
SNS College of Engineering Coimbatore
Presentation transcript:

Software Process Models Lecture 03

Waterfall Model for Development Here, steps (phases) are arranged in linear order A step take inputs from previous step, gives output to next step (if any) Exit criteria of a step must match with entry criteria of the succeeding step It follows ‘specify, design, build’ sequence that is intuitively obvious and appears natural

Waterfall Model … Produces many intermediate deliverables, usually documents Standard formats defined Act as ‘baseline’ used as reference (for contractual obligations, for maintenance) Important for quality assurance, project management, etc. It is widely used (with minor variations) when requirements are well understood

Waterfall Model software part of some larger system system establish requirements for all elements of the system; assign some to software understand information domain, functions, performance and interfacing. Project plans made translate requirements into s/w architecture, data structures and procedural details. A ‘detailed design’ step can be added programming test logic and function interfaces system engineering Analysis Project planning design code testing & integration Installation & maintenance deployment; make changes for Errors, performance changes in requirement

Deliverables in Waterfall Model Project plan and feasibility report Requirements document (SRS : Software Requirement Specifications) System design document Detailed design document Test plans and test reports Source code Software manuals (user manual, installation manual) Review reports

Cost/Effort Distribution Problem definition Feasibility study Analysis System design Detailed Implemen- tation Mainten- ance Total accumulated cost Cost/Effort Distribution Accumulated cost increases dramatically as programmers, operators, technical writers and computer time is committed. Cost of discovering and fixing errors also increases with steps

Shortcomings of Waterfall Model Requirements may not be clearly known, especially for applications not having existing (manual) counterpart Railway reservation: manual system existes, so SRS can be defined On-line container management for railways - new Knowledge management for a central bank – new

Shortcomings … Requirements change with time during project life cycle itself Users may find solution of little use Better to develop in parts in smaller increments; this is common for packages, system software Considered documentation-heavy: so much documentation may not be required for all types of projects.

Prototyping Model When customer or developer is not sure Of requirements (inputs, outputs) Of algorithms, efficiency, human-machine interaction A throwaway prototype built from currently known user needs Working or even ‘paper’ prototype

Prototyping … Quick design focuses on aspects visible to user; features clearly understood need not be implemented Prototype is tuned to satisfy customer needs Many iterations may be required to incorporate changes and new requirements Final product follows usual define-design-build-test life cycle

Prototyping Requirements gathering ‘Quick’ design build prototype evaluate & refine Engineer product

Limitations of Prototyping Customer may want prototype itself ! Developer may continue with implementation choices made during prototyping may not give required quality, performance, …. Good tools need to be acquired for quick development May increase project cost

Iterative Development Useful for product development where developers define scope, features to serve many customers Early version with limited feature important to establish market and get customer feedback Initial version may follow any method A list of features for future versions maintained Each version is analyzed to decide feature list for next iteration

Spiral Model Activities are organized in a spiral having many cycles Four quadrants in each cycle 1. Determine objectives, Alternatives, constraints 2. Evaluate alternatives, identify and handle risks 4. Plan next step 3. Develop the software

Spiral Model … Prototyping, simulations, benchmarking may be done to resolve uncertainties/risks Development step depends on remaining risks; e.g., Do prototype for user interface risks Use basic waterfall model when user interface and performance issues are understood but only development risk remains Risk driven : allows us mix of specification-oriented, prototype-oriented, simulation based or any other approach.

The Spiral Model

Spiral Model Main characteristics: Also a hybrid model that support process iteration The process is represented as a spiral, each loop in the spiral representing a process phase Four sectors per loop: objective setting, risk assessment and reduction, development and validation, planning Risk is explicitly taken into consideration

Spiral Model Advantages: Disadvantages: Applicability: Risk reduction mechanisms are in place Supports iteration and reflects real-world practices Systematic approach Disadvantages: Requires expertise in risk evaluation and reduction Complex, relatively difficult to follow strictly Applicable only to large systems Applicability: Internal development of large systems

Project Management Process Runs in parallel to development process Project planning, monitoring and control are the basic goals Project plan indicates how project will be executed successfully Without plan, there is no management Without measurement, not much planning possible Plan allows progress to be measured Plan produced before development begins and constantly updated

Project Planning Prepare cost/effort estimation Based on project complexity, scope, productivity levels, other historical data Many models available Select development process, define milestones and prepare schedule Know how effort is distributed over phases from historical data Decide project staffing Make quality control plans: define reviews, inspections, testing strategies to detect/remove defects

Project Monitoring and Control Plan defines various activities: many ways to represent: Gantt chart, time bar chart, PERT/CPM project activity network Show activities, expected durations, resources allocated Critical paths can be identified

Project monitoring … Each development step gives information for tracking progress for identifying delays, bottlenecks, etc. Allows corrective action: add more resources reduce scope, re-negotiate cost/schedule, etc.

Summary Challenges in software development and need for ‘engineering’ approach Step-by-step methodology with specific deliverables Types of software processes For development, for project management, … Precise definition of a step Waterfall model : natural, widely followed in spite of its limitations Project management – for planning, monitoring and control