Software Processes Process should be

Slides:



Advertisements
Similar presentations
Prescriptive Process models
Advertisements

Lecture # 2 : Process Models
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
CS487 Software Engineering Omar Aldawud
CSE 470 : Software Engineering The Software Process.
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.
Modeling the Process and Life Cycle CSCI 411 Advanced Database and Project Management Monday, February 2, 2015.
Software Engineering Process
CS 5150 Software Engineering
CS 501: Software Engineering
CS 425/625 Software Engineering Software Processes
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
S/W Project Management Software Process Models. Objectives To understand  Software process and process models, including the main characteristics of.
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.
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.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
CS CS 5150 Software Engineering Lecture 3 Software Processes 2.
Prescriptive Process Models
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.
1/23 Prescriptive Process Models. 2/23 Prescriptive Models Prescriptive process models advocate an orderly approach to software engineering Prescriptive.
An Introduction to Software Engineering
Software Process Model
1 CS 501 Spring 2004 CS 501: Software Engineering Lecture 2 Software Processes.
Software Development Life Cycle (SDLC)
Modelling the Process and Life Cycle. The Meaning of Process A process: a series of steps involving activities, constrains, and resources that produce.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
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
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Software Engineering 1A/1B/1C/1M School of Computer and Information Science, University of South Australia Week 1, Lecture 2, Page 1 Software Engineering.
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.
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.
Laurea Triennale in Informatica – Corso di Ingegneria del Software I – A.A. 2006/2007 Andrea Polini II. Software Life Cycle.
Software Development Process includes: all major process activities all major process activities resources used, subject to set of constraints (such as.
Chapter 2: The Process. What is Process? Software Engineering Process is the glue that holds the technology layers together and enables rational and timely.
Methodologies and Algorithms
Software Engineering Management
Lecture 3 Prescriptive Process Models
Software Life Cycle “What happens in the ‘life’ of software”
CS 5150 Software Engineering
Software Processes (a)
Chapter :Software Process Model
CS 425/625 Software Engineering Software Processes
V-Shaped SDLC Model Lecture-6.
Rapid Application Development Model
Software development life cycle models
Software Process Models
Chapter 2 SW Process Models
Software Process Models
Software Life Cycle Models
Chapter 2: Software Process Models
Software Processes.
Prescriptive Process Models
Requirements and the Software Lifecycle
Introduction to Software Engineering
Chapter 2 Software Processes
Software Engineering Lecture 18.
Software Process Models
SOFTWARE LIFE-CYCLES Beyond the Waterfall.
CS310 Software Engineering Lecturer Dr.Doaa Sami
Software Processes.
Chapter 2: Software Process Models
Software Engineering Lecture 17.
The Waterfall Model Also known as: classic life cycle, the waterfall model, the linear model Rarely projects are sequential (allows iteration indirectly)
Presentation transcript:

Software Processes Process should be Visible: Activities should provide clear indications of progress (deadlines/milestones) Understandable: Activities and their order of execution are well-defined Supportable: Automated support for activities is available Usable: Process is acceptable to and usable by developers

Defining Processes A defined process: Elements of process descriptions facilitates communication about the process provides a basis for process automation facilitates process reuse and evolution aids process management Elements of process descriptions general description each activity has an entry and exit criteria activities are organized in “sequence” guiding principles explain goals of activities process may contain subprocesses resources, constraints

Evolution of Software Process Models “Code and Fix” model code, test, debug Problems requirements analysis and design ignored code does not evolve gracefully debugging is difficult Why? Unstructured, spaghetti coding, changes not localized, not modular, difficult to trace, relationships hard to determine

SWEng Paradigms for Prescriptive Process Models Chosen based on nature of project, methods, tools used, controls and deliverables required Linear Sequential Models (Classic or Waterfall, V-shaped) Prototyping RAD Model Evolutionary Process Models (Incremental, Spiral, Iterative, Concurrent) Formal Methods 4GL Combinations

Process Models Linear Sequential Analysis, design, coding, testing, maintenance Difficulties: Projects rarely follow sequential flow Requirements defined up-front a must (rarely done) Patient customer/no immediate feedback

Waterfall Methods and Variants Phases (similar to develop hardware) Analysis, Design, Code, Test, Maintain Difficulties projects rarely follow sequential flow requirements defined up-front a must (rarely done) patient customers/no immediate feedback no insight given into how each activity transforms an intermediate product into another Variants V-shaped model: relationship between types of tests and phases before testing Prototyping variant: requirements and design prototypes

Process Models Prototyping quick design, build prototype, evaluate, refine prototype, … engineer product Paper/working subset of features/existing program with some features Requirements, quick design, build prototype, customer evaluation, refine prototype, engineered product Problems: Customer sees prototype, then wants a few fixes quick and delivery Implementation compromises made to get prototype done quickly/forgets compromises and become part of the system

Process Models RAD Model Short development cycle, “high-speed” linear sequential using component-based construction Well understood requirements, constrained scope, IS apps Uses reusable components and 4GLs Problems: Need sufficient human resources for RAD teams Need committed developers and customers Modular system key Not appropriate when technical risks are high (new technology, performance an issue

Process Models Evolutionary Process Model Spiral, Incremental, Iterative

Evolutionary Models (Microsoft) Build 1 Build 2 Build 3 Developers Users Release 1 Release 2 Release 3

Incremental/Iterative Development Incremental: functionality developed in pieces Iterative: put in all features, but they are limited

Benefits and Problems of Evolutionary Development Incremental: Each build focuses on a subset of functionality, simplifying development Opportunity to learn about problem as design develops customer get a product early and can provide feedback for future builds customer can test software different releases can focus on enhancements that require specialized expertise improperly planned builds result in complex system backward compatibility limits elegance of future releases (and can force hacking) error in basic system architecture may require changes to basic structure that invalidate earlier releases

Process Models Transformation (4GLs) No coding phase formal models mechanically transformed to code Requirements, “design”, implementation using 4GL (specifications into code generator), testing domain engineering (lex, YACC, SDL) Problems: Limited to Business IS Some CASE tools produce skeletonized code Reduces time to produce SW Design/Analysis also reduced 4GTs for large SW development efforts as much A/D/testing

Other Process Models Operational (5GLs) Combining Paradigms executable specifications Combining Paradigms

Choosing a Process Models Choice depends on nature of project requirements clearly defined and stable? Pressure to produce a working product quickly? Consequences of operational errors serious? Classified along a spectrum ranging from radical: all activities carried out in parallel suitable when quick results needed and requirements fuzzy conservative: all activities carried out in a strict sequence with no overlap suitable when consequences of errors serious and requirements are clear and stable None of the extremes are viable