Manual del estudiante de Ingeniería en Sistemas de UTN/Ingeniería de requerimientos/Unidad IV

Partes del modeladoEditar

RepresentaciónEditar

La representación es la piedra fundamental del modelado, es responsabilidad de la representación tener una semántica bien definida. Existen varias propuestas de lenguajes formales, pero no todas lo son [1].

¿Qué representamos?
  • Tipos (lógica)
  • Relaciones (pre y pos condiciones)
  • Operaciones (máquinas de estado)


OrganizaciónEditar

Los aspectos de organización hablan respecto de la manera en que los lenguajes organizan sus conceptos o posibilitan que sus descripciones sean organizadas.

Ejemplo
SADT.

AlmacenamientoEditar

Para que el modelado sea efectivo es preciso que sea almacenado el contenido y principalmente que pueda ser recuperado cuando fuera necesario.

Tipos de lenguajesEditar

Informales
gráficos, arbitrarios, lenguaje natural,etc.
Semi-formales
diagramas-ER, SADT, etc.
Formales
Z, VDM, etc.

Un usuario necesita de un lenguaje informal para exponer sus necesidades y entender lo que el analista captó del problema. El analista, a su vez, precisa de lenguajes semi-formales y formales para entender mejor el problema, verificar inconsistencias y ambigüedades.

Instrumentos de modeladoEditar

  • Léxico Extendido del Lenguaje (LEL)
  • Sentencias en Lenguaje Natural
  • SADT (Structured Analysis and Design Technique)
  • Modelo CRC (Clase – Responsabilidad - Colaboración)

Léxico Extendido del Lenguaje (LEL)Editar

El Léxico Extendido del Lenguaje es una técnica que procura describir los símbolos de un lenguaje. La idea central del LEL es la existencia de lenguajes de aplicación. Esta idea parte del principio de que en el UdI existen una o más culturas y que cada cultura (grupos sociales) tiene su lenguaje propio. Por lo tanto, el principal objetivo a ser alcanzado por los analistas en la tarea de elicitación del LEL es la identificación de palabras o frases peculiares al medio social de la aplicación en estudio.

Esto se realiza en dos fases:

Identificación de símbolos del lenguaje

A través de una técnica de colecta de hechos (por ejemplo: entrevistas informales, observación, lectura de documentos), el analista anota las frases o palabras que parecen tener un significado especial para la aplicación. El resultado de esta fase es una lista de palabras o frases.

Identificación de la semántica de cada símbolo

En base a la lista de símbolos el analista procede a una entrevista estructurada con actores de la aplicación procurando entender lo que significa cada símbolo.

La representación requiere que para cada símbolo sean descriptos:

Nociones
lo que significa el símbolo.
Impactos
describe los efectos del uso/ocurrencia del símbolo en la aplicación o del efecto de algo en la aplicación sobre el símbolo.

La descripción de impactos y nociones está orientada por los principios de vocabulario mínimo y circularidad.

El principio de vocabulario mínimo prescribe que al describir una noción o un impacto, esta descripción debe minimizar el uso de símbolos externos al lenguaje, y que cuando esos símbolos externos son usados deben procurar tener una representación matemática clara, ej. Conjunto, unión, función.

El principio de circularidad define que las nociones e impactos deben ser descriptos usando símbolos del propio lenguaje.

ValidaciónEditar

Las dos fases de identificación están interconectadas por un ciclo de validación.

Se apoya en dos tipos de retroalimentación:

  1. Necesidad de identificar nuevos símbolos y
  2. Corrección de nociones e impactos

HeurísticosEditar

  • Cada símbolo es una entrada y las nociones e impactos son ítems de esa entrada.
  • En esos ítems toda referencia a otra entrada debe ser subrayada.
  • Cada símbolo puede tener 1 o + impactos
  • Cada símbolo tiene 0 o más sinónimos (\) (alias)
  • Cada símbolo tiene 1 o + nociones
  • Escribir frases simples, una sola idea
  • Las nociones e impactos de un símbolo pueden indicar puntos de vista diferentes o complementarios
  • Respetar la circularidad y el vocabulario mínimo
  • Para un símbolo que es sujeto de una frase las nociones deben aclarar quien es el sujeto y el impacto debe decir cuales son las acciones que ejecuta
  • Si es verbo:
    • Las nociones deben aclarar quien ejecuta la acción, cuándo y cuáles son los procedimientos incluidos
    • Los impactos deben identificar las situaciones que impiden la acción, efectos de la acción en el ambiente y resultado.
  • Si es objeto:
    • Las nociones deben definir el objeto e identificar otros objetos con los que se relaciona
    • Los impactos deben aclarar las acciones que pueden ser aplicadas al objeto
  • Si expresan una situación:
    • Las nociones deben decir que significan y cuáles son las acciones que llevan a esa situación.
    • Los impactos deben contener otras acciones o situaciones derivadas de esta.

EscenariosEditar

  • Describen la situación externa al sistema de software.
  • Sirven para ayudar a definir los requisitos funcionales y no funcionales.
  • Son orientados para casos.
  • De ellos se pueden derivar objetos y especificaciones orientadas a objetos.
  • La diferencia con caso de uso es que ve el contexto global y no sólo la interfase.

Un escenario está compuesto por:

Título
  • Frase o (Actor o Recurso) seguido de verbo y predicado.
  • Sub-escenarios tienen igual título al del episodio a que se refieren. Ej.: Solicitar adhesión a un plan
Objetivo
  • Describe el objetivo a alcanzar
  • [Sujeto] seguido de verbo y predicado
  • Ej.: El solicitante desea ser admitido en un grupo de plan de ahorro.
Contexto
  • Describe el local geográfico y/o un importante estado inicial.
  • Local seguido de estado.
  • Un estado que tiene la forma de [Actor o Recurso] seguido de verbo, seguido de predicado y [seguido de Restricción] .
  • Ejemplo: Se presenta a la Administradora una Solicitud de Adhesión.
Recursos
  • Describen los recursos necesarios para este escenario
  • Nombre seguido de [Restricción ]
  • Ejemplo: Solicitud de Adhesión
Actores
  • Personas o sectores de la organización que participan del escenario
  • Nombre. Ejemplo: Administradora, Solicitante
Episodios
  • Sentencias que describen comportamiento
  • Siguen un lenguaje propio
  • Pueden tener restricciones y excepciones (casos alternativos)
  • Ejemplo:
    • El solicitante presenta la Solicitud de Adhesión completa junto con el monto mínimo
    • La Solicitud no está completa.

HeurísticosEditar

  • Identificación de los actores
    • Actores principales
    • Actores secundarios
  • Elaboración de la lista de escenarios candidatos
    • Los impactos de cada actor principal (LEL) -> son escenarios potenciales
  • Descripción de los escenarios candidatos a partir de los actores principales. Se usan las siguientes reglas:
  1. Si el impacto contiene un símbolo de tipo verbo:
    1. El Objetivo del escenario está basado en el nombre, aplicación y noción que aparecen en el LEL.
    2. Sujetos -> Actores, Objetos -> Recursos
    3. Impactos -> Episodios
    4. Las precondiciones (interrelaciones de impacto) y/o la localización geográfica -> Contexto
  2. Si el impacto no contiene un símbolo de tipo verbo:
    1. Impacto -> Símbolo (Debería contener o ser uno)
    2. Basado en la información de estos símbolos
      1. El objetivo se obtiene en base al nombre y a la aplicación
      2. Sujeto -> Actores, Objetos -> Recursos
      3. LEL -> Episodios
      4. Se examinan los impactos anteriores -> Contexto
  3. Ampliación de la lista de escenarios candidatos: Se aplican las mismas estrategias aplicadas a los actores secundarios
  4. Descripción de los escenarios a partir de los actores secundarios

Se aplica el mismo procedimiento descripto en 3.

  1. Análisis de los escenarios:
    1. Validación: revisión de subescenarios, revisión de restricciones y excepciones.
    2. Verificación: Ingeniería de software.

Modelado CRCEditar

Clase - Responsabilidad - Colaboración

  • Es una técnica exploratoria más que un "método" propiamente dicho, y está dirigida por las responsabilidades.
  • Surgió como apoyo a la enseñanza de conceptos básicos de OO.
  • Puede y debe ser utilizado conjuntamente con otro método.


DefinicionesEditar

Responsabilidades
Deberes esenciales que deben ser cumplidos. Las responsabilidades de un objeto son todos los servicios que debe prestar. El conjunto de responsabilidades constituye la manera en que se distribuye lo que debe realizar el sistema como un todo.
Colaboraciones
La clase puede realizar la tarea sola o solicitar colaboración de otra clase. Cada par clase/responsabilidad es examinado de modo que se pueda determinar:
  • Qué otras clases deberían ser consultadas para que la responsabilidad sea satisfecha.
  • Qué clases utilizan qué responsabilidades.

Las tarjetas CRCEditar

Las tarjetas índice representan las clases individuales. Se dividen en los componentes CRC de la siguiente forma:

Clase
Responsabilidad Colaboración

HeurísticosEditar

1 Listar las Clases Primarias.
  1.1 Recorrer todos los escenarios y listar todos los actores.
  1.2 Para todos los actores listados en 1.1 verificar que poseen una entrada en el LEL:
    1.2.1 Examinando los impactos del símbolo del LEL, elegir aquellos que serán responsabilidades y listarlos junto a la clase.
  1.3 Verificar los episodios. A partir del rol de los actores en ellos, derivar responsabilidades.
2. Listar las Clases Secundarias.
  2.1 Recorrer todos los escenarios y listar todos los recursos con entrada en el LEL.
    2.1.1 Elegir los impactos que serán responsabilidades y listarlos junto a la clase.
  2.2 Examinar las responsabilidades de las clases primarias encontradas en 1:
    2.2.1 Si en la responsabilidad el término del LEL indica acción:
      2.2.1.1 Verificar si la entrada puede ser transformada en una nueva clase.
      2.2.1.2 Si el término no justifica ser transformado en una nueva clase, verifique si las nociones/impactos del LEL no sugieren una nueva clase secundaria.
        2.2.1.2.1 Para encontrar las responsabilidades, verificar los impactos como se sugiere en 1.
    2.2.2 Si en la responsabilidadel término del LEL no indicara acción:
      2.2.2.1 Si el término tiene comportamiento significativo conviértalo en una nueva clase.
        2.2.2.1.1 Para encontrar las responsabilidades, verificar los impactos como se sugiere en 1.
3 Examinar las Listas[2].
4 Identificar Colaboraciones.
  4.1 Las clases secundarias son candidatas naturales a ser colaboradoras de las clases primarias.
  4.2 Analizando los escenarios donde participa cada clase se puede observar cuales otras clases colaboran.

Modelo LógicoEditar

Heurísticos para obtener el Modelo Lógico a partir de las tarjetas CRCEditar

  • Cada Tarjeta es una clase.
    • Atributos: en función de las responsabilidades (LEL y Escenarios).
    • Métodos: responsabilidades.
  • Las colaboraciones indican asociaciones.
  • Cada asociación está relacionada con una responsabilidad. El nombre se basa en ella y en el LEL.
  • La cardinalidad es respondida por el LEL.
  • Los mensajes son la información intercambiada entre los métodos.
    • Perspectiva dinámica de la asociación.
    • Las consultas a los escenarios y atributos ayudan a identificar y nombrar los mensajes.

DiagramasEditar

El modelo lógico se expresa en Diagrama de Asociación y Diagrama de Interacción.

Diagramas de AsociaciónEditar

Describen los tipos de objetos del sistema y sus relaciones estáticas. Existen dos tipos de relaciones estáticas:

  • Asociaciones
  • Subtipos

Diagramas de InteracciónEditar

Los Diagramas de Interacción describen la forma en que los grupos de objetos colaboran durante un procedimiento.

Existen dos diagramas de interacción:

  • Diagramas de Secuencia: enfatizan la secuencia de mensajes.
  • Diagramas de Interconexión: muestran el módo estático de relacionarse.

Si bien los Diagramas de Secuencia y los Diagramas de Interconexión enfatizan distintos aspectos del modelo, son idempotentes.

Diagramas de SecuenciaEditar

Objetos

Los objetos son dibujados con forma de caja, en la parte superior de una línea vertical. La línea vertical es llamada "línea de vida" del objeto y representa la vida del objeto durante el procedimiento.

Mensajes

El modelo también representa mensajes que los objetos se mandan entre sí. Un mensaje de tipo "autodelegado" se define como un mensaje que el objeto se manda a sí mismo. Retorno indica la vuelta del mensaje y no un nuevo mensaje.

Control

Condición - indica el momento en que puede mandarse un mensaje (también aplicable a bloques en UML 2). Marcadores de Interacción- indican que un mensaje es enviado a varios receptores.


Diseño FísicoEditar

El Diseño Físico se obtiene del diagrama de Asociación observando las entidades que serán parte del sistema de información.

Sentencias en Lenguaje NaturalEditar

El objetivo es lograr el entendimiento entre actores del UdI "formalizando" en cierta manera la especificación de requerimientos.

Las ventajas son (de parte de los usuarios)
  • Simplicidad.
  • Facilidad de comprensión.
  • Orientación a la función.
Las desventajas son (de parte del analista)
  • Vaguedad.
  • Orientación a la función.
  • Necesidad de conocimiento previo.

Existen tres clases de sentencias: entrada, salida y cambio de estado. Cada requisito tiene que seguir una de las dos estructuras siguientes.

El sistema debe + [verbo + objeto [frase verbal] + [complemento de agente | null] + [condición | null].
El sistema debe + [verbo + objeto [frase verbal] + [complemento de agente | null] + [condición | null] + { a: condición 1, b: condición 2, ..., x: condición n}.

Una forma de agregar más estructura, por ejemplo en lo que respecta a conectivos es la siguiente:

El sistema debe + verbo + objeto + "para" + complemento + ["cuando" | "si"] + condición.

Donde:

Verbo

Es un verbo simple que expresa una funcionalidad del requisito. Dependiendo del tipo de verbo el objeto puede ser un objeto directo o un objeto directo seguido de uno indirecto.

Frase verbal

Es una frase que expresa la funcionalidad del requisito.

Complemento de agente

Es la identificación de un agente relacionado con el requisito. A veces descripto por el objeto indirecto.

Condición

Es una subsentencia que refleja una situación específica

OrganizaciónEditar

Los requisitos son un conjunto de sentencias numeradas y clasificadas según su clase. Cuando se tienen listas muy extensas de requisitos, una buena política es agrupar los requisitos parecidos en conceptos globalizadores o contenedores del objetivo que se está describiendo.



^ Se consideran formales aquellos lenguajes que son ejecutados sin ambigüedad por una máquina.

^  Los objetivos son:

  • Eliminar las clases redundantes
  • Eliminar clases no significativas