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