Ingeniería de Software & Ciclos de Vida. Luis Carlos Díaz Miguel Torres Julián Rodriguez

57  Download (0)

Full text

(1)

Luis Carlos Díaz Miguel Torres Julián Rodriguez

Ingeniería de Software &

Ciclos de Vida

(2)

Ingeniería de Software

Personas Tecnología

Proceso

(3)
(4)
(5)

Estándar IEEE 1074

PRE- DESARROLLO Exploración

Asignación del sistema

DESARROLLO Requerimientos Análisis Diseño Implementación POS- DESARROLLO Instalación

Operación & Soporte Mantenimiento

Retiro

PROCESOS INTEGRALES

Verificación, Validación, Adm. de configuraciones, Documentación, Entrenamiento

ADMINISTRACIÓN DEL PROYECTO

(6)
(7)
(8)
(9)
(10)
(11)

Object Model of the

Software Life Cycle

Process group Activity Work Product Resource Task Process Money Time Participant produces consumes Phase * * * * * Software life cycle

(12)

Ciclo de Vida – Proceso de

Desarrollo

<<include>>

<<include>>

<<include>>

Client Project manager Developer End user Software development

System development

Problem definition System operation

(13)

Tipo de Modelo de Ciclo de Vida

Por Actividad

System upgrade activity Market creation activity System development activity System definition activity System development activity System Operation activity

(14)

Tipo de Modelo de Ciclo de Vida

Por Entidad

Object Design Document Requirements Analysis

Document Executable system

Problem Statement

Software Development

System Design

(15)
(16)

Cascada

Requirements Process System Allocation Process Project Initiation Process Concept Exploration Process Design Process Implementation Process Installation Process Operation & Support Process Verification & Validation Process

(17)

Modelo V

System Requirements Analysis Implementation Preliminary Design Detailed Design Software Requirements Elicitation Operation Client Acceptance Requirements Analysis Unit Test System Integration & Test Component Integration & Test

(18)

Waterfall model phases

 Requirements analysis and definition  System and software design

 Implementation and unit testing  Integration and system testing  Operation and maintenance

 The main drawback of the waterfall model is

the difficulty of accommodating change after the process is underway. One phase has to be complete before moving onto the next phase.

(19)

Waterfall model problems

 Inflexible partitioning of the project into distinct stages

makes it difficult to respond to changing customer requirements.

 Therefore, this model is only appropriate when the

requirements are well-understood and changes will be fairly limited during the design process.

 Few business systems have stable requirements.

 The waterfall model is mostly used for large systems

engineering projects where a system is developed at several sites.

(20)

Evolutionary development

Exploratory development

 Objective is to work with customers and to

evolve a final system from an initial outline

specification. Should start with well-understood requirements and add new features as proposed by the customer.

Throw-away prototyping

 Objective is to understand the system

requirements. Should start with poorly

understood requirements to clarify what is really needed.

(21)
(22)

Evolutionary development

Problems

 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);

(23)

Component-based software engineering

 Based on systematic reuse where systems

are integrated from existing components or COTS (Commercial-off-the-shelf) systems.

 Process stages

 Component analysis;

 Requirements modification;  System design with reuse;  Development and integration.

 This approach is becoming increasingly

used as component standards have emerged.

(24)
(25)

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 delivery;  Spiral development.

(26)

Incremental delivery

 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.

(27)
(28)

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

(29)

Sawtooth

Client’s Understanding Developer’s Understanding Requirements Elicitation Implementation System Design Object Design Requirements Analysis Unit Test Prototype Demonstration 2 Client Developer Client Acceptance System Integration & Test Integration & Test Prototype Demonstration 1

(30)

Sawtooth

Shows the user and software

developer’s perception of the system

at different levels of abstractions over

time.

To make sure that these perceptions

meet at the end, checkpoints are

introduced during development,

usually by getting the client involved at

(31)

Sharktooth

User’s Understanding System Requirements Elicitation Implementation System Design Object Design Requirements Analysis Unit Test Prototype Demo 1 Prototype Demo 2 Client Manager Developer Design Review Client Acceptance System Integration & Test Component Integration & Test Manager’s Understanding Developer’s Understanding

(32)

Extreme programming

An approach to development based on

the development and delivery of very

small increments of functionality.

Relies on constant code improvement,

user involvement in the development

team and pairwise programming.

(33)

Los 4 Valores de XP

Comunicación Realimentación

Coraje Simplicidad

(34)

34

Las 12 prácticas de XP

 Entregas frecuentes y pequeñas  Planear el desarrollo a “corto” plazo  Diseños simples  Integración permanente  Estandarización del código

 Programación por pares

 Propiedad corporativa del

código  Pruebas automáticas permanentes  Refactoring  El cliente al lado  40 horas de trabajo

(35)

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

(36)
(37)

Spiral model sectors

 Objective setting

 Specific objectives for the phase are identified.

 Risk assessment and reduction

Risks are assessed and activities put in place to reduce

the key risks.

 Development and validation

A development model for the system is chosen which

can be any of the generic models.

 Planning

 The project is reviewed and the next phase of the spiral

(38)

The Rational Unified Process

 A modern process model derived from the

work on the UML and associated process.

 Normally described from 3 perspectives

 A dynamic perspective that shows phases over

time;

 A static perspective that shows process

activities;

 A practive perspective that suggests good

(39)
(40)

RUP phases

 Inception

 Establish the business case for the system.

 Elaboration

 Develop an understanding of the problem

domain and the system architecture.

 Construction

 System design, programming and testing.

 Transition

(41)

Fases e Iteraciones en RUP

Alcance y

Objetivos Arquitectura Versión Beta Versión Final

Incepción Elaboración Construcción Transición

Iteración 1 Iteración 2 Iteración 3 Iteración 4 Entregas internas (Versiones) Modelado del Negocio

Requerimientos Análisis y Diseño Implementación Pruebas (Fiabilidad, Fases: Iteraciones: Disciplinas:

(42)

RUP good practice

Develop software iteratively

Manage requirements

Use component-based architectures

Visually model software

Verify software quality

(43)

Static workflows

Workflow Description

Business modelling The business processes are modelled using business use cases. Requirements Actors who interact with the system are identified and use cases are

developed to model the system requirements.

Analysis and design A design model is created and documented using architectural models, component models, object models and sequence mod els. Implementation The components in the system are implemented and structured into

implementation sub-systems. Automatic code generation from design models helps accelerate this process.

Test Testing is an iterative process that is carried out in conjunction with implementation. System testing follows the completion of the implementation.

Deployment A product release is created, distributed to users and installed in their workplace.

Configuration and change management

This supporting workflow managed changes to the system (see Chapter 29).

Project management This supporting workflow manages the system development (see Chapter 5).

Environment This workflow is concerned with making appropriate software tools available to the software development team.

(44)
(45)
(46)

Issue based

 Aims at dealing with frequent changes.  Examples of issues are

 “How do we set up the initial teams?”

 “Should the mechanic have access to driver-specific

information“

 “What is the appropriate middleware?”  “What software architecture shall we use?”

 The status of an issue can be closed or

open.

 The life cycle models we described earlier

can then be seen as special cases of the issue-based model.

(47)

The requirements engineering

process

Feasibility study Requirements elicitation and analysis Requirements specification Requirements validation Feasibility report System models

User and system requirements

Requirements document

(48)

The software design process

Architectural design Abstract specification Interface design Component design Data structure design Algorithm design System architecture Software

specification specificationInterface specificationComponent

Data structure specification Algorithm specification Requirements specification Design activities Design products

(49)

The debugging process

Locate error Design error repair Repair error Re-test program

(50)

The testing process

Sub-system testing Module testing Unit testing System testing Acceptance testing Component testing

Integration testing User testing

(51)

Testing phases

Requirements specification System specification System design Detailed design Module and unit code and tess Sub-system integration test plan System integration test plan Acceptance test plan Service Acceptance test System integration test Sub-system integration test

(52)

System evolution

Assess existing systems Define system requirements Propose system changes Modify systems New system Existing systems

(53)

Key points

 Software processes are the activities

involved in producing and evolving a

software system. They are represented in a software process model

 General activities are specification, design

and implementation, validation and evolution

 Generic process models describe the

organisation of software processes

 Iterative process models describe the

(54)

Relación con el Calendario del

Proyecto

Procesos de Administración

Procesos Cruzados:

 Configuración  Calidad  Riesgos  Documentación  Aseguramiento de la Calidad

(55)

Key points

 Requirements engineering is the process of

developing a software specification

 Design and implementation processes

transform the specification to an executable program

 Validation involves checking that the system

meets to its specification and user needs

 Evolution is concerned with modifying the

system after it is in use

 CASE technology supports software

(56)

Ejercicio

Ensayo sobre RUP

Cuadro comparativo entre modelos de

ciclo de vida

(57)

Bibliografía & Referencias

 Bernd Bruegge: Ingeniería de Software Orientado a Objetos.

Prentice Hall, 2000.

 Jaime Oyarzo Espinosa: Notas de clase Introducción a la

Informática. Universidad de Alcalá

 Hugo Cendales: Notas de clase ADOO. Universidad

Javeriana, 2007.

Luis Carlos Díaz: Notas de clase ADOO. Universidad

Javeriana, 2006.

 Sommerville, Ian, Ingeniería de Software, Adison Wesley,

Figure

Updating...

References

Related subjects :