Advanced Software Engineering Lecture 2: The Software Process.

Slides:



Advertisements
Similar presentations
Lecture # 2 : Process Models
Advertisements

CS487 Software Engineering Omar Aldawud
CSE 470 : Software Engineering The Software Process.
Chapter 3 Process Models
Software Engineering Process
1 Prescriptive Process Models. 2 Prescriptive Models Prescriptive process models advocate an orderly approach to software engineering Prescriptive process.
Sharif University of Technology Session # 3.  Contents  Systems Analysis and Design Sharif University of Technology MIS (Management Information System),
Chapter 2 The Software Process
2.1/65 The Software Process. 2.2/65 Overview Location Commentary, Terminology, “Documentation” and “Testing” Phases, The Classical Development Phases,
Slide 2.1 ©Center for Research in Electronic Commerce, Xiamen University, 2004 Object-Oriented and Classical Software Engineering Fifth Edition, McGraw-Hill,
R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering1 Advanced Software Engineering Dr. Cheng Overview of Software Engineering.
Slide 2.1 © The McGraw-Hill Companies, 2002 Object-Oriented and Classical Software Engineering Fifth Edition, WCB/McGraw-Hill, 2002 Stephen R. Schach
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 LECTURE-3 CSE-477.
Fundamentals of Information Systems, Second Edition
Software Process CS 414 – Software Engineering I Donald J. Bagert Rose-Hulman Institute of Technology December 17, 2002.
Developed by Reneta Barneva, SUNY Fredonia The Process.
Chapter : Software Process
Process: A Generic View n A software process  is a roadmap to building high quality software products.  provides a framework for managing activities.
1 Software Engineering Muhammad Fahad Khan Software Engineering Muhammad Fahad Khan University Of Engineering.
1COM6030 Systems Analysis and Design © University of Sheffield 2005 COM 6030 Software Analysis and Design Lecture 2- Software Process Models and Project.
S/W Project Management Software Process Models. Objectives To understand  Software process and process models, including the main characteristics of.
Software Engineering II Lecture 1 Fakhar Lodhi. Software Engineering - IEEE 1.The application of a systematic, disciplined, quantifiable approach to the.
Chapter 2 The process Process, Methods, and Tools
Chapter 2 The Process.
Software Process and Models
Dillon: CSE470: SE, Process1 Software Engineering Phases l Definition: What? l Development: How? l Maintenance: Managing change l Umbrella Activities:
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.
PART ONE The Product and the Process Chapter 2 The Process  Software Engineering: A Layered Technology a “quality” focus process model methods tools.
SQA System Overview Chapter 4. Where we have been so far, Where we are going Where do software errors come from? What is quality? How can quality be measured?
Chapter 2 Process: A Generic View
Capability Maturity Models Software Engineering Institute (supported by DoD) The problems of software development are mainly caused by poor process management.
Software Life-Cycle Models Somnuk Keretho, Assistant Professor Department of Computer Engineering Faculty of Engineering, Kasetsart University
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Software Processes n What is a process?  Sequence of steps required to develop or maintain software n Characteristics  prescribes major activities 
Software Engineering Principles Principles form the basis of methods, techniques, methodologies and tools Principles form the basis of methods, techniques,
CS 3610: Software Engineering – Fall 2009 Dr. Hisham Haddad – CSIS Dept. Chapter 2 The Software Process Discussion of the Software Process: Process Framework,
Software Development Cycle What is Software? Instructions (computer programs) that when executed provide desired function and performance Data structures.
Software Engineering Spring (C) Vasudeva VarmaClass of 32 CS3600: Software Engineering: Process and Product* *Most of the Content drawn.
The Systems Development Life Cycle
1/23 Prescriptive Process Models. 2/23 Prescriptive Models Prescriptive process models advocate an orderly approach to software engineering Prescriptive.
Slide 2.1 CHAPTER 2 THE SOFTWARE PROCESS. Slide 2.2 Overview l Client, Developer, and User l Requirements Phase l Specification Phase l Design Phase l.
Historical Aspects Origin of software engineering –NATO study group coined the term in 1967 Software crisis –Low quality, schedule delay, and cost overrun.
Software Process Model
Process: A Generic View
Cmpe 589 Spring 2006 Lecture 2. Software Engineering Definition –A strategy for producing high quality software.
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 Software Engineering: A Practitioner’s Approach, 7/e Chapter 2 Process: A Generic View Software Engineering: A Practitioner’s Approach, 7/e Chapter 2.
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 Lecture # 1.
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.
Object-Oriented and Classical Software Engineering Seventh Edition, WCB/McGraw-Hill, 2007 Stephen R. Schach
Software Engineering (CSI 321) Software Process: A Generic View 1.
CS3320-Chap21 Office Hours TR 1:00-2:15 PM W 2:30-3:30 PM By appointment.
1 SYS366 Week 1 - Lecture 1 Introduction to Systems.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
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.
Chapter 2: The Process. What is Process? Software Engineering Process is the glue that holds the technology layers together and enables rational and timely.
Advanced Software Engineering Dr. Cheng
Software Life Cycle “What happens in the ‘life’ of software”
Rapid Application Development Model
Level 1 Level 1 – Initial: The software process is characterized as ad hoc and occasionally even chaotic. Few processes are defined, and success depends.
Chapter 2 The Process.
THE SOFTWARE PROCESS (revisited)
Chapter 2 The Process.
Software Engineering I
Presentation transcript:

Advanced Software Engineering Lecture 2: The Software Process

Today’s Topics l The role of process in SE l Typical process elements l Evolution of processes (CMM) l Specific life-cycle models l Associated Reading: Chapter 4 in SEPA 5/e

Fundamental Questions l What is the problem to be solved? l What are the characteristics of a possible solution? l How will the solution be designed? l How will the solution be built? l How will we test the design and implementation? l How will we maintain over time?

3 Conceptual Phases l Definition What is to be constructed? l Development How shall we construct it? l Support How will we maintain it over time?

Who are the Players? l Roles Client: person(s) requesting the SW Developer: person(s) building the SW User: person(s) using the SW l User and client may be different! l Internal SW development vs. contract SW development

Typical Activities (Phases) l Requirements Elicitation (Phase) l Specification Phase l Design Phase l Implementation Phase l Integration Phase l Maintenance Phase l Retirement Phase

Requirements Elicitation (Phase) l What’s the problem? l What are the constraints? Cost, deadlines, performance, platform, … l Elicitation of requirements l Successive refinement Technical feasibility Financial justification

Requirements [2] l Challenges: “I know this is what I asked for, but it’s not what I needed” Software is complex The customer doesn’t understand the problem well l Possible Solution: rapid prototyping

Specification Phase l Specification Document Explicit description of functionality Explicit list of constraints List of inputs and outputs l Specification is a Contract Includes acceptance criteria Should be written as precisely as possible!

Specification Phase [2] l Challenges Ambiguous: a specification has more than one interpretation Incomplete: an important specification is omitted Contradictory: two statements about the same situation which don’t agree l Possible Solution: formal specification review

Design Phase l Specification=“what” to build l Design=“how” to build it l Data flow l Modular decomposition l Algorithms and data structures l Two components: Architectural Design (global level) Detailed Design (module level)

Design Phase [2] l Challenges: Generality vs. Complexity Planning for future enhancements Design for reusability, maintainability l Approach: Be explicit about your goals Conduct formal design reviews

Implementation Phase l Coding up the data structures, algorithms, and modules l Commenting the code l Separate written documentation l Testing document, test cases l Unit (module) Testing l Evaluation: formal code walk-throughs

Integration Phase l Combine all the modules l Realistic operational tests l Methods Bottom-up integration Top-down integration l Challenges Both methods have drawbacks Best to integrate while implementing

Integration Phase [2] l Product Testing Developer vs. SQA group Installation testing Documentation testing Performance testing Robustness testing l Acceptance Testing Client tests specified functionality

Maintenance Phase l Activities Correction Adaptation Enhancement Prevention l Integration Regression testing

Retirement Phase l Good software is maintained l Sometimes software is rewritten from scratch Software is now unmaintainable because A drastic change in design has occurred The product must be implemented on a totally new hardware/operating system Documentation is missing or inaccurate Hardware is to be changed—it may be cheaper to rewrite the software from scratch than to modify it l True retirement is a rare event

Process-Specific Difficulties l Does the product meets the user’s real needs? l Is the specification document free of ambiguities, contradictions, and omissions?

Umbrella Activities l Project tracking, formal reviews l Formal technical reviews l Quality assurance l Configuration management l Documentation preparation and production l Reusability management l Measurement / testing l Risk management

Common process framework l Tasks l Milestones, deliverables l SQA points

Process Evolution l How can we measure the effectiveness of our SE processes? l Reflective practice involves a cycle of measurement, analysis, and adjustment (“learning from experience”) l Capability Maturity Model (CMM)

Improving the Software Process l U.S. Department of Defense initiative l Software Engineering Institute (SEI) l The fundamental problem with software The software process is badly managed

Improving the Software Process (contd) l Software process improvement initiatives Capability maturity model (CMM) ISO 9000-series ISO/IEC 15504

Capability Maturity Model l Not a life-cycle model l A set of strategies for improving the software process SW–CMM for software P–CMM for human resources (“people”) SE–CMM for systems engineering IPD–CMM for integrated product development SA–for software acquisition l These strategies are being unified into CMMI (capability maturity model integration)

SW–CMM l A strategy for improving the software process l Put forward in 1986 by the SEI l Fundamental ideas: Improving the software process leads to Improved software quality Delivery on time, within budget Improved management leads to Improved techniques l Five levels of “maturity” are defined l Organization advances stepwise from level to level

Level 1. Initial Level l Ad hoc approach Entire process is unpredictable Management consists of responses to crises l Most organizations world-wide are at level 1

Level 2. Repeatable Level l Basic software management Management decisions should be made on the basis of previous experience with similar products Measurements (“metrics”) are made These can be used for making cost and duration predictions in the next project Problems are identified, immediate corrective action is taken

Level 3. Defined Level l The software process is fully documented Managerial and technical aspects are clearly defined Continual efforts are made to improve quality, productivity Reviews are performed to improve software quality CASE tools are applicable now (and not at levels 1 or 2)

Level 4. Managed Level l Quality and productivity goals are set for each project Quality, productivity are continually monitored Statistical quality controls are in place

Level 5. Optimizing Level l Continuous process improvement Statistical quality and process controls Feedback of knowledge from each project to the next

Summary

Key Process Areas l There are key process areas (KPAs) for each level l Level 2 KPAs include: Requirements management Project planning Project tracking Configuration management Quality assurance l Compare Level 2: Detection and correction of faults Level 5: Prevention of faults

Experience l It takes: 3 to 5 years to get from level 1 to level to 3 years from level 2 to level 3 SEI questionnaires highlight shortcomings, suggest ways to improve the process l Original idea: Defense contracts would be awarded only to capable firms

Experience (contd) l Profitability Hughes Aircraft (Fullerton, CA) spent $500K (1987–90) Savings: $2M per year, moving from level 2 to level 3 Raytheon moved from level 1 in 1988 to level 3 in 1993 Productivity doubled Return of $7.70 per dollar invested in process improvement

Other SPI Initiatives l Other software process improvement (SPI) initiatives: ISO 9000-series ISO/IEC 15504

ISO 9000 l Set of five standards for industrial activities ISO 9001 for quality systems ISO , guidelines to apply ISO 9001 to software There is an overlap with CMM, but they are not identical Not process improvement Stress on documenting the process Emphasis on measurement and metrics ISO 9000 is required to do business with the E.U. Also by many U.S. businesses, for example, GE More and more U.S. businesses are ISO 9000 certified

ISO/IEC l Original name: Software Process Improvement Capability dEtermination (SPICE) International process improvement initiative Started by British Ministry of Defence (MOD) Includes process improvement, software procurement Extends and improves CMM, ISO 9000 Framework, not a method CMM, ISO 9000 conform to this framework Now referred to as ISO/IEC Or just for short

Process Improvement Data l SEI report on 13 organizations in the original study l They used a variety of process improvement techniques, not just SW–CMM

Process Improvement Data (contd) l Results of 34 Motorola projects

Software Process Models l Strategies encompassing process, methods, tools and generic steps l Choice based on nature of the application l Cycle: from status quo, to new problem definition, to new technical development, to solution integration (Figure 2.3a, SEPA 5/e)

The Basic Process Loop [from SEPA 5/e]

l Steps: System engineering Requirements analysis Design Code generation Testing Maintenance Linear Sequential Model

[From SEPA 5/e]

Linear Sequential Model l Challenges: Real projects rarely follow sequential flow (changes cause confusion) Difficult for customer to state requirements explicitly Customer must have patience Developers sometimes delayed unnecessarily (‘blocking states’)

Prototyping Model l Steps: Listen to customer Build prototype Customer “test drives” prototype l Challenges: “Throw-away” phenomenon Demos can set unrealistic expectations Compromises that solidify

Prototyping Model [From SEPA 5/e]

RAD Model l Rapid Application Development l Linear sequential, short cycle (60-90 days) l Steps: Business modeling Data modeling Process modeling Application generation Testing and turnover

Rapid Application Development (RAD) [From SEPA 5/e]

RAD Model l Challenges: For large projects, sufficient resources are needed for rapid cycle Strong commitment from developers and customers Presupposes modular solution Reusability sometimes implies loss of performance

The Incremental Model l Linear sequential, with iterative prototyping l “Core product” vs. incremental enhancements l Each increment operational l Useful when human/machine resources are limited

Incremental Model [From SEPA 5/e]

The Spiral Model l Iterative prototyping, with framework activities l For example: First circuit: specification Second circuit: prototype Third circuit: product release l Includes development and maintenance

Spiral Model [From SEPA 5/e]

The Spiral Model (2) l Challenges: Hard to show controllability (size and timing of each circuit) Risk assessment is fundamental Model fairly new (less experience)

WINWIN Spiral l A variation of the standard Spiral Model l Identify key “stakeholders” l Determine stakeholder win conditions l Reconcile win conditions into a set of win-win conditions for the whole project

WINWIN Spiral [From SEPA 5/e]

Component Assembly Model l Spiral Model, plus object-oriented reusability l Challenges: Reusability requires careful planning Most existing programs are not reusable More suitable for particular application domains (with significant patterns of reuse)

Component Assembly [From SEPA 5/e]

Concurrent Development l State charts for each activity l Events trigger state transitions l Useful for interorganizational development l Useful where there is a high degree of interdependence between different modules (e.g., client-server apps)

Concurrent Development Model [From SEPA 5/e]

Other Models l Formal Methods Rigorous mathematical (logical) specification of software Formal models are time-consuming Requires developer, customer skill l Fourth Generation Techniques High-level definition language E.g., UML -> Java code generation Benefits small/midsize projects most

Product and Process l Advances in one area trigger advances in another l “Pendulum” phenomenon l “The process should be as enjoyable as the product”

Questions?