martes, 5 de marzo de 2013

2.3 LECCIÓN 3: PROCESOS DE DESARROLLO



Son los procesos que se deben realizar para la construcción del producto software. Estos definirán qué información obtener y como estructurar los datos, qué algoritmos usar para procesar los datos y cómo implementarlos, y qué interfaces desarrollar para operar con el software y cómo hacerlo. A partir del informe de la necesidad, con el soporte de las actividades de los procesos integrales y bajo el plan de gestión del proyecto, los procesos de desarrollo producen el software (código y documentación).

2.3.1 Procesos de requisitos

Incluye actividades iterativas dirigidas al desarrollo de la especificación de requisitos del software. Para la determinación completa y consistente de todos los requerimientos del software el análisis se enfatiza sobre la salida resultante, la descomposición de los datos, el procesamiento de los datos, las bases de datos y las interfaces de usuario, del software y del hardware.

La especificación de requerimientos del software es el establecimiento conciso y preciso de un conjunto de requisitos que deben ser satisfechos por un producto software, indicando el procedimiento mediante el cual se puede determinar si se satisfacen los requerimientos dados. Describe los requisitos funcionales, de rendimiento y de interfaz de software y definen los entornos de operación y soporte. Este documento es la salida con la cual culmina este proceso.

Existen tres tipos de requerimientos:

Requerimiento Funcional, que especifica la función que un sistema o componente de un sistema debe ser capaz de realizar.

Un requerimiento de rendimiento especifica una característica numérica tanto estática (número de terminales del sistema, número de usuarios simultáneos que soportará el sistema, número de archivos o registros del mismo, etc.) como dinámica (tiempo de procesamiento en el sistema) que debe tener un sistema o componente de un sistema.

Los requisitos de interfaz, que determinan características que el software debe soportar para cada interfaz humano del producto software (interfaz de usuario), las características lógicas de cada interfaz entre el producto software y los componentes de hardware del sistema (interfaz del hardware), el uso de otros productos software (un sistema de gestión de base de datos, un sistema operativo, un paquete estadístico) e interfaces con otros sistemas de aplicación (interfaz de software).

Existen además otros atributos del software (seguridad, consistencia, facilidad de traza, etc.) que pueden dar lugar a requisitos específicos del mismo, por ejemplo la restricción a determinados datos. En la siguiente tabla se identifican las actividades a realizar, la documentación y cuales técnicas se aplican.


 



2.3.2 Proceso de diseño

Su objetivo es realizar una representación coherente y organizada del sistema software que satisfaga la especificación de requisitos del software. La calidad de dicha representación se puede evaluar. El proceso de diseño traduce el “qué hacer” de las especificaciones de los requerimientos en el “cómo hacerlo” de las especificaciones de diseño. Inicialmente, la representación describe una visión sistémica y holística del software. Posteriores refinamientos de diseño conducen a una representación que se acerca al código fuente.

El diseño de software puede verse desde dos perspectivas: la técnica y la de gestión del proyecto. Desde el punto de vista técnico el diseño comprende cuatro actividades: diseño de los datos, diseño arquitectónico, diseño procedimental y diseño de interfaces. Desde el punto de vista de gestión del proyecto, el diseño va del diseño arquitectónico (diseño preliminar o de alto nivel) al diseño detallado (diseño de bajo nivel).

Desde el punto de vista de la gestión, el nivel de diseño arquitectónico se focaliza en las funciones y estructuras de las componentes que conforman el sistema software. El nivel de diseño detallado se ocupa del refinamiento de la representación arquitectónica que lleva a una estructura de datos detallada y a las representaciones algorítmicas que se usan para cada componente modular del software.

El proceso de diseño de software comienza con la actividad de realizar el diseño arquitectónico. Esta actividad genera la descripción del diseño arquitectónico del software en donde se describe cada una de las componentes software, se especifican los datos, las relaciones y restricciones, y se definen todas las interfaces externas (usuario, software y hardware) y los internos (entre componentes). La última actividad del proceso de diseño es realizar el diseño detallado, donde se genera la descripción del diseño del software, que especifica la estructura de los datos, los algoritmos y la información de control de cada componente software, y los detalles de las interfaces (usuario, hardware y software).

El diseño detallado se deriva del diseño preliminar; en consecuencia, sus correspondientes actividades se realizan en consecuencia mientras que el resto de las actividades de este proceso (analizar el flujo de información, diseñar la base de datos, diseñar las interfaces, desarrollar los algoritmos) se ejecutan en paralelo.

Una actividad relevante es el diseño de la base de datos que comprende el diseño conceptual, lógico y físico, de la base de datos. Los requisitos se modernizan dentro de un esquema externo que describe las entidades de datos, atributos, relaciones y restricciones. Los distintos esquemas externos se integran en un esquema conceptual único. El esquema conceptual se aplica entonces en un esquema lógico dependiente de la implementación. Finalmente, se definen las estructuras físicas de datos y los caminos de acceso.

Como ya se mencionó, desde el punto de vista técnico y en el contexto de los diseños preliminar y detallado, se llevan a cabo varias actividades de diseño diferentes: diseño de datos, diseño arquitectónico, diseño procedimental y diseño de la interfaz.

El diseño de datos, que transforma el modelo del campo de información, creado durante el análisis, en las estructuras de datos que se van a requerir para implementar el software.

El diseño arquitectónico, que define las relaciones entre los principales elementos estructurales del programa. El objetivo principal de este diseño es desarrollar una estructura de programa modular y representar las relaciones de control entre los módulos. El diseño arquitectónico mezcla la estructura de programas y la estructura de datos y define las interfaces que facilitan el flujo de los datos a lo largo del programa.


El diseño procedimental, que transforma los elementos estructurales en una descripción procedimental del software; se realiza después de que se ha establecido la estructura del programa y de los datos.


El diseño de la interfaz, que establece principalmente la disposición y los mecanismos para la interacción hombre - máquina.

El diseño es el proceso en el que se asienta la calidad del desarrollo de software ya que produce las representaciones del software de las que puede evaluarse su calidad. El diseño es la única forma mediante la cual se puede traducir con precisión los requerimientos del cliente en un producto o sistema acabado. El diseño de software sirve como base de todas las posteriores etapas del desarrollo y del proceso de mantenimiento.


Para evaluar la calidad de una representación del diseño se deben tener en cuenta las siguientes consideraciones:

1.    Jerarquización, es decir, que debe exhibir una organización jerárquica que haga un uso inteligente del control entre los componentes del software.

2.    Modularidad, esto es, que el software debe estar dividido de forma lógica en elementos que realicen funciones y subfunciones específicas.

3.    Separabilidad, o contener representaciones distintas y separadas de los datos y de los procedimientos.

4.       Independencia funcional, de modo que lleve a conseguir módulos que exhiban características funcionales independientes.

5.    Conectividad, que lleva a producir interfaces que reduzcan la complejidad de las conexiones entre los módulos y el entorno exterior.

6.    Reproductibilidad, es decir, que debe obtenerse mediante un método que sea reproducible y que esté conducido por la información obtenida durante el análisis de los requerimientos del software.

En la siguiente tabla se identifican las actividades a realizar, la documentación




 


2.2.3 Proceso de Implementación

Este proceso transforma la representación del diseño detallado de un producto software a una realización en un lenguaje de programación apropiado. El proceso de implementación produce el código fuente, el código de la base de datos y la documentación, que constituyen la manifestación física del diseño de acuerdo a los estándares y metodologías del proyecto. Además, en este proceso se debe integrar el código y la base de datos. En el caso de que el sistema conste de componentes hardware y software, se debe planificar y realizar la integración del sistema.

La salida de este proceso está sujeta a las pruebas de verificación y validación adecuadas. El código y la base de datos junto con la documentación producida durante los procesos previos son la primera representación completa del producto software. En la siguiente tabla se identifican las actividades a realizar, la documentación y cuales técnicas se aplican.



































No hay comentarios:

Publicar un comentario