Ingeniería de Software & Ciclos de Vida - Javerianametorres/Materias/IngSoftware/... ·...

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

Transcript of Ingeniería de Software & Ciclos de Vida - Javerianametorres/Materias/IngSoftware/... ·...

Luis Carlos DíazMiguel Torres

Julián Rodriguez

Ingeniería de Software & Ciclos de Vida

24-Ene-07 Msc. Luis Carlos Díaz 2

Ingeniería de SoftwarePersonas

Tecnología

Proceso

Producto

24-Ene-07 Msc. Luis Carlos Díaz 3

Costos

24-Ene-07 Msc. Luis Carlos Díaz 4

Administración de Proyectos

24-Ene-07 Msc. Luis Carlos Díaz 5

Estándar IEEE 1074

PRE- DESARROLLOExploración

Asignación del sistema

DESARROLLORequerimientos

AnálisisDiseño

Implementación

POS- DESARROLLOInstalación

Operación & SoporteMantenimiento

Retiro

PROCESOS INTEGRALESVerificación, Validación, Adm. de configuraciones, Documentación, Entrenamiento

ADMINISTRACIÓN DEL PROYECTOInicio, Supervisión, Control, Calidad

24-Ene-07 Msc. Luis Carlos Díaz 6

Actividades del Proyecto

24-Ene-07 Msc. Luis Carlos Díaz 7

Actividades del Proyecto

24-Ene-07 8

Actividades del Proyecto

24-Ene-07 9

Madurez Modelo D-SW

24-Ene-07 10

Ciclos de Vida

Object Model of the Software Life Cycle

Process group

Activity

Work Product

Resource

Task

Process

Money

Time

Participant

produces

consumes

Phase

*

*

**

*

Software life cycle

*

24-Ene-07 12

Ciclo de Vida – Proceso de Desarrollo

<<include>>

<<include>><<include>>

Client End userDeveloperProject manager

Software development

System developmentProblem definition System operation

Administrator

24-Ene-07 13

Tipo de Modelo de Ciclo de Vida

Por Actividad

Systemupgradeactivity

Marketcreationactivity

Systemdevelopmentactivity

System definitionactivity

System developmentactivity

System Operationactivity

24-Ene-07 14

Tipo de Modelo de Ciclo de Vida

Por Entidad

Object DesignDocument

Requirements AnalysisDocument

Executable system

Problem Statement

Software Development

System DesignDocument

Test Manual

24-Ene-07 15

Modelos de Ciclo de Vida

24-Ene-07 16

Cascada

RequirementsProcess

SystemAllocationProcess

ProjectInitiationProcess

ConceptExploration

Process

DesignProcess

ImplementationProcess

InstallationProcess

Operation &Support Process

Verification& Validation

Process

24-Ene-07 17

Modelo VSystem

RequirementsAnalysis

Implementation

PreliminaryDesign

DetailedDesign

SoftwareRequirementsElicitation

Operation

ClientAcceptance

RequirementsAnalysis

UnitTest

SystemIntegration

& Test

ComponentIntegration

& Test

24-Ene-07 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.

24-Ene-07 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.

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.

Evolutionary development

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); For short-lifetime systems.

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.

Reuse-oriented development

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.

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.

Incremental development

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.

Sawtooth Client’s UnderstandingDeveloper’s Understanding

RequirementsElicitation

Implementation

SystemDesign

ObjectDesign

RequirementsAnalysis

UnitTest

PrototypeDemonstration 2

Client

Developer

ClientAcceptance

SystemIntegration

& Test

Integration& Test

PrototypeDemonstration 1

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 their level of abstraction.

Sharktooth User’s Understanding

SystemRequirementsElicitation

Implementation

SystemDesign

ObjectDesign

RequirementsAnalysis

UnitTest

PrototypeDemo 1

PrototypeDemo 2

Client

Manager

Developer

DesignReview

ClientAcceptance

SystemIntegration

& Test

ComponentIntegration

& Test

Manager’s UnderstandingDeveloper’s Understanding

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.

Covered in Chapter 17

33

Los 4 Valores de XP

Comunicación Realimentación

CorajeSimplicidad

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

Metáfora (lenguaje común)

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.

Spiral model of the software process

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

is planned.

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

practice.

RUP phase model

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

Deploy the system in its operating environment.

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, Funcionalidad, Rendimiento)

Fases:

Iteraciones:

Disciplinas:

RUP good practice

Develop software iteratively Manage requirements Use component-based architectures Visually model software Verify software quality Control changes to software

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 aredeveloped to model the system requirements.

Analysis and design A design model is created and documented using architecturalmodels, component models, object models and sequence models.

Implementation The components in the system are implemented and structured intoimplementation sub-systems. Automatic code generation from designmodels helps accelerate this process.

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

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

Configuration andchange management

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

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

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

24-Ene-07 Msc. Luis Carlos Díaz 44

RUP

24-Ene-07 Msc. Luis Carlos Díaz 45

Issue based

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.

24-Ene-07 Msc. Luis Carlos Díaz 46

The requirements engineering process

Feasibilitystudy

Requirementselicitation and

analysisRequirementsspecification

Requirementsvalidation

Feasibilityreport

Systemmodels

User and systemrequirements

Requirementsdocument

The software design process

Architecturaldesign

Abstractspecification

Interfacedesign

Componentdesign

Datastructuredesign

Algorithmdesign

Systemarchitecture

Softwarespecification

Interfacespecification

Componentspecification

Datastructure

specification

Algorithmspecification

Requirementsspecification

Design activities

Design products

The debugging process

Locateerror

Designerror repair

Repairerror

Re-testprogram

The testing process

Sub-systemtesting

Moduletesting

Unittesting

Systemtesting

Acceptancetesting

Componenttesting

Integration testing Usertesting

Testing phases

Requirementsspecification

Systemspecification

Systemdesign

Detaileddesign

Module andunit codeand tess

Sub-systemintegrationtest plan

Systemintegrationtest plan

Acceptancetest plan

Service Acceptancetest

Systemintegration test

Sub-systemintegration test

System evolution

Assess existingsystems

Define systemrequirements

Propose systemchanges

Modifysystems

Newsystem

Existingsystems

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 software process as a cycle of activities

Relación con el Calendario del Proyecto Procesos de Administración Procesos Cruzados:

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

24-Ene-07 Msc. Luis Carlos Díaz 54

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 process activities

24-Ene-07 Msc. Luis Carlos Díaz 56

Ejercicio

Ensayo sobre RUP

Cuadro comparativo entre modelos de ciclo de vida

Quiz

24-Ene-07 Msc. Luis Carlos Díaz 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, 2005.