The software development process - PowerPoint PPT Presentation

About This Presentation
Title:

The software development process

Description:

Title: Presentaci n de PowerPoint Author: Jos M. Drake Last modified by: julio Created Date: 6/6/2000 6:05:00 PM Document presentation format: A4 (210 x 297 mm) – PowerPoint PPT presentation

Number of Views:62
Avg rating:3.0/5.0
Slides: 21
Provided by: JosM177
Category:

less

Transcript and Presenter's Notes

Title: The software development process


1
  • The software development process

2
Software development process.
  • A software development process is the
    specification of a sequenced set of activities
    performed by a collaborating set of workers
    resulting in a coherent set of project artifacts,
    one of which is the desired software system.
  • The objective of a process is to make predictable
    the amount of effort required to
  • Predict and evaluate costs
  • Attain and keep a certain level of quality
  • Predict the time needed for development

3
Nature of software applications
  • There is no unique and universal optimum
    development process. It is an asset of an
    enterprise that needs to be configured and tuned
    according to the nature of the product and the
    level of experience of the company.
  • Kinds of applications that impact in the
    development process
  • Monoprocessor They execute in a single computer.
    They do not communicate with other nodes and
    usually neither with other applications. e.g. a
    word processor.
  • Embedded They execute in a particularly
    restricted computer whose external interfaces
    follow the metaphors and behavioral patterns of a
    different purpose device. They usually are
    co-design with its hardware. e.g. A washing
    machine.
  • Real Time They have in their specifications
    timing requirements and usually hold a reactive
    nature. e.g. A radar control system.
  • Distributed They execute their constituent parts
    in different processors, and hence use networks
    as elements for communication. e.g. Messenger,
    Dropbox, etc.

4
Objectives of a development process
  • To be a project template that guides
    practitioners along the sequence of tasks that
    are required and the products that must be
    generated.
  • To improve quality of the final product
  • Reduce the number of failures
  • Lower the severity of defects
  • Enhance reusability
  • Improve the stability of the development and the
    cost of maintenance.
  • Improve predictability of the project regarding
  • The amount of work required
  • The time needed for its development
  • Generate the proper information for the various
    stakeholders so that they can make an effective
    monitoring of the process.

5
Basic elements in a software development project.
Working lines
6
Scalability.
  • Scalability is an important property in a project
    since they may have very different dimensions.
  • It describes how linearly it varies the effort
    required to realize a project with regard to its
    complexity.
  • When the project complexity increases
  • The required levels of abstraction rise
  • They increase the needs for communication between
    project teem members.
  • It becomes harder to find/discover errors.
  • The ideal is to have a linear growing of the
    effort, not an exponential one.
  • Some means to achieve scalability
  • Arrange different time scales for the generation
    of the activities.
  • Include specific options in guides and forms
    tailored to the characteristics of the projects.

7
Tecnolgical keys in model driven development
processes.
IterativeDevelopment
VisualModeling
Frameworks
ExecutableModels
AutomatedRequirements-Based Testing
Bi-unicity Model-Code
8
Main tasks in a software development process.
  • Understand the application objectives in its
    domain.
  • Formulate a working plan
  • Create and manage the documentation.
  • Catch the requirements.
  • Design and build the product.
  • Test and validate the product.
  • Delivery and maintenance of the product.

9
Levels of maturity of development processes.
  • Primitive There is not.
  • Programmed It has a sequence of stages defined
    as well as the documents that will be delivered
    out of each.
  • Systematic It is formulated in a systematic way.
  • Administrated It includes criteria to quantify
    the performance of each phase and of the full
    process.
  • Optimized There are control parameters that
    enable the optimization of resources and labors
    needed for each project.

10
Linear process model.
  • Tunnel process
  • No process
  • No control
  • Just for small projects.

11
The waterfall model
Time
Requirements Analysis
Analysis
Design
Advance
Code implementation
Modules test
Debugging
Integration
System tests
Maintenance
High cost error recovery
Implementation
12
Problems of the waterfall process.
  • The real test is performed when all is designed
    and done.
  • It assumes that before starting the process the
    product is fully defined.
  • When mismatches/errors are discovered in the
    maintenance phase, the problem is to be adapted
    to the solution, not vice versa...

13
Spiral process
  • The application is made in successive phases by
    evolving from simpler to more complex systems.
  • In technology, as in nature, complex systems have
    arisen as evolution of simpler ensembles.
  • Object oriented programming facilitates
    evolutionary programming
  • Prototypes may be designed with only some
    objects.
  • And/or with limited functionality.

14
Characteristics of an iterative process
  • An iterative process is conceived as the
    construction of successive executable prototypes
    that go evolving from basic requirements up to
    the final fully functional desired system.
  • This strategy tends to post the more risky
    problems early.
  • Along the development process, real (partially
    working) prototypes are shown to the users and
    clients
  • The user faces the product in a real experience.
  • The client participates as a collaborator in the
    project.
  • The teem is continuously motivated with closer in
    time objectives.
  • The integration of components/modules is
    progressive.
  • Progress is measured/monitored in a tangible way,
    not on paper.

15
N minicascade.
  • Cycles in an iterative process reproduce
    basically a cascade process, but subject to much
    simpler objectives.

Analysis
Design
Coding
N times
Test
16
Discovery of requirements
17
Planning the iterations
18
Development process used by Rational (RUP).
  • Rational proposed a development process based on
    three criteria
  • Guided by the Use Cases.
  • Centered on the Architecture.
  • Following an Iterative and Incremental
    strategy.

19
Use Cases
  • The use cases describe the intended functionality
    of the application.
  • They are used as transversal references that
    guide all phases along the development process
  • Specification
  • Analysis
  • Design
  • Verification Test

Analysis
Design
Tests
Specifi- cation
Use Cases
20
Architecture
  • An architecture defines the global structure of
    an application, and gets expressed by the data
    structures and algorithms.
  • It is responsible for the integrity, uniformity,
    simplicity, reusability and esthetics of the
    final product.
  • An architecture offers a global view of the
    application by formulating the strategy, but
    leaving the tactical decisions to the
    development.
  • Qualities of a good architecture are
  • Simplicity ?Elegance
  • Intelligibility ?Well defined abstraction levels
  • Clear separation between interfaces and
    implementation at each level.

21
ROPES (Rapid Object-Oriented Process for Embedded
Systems)
  • It is a variant of RUP meant for the development
    of medium/large real-time and embedded
    applications
  • Though it is applicable as a general purpose
    process, it emphasizes the aspects of real-time
    and embedded systems.
  • The process is described as a sequence of
    activities that are to be followed by set of
    workers, each with a particular rol, to generate
    a coherent set of products, one of which is the
    desired software system.
  • It follows a continuous evolutionary strategy
    (what goes fine remains, what fails is removed).

22
Time scales of the process.
1 year
Key Concepts
Secondary Concepts
Macrocycle
Design Concepts
Deployment Optimization
4-6 weeks
Microcycle
Nanoc.
1-2 days
23
A microcycle iteration in the ROPES process.
Identify specify the required properties of
the application
24
Detailed phases in the microcycle spiral.
Translation
Test
Modulestest
Integration Test
Coding
Successive prototypes
Validation
Detailed design
Party
Mechanisticdesign
Analysis of requirements
Design
Architecturaldesign
System engineering
Object analysis
Análisis
25
Fase Party
  • Es la fase de organización y reflexión de cada
    ciclo de iteración
  • En el primer ciclo se formulan
  • La planificación general.
  • El ámbito del proyecto.
  • El plan de gestión de configuraciones.
  • El plan de reuso.
  • El conjunto de casos de usos básicos.
  • En los posteriores ciclos, se organiza la
    iteración que se inicia, e incluye
  • La planificación.
  • La propuesta de arquitectura.
  • La secuencia de actividades
  • El objetivo del prototipo que se va a desarrollar.

26
Sub-phase Análisis de Requerimientos (Análisis)
  • Se identifican y detallan los casos de uso
    concretos que van a ser implementados en el
    prototipo actual.
  • Existen dos modos para describir un caso de uso
  • A través de un conjunto de escenarios que
    describen las posibles situaciones de interacción
    entre agentes y sistema.
  • Mediante especificación detallada del caso de uso
    a través de métodos formales (lenguaje Z, lógica
    temporal, diagramas de estados UML, o diagramas
    de actividad UML, etc.) o incluso informales
    (texto).
  • Productos de esta fase son
  • Diagramas de clases de uso.
  • Diagramas secuencias.
  • Diagramas de estados.
  • Descripciones textuales.

27
Subfase Ingeniería de Sistemas (Análisis).
  • Consiste en el diseño al mas alto nivel de la
    arquitectura de la aplicación.
  • Trata de identificar los grandes elementos
    estructurales (subsistemas y componente) y
    definir su especificación.
  • Es una fase optativa, requerida si el sistema es
    complejo, o si va a ser desarrollado por varios
    grupos.
  • Actividades básicas de esta fase son
  • Definir la arquitectura de subsistemas.
  • Definir las interfaces de los subsistemas y los
    protocolos de interacción.
  • Definir como los subsistema colaboran para
    realizar al sistema.
  • Descomponer los casos de uso del sistema en casos
    de usos y requerimientos de los subsistemas.
  • Los principal producto son
  • Los diagramas de subsistemas.
  • La especificación de requerimientos de los
    subsistemas.

28
Subfase Análisis de Objetos (Análisis).
  • Implementa los casos de uso a través de la
    definición de conjuntos de objetos y de
    colaboraciones entre ellos.
  • Las clases de objetos se organizan mediante
    carpetas en función del dominio al que
    corresponde su semántica.
  • Debe implementarse la funcionalidad esencial y
    dejar para el diseño los aspectos inducidos por
    los requerimientos de QoS.
  • El análisis debe ser verificado en nanociclos a
    través de herramientas de ejecución del modelo o
    con diagramas de secuencias relativos a la
    implementación de los casos de uso.
  • Los productos generados en esta fase son
    diagramas de clases organizados por dominios y
    diagramas de secuencias que documentan sus
    colaboraciones.

29
Fase Diseño Arquitectural.
  • De acuerdo con las características de la
    aplicación, se elabo-ran las vistas que
    corresponden a los aspectos arquitecturales
  • Vista de Subsistemas y Componentes.
  • Vista de Concurrencia y Recursos.
  • Vista de Distribución.
  • Vista de Seguridad y Fiabilidad.
  • Vista de Despliegue.
  • Esta fase se realiza fundamentalmente
    incorporando patrones conocidos relativos a los
    aspectos que se desean optimizar.
  • Los productos que se generan en esta fase son
    diagramas de clases que representan la estructura
    y diagramas de secuencias que describen las
    colaboraciones.

30
Subfase Diseño de Mecanismos
  • Hace referencia a la optimización de
    colaboraciones entre objetos.
  • Es similar a la fase de diseño arquitectural
    salvo que su ámbito se reduce a solo un grupo muy
    reducido de clases.
  • Dado que las posibilidades de colaboración son
    muy reducidas, debe abordarse buscando patrones
    ya conocidos.
  • Los productos que genera son también diagramas de
    clases y diagramas de colaboración. En este nivel
    suelen ser útiles los diagramas de estados.

31
Subfase Diseño Detallado.
  • Concierne con la elaboración interna de los los
    objetos y clases cuya funcionalidad e interfaces
    han sido definidos en las fases anteriores.
  • Su ámbito se reduce a cada clase de forma
    independiente.
  • Los aspectos típicos que se diseñan y optimizan,
    son
  • Estructuras de datos.
  • Elaboración y descomposición de algoritmos.
  • Optimización de la máquina de estados de la
    clase.
  • Implementación de las asociaciones.
  • Aspectos relativos a la visibilidad y
    encapsulación.
  • Garantizar el cumplimiento en fase de ejecución
    de las precondiciones (en particular de los
    rangos de las variables y parámetros).
  • Esta fase da lugar a una definición completa de
    los elementos estructurales de las clases y de
    sus operaciones y métodos a través de diagramas
    de estados y actividad.

32
Fase Transducción y Elaboración
  • Hace referencia a la construcción correcta de los
    elementos que se han diseñado.
  • Incluye las tareas
  • Generación del código codificación en lenguaje
    fuente (ya sea ma-nualmente o automáticamente),
    compilación, enlazado, e instalación en el
    entorno de ejecución.
  • La prueba de que el código opera correctamente.
  • Los productos básicos de esta fase son
  • Código fuente generado de los elementos
    diseñados.
  • Plan de prueba del funcionamiento del código.
  • Informe de los módulos generados.
  • Componentes compilados y probados.

33
Fase Test
  • Concierne con la construcción del prototipo
    planificado para la iteración y su validación.
  • Se compone de dos fases
  • Integración y prueba que hace referencia al
    acoplamiento de los elementos arquitecturales del
    prototipo.
  • Validación que hace referencia a la comprobación
    de que el prototipo satisface (o no) la
    funcionalidad y características de QoS previstas.
  • Los principales productos que se generan son
  • Plan de integración e informe de los resultados
    que se obtienen.
  • Plan de validación e informe de los resultados
    que se obtienen.
  • Elaboración y prueba de un prototipo ejecutable.
  • Informe de errores y defectos.

34
Gestión de un proyecto orientado a objetos
  • Desde el punto de vista de la gestión, las fases
    de un proyecto son
  • Estudio de oportunidad
  • (Estudio del mercado, especificación del producto
    y definición del alcance del producto).
  • Fase de Elaboración.
  • (Especificación detallada, Planificación de las
    actividades, Diseño y Validación de la
    arquitectura)
  • Fase de Construcción.
  • (Diseño detallado de clases, Codificación e
    Integración de los componentes)
  • Fase de Transferencia
  • (Fabricación del prototipo final, fabricación
    industrial, soporte técnico y mantenimiento)

35
Distribución del trabajo de desarrollo entre las
fases.
36
Sinchronization management / technical
development.
Iteration
Result
Phase
Preliminar iteration
Viability Study
Sketch
Architecture iteration
Preparation
Architecture prototype
Architecture iteration
Architecture prototype
Development iteration
Development prototype
Development iteration
Construction
Development prototype
Development iteration
alpha/beta version
Delivery Iteration
Transfer
Beta version
Delivery Iteration
Fully deployed
Time
Write a Comment
User Comments (0)
About PowerShow.com