Software Engineering The Software Process (2). 2 The Waterfall Model Requirements Definition System and Software design Programming and Unit Testing Integration.

Slides:



Advertisements
Similar presentations
Chapter: 3 Agile Development
Advertisements

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
PROC-1 3. Software Process. PROC-2 What’s a process? Set of activities in creating software It involves creativity –hard to automate –Requires human judgment.
 Dr. Syed Noman Hasany.  Review of known methodologies  Analysis of software requirements  Real-time software  Software cost, quality, testing and.
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 Development Methodologies 1. A methodology is: A collection of procedures, techniques, principles, and tools that help developers build a computer.
Chapter 2 – Software Processes Lecture 1 1Chapter 2 Software Processes.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development.
Alternate Software Development Methodologies
Agile Development.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Process Models.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Chapter 3 – Agile Software Development Lecture 1 1Chapter 3 Agile software development.
Agile Process: Overview n Agile software engineering represents a reasonable compromise to conventional software engineering for certain classes of software.
An Agile View of Process
Software engineering Process models Pavel Agejkin.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Extreme Programming.
S/W Project Management Software Process Models. Objectives To understand  Software process and process models, including the main characteristics of.
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
Dr. Tom WayCSC Software Processes CSC 4700 Software Engineering.
Agile Programming Principles.
Developed by Reneta Barneva, SUNY Fredonia Agile Development.
Chapter 4 Agile Development
Chapter 5 Agile Development Chapter 5 Agile Development Moonzoo Kim KAIST 1.
Chapter 4 Agile Development 1. The Manifesto for Agile Software Development 2 “We are uncovering better ways of developing software by doing it and helping.
Figures – Chapter 3. Figure 3.1 The principles of agile methods PrincipleDescription Customer involvementCustomers should be closely involved throughout.
Software Processes.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 1 Software Processes (Chapter 3)
Chapter 5 애자일 개발 Agile Development
Extreme/Agile Programming Prabhaker Mateti. ACK These slides are collected from many authors along with a few of mine. Many thanks to all these authors.
Software Life Cycle Models. Waterfall Model  The Waterfall Model is the earliest method of structured system development.  The original waterfall model.
Rapid software development 1. Topics covered Agile methods Extreme programming Rapid application development Software prototyping 2.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Software Engineering Saeed Akhtar The University of Lahore Lecture 5 Originally shared for: mashhoood.webs.com.
Chapter 2 Software processes. Topics covered Software process models Process activities Coping with change.
An Introduction to Software Engineering
CS 3610: Software Engineering – Fall 2009 Dr. Hisham Haddad – CSIS Dept. Chapter 4 Agile Development Discussion of Agile Development and Agile Process.
Chapter 3 Agile Development
Traditional Process Models A quick overview. 2 Waterfall Model (Diagram) Communication Project initiation Requirements gathering Planning Estimating Scheduling.
Software Engineering (CSI 321) An Agile View of Process 1.
 Dr. Syed Noman Hasany.  Review of known methodologies  Analysis of software requirements  Real-time software  Software cost, quality, testing and.
Requirements Engineering Requirements Engineering in Agile Methods Lecture-28.
Lecture 3 – Agile Approach
Chapter 3 Agile Development
CS223: Software Engineering Lecture 18: The XP. Recap Introduction to Agile Methodology Customer centric approach Issues of Agile methodology Where to.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Introduction to Software Engineering Muhammad Nasir Agile Software Development(2)
Agile Software Development 1. Topics covered Agile methods Plan-driven and agile development Extreme programming 2.
TIK 302 Rekayasa Perangkat Lunak Agile Proses. Agile View of Process Represents a reasonable compromise between conventional software engineering for.
1 Chapter 2 SW Process Models. 2 Objectives  Understand various process models  Understand the pros and cons of each model  Evaluate the applicability.
Industrial Software Development Process Bashar Ahmad RISC Software GmbH.
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
Project Management Software development models & methodologies
Chapter 3 Agile software development 1 Chapter 3 – Agile Software Development.
AGILE METHODS Curtis Cook CS 569 Spring 2003.
Embedded Systems Software Engineering
Chapter 5 Agile Development Moonzoo Kim KAIST
Introduction to Agile Software Development
The Software Process (2)
Software & Software Engineering Pertemuan-4 Dosen :Kundang K Juman
Software Engineering The Software Process.
Chapter 5 Agile Development
Software Engineering (CSI 321)
Software Engineering The Software Process.
Agile Process: Overview
The Manifesto for Agile Software Development
Chapter 3 Agile Development
Agile Development.
Presentation transcript:

Software Engineering The Software Process (2)

2 The Waterfall Model Requirements Definition System and Software design Programming and Unit Testing Integration and System Testing Operation and Maintenance

3 Discussion of the Waterfall Model Advantages:  Process visibility  Dependence on individuals  Quality control  Cost control

4 The Classical Software Lifecycle The classical software lifecycle models the software development as a step-by-step “waterfall” between the various development phases. The waterfall model is unrealistic for many reasons: requirements must be frozen too early in the life-cycle requirements are validated too late Design Implementation Testing Maintenance Analysis Requirements Collection

5 Incremental development

6 Evolutionary Process Model

7 7 Evolutionary DesignCodingTestDeploymentRequirementsDesignCodingTestDeploymentRequirementsDesignCodingTestDeploymentRequirements Feedback Version 1 Version 2 Version 3 New versions implement new and evolving requirements (Some call it iterative)

8

9 Background on software process models 9  1950 : Code-and-fix model  1956 : Stagewise model (Bengington )  1970 : Waterfall model (Royce)  1971 : Incremental model(Mills)  1977 : Prototyping model(Bally and others)  1988 : Spiral model(Boehm)

10 Spiral development  Process is represented as a spiral rather than as a sequence of activities with backtracking.  Each loop in the spiral represents a phase in the process.  No fixed phases such as specification or design - loops in the spiral are chosen depending on what is required.  Risks are explicitly assessed and resolved throughout the process.

11 Spiral Model material adapted from Steve Easterbrook Determine goals, alternatives, constraints Evaluate alternatives and risks Plan Develop and test budget 1 budget 2 budget 3 budget 4 prototype 1 prototype 2 prototype 3 prototype 4 alternatives 4 alternatives 3 Altern- atives 2 constraints 4 constraints 3 Constr- aints 2 alternatives constraints risk analysis 4 risk analysis 3 risk analysis 2 risk analysis 1 concept of operation software requirements validated requirements software design validated, verified design detailed design code unit test system test acceptance test requirements, lifecycle plan development plan integration and test plan implementation plan

12 Details of the Spiral

13 Boehm’s Spiral Lifecycle evolving system initial requirements first prototype alpha demo go, no-go decision completion Planning = determination of objectives, alternatives and constraints Risk Analysis = Analysis of alternatives and identification/ resolution of risks Customer Evaluation = Assessment of the results of engineering Engineering = Development of the next level product Risk = something that will delay project or increase its cost

14 Spiral model sectors  Objective setting  Specific objectives for the phase are identified.  Risk assessment and reduction  Risks are assessed and activities put in place to reduce the key risks.  Development and validation  A development model for the system is chosen which can be any of the generic models.  Planning  The project is reviewed and the next phase of the spiral is planned.

15 The spiral model 15 The Risk Management Plan  Identify the project’s top 10 risk items.  Present a plan for resolving each risk item.  Update list of top risk items, plan, and results monthly.  Highlight risk-item status in monthly project reviews. Compare with previous month’s rankings, status.  Initiate appropriate corrective actions.

16 Spiral Model Advantages  Focuses attention on reuse options.  Focuses attention on early error elimination.  Puts quality objectives up front.  Integrates development and maintenance.  Provides a framework for hardware/software development.

17 Prototyping Model material adapted from Steve Easterbrook  Prototyping is used for:  Understanding the requirements for the user interface  Examining feasibility of a proposed design approach  Exploring system performance issues  Problems  Users treat the prototype as the solution  A prototype is only a partial specification

18 V Model material adapted from Steve Easterbrook system requirements software requirements preliminary design detailed design code and debug unit test component test software integration acceptance test system integration “analyze and design” “test and integrate” time Level of abstraction

19 V Model  V- model means Verification and Validation model.  Just like the waterfall model, the V-Shaped life cycle is a sequential path of execution of processes.  Each phase must be completed before the next phase begins.  Testing of the product is planned in parallel with a corresponding phase of development.

20

21 V Model  Requirements begin the life cycle model just like the waterfall model.  But, in this model before development is started, a system test plan is created.  The test plan focuses on meeting the functionality specified in the requirements gathering.

22 Agile Model (XP) material adapted from Steve Easterbrook Planning game Collect User stories Write test cases code integrate test Release Each cycle: approx 2 weeks

23

24 Agile Software Development  Agile software development is a group of software development methods based on iterative and incremental development, where requirements and solutions evolve through collaboration between self- organizing, cross-functional teams.  Methods  Iterative  incremental

25 Agile Software Development  It promotes adaptive planning, evolutionary development and delivery, a time- boxed iterative approach, and encourages rapid and flexible response to change.  It is a conceptual framework that promotes foreseen interactions throughout the development cycle.

26 What is Agility?  Effective response to change  Effective communication among all stakeholders  Drawing the customer onto the team; eliminate the “us and them” attitude  Organizing a team so that it is in control of the work performed  Rapid, incremental delivery of software

27 Agile Software Process  Agile process must be adaptable  It must adapt incrementally  Requires customer feedback  An effective catalyst for customer feedback is an operational prototype

28 Agile Model Driven Development (AMDD)

29 Iterative and Incremental Development Iterative and Incremental development is at the heart of a cyclic software development process developed in response to the weaknesses of the waterfall model. It starts with an initial planning and ends with deployment with the cyclic interactions in between.

30 The principles of agile methods PrincipleDescription Customer involvementCustomers should be closely involved throughout the development process. Their role is provide and prioritize new system requirements and to evaluate the iterations of the system. Incremental deliveryThe software is developed in increments with the customer specifying the requirements to be included in each increment. People not processThe skills of the development team should be recognized and exploited. Team members should be left to develop their own ways of working without prescriptive processes. Embrace changeExpect the system requirements to change and so design the system to accommodate these changes. Maintain simplicityFocus on simplicity in both the software being developed and in the development process. Wherever possible, actively work to eliminate complexity from the system.

31 Principles to achieve agility 1.Highest priority -> satisfy the customer 2.Welcome changing requirements 3.Deliver working software frequently 4.Business people and developers must work together 5.Build projects around motivated individuals 6.Emphasize face-to-face conversation1

32 Principles to achieve agility 7.Working software is the primary measure of progress 8.Agile processes promote sustainable development 9.Continuous attention to technical excellence and good design enhances agility 10.Simplicity – the art of maximizing the amount of work not done – is essential 11.The best designs emerge from self-organizing teams 12.The team tunes and adjusts its behavior to become more effective

33 Plan-driven and agile specification

34 How AM Practices Fit Together

35 Agile Process Models  Extreme Programming (XP)  Adaptive Software Development (ASD)  Dynamic Systems Development Method (DSDM)  Scrum  Crystal  Feature Driven Development (FDD)  Agile Modeling (AM)

36 Extreme programming  Perhaps the best-known and most widely used agile method.  Extreme Programming (XP) takes an ‘extreme’ approach to iterative development.  New versions may be built several times per day;  Increments are delivered to customers every 2 weeks;  All tests must be run for every build and the build is only accepted if tests run successfully.

37 Extreme Programming (XP)  XP uses an object-oriented approach as its preferred development paradigm  Defines four (4) framework activities  Planning  Design  Coding  Testing

38 Extreme Programming (XP) - 2 planning design coding test refactoring user stories values acceptance test criteria iteration plan simple design CRC cards spike solutions prototypes pair programming unit test continuous integration acceptance testing software increment project velocity computed Release

39 XP - Planning  Begins with the creation of a set of stories (also called user stories)  Each story is placed on an index card  The customer assigns a value (i.e. a priority) to the story  Agile team assesses each story and assigns a cost  Stories are grouped to for a deliverable increment  A commitment is made on delivery date  After the first increment “project velocity” is used to help define subsequent delivery dates for other increments

40 Testing in XP Testing is central to XP and XP has developed an approach where the program is tested after every change has been made. XP testing features: – Test-first development. – Incremental test development from scenarios. – User involvement in test development and validation. – Automated test harnesses are used to run all component tests each time that a new release is built.

41 XP - Testing  Unit tests should be implemented using a framework to make testing automated. This encourages a regression testing strategy.  Integration and validation testing can occur on a daily basis  Acceptance tests, also called customer tests, are specified by the customer and executed to assess customer visible functionality  Acceptance tests are derived from user stories

42 Test-first development  Writing tests before code clarifies the requirements to be implemented.  Tests are written as programs rather than data so that they can be executed automatically. The test includes a check that it has executed correctly.  Usually relies on a testing framework such as Junit.  All previous and new tests are run automatically when new functionality is added, thus checking that the new functionality has not introduced errors.

43 Tests as Primary Artifacts Reduce Documentation by Single Sourcing Information  Acceptance tests are considered to be primary requirements artifacts  You can reduce your requirements documentation dramatically by not recording the same information twice  Unit tests are considered to be detailed design artifacts  You can reduce your design documentation dramatically and increase the chance that your detailed design artifacts are kept up to date by coders

44

45

46

47

48

49 Reuse-oriented software engineering  Based on systematic reuse where systems are integrated from existing components or COTS (Commercial-off-the-shelf) systems.  Process stages  Component analysis;  Requirements modification;  System design with reuse;  Development and integration.  Reuse is now the standard approach for building many types of business system

50 Types of software component  Web services that are developed according to service standards and which are available for remote invocation.  Collections of objects that are developed as a package to be integrated with a component framework such as.NET or J2EE.  Stand-alone software systems (COTS) that are configured for use in a particular environment.

51 Bank example  Requirements  Open an account for a customer (savings or chequing)  Deposit ƒ  Withdraw ƒ  Display details of an account ƒ  Change LOC ƒ  Produce monthly statements ƒ  Print a list of customers  Ambiguities  What is the difference between savings and chequing?

52 Case study Children hospital  Care for children in the Alexandria city and some Arab countries  The average length of stay of inpatients is 3.6 days  All patients are accompanied by a parent for the entire duration of their stay at hospital

53 Case Study: Sensor Display  Consider a small system that displays the status of several sensors (e.g., pressure, temperature, rate of change, etc.) on a limited-size screen  What are some of its functional requirements?  What are some of its non-functional requirements?

54 ATM system