CSC 480 Software Engineering Lecture 2 August 23, 2004.

Slides:



Advertisements
Similar presentations
Software Processes.
Advertisements

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Unit 2. Software Lifecycle
Lectures 2 & 3 Software Processes.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 المحاضرة الثانية.
Software Processes Modified by Randy K. Smith
Chap 2. Software Processes
What is software? Computer programs and associated documentation
1 Chapter 4 - Part 1 Software Processes. 2 Software Processes is: Coherent (logically connected) sets of activities for specifying, designing, implementing,
CSE 470 : Software Engineering The Software Process.
1 Chapter 2 Software Processes An overview of conventional software process models, Rational Unified Process, and CASE tools.
EE6421/ED5031Software Engineering Slide 1 Section # 2 (Read Sommerville Ch (3 or 4) and Pressman Ch 2) Software Processes.
COMP 474 Software Engineering Professor William L. Honig.
 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 Processes Overview
 © Ian Sommerville A software process model is an abstract representation of a process. It presents a description of a process from some particular perspective.
Software Engineering COMP 201 1COMP201 - Software Engineering Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP.
ISNE101 Dr. Ken Cosh. Recap  We’ve been talking about Software…  Application vs System Software  Programming Languages  Vs Natural Languages  Syntax,
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Software Engineering Process
Software Processes Coherent sets of activities for specifying, designing, implementing and testing software systems.
SYSC System Analysis and Design
Software Process Models
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 3Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 4 Slide 1 Software Process Models.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Process Models.
©Ian Sommerville 2000 Software Engineering, 6th edition Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Chapter 3 Software Processes.
1COM6030 Systems Analysis and Design © University of Sheffield 2005 COM 6030 Software Analysis and Design Lecture 2- Software Process Models and Project.
Lecture 2 Software Processes CSC301-Winter 2011 Hesam C. Esfahani
Software Processes Sumber dari : cc.ee.ntu.edu.tw/~farn/courses/SE/ch4.ppt.
Software Processes. Objectives To introduce software process models To describe three generic process models and when they may be used To describe outline.
Software Processes.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 1 Software Processes (Chapter 3)
Software Processes lecture 8. Topics covered Software process models Process iteration Process activities The Rational Unified Process Computer-aided.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 1 Software Processes l Coherent sets of activities for specifying, designing,
Lecture 3 Software Engineering Models (Cont.)
1 SWE Introduction to Software Engineering Lecture 4.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
CSc 461/561 Software Engineering Lecture 2 – Software Processes.
An Introduction to Software Engineering
4. Software Processes Software Engineering. Objectives To introduce software process models To describe three generic process models and when they may.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Chapter 13: Software Life Cycle Models Omar Meqdadi SE 273 Lecture 13 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
CSC 480 Software Engineering Lecture 2 August 26, 2002.
 Dr. Syed Noman Hasany.  Review of known methodologies  Analysis of software requirements  Real-time software  Software cost, quality, testing and.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
Software Engineering, 8th edition. Chapter 4 1 Courtesy: ©Ian Sommerville 2006 FEB 13 th, 2009 Lecture # 5 Software Processes.
Software Engineering Saeed Akhtar The University of Lahore Lecture 3 Originally shared for: mashhoood.webs.com.
1 Chapter 2 SW Process Models. 2 Objectives  Understand various process models  Understand the pros and cons of each model  Evaluate the applicability.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
1 SYS366 Week 2 - Lecture Visual Modeling and Process.
Laurea Triennale in Informatica – Corso di Ingegneria del Software I – A.A. 2006/2007 Andrea Polini II. Software Life Cycle.
Software engineering Software Processes.
Software Processes (a)
Chapter 2 SW Process Models
Software Processes.
Chapter 2 Software Processes
Chapter 2 – Software Processes
An Overview of Software Processes
Software Processes.
Presentation transcript:

CSC 480 Software Engineering Lecture 2 August 23, 2004

CSC 480 Software Engieering2 8/26/2002 Topics Overview Process models Iterative models

CSC 480 Software Engieering3 8/26/2002 Process A software process is a set of activities that leads to the production of a software system.  It consists of partially ordered steps to achieve a goal In software engineering, your goal is to  Efficiently and predictably deliver a software product that meets the need of your business  What are the steps?  In what order? There is not one single answer to all cases

CSC 480 Software Engieering4 8/26/2002 Some Application Types Stand-alone  residing on a single computer  e.g., word processor Distributed  consist of parts interacting across a network  e.g., Web-based video game Embedded  part of unique application involving hardware  e.g., automobile controller Real-time  functions must execute within small time limit (typically micro- sec)  e.g., radar software

CSC 480 Software Engieering5 8/26/2002 Trends & Influences Structured programming Object-Orientation Reuse and components Formal methods

CSC 480 Software Engieering6 8/26/2002 Structured Programming  Use control constructs, avoid using goto  A hierarchy of functions, with those in higher levels calling those at lower levels  Modules tend to couple with each other, making change difficult

CSC 480 Software Engieering7 8/26/2002 Illustration – Structured Programming

CSC 480 Software Engieering8 8/26/2002 Object-Orientation  Encapsulate data and functionality in objects  Mapping to real-world entities Both congregation and inheritance hierarchies  Easier to modify and add components

CSC 480 Software Engieering9 8/26/2002 Illustration – Object Orientation

CSC 480 Software Engieering10 8/26/2002 Class & Object Hierarchies

CSC 480 Software Engieering11 8/26/2002 Reuse & Components  Reuse can reduce cost and improve quality  Reuse at component level is more effective COM JavaBeans  Example – a JClass chart by sitraka.com

CSC 480 Software Engieering12 8/26/2002 Formal Methods  SE methods that rely on mathematics as their base are called formal methods. The logical, not the computational aspects are used  Requirements and design can be express more precisely Domain element A Range element A(x) t, t´ : N N dom(t´) = dom(t)  rng(t´) = rng(t)   x, y  dom(t), x  y  t´(x)  t´(y)   x  rng(t´), card[ t´ -1 (x) ] = card[ t -1 (x) ] Sort Partial function Range of t Number of elements in the set... Set of elements mapped onto x by t “implies”

CSC 480 Software Engieering13 8/26/2002 A Typical S.E. Roadmap 1. Understand nature & scope of proposed product 2. Select the development process, and create a plan 4. Design and build the product 6. Deliver and maintain the product 3. Gather requirements 5. Test the product Activities commonly found in all projects

CSC 480 Software Engieering14 8/26/2002 Five Key Expectations (Humphrey) Influenced by people Used for process development Part of the project Aspect of the product 3. Keep all work visible 5. Measure quality 4. A. Design only against requirements B. Program only against designs C. Test only against requirements and designs 1. Predetermine quantitative quality goals 2. Accumulate data for subsequent use

CSC 480 Software Engieering15 8/26/2002 Software Process Models A software process model is an abstract representation of a process. It presents a description of a process from some particular perspective

CSC 480 Software Engieering16 8/26/2002 Process Models  The waterfall model Separate and distinct phases of specification and development  Evolutionary development Specification and development are interleaved  Formal systems development A mathematical system model is formally transformed to an implementation  Reuse-based development The system is assembled from existing components

CSC 480 Software Engieering17 8/26/2002 The Waterfall Model Requirements analysis Design Implementation Integration & Test Produces … specification... diagrams & text... code & comments... test report for entire code Operation & Maintenance... user manual & enhancements

CSC 480 Software Engieering18 8/26/2002 Waterfall Model Problems Inflexible partitioning of the project into distinct stages This makes it difficult to respond to changing customer requirements Therefore, this model is only appropriate when the requirements are well-understood The customer cannot see how the system works until the end of the project

CSC 480 Software Engieering19 8/26/2002 Process Iteration (iterative models) System requirements ALWAYS evolve in the course of a project so process iteration where earlier stages are reworked is always part of the process for large systems Iteration can be applied to any of the generic process models

CSC 480 Software Engieering20 8/26/2002 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

CSC 480 Software Engieering21 8/26/2002 The Spiral Model

CSC 480 Software Engieering22 8/26/2002 Incremental Development Rather than deliver the system as a single delivery, the development and delivery is broken down into increments with each increment delivering part of the required functionality  User requirements are prioritised and the highest priority requirements are included in early increments  Once the development of an increment is started, the requirements are frozen though requirements for later increments can continue to evolve

CSC 480 Software Engieering23 8/26/2002 Incremental Development

CSC 480 Software Engieering24 8/26/2002 Iteration No. Analyze requirements Test whole Implement Design Test units Integrate Update SRS 3 Update SDS 2 Update source code Update Test documentation Update SPMP 1 1 Software Project Management Plan; 2 Software Design Specification; 3 Software Requirements Specification

CSC 480 Software Engieering25 8/26/2002 Incremental Development Advantages  Customer value can be delivered with each increment so system functionality is available earlier  Early increments act as a prototype to help elicit requirements for later increments  Lower risk of overall project failure  The highest priority system services tend to receive the most testing

CSC 480 Software Engieering26 8/26/2002 USDP : Classification of Iterations Inception iterations: preliminary interaction with stakeholders  primarily customer  users  financial backers etc. Elaboration iterations : finalization of what’s wanted and needed; set architecture baseline Construction iterations : results in initial operational capability Transition iterations : completes product release Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

CSC 480 Software Engieering27 8/26/2002 ElaborationInceptionConstructionTransition Requirements Analysis Iter. #1 Iter. #n Iter. #n+1 Iter. #m Iter. #m+1 Iter. #k ….. ….. Prelim. iterations USDP vs. Standard Terminology ½ (Booch, Jacobson & Rumbaugh) Design Implemen- tation Test USDP calls these “core workflows” (Classically called “phases”) Classification of iterations Individual iteration

CSC 480 Software Engieering28 8/26/2002 Requirements Analysis USDP vs. Standard Terminology 2 of 2 Design Implementation Test Requirements analysis Implementation USDP Terminology Classical Terminology Integration Design Test Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

CSC 480 Software Engieering29 8/26/2002 Elaboration Unified Process Matrix InceptionConstructionTransition Requirements Analysis Jacobson et al: USDP Prelim. iterations Iter. #1 Iter. #n Iter. #n+1 Iter. #m Iter. #m+1 Iter. #k ….. Design Implemen- tation Test.. Amount of effort expended on the requirements phase during the first Construction iteration

CSC 480 Software Engieering30 8/26/2002 The Six USDP Models (Views of the Application) Use-case model Analysis model Design model Deployment model Implementation model Test model Graphics reproduced with permission from Corel.

CSC 480 Software Engieering31 8/26/2002 Identify the Process You Will Use 1. Decide which of waterfall, spiral, and incremental processes is appropriate. Usually a spiral for a semester project. Combining parts is OK e.g. start with spiral, end with incremental 2. Decide how many iterations. Usually two for a semester project (there are many artifacts to coordinate at the end of each iteration). Three provides lots of practice -- but this is a challenge; make the first increment as minor as possible Three promotes the collection and use of metric data -- use metric data collected from each iteration on next. 3. Rough out a weekly schedule. Coordinate with course assignments. (The next chapter discusses scheduling.) Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

CSC 480 Software Engieering32 8/26/2002 Extreme Programming New approach to development based on the development and delivery of very small increments of functionality Relies on constant code improvement, user involvement in the development team and pairwise programming Visit for detailswww.extremeprogramming.org

CSC 480 Software Engieering33 8/26/2002 Process Trade-offs FactorPure Waterfall Iterative Spiral Iterative Incremental Ease of doc control EasierHarderHarder/ Medium Enabling of customer interaction HarderEasier Promotion of good design Medium/ Easier Harder Leverage of metric data HarderMedium/ Easier Medium/ Easier

CSC 480 Software Engieering34 8/26/2002 Additional Info

CSC 480 Software Engieering35 8/26/2002 More Detailed Waterfall Version Design Implementation & unit testing Integration System testing Concept analysis Analysis Maintenance

CSC 480 Software Engieering36 8/26/2002 Evolutionary Development Exploratory development  Objective is to work with customers and to evolve a final system from an initial outline specification. Should start with well-understood requirements Throw-away prototyping  Objective is to understand the system requirements. Should start with poorly understood requirements

CSC 480 Software Engieering37 8/26/2002 Evolutionary Development

CSC 480 Software Engieering38 8/26/2002 Evolutionary Development Problems  Lack of process visibility  Systems are often poorly structured  Special skills (e.g. in languages for rapid prototyping) may be required Applicability  For small-/medium-size interactive systems  For parts of large systems (e.g. the UI)  For short-lifetime systems

CSC 480 Software Engieering39 8/26/2002 Formal Systems Development Based on the transformation of a mathematical specification through different representations to an program Transformations are ‘correctness-preserving’ so it is straightforward to show that a program conforms to its specification Embodied in the ‘Cleanroom’ approach to software development

CSC 480 Software Engieering40 8/26/2002 Formal Systems Development

CSC 480 Software Engieering41 8/26/2002 Formal Transformations

CSC 480 Software Engieering42 8/26/2002 Formal Systems Development Problems  Need for specialised skills and training to apply the technique  Difficult to formally specify some aspects of the system such as the user interface Applicability  Critical systems especially those where a safety or security case must be made before the system is put into operation

CSC 480 Software Engieering43 8/26/2002 Reuse-Oriented Development Based on systematic reuse where systems are integrated from existing components or COTS (Commercial-off-the-shelf) systems This approach is becoming more important but still limited experience with it

CSC 480 Software Engieering44 8/26/2002 Reuse-Oriented Development Process stages  Component analysis  Requirements modification  System design with reuse  Development and integration

CSC 480 Software Engieering45 8/26/2002 The Spiral Model

CSC 480 Software Engieering46 8/26/2002 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 is chosen Planning  The project is reviewed and the next phase of the spiral is planned