INGENIERA DE SOFTWARE
3.
4.
5.
6.
7.
8.
ESPECIFICACIN FORMAL
La denominacin mtodos formales se usa para referirse a cualquier actividad
relacionada con representaciones matemticas del software, incluyendo la especificacin
formal de sistemas, anlisis y demostracin de la especificacin, el desarrollo
transformacional y la verificacin de programas.
Se han utilizado dos aproximaciones fundamentales para redactar especificaciones
detalladas para sistemas de software industriales. Estas son:
1. Una aproximacin algebraica
2. Una aproximacin basada en modelos
El cuerpo de la especificacin tiene cuatro componentes:
1. Una introduccin
2. Una parte de descripcin
3. La parte de signatura
4. La parte de axiomas
El proceso del desarrollo de una especificacin formal de la interfaz de un subsistema
comprende las siguientes actividades:
1. Estructura de la especificacin. Se organiza la especificacin informal de la
interfaz en un conjunto de tipos abstractos de datos o clases de objetos. Se
deberan definir informalmente las operaciones asociadas con cada clase.
2. Nombrado de la especificacin. Se establece un nombre para la especificacin
de cada tipo abstracto de datos, decide si stos requieren parmetros y determina
los nombres para las clases identificadas.
3. Seleccin de las operaciones. Se elige un conjunto de operaciones para cada
especificacin basada en la funcionalidad identificada de la interfaz. Deberan
incluirse operaciones para crear instancias de la clase, para modificar el valor de
las instancias y para inspeccionar los valores de las instancias. Deben aadirse
funciones a las inicialmente identificadas en la definicin informal de la interfaz.
4. Especificacin informal de las operaciones. Se redacta una especificacin
informal de cada operacin. Debera describirse cmo las operaciones afectan a la
clase definida.
5. Definicin de la sintaxis. Se define la sintaxis de las operaciones y sus
parmetros sta es la parte de la signatura de la especificacin formal. Si fuera
necesario, debera actualizarse la especificacin informal en esta etapa.
6. Definicin de axiomas. Se define la semntica de las operaciones describiendo
qu condiciones son siempre verdaderas para diferentes combinaciones de
operaciones.
DISEO ARQUITECTNICO
El estilo y estructura particulares elegidos para una aplicacin puede, por lo tanto,
depender de los requerimientos no funcionales del sistema:
1. Rendimiento.
2. Proteccin.
3. Seguridad.
4. Disponibilidad.
5. Mantenibilidad.
El diseo arquitectnico es un proceso creativo en el que se intenta establecer una
organizacin del sistema que satisfaga los requerimientos funcionales y no funcionales del
propio sistema. Debido a que es un proceso creativo, las actividades dentro del proceso
difieren radicalmente dependiendo del tipo de sistema a desarrollar, el conocimiento y la
experiencia del arquitecto del sistema, y los requerimientos especficos del mismo.
La arquitectura de un sistema software puede basarse en un modelo o estilo
arquitectnico particular. Un estilo arquitectnico es un patrn de organizacin de un
sistema tal como una organizacin cliente-servidor o una arquitectura por capas. Es
importante un conocimiento de estos estilos, sus aplicaciones, y sus ventajas e
inconvenientes.
Los modelos arquitectnicos que pueden desarrollarse pueden incluir:
1. Un modelo estructural esttico que muestre los subsistemas o componentes
que han sido desarrollados como unidades separadas.
2. Un modelo de proceso dinmico que muestre cmo se organiza el sistema en
procesos en tiempo de ejecucin. Este modelo puede ser diferente del modelo
esttico.
3. Un modelo de interfaz que defina los servicios ofrecidos por cada subsistema a
travs de su interfaz pblica.
4. Modelos de relaciones que muestren las relaciones, tales como el flujo de datos,
entre los subsistemas.
5. Un modelo de distribucin, que muestre cmo se distribuyen los subsistemas
entre las computadoras.
En una descomposicin orientada a flujos de funciones o modelo de flujo de datos, las
transformaciones funcionales procesan sus entradas y producen salidas. Los datos fluyen
de una funcin a otra y se transforman a medida que se mueven a travs de la secuencia
de funciones.
Cada paso de procesamiento se implementa como una transformacin. Los datos de
entrada fluyen a travs de estas transformaciones hasta que se convierten en datos de
salida. Las transformaciones se pueden ejecutar secuencialmente o en paralelo.
Los modelos de control a nivel arquitectnico estn relacionados con el flujo de control
entre subsistemas.
Hay dos estilos de control genricos que se usan en sistemas software:
NOTACIONES
UML
Lenguaje Unificado de Modelado (LUM o UML) es el lenguaje de modelado de sistemas
de software ms reconocido y usado en la actualidad; est respaldado por el OMG
(Object Management Group). Es un lenguaje grfico para especificar, visualizar, construir
y documentar un sistema. UML ofrece un estndar para describir un "plano" del sistema,
incluyendo aspectos conceptuales tales como procesos de negocio y funciones del
sistema, y aspectos concretos como expresiones de lenguajes de programacin,
esquemas de bases de datos y componentes reutilizables.
BPMN
El Business Modeling Notation o BPMN (Notacin para el Modelado de Procesos de
Negocios) es un mtodo de negocios que ilustra los procesos en forma similar a un
diagrama de flujo. El BPMN fue desarrollado en un principio por el Business Process
Management Initiative (BPMNI). Actualmente es sostenido por el Grupo de Gestin de
Objetos (OMG).
DFD
Un diagrama de flujo de datos (DFD por sus siglas en espaol e ingls ) es una
representacin grfica del "flujo" de datos a travs de un sistema de informacin . Un
diagrama de flujo de datos tambin se puede utilizar para la visualizacin de
procesamiento de datos (diseo estructurado ). Es una prctica comn para
un diseador dibujar un contexto a nivel de DFD que primero muestra la interaccin entre
el sistema y las entidades externas. Este contexto a nivel de DFD se "explot" para
mostrar ms detalles del sistema que se est modelando.