28 Sep

1. Concepto de Análisis

El **concepto de análisis** se centra en entender las reglas del negocio y los requisitos del software, para ofrecer una solución **óptima** al problema. Esto incluye definir objetivos generales y específicos claros. También se define el **alcance del proyecto** y los **requisitos funcionales y no funcionales**.

El proceso de análisis se compone de varias etapas:

  • Reconocimiento del problema: Se identifican los elementos básicos del problema tal y como los perciben los usuarios finales.
  • Evaluación y síntesis: Se evalúa el contenido de la información, se definen y elaboran todas las funciones del software, y se entiende el comportamiento del software en el contexto de acontecimientos que afectan al sistema.
  • Modelado: Se crean modelos del sistema con el fin de entender mejor los objetivos y el comportamiento.
  • Especificación: Se realiza la especificación formal del software.
  • Revisión: Se realiza un último chequeo general de todo el proceso.

2. Concepto de Modelo y Metodología

El **modelo** sirve para explicar y presentar una solución a un problema; **carece de dinámica** (es **estático**). En cambio, la **metodología** es un conjunto de procedimientos, técnicas y herramientas que ayudan a lograr la solución objetivo; por lo tanto, es **dinámica**. En rasgos generales, la metodología se utiliza junto con los modelos.

3. Concepto de Arquitectura

La **arquitectura** es el diseño de más alto nivel de la estructura de un sistema, el cual se define en términos de **componentes** y la **interacción** entre ellos. Muestra la correspondencia entre requisitos y elementos del sistema construido, y exhibe las **propiedades globales** del sistema, tales como la **escalabilidad**, el **rendimiento**, la **consistencia** y la **compatibilidad**.

3.1. Concepto de Estilo Arquitectónico

El **estilo arquitectónico** es la descripción de los tipos de componentes y un patrón de su control de ejecución y/o transferencia de datos.

Un estilo arquitectónico define una familia de sistemas en términos de patrones de organización estructural. Un estilo define:

  • Vocabulario (componentes y conectores).
  • Restricciones en cómo combinarlos.
  • Modelos semánticos que determinan cómo establecer propiedades globales a partir de las propiedades de las partes.

Algunos estilos arquitectónicos comunes son: pipe and filters, de objetos, por capas, cliente-servidor, etc.

3.2. Concepto de Componente

El **componente** corresponde a una **pieza de software** encargada de encapsular un conjunto de funciones que actúan sobre una parte del modelo de datos de la solución. En algunos casos, corresponde a la pieza que funciona de forma **autónoma** y que se integra con otros componentes.

4. Concepto de Requerimiento o Requisito

Los **requerimientos** son las descripciones que hace el usuario sobre los deseos o necesidades que tiene frente a un producto. Estos requerimientos originan unos **requisitos** que deben cumplirse para satisfacer las necesidades iniciales. En términos generales, la distinción sería:

  • Requerimientos: Indican qué debe hacer el sistema (cómo resolver un problema o lograr un objetivo).
  • Requisito: Indican cómo hacer el software (condiciones que deben cumplirse para la resolución del problema).

5. Concepto de Caso de Uso

Un **caso de uso** es una técnica para especificar la **funcionalidad** y el **comportamiento** de un sistema mediante su interacción con los usuarios y/o otros sistemas.

El **diagrama de casos de uso** se compone de **actores**, **relaciones** y **escenarios**.

6. Concepto de Requisito No Funcional

Los **requisitos no funcionales** especifican lo que se espera del sistema en términos de sus **cualidades no funcionales** específicas, como su **rapidez**, **amigabilidad**, **robustez**, **confiabilidad**, **adaptabilidad** y **portabilidad**.

Estos son requisitos que no es posible clasificar como “programables”, sino que están insertos dentro de las **características del software** que se pretende construir.

7. Concepto de Diagrama de Componentes

Los **diagramas de componentes** representan las piezas del software que conformarán el sistema (pueden ser simples archivos, paquetes, bibliotecas cargadas dinámicamente, etc.).

Se compone de:

  • Componente: Unidad física de implementación con interfaces bien definidas, pensada para ser utilizada como parte reemplazable de un sistema.
  • Interfaz: Lista de las operaciones que una pieza de software o de hardware ofrece y puede realizar.

7.1. Comparación entre Diagrama de Componentes y Diagrama de Clases

Un **diagrama de componentes** tiene un nivel más alto de **abstracción** que un diagrama de clases. Usualmente, un componente se implementa mediante una o más clases (u objetos) en tiempo de ejecución.

Deja un comentario