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



Similar documents
Software Engineering. Software Engineering. Software Costs

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

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

Modelli di sviluppo software. Enrico Giunchiglia

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

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

Lecture 3 Software Development Processes

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

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

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

The software process. Generic software process models. Waterfall model. Software Development Methods. Bayu Adhi Tama, ST., MTI.

Chapter 2 Software Processes

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

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

Introduction to Software Engineering. Adopted from Software Engineering, by Ian Sommerville

Introduction to Software Engineering

Introduction. Getting started with software engineering. Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 1

Software Life Cycle Processes

An Introduction to Software Engineering

An Introduction to Software Engineering. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 1 Slide 1

Chapter 1 Introduction

Topics covered. An Introduction to Software Engineering. FAQs about software engineering Professional and ethical responsibility

Foundations of software engineering

Software Engineering. Introduction. Software Costs. Software is Expensive [Boehm] ... Columbus set sail for India. He ended up in the Bahamas...

Software Processes. Topics covered

Unit 1 Learning Objectives

IV. Software Lifecycles

Software Engineering. What is SE, Anyway? Based on Software Engineering, 7 th Edition by Ian Sommerville

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

An Introduction to Software Engineering

Software Engineering. What is a system?

Introduction to Software Engineering

CSCI-485: Software Design

Software Project Models

Software Engineering. Introduc)on

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

SE 367 Software Engineering Basics of Software Engineering

Chapter 1- Introduction. Lecture 1

Chapter 1- Introduction. Lecture 1

Software Engineering UNIT -1 OVERVIEW

SWEBOK Certification Program. Software Engineering Management

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

Software Development: The Waterfall Model

Outline. Definitions. Course schedule

Rapid software development. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 1

Software cost estimation

Advanced Software Engineering. Software Development Processes

A Comparison between Five Models of Software Engineering

How To Write Software

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

Software Development Life Cycle (SDLC)

CMSC 435: Software Engineering Course overview. Topics covered today

(Refer Slide Time: 01:52)

1.1 The Nature of Software... Object-Oriented Software Engineering Practical Software Development using UML and Java. The Nature of Software...

CS4507 Advanced Software Engineering

SELECTING A DEVELOPMENT APPROACH Original Issuance: February 17, 2005 Revalidated: March 27, 2008

Introduction. Getting started with software engineering. Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 1

Chapter 3. Software Processes

2. Analysis, Design and Implementation

Systems Engineering. Designing, implementing, deploying and operating systems which include hardware, software and people

Project management. Organising, planning and scheduling software projects. Ian Sommerville 2000 Software Engineering, 6th edition.

Design with Reuse. Building software from reusable components. Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 14 Slide 1

LECTURE 1. SYSTEMS DEVELOPMENT

Components Based Design and Development. Unit 2: Software Engineering Quick Overview

Rapid Software Development

Unit I. Introduction

Process Improvement. Objectives

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

COMP 354 Introduction to Software Engineering

2. Analysis, Design and Implementation

Software cost estimation. Predicting the resources required for a software development process

Project management. Organizing, planning and scheduling software projects

Software Production and Lifecycle Models

CS 487. Week 8. Reference: 1. Software engineering, roger s. pressman. Reading: 1. Ian Sommerville, Chapter 3. Objective:

Year 5 Software Engineering 2 (Module 514) Academic Session Semester 2 COURSE NOTES. Professor D. Vernon

Requirements Engineering Process

Outline. The Spiral Model of Software Development and Enhancement. A Risk-Driven Approach. Software Process Model. Code & Fix

Software development life cycle. Software Engineering - II ITNP92 - Object Oriented Software Design. Requirements. Requirements. Dr Andrea Bracciali

General Problem Solving Model. Software Development Methodology. Chapter 2A

SOFTWARE CONFIGURATION MANAGEMENT GUIDEBOOK

International Journal of Advance Research in Computer Science and Management Studies

ASSESSMENT OF SOFTWARE PROCESS MODELS

Chapter 23 Software Cost Estimation

A COMPARISON BETWEEN DIFFERENT TYPES OF SOFTWARE DEVELOPMENT LIFE CYCLE MODELS IN SOFTWARE ENGINEERING

Organizing, planning and scheduling software projects

CHAPTER_3 SOFTWARE ENGINEERING (PROCESS MODELS)

Security Considerations for the Spiral Development Model

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

TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW

Software Development Processes. Software Life-Cycle Models

Process Models and Metrics

How To Model Software Development Life Cycle Models

Software Development Process Models

INTERNATIONAL JOURNAL OF ADVANCES IN COMPUTING AND INFORMATION TECHNOLOGY An International online open access peer reviewed journal

Classical Software Life Cycle Models

Transcription:

Software Engineering Objectives Designing, building and maintaining large software systems To define software engineering and explain its importance To discuss the concepts of software products and software processes To explain the importance of process visibility To introduce the notion of professional responsibility Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 1 Slide 1 Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 1 Slide 2

Topics covered Software engineering Software products The software process Boehm s spiral model Process visibility Professional responsibility The economies of ALL developed nations are dependent on software More and more systems are software controlled Software engineering is concerned with theories, methods and tools for professional software development Software engineering expenditure represents a significant fraction of GNP in all developed countries Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 1 Slide 3 Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 1 Slide 4

Software costs Software products Software costs often dominate system costs. The costs of software on a PC are often greater than the hardware cost Software costs more to maintain than it does to develop. For systems with a long life, maintenance costs may be several times development costs Software engineering is concerned with costeffective software development Generic products Stand-alone systems which are produced by a development organization and sold on the open market to any customer Bespoke (customized) products Systems which are commissioned by a specific customer and developed specially by some contractor Most software expenditure is on generic products but most development effort is on bespoke systems Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 1 Slide 5 Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 1 Slide 6

Software product attributes Importance of product characteristics Maintainability It should be possible for the software to evolve to meet changing requirements Dependability The software should not cause physical or economic damage in the event of failure Efficiency The software should not make wasteful use of system resources Usability The relative importance of these characteristics depends on the product and the environment in which it is to be used In some cases, some attributes may dominate In safety-critical real-time systems, key attributes may be dependability and efficiency Costs tend to rise exponentially if very high levels of any one attribute are required Software should have an appropriate user interface and documentation Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 1 Slide 7 Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 1 Slide 8

Efficiency costs The software process Cost Structured set of activities required to develop a software system Specification Design Validation Evolution Activities vary depending on the organization and the type of system being developed Must be explicitly modeled if it is to be managed Efficiency Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 1 Slide 9 Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 1 Slide 10

Process characteristics Process characteristics Understandability Reliability Is the process defined and understandability Are process errors discovered before they result in product errors Visibility Is the process progress externally visible Robustness Can the process continue in spite of unexpected problems Supportability Maintainability Can the process be supported by CASE tools Can the process evolve to meet changing organizational needs Acceptability Rapidity Is the process acceptable to those involved in it How fast can the system be produced Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 1 Slide 11 Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 1 Slide 12

Engineering process model Software process models Specification - set out the requirements and constraints on the system Normally, specifications are incomplete/anomalous Design - Produce a paper model of the system Manufacture - build the system Test - check the system meets the required specifications Install - deliver the system to the customer and ensure it is operational Very blurred distinction between specification, design and manufacture No physical realization of the system for testing Software does not wear out - maintenance does not mean component replacement Maintain - repair faults in the system as they are discovered Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 1 Slide 13 Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 1 Slide 14

Generic software process models Waterfall model The waterfall model Requirements definition Separate and distinct phases of specification and development Evolutionary development Specification and development are interleaved System and software design Formal transformation A mathematical system model is formally transformed to an implementation Reuse-based development Implementation and unit testing Integration and system testing The system is assembled from existing components Operation and maintenance Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 1 Slide 15 Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 1 Slide 16

Waterfall model phases Evolutionary development Requirements analysis and definition Concurrent activities System and software design Implementation and unit testing Specification Initial version Integration and system testing Operation and maintenance The drawback of the waterfall model is the difficulty of accommodating change after the process is underway Outline description Development Validation Intermediate versions Final version Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 1 Slide 17 Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 1 Slide 18

Evolutionary development Evolutionary development Exploratory prototyping Problems Objective is to work with customers and to evolve a final system from an initial outline specification. Should start with wellunderstood requirements Throw-away prototyping Objective is to understand the system requirements. Should start with poorly understood requirements Lack of process visibility Systems are often poorly structured Special skills (e.g. in languages for rapid prototyping) may be required Applicability For small or medium-size interactive systems For parts of large systems (e.g. the user interface) For short-lifetime systems Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 1 Slide 19 Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 1 Slide 20

Risk management Process model risk problems Perhaps the principal task of a manager is to minimize risk The 'risk' inherent in an activity is a measure of the uncertainty of the outcome of that activity Waterfall High risk for new systems because of specification and design problems Low risk for well-understood developments using familiar technology High-risk activities cause schedule and cost overruns Risk is related to the amount and quality of available information. The less information, the higher the risk Prototyping Low risk for new applications because specification and program stay in step High risk because of lack of process visibility Transformational High risk because of need for advanced technology and staff skills Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 1 Slide 21 Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 1 Slide 22

Hybrid process models Spiral model of the software process Large systems are usually made up of several sub-systems The same process model need not be used for all subsystems Prototyping for high-risk specifications Waterfall model for well-understood developments Determine objectives alternatives and constraints Plan next phase REVIEW Requirements plan Life-cycle plan Development plan Integration and test plan Risk analysis Risk analysis Risk analysis Prototype 2 Risk analysis Prototype 1 Concept of Operation S/W requirements Requirement validation Design V&V Service Acceptance test Evaluate alternatives identify, resolve risks Prototype 3 Operational protoype Simulations, models, benchmarks Product design Integration test Code Unit test Detailed design Develop, verify next-level product Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 1 Slide 23 Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 1 Slide 24

Phases of the spiral model Template for a spiral round Objective setting Objectives Specific objectives for the project phase are identified Risk assessment and reduction Key risks are identified, analyzed and information is sought to reduce these risks Constraints Alternatives Risks Development and validation Risk resolution An appropriate model is chosen for the next phase of development. Planning The project is reviewed and plans drawn up for the next round of the spiral Results Plans Commitment Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 1 Slide 25 Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 1 Slide 26

Quality improvement Objectives Risks Significantly improve software quality Constraints Within a three-year timescale Without large-scale capital investment Without radical change to company standards Alternatives Reuse existing certified software Introduce formal specification and verification Invest in testing and validation tools No cost effective quality improvement possible Quality improvements may increase costs excessively New methods might cause existing staff to leave Risk resolution Literature survey Pilot project Survey of potential reusable components Assessment of available tool support Staff training and motivation seminars Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 1 Slide 27 Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 1 Slide 28

Catalogue Spiral Results Objectives Experience of formal methods is limited - very hard to quantify improvements Limited tool support available for company standard development system. Reusable components available but little reuse tool support Plans Explore reuse option in more detail Develop prototype reuse support tools Explore component certification scheme Commitment Procure software component catalogue Constraints Within a year Must support existing component types Total cost less than $100, 000 Alternatives Buy existing information retrieval software Buy database and develop catalogue using database Develop special purpose catalogue Fund further 18-month study phase Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 1 Slide 29 Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 1 Slide 30

Catalogue Spiral (continued) Catalogue Spiral (continued) Risks Results May be impossible to procure within constraints Catalogue functionality may be inappropriate Risk resolution Develop prototype catalogue (using existing 4GL and an existing DBMS) to clarify requirements Commission consultants report on existing information retrieval system capabilities. Relax time constraint Information retrieval systems are inflexible. Identified requirements cannot be met. Prototype using DBMS may be enhanced to complete system Special purpose catalogue development is not cost-effective Plans Develop catalogue using existing DBMS by enhancing prototype and improving user interface Commitment Fund further 12 month development Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 1 Slide 31 Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 1 Slide 32

Spiral model flexibility Spiral model advantages Well-understood systems (low technical risk) - Waterfall model. Risk analysis phase is relatively cheap Stable requirements and formal specification. Safety criticality - Formal transformation model High UI risk, incomplete specification - prototyping model Hybrid models accommodated for different parts of the project 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 Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 1 Slide 33 Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 1 Slide 34

Spiral model problems Process visibility Contractual development often specifies process model and deliverables in advance Software systems are intangible so managers need documents to assess progress Requires risk assessment expertise However, this may cause problems Needs refinement for general use Timing of progress deliverables may not match the time needed to complete an activity The need to produce documents constraints process iteration The rime taken to review and approve documents is significant Waterfall model is still the most widely used deliverable-based model Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 1 Slide 35 Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 1 Slide 36

Waterfall model documents Process model visibility Activity Output documents Requirements analysis Feasibility study, Outline requirements Requirements definition Requirements document System specification Functional specification, Acceptance test plan Draft user manual Architectural design Architectural specification, System test plan Interface design Interface specification, Integration test plan Detailed design Design specification, Unit test plan Coding Program code Unit testing Unit test report Module testing Module test report Integration testing Integration test report, Final user manual System testing System test report Acceptance testing Final system plus documentation Process model Waterfall model Evolutionary development Formal transformations Reuse-oriented development Spiral model Process visibility Good visibility, each activity produces some deliverable Poor visibility, uneconomic to produce documents during rapid iteration Good visibility, documents must be produced from each phase for the process to continue Moderate visibility, it may be artificial to produce documents describing reuse and reusable components. Good visibility, each segment and each ring of the spiral should produce some document. Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 1 Slide 37 Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 1 Slide 38

Professional responsibility Ethical issues Software engineers should not just be concerned with technical considerations. They have wider ethical, social and professional responsibilities No clear rights and wrongs about many of these issues Development of military systems Whistleblowing What s best for the software engineering profession Confidentiality Competence Intellectual property rights Computer misuse Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 1 Slide 39 Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 1 Slide 40

Key points Key points Software engineering is concerned with the theories, methods and tools for developing, managing and evolving software products Software products consist of programs and documentation. Product attributes are maintainability, dependability, efficiency and usability The software process consists of those activities involved in software development The waterfall model considers each process activity as a discrete phase Evolutionary development considers process activities as concurrent The spiral process model is risk-driven Process visibility involves the creation of deliverables from activities Software engineers have ethical, social and professional responsibilities Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 1 Slide 41 Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 1 Slide 42