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