• Non ci sono risultati.

LAB LAB

N/A
N/A
Protected

Academic year: 2023

Condividi "LAB LAB"

Copied!
34
0
0

Testo completo

(1)

Agent and Object Technology Lab

Dipartimento di Ingegneria dell’Informazione

AOT

AOT LAB LAB

Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma

LAB LAB

Advanced Software Engineering Software Development Processes

Software Development Processes

P f A ti P i Prof. Agostino Poggi

(2)

AOT

AOT LAB LAB

Software Development Process

Š A process defines who is doing what, when to do it, and how to reach a certain goal

Š A software development process is a structured set of

ti iti i d t d l ft t

activities required to develop a software system

(3)

AOT

AOT LAB LAB

Software Development Process

Requirements Feasibility and

Planning

Design

Operation and

I l t ti Operation and

Maintenance Implementation

(4)

AOT

AOT LAB LAB

Waterfall Model

Requirements

System Software q

Definition

System Software Design

Implementation Programming

and Unit Testing

Implementation

Integration and System Testing

Operation and Maintenance Maintenance

(5)

AOT

AOT LAB LAB

Requirements Analysis and Definition

Š System services, constraints and goals are established

b lt ti ith t

by consultation with system users

Š Requirements are then defined in a manner that is

Š Requirements are then defined in a manner that is understandable by both users and development staff

Š This phase can be divided into:

ƒ Feasibility study (often carried out separately)Feasibility study (often carried out separately)

ƒ Requirements analysis

ƒ Requirements definition

ƒ Requirements specification

(6)

AOT

AOT LAB LAB

System and Software Design

Š One or more models of the system are defined

ƒ Models represent the system at different levels of detail

Thi h i di id d i t ti iti

Š This phase is divided in two activities:

ƒ System designy g

Identifies hardware and software components

E t bli h ll t hit t

Establishes an overall system architecture

ƒ Software design

Represents the software system functions in a form that can be transformed into one or more executable programs

(7)

AOT

AOT LAB LAB

Programming and Unit Testing

Š System components defined in the design phase are i l t d d t t d

implemented and tested

Thi h i di id d i t ti iti

Š This phase is divided in two activities:

ƒ Software components are realized as a set of programs or

ƒ Software components are realized as a set of programs or program units

W itt ifi ll

Written specifically

Acquired from elsewhere, or modifiedq

ƒ Software components are separately tested against specifications

specifications

(8)

AOT

AOT LAB LAB

Integration and System Testing

Š Program units are integrated and tested for realizing

th l t t

the complete system

• This phase is divided in four activities:

Component integration

• Component integration

• Integration testIntegration test

ƒ System requirements test

ƒ System deliver to the client

(9)

AOT

AOT LAB LAB

Operation and Maintenance

Š The system is put to use and clients are supported

• This phase is divided in four activities:

ƒ Operation: the system is put into practical use

ƒ Maintenance: errors and problems are identified and fixed

E l ti th t l ti i t

ƒ Evolution: the system evolves over time as requirements change, to add new functions or adapt the technical

environment environment

ƒ Phase out: the system is withdrawn from service

(10)

AOT

AOT LAB LAB

Feedback in the Waterfall Model

Requirements D fi iti

System and Definition

System and Software design

Programming and Unit Testing

Integration and System Testing

Operation and Maintenance Maintenance

(11)

AOT

AOT LAB LAB

Advantages / Disadvantages

Š Advantages

ƒ Documentation and clearly defined phases

ƒ Maintenance easier (assuming up-to-date docs available)

Di d

Š Disadvantages

ƒ Complete and frozen specification document up-front often not feasible in practice

not feasible in practice

ƒ Customer involvement in the first phase only

ƒ Sequential and complete execution of phases often not

ƒ Sequential and complete execution of phases often not desirable

ƒ Process difficult to control

ƒ The product becomes available very late in the process

Significant risk of building the “wrong” system

(12)

AOT

AOT LAB LAB

Applicability

Š The main drawback of the waterfall model is the

diffi lt f d ti h ft th i

difficulty of accommodating change after the process is underway

ƒ One phase has to be complete before moving onto the next phase

Š Only appropriate when the requirements are well-

understood and changes will be fairly limited during the understood and changes will be fairly limited during the design process

Š Mostly used for large systems engineering projects where a system is developed at several sites

(13)

AOT

AOT LAB LAB

Project Failure Causes

Š Inaccurate understanding of end-user needs

Š Inability to deal with changing requirements

Š Modules that do not fit together

Š Software that is hard to maintain or extend

Š Software that is hard to maintain or extend

Š Late discovery of serious project flawsy p j

Š Poor software quality

Š Unacceptable software performance

Š U t t th b ild d l

Š Untrustworthy build-and-release processes

(14)

AOT

AOT LAB LAB

Project Failure Causes

Š Ad hoc requirements management

Š Ambiguous and imprecise communication

Š Brittle architectures

Š Overwhelming complexity

Š Overwhelming complexity

Š Undetected inconsistencies in requirements, designs q g and implementations

Š Insufficient testing

Š Insufficient testing

Š Subjective assessment of project statusj p j

(15)

AOT

AOT LAB LAB

Agile Software Development

Š Agile software development is a conceptual framework for software engineering that promotes development iterations throughout the life-cycle of the project

Š Agile methods emphasize face-to-face communication over written documents

ƒ Most agile teams are located in a single open office sometimes referred to as a bullpen

ƒ At a minimum, a team includes programmers and their

"customers"

ƒ Agile methods also emphasize working software as the primary measure of progress producing very little written

d t ti l ti t th th d

documentation relative to other methods

(16)

AOT

AOT LAB LAB

Agile Software Development

Š Software developed is based on unit called iterations,

hi h ll l f f k

which usually may last from one to four weeks

Š Each iteration is an entire software project: including planning, requirements analysis, design, coding,

testing, and documentation

Š An iteration may not add enough functionality to warrant releasing the product to marketg p

Š Iteration goal is to have an available release (without bugs) at the end of each iteration

bugs) at the end of each iteration

Š At the end of each iteration, the team re-evaluates project priorities

project priorities

(17)

AOT

AOT LAB LAB

Agile Methodologies Principles

Š Customer involvement

Š Incremental deliveryIncremental delivery

A f l t th

Š A focus on people, not the process

Š Embracing of change and maintaining simplicity

Š Best suited for small or medium sized systems

(18)

AOT

AOT LAB LAB

Agile Manifesto

Š Customer satisfaction by rapid, continuous delivery of useful software

W ki f i d li d f l ( k h

Š Working software is delivered frequently (weeks rather than months)

Š Working software is the principal measure of progress

Š Even late changes in requirements are welcomed

Š Close, daily, cooperation between business people and developers

developers

(19)

AOT

AOT LAB LAB

Agile Manifesto

Š Face-to-face conversation is the best form of communication

Š Projects are built around motivated individuals who

Š Projects are built around motivated individuals, who should be trusted

Š Continuous attention to technical excellence and good design

Š Simplicity

Š Self-organizing teams

Š Regular adaptation to changing circumstances

Š Regular adaptation to changing circumstances

(20)

AOT

AOT LAB LAB

Agile Methodologies Best Practices

Š Developing software iteratively

Š Managing requirements

Š Use of component-based architectures

Š Visually modeling softwarey g

Š Continuously verifying software qualityy y g q y

Š Controlling changes to softwareg g

(21)

AOT

AOT LAB LAB

Iterative Refinement

Š Iterative development is a rework scheduling strategy

i hi h ti i t id t i d i t f

in which time is set aside to revise and improve parts of the system

Š The goal of iterative refinement (evolutionary

d l t) i t t thi ki i kl

development) is to get something working as quickly as possible

Š The initial implementation is refined until system is p y complete on the basis of client and user comment

(22)

AOT

AOT LAB LAB

Iterative Refinement Techniques

Š Vaporware: user interface mock-up

Š Throw-away software componentsThrow away software components

D d l

Š Dummy modules

Š Rapid prototyping: RAD tools

Š Incremental refinement

(23)

AOT

AOT LAB LAB

Iterative Refinement

R i

E l i Requirements

Evaluation

Design

Implementation Design

Implementation

(24)

AOT

AOT LAB LAB

Iterative Refinement

Initial Version

R i

Outline

Version Requirements

Outline

Description Design Intermediate

Versions

Implementation

Final Version

(25)

AOT

AOT LAB LAB

Applicability

Š The main problems of iterative refinement are:

ƒ Lack of process visibility

ƒ Systems are often poorly structured

ƒ Systems are often poorly structured

ƒ Special skills (e.g. in languages for rapid prototyping) may be required

required

Š Iterative refinement can be used with success for:Iterative refinement can be used with success for:

ƒ Small or medium-size interactive systems

ƒ Parts of large systems (e.g., the user interface)

ƒ Short-lifetime systemsy

(26)

AOT

AOT LAB LAB

Extreme Programming

Š Extreme Programming (XP) is probably the best known and most widely used agile method

I XP ll i d b i

Š In XP all scenarios are represented by user stories implemented as a series of tasks

Š Programmers work in pairs and develop tests for each

t k b f iti d d ll t t t b t d

task before writing code and all tests must be executed when new code is integrated into the system

Š XP is based on four activities: listening, design, coding and testing

and testing

(27)

AOT

AOT LAB LAB

Extreme Programming

Select user stories for the

Breakdown

stories into Plan release current iteration tasks

Develop integrate Release

Evaluate Develop, integrate

and test software Release

software Evaluate

System

(28)

AOT

AOT LAB LAB

Unified Process

Š Unified Process (UP) is not simply a process, but rather an extensible framework which should be customized for specific organizations or projects

Š UP is guided by use cases and is based on early risks identification and managementg

Š UP is architecture-centric because the architecture sits at the heart of the project efforts to shape the system at the heart of the project efforts to shape the system

Š UP is an development process where each iteration results in an increment which is a system release that:

results in an increment, which is a system release that:

ƒ Contains added or improved functionality

ƒ Includes work in most of the process disciplines

(29)

AOT

AOT LAB LAB

Unified Process

(30)

AOT

AOT LAB LAB

Model Driven Development

Š Model driven development refers to the systematic use of models as primary engineering artifacts throughout the development lifecycle

Š Model driven development is based on the

transformation of a model to an executable programp g

ƒ Sometimes models are constructed to a certain level of detail, and then code is written by hand in a separate step

ƒ Sometimes complete models are built including executable actions

Code can be generated from the models, ranging from system skeletons to complete, deployable products

(31)

AOT

AOT LAB LAB

Model Transformation

F d i i Refactoring

Forward engineering g

M d l S C d S

Model Space Code Space

Reverse engineering Model transformation

(32)

AOT

AOT LAB LAB

Applicability

Š The main drawback of the model driven development are:

ƒ Need for specialized skills and training to apply the technique

ƒ Difficult to formally specify some aspects of the system such as the user interface

Š Suitable for critical systems especially those where aSuitable for critical systems especially those where a safety or security case must be made before the

system is put into operation system is put into operation

(33)

AOT

AOT LAB LAB

Model Driven Architecture

Š Model Driven Architecture (MDA) is an approach to

ft d l t th t id t f id li

software development that provides a set of guidelines for structuring specifications expressed as models for the realization of system for different technological

the realization of system for different technological platforms

Š MDA provides a means for using models to direct the course of the phases of the development of a system

Š In particular, MDA uses three types of model:

ƒ Platform Independent Model (PIM)Platform Independent Model (PIM)

ƒ Computational Independent Model (CIM)

ƒ Platform Specific Model (PSM)p ( )

(34)

AOT

AOT LAB LAB

Model Driven Architecture

Requirements Mostly Text

D t

Requirements

A l i CIM/PIM

Documents

Analysis CIM/PIM

Low-level Design

C d PSM

Coding Code

Testing Code

Riferimenti

Documenti correlati

L’extreme programming enfatizza il lavoro di team: manager, clienti e sviluppatori sono tutti parte di un team collaborativo, in grado di auto-organizzarsi in modo che il problema

For each of refrigerants, ammonia and chlorodifluoromethane, calculate the amount of heat Q absorbed by refrigeration unit during heat exchange (line 0-1) and the work W required

Add 2–3 (not more!) drops of the indicator into the Erlenmeyer flask and shake it vigorously. Let the flask stand for 2–3 min and observe the purple color appearance. Fill the

Calculate the initial temperature of refrigerant T 0 , its volume change ∆V and the amount of heat Q absorbed by refrigeration unit during this step.. Take into account that

Disconnect the receiver flask with the targeted product and immediately close it with the glass stopper labeled with your student code.. Do not attempt to drag the teflon sleeve

Rather than produce yet another conceptual modelling method or multi-method framework, this paper presents the eight fundamental elements (or principles) of a best

In our review, we identified five different topics of potential forensic interest, in which OCT may be a useful diagnostic tool: assessment of the heart and vascularization in the

nell’attenzione rivolta all’assistenza, considerata parte integrante della politica cittadina, e nella conseguente cura con la quale queste associazioni legarono la memoria di sé alla