Software Production and Lifecycle Models



Similar documents
How To Write Software

Software Processes. The software process. Generic software process models. Waterfall model. Waterfall model phases

Modelli di sviluppo software. Enrico Giunchiglia

Software Processes. Coherent sets of activities for specifying, designing, implementing and testing software systems

Software Engineering. Software Development Process Models. Lecturer: Giuseppe Santucci

Modellistica Medica. Maria Grazia Pia, INFN Genova. Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico

Software Engineering. Software Processes. Based on Software Engineering, 7 th Edition by Ian Sommerville

SE464/CS446/ECE452 Software Life-Cycle and Process Models. Instructor: Krzysztof Czarnecki

CS 389 Software Engineering. Lecture 2 Chapter 2 Software Processes. Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed.

Chapter 2 Software Processes

Software Life Cycle Processes

IV. Software Lifecycles

Software Engineering. Objectives. Designing, building and maintaining large software systems

Lecture 3 Software Development Processes

Advanced Software Engineering. Software Development Processes

To introduce software process models To describe three generic process models and when they may be used

The Software Process. The Unified Process (Cont.) The Unified Process (Cont.)

Software Engineering: Analysis and Design - CSE3308

Objectives. The software process. Basic software process Models. Waterfall model. Software Processes

(Refer Slide Time: 01:52)

Software Process and Models

Software Development Life Cycle (SDLC)

SOFTWARE QUALITY & SYSTEMS ENGINEERING PROGRAM. Quality Assurance Checklist

Software Development Process

Software Engineering. Software Engineering. Software Costs

SOFTWARE ENGINEERING IT 0301 Semester V B.Nithya,G.Lakshmi Priya Asst Professor SRM University, Kattankulathur

IT3203 Fundamentals of Software Engineering (Compulsory) BIT 2 nd YEAR SEMESTER 3

What do you think? Definitions of Quality

Dependable (Safe/Reliable) Systems. ARO Reliability Workshop Software Intensive Systems

Software Engineering/Courses Description Introduction to Software Engineering Credit Hours: 3 Prerequisite: (Computer Programming 2).

And the Models Are System/Software Development Life Cycle. Why Life Cycle Approach for Software?

Acknowledgement. Software Engineering. CS 3141: Team Software Project Introduction

Introduction to Software Engineering. 8. Software Quality

Lecture Objectives. Software Life Cycle. Software Engineering Layers. Software Process. Common Process Framework. Umbrella Activities

Karunya University Dept. of Information Technology

Module 2. Software Life Cycle Model. Version 2 CSE IIT, Kharagpur

Software Process for QA

Lecture 8 About Quality and Quality Management Systems

Your Software Quality is Our Business. INDEPENDENT VERIFICATION AND VALIDATION (IV&V) WHITE PAPER Prepared by Adnet, Inc.

A Process Programmer Looks at the Spiral Model

Foundations of software engineering

Software Process Models. Xin Feng

Software Engineering CSCI Class 50 Software Process Improvement. December 1, 2014

Software Development: The Waterfall Model

Introduction to Software Project Management. CITS3220 Software Requirements & Project Management

INTEGRATED MANAGEMENT SYSTEM MANUAL IMS. Based on ISO 9001:2008 and ISO 14001:2004 Standards

Software Process Improvement CMM

CS 1632 SOFTWARE QUALITY ASSURANCE. 2 Marks. Sample Questions and Answers

Introduction to the Traditional SDLC

A Capability Maturity Model (CMM)

Lecture 1: Introduction to Software Quality Assurance

Elite: A New Component-Based Software Development Model

Process Models and Metrics

CS4507 Advanced Software Engineering

Unit 1 Learning Objectives

Fundamentals of Measurements

IT3205: Fundamentals of Software Engineering (Compulsory)

Software Development Process Models and their Impacts on Requirements Engineering Organizational Requirements Engineering

Practical Agile Requirements Engineering

ISO 9001:2000 AUDIT CHECKLIST

The Software Life Cycle. CSE 308: Software Engineering

ISO OR CMM: WHICH IS MORE EXTENSIVE FOR THE QUALITY SYSTEMS IN A SOFTWARE INDUSTRY?

Integrating Risk Management into an Undergraduate Software Engineering Course

Introduction and Overview

How To Validate Software

A Software Development Process for Small Projects. Melissa L. Russ and John D. McGregor, Korson-McGregor, A Software Technology Company

Software Testing and Software Development Lifecycles

Software Development Process Models

Software Engineering. An Introduction. Fakhar Lodhi

Darshan Institute of Engineering & Technology Unit : 7

Selecting a Software Development Methodology based on. Organizational Characteristics. Adrienne Farrell

Role of Software Quality Assurance in Capability Maturity Model Integration

Software Engineering Question Bank

The Role of Information Technology Studies in Software Product Quality Improvement

PORTFOLIO, PROGRAMME & PROJECT MANAGEMENT MATURITY MODEL (P3M3)

An integrated life cycle quality model for general public market software products

Software Development Life Cycle Models - Process Models. Week 2, Session 1

Testing of safety-critical software some principles

Evaluation and Integration of Risk Management in CMMI and ISO/IEC 15504

Software Engineering. What is a system?

Introduction to Agile Software Development

Leveraging CMMI framework for Engineering Services

JOURNAL OF OBJECT TECHNOLOGY

Unit I. Introduction

Overview. Software engineering and the design process for interactive systems. Standards and guidelines as design rules

Peter Mileff PhD SOFTWARE ENGINEERING. The Basics of Software Engineering. University of Miskolc Department of Information Technology

COMP 354 Introduction to Software Engineering

PROCESS IMPROVEMENT CAPABILITY MATURITY MODEL

ISO 9000 FOR SOFIYifrARE QUALITY SYSTEMS

Software development process

CONTENTS Preface xv 1 Introduction

Software Engineering 9.1. Quality Control

VDM vs. Programming Language Extensions or their Integration

Surveying and evaluating tools for managing processes for software intensive systems

International Association of Scientific Innovation and Research (IASIR) (An Association Unifying the Sciences, Engineering, and Applied Research)

Contents. Today Project Management. Project Management. Last Time - Software Development Processes. What is Project Management?

Module 2. Software Life Cycle Model. Version 2 CSE IIT, Kharagpur

Plan-Driven Methodologies

Transcription:

Software Production and Lifecycle Models 1 Problem Definition Change Architectural Design Verification Personnel Basic Phases Potential Difficulties, Verification, and Testing Implementation and Integration Testing Operation Revalidation

Problems: Essence and Accidents 2 Software is conceptual (intangible) Essence: difficulties inherent in the intrinsic nature of software Accidents: difficulties encountered today, but not inherent in software production Accidents are amenable to research breakthroughs Essence constitutes those problems that are unsolvable complexity conformity changeability invisibility No Silver Bullet!

Software Production Personnel 3 Client individual or organization that want product to be developed Developer(s) (members of) organization producing product User person on whose behalf client has commissioned developer, person(s) who will utilize software in operation internal software development: client = developer contract software development: client developer

QUALITY PRODUCTS THROUGH PROCESS 4 Quality Software Products developed through systematic software processes with explicit product quality requirements Effective testing and analysis must be included incremental analysis activities to complement synthesis activities Powerful tools and processes are essential to assure effectiveness Process Models Processes

What is a Process? 5 Device for producing a product (getting job done) Indirect nature Process description (program) created to describe wide class of instances Humans create process descriptions (models or programs) to solve classes of problems Software Processes: devices for creating and evolving software products

The Lifecycle Approach 6 Phasing promotes manageability and provides organization Reviews assure ultimate satisfaction of requirements Intermediate products promote visibility and assure continuity between phases Major Components of a Lifecycle Model: Phases Reviews Intermediate Products

Intermediate Software Products Objectives: Demarcate end of phases Enable effective reviews Specify requirements for next phase Form: Rigorous Machine processible Content: s Tests Documentation 7

Phases of a SW Lifecycle Model 8 Change Analysis + Design Verification Implementation and Integration Testing Operation and Maintenance Revalidation

Analysis and Problem Definition > determine exactly what client (and user) wants and process constraints develop a contract with client what task the product is to do Difficulties client asks for wrong product client is computer/software illiterate specifications may be ambiguous, inconsistent, incomplete extensive specification reviews to check that requirements specification satisfies client needs look for ambiguity, consistency, incompleteness check for feasibility, testability develop system/acceptance test plan 9

Design 10 > Design develop architectural design (system structure): decompose software into modules with module interfaces develop detailed design (module specifications): select algorithms and data structures maintain record of design decisions and traceability how the product is to do its task Difficulties miscommunication between module designers design may be inconsistent, incomplete, ambiguous Verification extensive design reviews (inspections with checklists) to determine that design conforms to requirements check module interactions develop integration test plan

Implementation and Integration 11 Design > Implementation implement modules and verify they meet their specifications combine modules according to architectural design how the product does its task Difficulties module interaction errors order of integration has a critical influence on product quality and productivity Verification and Testing extensive code reviews (inspections with checklists) to determine that implementation conforms to requirements and design develop and test on unit/module test plan: focus on individual module functionality test on integration test plan: focus on module interfaces test on system test plan: focus on requirements and determine whether product as a whole functions correctly

Operation and Maintenance 12 Operation > Change maintain software after (and during) user operation integral part of process determine whether product as a whole still functions correctly Difficulties design not extensible lack of up-to-date documentation personnel turnover Verification and Testing extensive review to determine that change is made correctly and all documentation updated test to determine that change is correctly implemented test to determine that no inadvertent changes were made to compromise system functionality (check that no affected software has regressed)

Lifecycle Models 13 Over time different lifecycle models were developed, e.g., build-and-fix model waterfall model prototyping model incremental model spiral model... Different lifecycle models decompose software engineering activities in different ways No "right" or "wrong" lifecycle model

Build and Fix Approach 14 Build entire product; deliver to client who requires changes; change until client feels software can be used productively Build First Version Modified Product (until client is satisfied) Development Operation Intermediate Product Maintenance

Stagewise Development Software developed in successive stages (lifecycle phases) 15 Problem Definition Change Architectural Design Ve rifica tio n Detailed Design Verification Phases Im plem entation Unit/Module Te sting Software Development Reviews Integration Integration and System Testing Interm ediate Product V & V Maintenance Operation Revalidation

Waterfall Model [Royce,1970] Includes feedback confined between successive phase to minimize impact 16 Problem Definition Change Architectural Design Verification Detailed Design Verification Phases Implementation Unit/Module Te sting Software Development Reviews Integration Integration and System Testing Feedback Intermediate Product V&V Maintenance Operation Revalidation

17 Test Development Develop Test Plans in conjunction with each lifecycle phase Problem Definition System/ Acceptance Te st P la n Architectural Design Verifica tion Inte gration Te st P la n Detailed Design Verification Module Interface Te st P lan Implementation Unit/Module Te sting Unit Te st P lan Software Development Reviews Integration In te rm ed iate Product Verification Test Use Test Development Te st P lan Integration and System Testing Operation Revalidation

Exploratory Programming Develop outline specification because full requirements are not known, build system and expose to user review, modify system until performance is adequate 18 Develop Outline Specificaiton Build Software System Use Development Intermediate Product Maintenance Operation

Prototyping Model 19 Develop prototype implementation to establish requirements, then follow traditional lifecycle (could also have feedback) Rapid Prototype R equirements Change Architectural Design Verifica tion Detailed Design Verification Implementation Unit/Module Testing Software Development Reviews Integration Integration and System Testing Intermediate Product V&V Maintenance Operation Revalidation

Evolutionary/Incremental Model 20 Develop first implementation, develop successive increments of an operational product until complete, direction of evolution determined by operational experience (development process should use waterfall model) Develop First Build Te s t Develop Increment Integrate and Test Development Intermediate Product Maintenance Operation

Transformation Model 21 Develop formal specification,transform into implementation using correctness-preserving transformations Problem Definition Change Formal Verification Transformation and Optimization Verification Software Development Integration Te sting Intermediate Product V&V Maintenance Operation Revalidation

Simplistic View of Spiral Model Include risk analysis with each development phase 22 Risk Analysis Rapid Prototype Risk Analysis Change Risk Analysis Risk Analysis Design Verification Risk Analysis Implementation and Integration Software Development Testin g Reviews Risk Analysis Intermediate Product V&V Maintenance Operation Revalidation

The Spiral Model [Boehm,1988] Cumulative cost 23 Commit Review partition Determine objectives, alternatives, constraints (OAC) Concrete OAC Abstract Specifcation OAC OAC Plan Risk Assessment Concept of Operation Progress through steps Risk Assessment Risk Assessment Risk Control Risk Item Set Risk Management Plan Risk Control Evaluate alternatives, identify, resolve risks Risk Control Abstract Plan Concrete Plan Abstract Abstract Concrete Plan next phases Software Development Plan Concrete and Verification Develop, verify next-level product

Capability Maturity Model (CMM) [Watts Humphrey,1989] 24 CMM is not a software lifecycle model Strategy for improving the software process regardless of the process model followed Basic premise: the use of new software methods alone will not improve productivity and quality, but rather software management is in part the cause of problems CMM assists organizations in providing the infrastructure required for achieving a disciplined and mature process Includes both, technical and managerial aspects of software production

Capability Maturity Model - 2 25 Five maturity levels 1. initial ad hoc process 2. repeatable process basic project management 3. defined process process modeling and definition 4. managed process process measurement 5. optimizing process process control and dynamic improvement to aid in maturation, the SEI has a series of questionnaires and conducts process assessments that highlight current shortcomings

ISO 9000 26 Further attempt to improve software quality based on International Standards Organization (ISO) ISO 9000 = series of five related standards within ISO 9000 standard series ISO 9000-3 focuses on software and software development Basic features: stress on documenting the process in both words and pictures requires management commitment to quality requires intensive training of workers emphasizes measurement Adopted by over 60 countries (e.g., USA, Japan, European Union,...) Company needs to be certified that its process complies with the ISO 9000 standard

Lifecycle Model 27