Modelli di sviluppo software. Enrico Giunchiglia



Similar documents
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

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

Lecture 3 Software Development Processes

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

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

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

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

Unit 1 Learning Objectives

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

Chapter 2 Software Processes

Software Engineering. Software Engineering. Software Costs

Foundations of software engineering

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

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

CSCI-485: Software Design

Chapter 3. Software Processes

IV. Software Lifecycles

Software Processes. Topics covered

Software Life Cycle Processes

Software Engineering. What is a system?

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

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

Advanced Software Engineering. Software Development Processes

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

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

Software Production and Lifecycle Models

Unit I. Introduction

Software Development Process Models

CS4507 Advanced Software Engineering

CSC 492 The Practice of Software Engineering. Lecture 3 University of Mount Union Software Life Cycle Models

I219 Software Design Methodology

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

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

Análisis, diseño y construcción de Software

Software Development: The Waterfall Model

Software Development Life Cycle (SDLC)

Course/Year W080/807 Expected Solution Subject: Software Development to Question No: 1

Software Process Models. Xin Feng

Software Project Models

CSE 435 Software Engineering. Sept 16, 2015

A Comparison between Five Models of Software Engineering

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

A Capability Maturity Model (CMM)

Life Cycle Models. V. Paúl Pauca. CSC Fall Department of Computer Science Wake Forest University. Object Oriented Software Engineering

Process Models and Metrics

Principles of Software Engineering: Software Methodologies. COSI 120b, Spring 2005

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

Security Considerations for the Spiral Development Model

Software Process. Process: A sequence of activities, subject to constraints on resources, that produce an intended output of some kind.

Software development lifecycle

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

2. Analysis, Design and Implementation

10/4/2013. Sharif University of Technology. Session # 3. Contents. Systems Analysis and Design

A Review of an MVC Framework based Software Development

Explore 10 Different Types of Software Development Process Models

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

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

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

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

What is a life cycle model?

Rapid Software Development

Software Development Process

CHAPTER_3 SOFTWARE ENGINEERING (PROCESS MODELS)

A Comparison Between Five Models Of Software Engineering

6. Software Lifecycle Models. A software lifecycle model is a standardised format for planning organising, and running a new development project.

Lecture 1: Introduction to Software Quality Assurance

Classical Software Life Cycle Models

SOFTWARE CONFIGURATION MANAGEMENT GUIDEBOOK

How To Model Software Development Life Cycle Models

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

ASSESSMENT OF SOFTWARE PROCESS MODELS

Weaving the Software Development Process Between Requirements and Architectures

TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW

A Comparision Between Traditional and Component Based Software Development Process Models

A Review of Risk Management in Different Software Development Methodologies

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

Test Cases Design for Software Database Provisioning Development

Outline. Definitions. Course schedule

Software Engineering UNIT -1 OVERVIEW

CHAPTER 1: INTRODUCTION TO RAPID APPLICATION DEVELOPMENT (RAD)

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

Elite: A New Component-Based Software Development Model

Lecture Slides for Managing and Leading Software Projects. Chapter 2: Process Models for Software Development

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

How To Understand The Software Process

Software Development Life Cycle

International Journal of Advance Research in Computer Science and Management Studies

How era Develops Software

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

Title: Topic 3 Software process models (Topic03 Slide 1).

COMP 354 Introduction to Software Engineering

International Journal of Advanced Research in Computer Science and Software Engineering

Chapter 4 Software Lifecycle and Performance Analysis

Transcription:

Modelli di sviluppo software Enrico Giunchiglia

The software development process A structured set of activities required to develop a software system, including Specification Design & Development Validation Enrico Giunchiglia Ingegneria del Software II 2

Generic software process models The waterfall model Separate and distinct phases of specification, development, validation Evolutionary development Specification, development and validation are interleaved Formal systems development A formal system model is formally transformed to an implementation Reuse-based development The system is assembled from existing components Enrico Giunchiglia Ingegneria del Software II 3

Waterfall model Requirements definition System and software design Implementation and unit testing Integration and system testing Operation and maintenance Enrico Giunchiglia Ingegneria del Software II 4

Waterfall model phases Requirements analysis and definition System and software design Implementation and unit testing Integration and system testing Operation and maintenance Enrico Giunchiglia Ingegneria del Software II 5

Waterfall model problems Problems: difficulty of accommodating requirements changes after the process is underway, because of inflexible partitioning of the project into distinct stages Applicability: Large systems, when the requirements are well-understood Enrico Giunchiglia Ingegneria del Software II 6

Evolutionary development Objective is to work with customers and to evolve a final system from an initial outline specification. Enrico Giunchiglia Ingegneria del Software II 7

Evolutionary development Concurrent activities Specification Initial version Outline description Development Intermediate versions Validation Final version Enrico Giunchiglia Ingegneria del Software II 8

Evolutionary development Problems 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, difficult or long to specify (e.g. the user interface) For short-lifetime systems Enrico Giunchiglia Ingegneria del Software II 9

Formal systems development Based on the transformation of a mathematical specification through different representations to an executable program Transformations are correctness-preserving so it is straightforward to show that the program conforms to its specification (the program is correct wrt the specification by construction) Enrico Giunchiglia Ingegneria del Software II 10

Formal systems development Requirements Formal Formal Integration and definition specification transformation system testing Enrico Giunchiglia Ingegneria del Software II 11

Formal transformations Formal transformations T1 T2 T3 T4 Formal specification R1 R2 R3 Executable program P1 P2 P3 P4 Proofs of transformation correctness Enrico Giunchiglia Ingegneria del Software II 12

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 Enrico Giunchiglia Ingegneria del Software II 13

Reuse-oriented development Based on systematic reuse where systems are integrated from existing components or COTS (Commercial-off-theshelf) systems Requirements specification Component analysis Requirements modification System design with reuse Development and integration System validation Enrico Giunchiglia Ingegneria del Software II 14

Reuse-oriented development Problems It may be difficult to adapt components In the long run, the resulting system may be poorly structured. Applicability Legacy systems Enrico Giunchiglia Ingegneria del Software II 15

Process iteration 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 Two (related) approaches Incremental development Spiral development Enrico Giunchiglia Ingegneria del Software II 16

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 Enrico Giunchiglia Ingegneria del Software II 17

Incremental development Define outline requirements Assign requirements to increments Design system architecture Develop system increment Validate increment System incomplete Integrate increment Validate system Final system Enrico Giunchiglia Ingegneria del Software II 18

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 Enrico Giunchiglia Ingegneria del Software II 19

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 Enrico Giunchiglia Ingegneria del Software II 20

Spiral model of the software process 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 Opera- tional protoype Simulations, models, benchmarks Product design Integration test Code Unit test Detailed design Develop, verify next-level product Enrico Giunchiglia Ingegneria del Software II 21

Spiral model sectors Key elements: Risk assessment and reduction Planning Risks are assessed and activities put in place to reduce the key risks The project is reviewed and the next phase of the spiral is planned Enrico Giunchiglia Ingegneria del Software II 22

Enrico Giunchiglia Ingegneria del Software II 23