Software Engineering. Software Engineering. Software Costs



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

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

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

Lecture 3 Software Development Processes

Software Life Cycle Processes

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

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

Software Engineering. Introduc)on

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

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

An Introduction to Software Engineering

Chapter 2 Software Processes

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

An Introduction to Software Engineering

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

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

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

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

Organizing, planning and scheduling software projects

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

Introduction to Software Engineering

Foundations of software engineering

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

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

Outline. Definitions. Course schedule

SE 367 Software Engineering Basics of Software Engineering

CMSC 435: Software Engineering Course overview. Topics covered today

Unit 1 Learning Objectives

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

Chapter 1 Introduction

IV. Software Lifecycles

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

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

Software Project Models

Chapter 1- Introduction. Lecture 1

How To Write Software

Software cost estimation

Chapter 1- Introduction. Lecture 1

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

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

Socio technical Systems. Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 2 Slide 1

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

LECTURE 1. SYSTEMS DEVELOPMENT

Software Engineering UNIT -1 OVERVIEW

Process Models and Metrics

Software Processes. Topics covered

A Comparison between Five Models of Software Engineering

(Refer Slide Time: 01:52)

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

Software Development: The Waterfall Model

Project management. Organizing, planning and scheduling software projects

IF2261 Software Engineering. Introduction. What is software? What is software? What is software? Failure Curve. Software Applications Type

Software cost estimation

Security Considerations for the Spiral Development Model

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

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

Software Development Processes. Software Life-Cycle Models

Software Development Life Cycle (SDLC)

Chapter 23 Software Cost Estimation

Introduction to Software Engineering

Software Production and Lifecycle Models

CSC 342 Semester I: H ( G)

2. Analysis, Design and Implementation

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

Software Development Processes. Software Life-Cycle Models. Process Models in Other Fields. CIS 422/522 Spring

International Journal of Advance Research in Computer Science and Management Studies

Establishing Great Software Development Process(es) for Your Organization. By Dale Mayes

Software Development Process Models

ICS 121 Lecture Notes Spring Quarter 96

Chapter 3. Software Processes

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

Advanced Software Engineering. Software Development Processes

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

Requirements Engineering Processes. Feasibility studies. Elicitation and analysis. Problems of requirements analysis

What methods are used to conduct testing?

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

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

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

Classical Software Life Cycle Models

2. Analysis, Design and Implementation

Component-based Development Process and Component Lifecycle Ivica Crnkovic 1, Stig Larsson 2, Michel Chaudron 3

Socio-Technical Systems

Software Engineering Introduction & Background. Complaints. General Problems. Department of Computer Science Kent State University

ASSESSMENT OF SOFTWARE PROCESS MODELS

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

Ingegneria del Software. Gabriele Monfardini - Corso di Ingegneria del Software

CSCI-485: Software Design

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

How To Develop Software

Component Based Development in Software Engineering

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

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

Transcription:

Software Engineering Software Engineering is the science and art of building significant software systems that are: 1) on time 2) on budget 3) with acceptable performance 4) with correct operation. Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapters 1,3 Slide 1 Software Engineering 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 the GNP of developed countries. Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapters 1,3 Slide 2 Software Costs 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. Software engineering is concerned with costeffective software development. Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapters 1,3 Slide 3

Software Products Generic products: Stand-alone systems which are produced by a development organization and sold on the open market to any customer. Customized products: Systems which are commissioned by a specific customer and developed specially by some contractor. Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapters 1,3 Slide 4 Software Product Attributes Maintainability Dependability Efficiency Usability Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapters 1,3 Slide 5 Importance of Product Characteristics 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. Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapters 1,3 Slide 6

Efficiency Costs Cost Efficiency Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapters 1,3 Slide 7 The Software Process 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. Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapters 1,3 Slide 8 Engineering Process Model Specification: Set out the requirements and constraints on the system. Design: Produce a 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. Maintain: Repair faults in the system as they are discovered. Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapters 1,3 Slide 9

Software Engineering is Different Normally, specifications are incomplete. 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. Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapters 1,3 Slide 10 Generic Software Process Models Waterfall Separate and distinct phases of specification and development Evolutionary Specification and development are interleaved Formal Transformation A mathematical system model is formally transformed to an implementation Reuse-based The system is assembled from existing components Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapters 1,3 Slide 11 Waterfall Process Model Requirements definition System and software design Implementation and unit testing Integration and system testing Operation and maintenance Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapters 1,3 Slide 12

Evolutionary Process Model Concurrent activities Specification Initial version Outline description Development Intermediate versions Validation Final version Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapters 1,3 Slide 13 Process Model Problems Waterfall High risk for new systems because of specification and design problems. Low risk for well-understood developments using familiar technology. 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/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapters 1,3 Slide 14 Hybrid Process Models 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. Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapters 1,3 Slide 15

Spiral Process Model Determine objectives alternatives and constraints Plan next phase REVIEW Requirements plan Life-cycle plan Development plan Integration and test plan Evaluate alternatives identify, resolve risks Risk analysis Risk analysis Risk analysis Operational Prototype 3 Prototype 2 protoype Risk analysis Prototype 1 Simulations, models, benchmarks Concept of Operation S/W requirements Product design Detailed Requirement design validation Code Design Unit test V&V Integration Acceptance test Service test Develop, verify next-level product Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapters 1,3 Slide 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. Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapters 1,3 Slide 17 Spiral Model Problems Contractual development often specifies process model and deliverables in advance. Requires risk assessment expertise. Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapters 1,3 Slide 18

Process Visibility Software systems are intangible so managers need documents to assess progress. Waterfall model is still the most widely used model. Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapters 1,3 Slide 19 Waterfall Model Documents Activity Requirements analysis Requirements definition System specification Architectural design Interface design Detailed design Coding Unit testing Module testing Integration testing System testing Acceptance testing Output documents Feasibility study, Outline requirements Requirements document Functional specification, Acceptance test plan Draft user manual Architectural specification, System test plan Interface specification, Integration test plan Design specification, Unit test plan Program code Unit test report Module test report Integration test report, Final user manual System test report Final system plus documentation Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapters 1,3 Slide 20 Process Model Visibility 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/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapters 1,3 Slide 21

Professional Responsibility 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 Whistle blowing Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapters 1,3 Slide 22 Ethical Issues Confidentiality Competence Intellectual property rights Computer misuse Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapters 1,3 Slide 23