Professional Documents
Culture Documents
- Anlisis de Requisitos
El anlisis de los requisitos genera la especificacin de caractersticas operacionales de software. Interfaz del software con otros elementos del sistema y establece las restricciones que tiene el software Permite al ingeniero de software construir elementos que representen escenarios del usuario, actividades funcionales, clases de problemas y sus relaciones. La especificacin de requisitos ofrecen al desarrollador y al cliente los medios para evaluar la calidad una vez construido el software.
3.2 Atributos
Los atributos definen las propiedades de un objeto de datos, se definen uno o ms atributos como un identificador, ste se convierte en una clave para identificar un registro. Ejemplo: cedula, nombre, edad, altura de una persona.
3.3 Relaciones
La relacin se refiere a establecer una conexin entre objetos. Ejemplo: persona posee auto ( posee es la relacin).
3.4 Cardinalidad
La cardinalidad establece el nmero de objetos que pueden participar en una relacin. Las relaciones pueden ser: De uno a uno De uno a muchos De muchos a muchos
Sitios que establecen el contexto del problema y la funcin global del sistema (el piso de manufactura o el puerto de carga)
8.-Modelo de Comportamiento
El modelo de comportamiento indica la forma en que el software responder a los eventos o estmulos externos. 1. Evaluar todos los casos de uso para entender por completo la secuencia de interaccin dentro el sistema 2. Identificar los eventos que conducen la secuencia de interaccion y entender la forma en que estos eventos se relacionan con las clases especificas 3. Crear una secuencia para casa caso de uso 4. Construir un diagrama de estado para el sistema 5. Revisar el modelo de comportamiento para verificar su exactitud y consistencia Diagrama de estado: Representa el comportamiento de las clases cuando el sistema realiza sus funciones. Diagrama de Secuencia: Representa el comportamiento al describir la forma en que las clases se mueven de estado a estado.
9. Diseo de software
El objetivo de los diseadores es producir un modelo o representacin de una entidad que se ser construida a posteriori, describe el proceso mediante el cual se desarrolla el modelo de diseo. La diversificacin y la convergencia combinan intuicin y juicio en funcin de la experiencia en construir entidades similares, un conjunto de principios y/o heurstica que proporcionan la forma de guiar la evolucin del modelo, un conjunto de criterios que posibilitan la calidad que se va a juzgar, y un proceso de iteracin que por ltimo conduce a una representacin final de diseo.
A lo largo de todo el proceso del diseo, la calidad de la evolucin del diseo se evala con una serie de revisiones tcnicas formales o con las revisiones de diseo sugiere tres caractersticas que sirven como gua para la evaluacin de un buen diseo, el diseo deber implementar todos los requisitos explcitos del modelo de anlisis, y debern ajustarse a todos los requisitos implcitos que desea el cliente, el diseo deber ser una gua legible y comprensible para aquellos que generan cdigo y para aquellos que comprueban y consecuentemente, dan soporte al software. El diseo deber proporcionar una imagen completa del software, enfrentndose a los dominios de comportamiento, funcionales y de datos desde una perspectiva de implementacin. Con el fin de evaluar la calidad de una representacin de diseo, debern establecerse los criterios tcnicos para un buen diseo. Por ahora se presentarn las siguientes directrices: 1. Un diseo deber presentar una estructura arquitectnica que se haya creado mediante Patrones de diseo reconocibles, que est formada Por componentes que exhiban caractersticas de buen diseo y que se puedan implementar de manera evolutiva, facilitando as la implementacin y la comprobacin. 2. Un diseo deber ser modular; esto es, el software deber dividirse lgicamente en elementos que realicen funciones y subfunciones especficas. 3. Un diseo deber contener distintas representaciones de datos, arquitectura, interfaces y componentes (mdulos). 4. Un diseo deber conducir a estructuras de datos adcuadas para los objetos que se van a implementar y que procedan de patrones de datos reconocibles. 5. Un diseo deber conducir a componentes que presenten caractersticas funcionales independientes. 6. Un diseo deber conducir a interfaces que reduzcan la complejidad de las conexiones entre los modulos y con el entorno externo. 7. Un diseo deber derivarse mediante un mtodo repetitivo y controlado por la informacin obtenida durante el anlisis de los requisitos del software. Estos criterios no se consiguen por casualidad. El proceso de diseo del software fomenta el buen diseo a travs de la aplicacin de principios de diseo fundamentales, de metodologa sistemtica y de una revisin cuidadosa.
Cmo se puede separar la funcin y la estructura de datos de una representacin conceptual del software? Existen criterios uniformes que definen la calidad tcnica de un diseo de software?
9.3.1 Abstraccin
Cuando se tiene en consideracin una solucin modular a cualquier problema, se pueden exponer muchos niveles de abstraccin. En el nivel ms alto de abstraccin, la solucin se pone como una medida extensa empleando el lenguaje del entorno del problema. En niveles inferiores de abstraccin, se toma una orientacin ms procedimental. La terminologa orientada a problemas va emparejada con la terminologa orientada a la implementacin en un esfuerzo por solucionar el problema. Finalmente, en el nivel ms bajo de abstraccin, se establece la solucin para poder implementarse directamente. Wasserman proporciona una definicin til: Cada paso del proceso del software es un refinamiento en el nivel de abstraccin de la solucin del software. Durante la ingeniera del sistema, el software se asigna como un elemento de un sistema basado en computadora. Durante el anlisis de los requisitos del software, la solucin del software se establece en estos trminos: aquellos que son familiares en el entorno del problema. A medida que nos adentramos en el proceso de diseo, se reduce el nivel de abstraccin. Finalmente el nivel de abstraccin ms bajo se alcanza cuando se genera el cdigo fuente.
9.3.2. Refinamiento
El refinamiento paso a paso es una estrategia de diseo descendente propuesta originalmente por Niklaus Wirth. El desarrollo de un programa se realiza refinando sucesivamente los niveles de detalle procedimentales. Una jerarqua se desarrolla descomponiendo una sentencia macroscpica de funcin (una abstraccin procedimental) paso a paso hasta alcanzar las sentencias del lenguaje de programacin. El refinamiento verdaderamente es un proceso de elaboracin. Se comienza con una sentencia de funcin(o descripcin de informacin) que se define a un nivel alto de abstraccin. Esto es, la sentencia describe la funcin o informacin conceptualmente, pero no proporciona informacin sobre el funcionamiento interno de la informacin. El refinamiento hace que el diseador trabaje sobre la sentencia original, proporcionando cada vez ms detalles a medida que van teniendo lugar sucesivamente todos y cada uno de los refinamientos.
9.3.3. Modularidad
El concepto de modularidad se ha ido exponiendo desde hace casi cinco dcadas en el software de computadora. La arquitectura de computadora expresa la modularidad; es decir, el software se divide en componentes nombrados y abordados por separado, llamados frecuentemente mdulos, que se integran para satisfacer los requisitos del problema. Se ha afirmado que <<la modularidad es el nico atributo del software que permite gestionar un programa intelectualmente. El software monoltico (es decir, un programa
grande formado por un nico mdulo) no puede ser entendido fcilmente por el lector. La cantidad de rutas de control, la amplitud de referencias, la cantidad de variables y la complejidad global har que el entendimiento est muy cerca de ser imposible.
Existe, por supuesto, una relacin entre la estructura y el procedimiento. El procesamiento indicado para cada mdulo debe incluir una referencia a todos los mdulos subordinados al mdulo que se est describiendo. Es decir, una representacin procedimental del software se distribuye en capas.
1. Dar el control al usuario Tener en consideracin una interaccin flexible. Ocultar al usuario ocasional los entresijos tcnicos. Disear la interaccin directa con los objetos que aparecen en la pantalla.
2. Reducir la carga de memoria del usuario Establecer valores por defecto tiles. Definir las deficiencias que sean intuitivas y mantener la consistencia en toda la familia de aplicaciones. Desglosar la informacin de forma progresiva.
3. Construir una interfaz consecuente Permitir que el usuario realice una tarea en el contexto adecuado. Mantener la consistencia en toda la familia de aplicaciones.