Documente Academic
Documente Profesional
Documente Cultură
MODULARIDAD Los patrones de arquitectura y diseo de software materializan la modularidad; es decir, el software se divide en componentes con nombres independientes y
que es posible abordar en forma individual. Estos componentes llamados mdulos se integran para satisfacer los requisitos del problema. La modularidad se basa en la estrategia divide y vencers (es ms fcil resolver un problema complejo cuando ste se divide en piezas ms manejables).
OCULTACIN DE INFORMACIN
El principio de ocultacin de informacin sugiere que los mdulos se caracterizan por las decisiones de diseo que cada uno oculta a los otros. Los mdulos deben especificarse y disearse de manera que la informacin (procedimientos y datos) que est dentro del mdulo sea inaccesible para otros mdulos que no necesiten esta informacin. INDEPENDENCIA FUNCIONAL Es la suma de directa de la modularidad y de los conceptos de abstraccin y ocultacin de informacin. La independencia funcional se consigue al desarrollar mdulos con una funcin determinante y una aversin a la interaccin excesiva con otros mdulos. Los mdulos independientes son ms fciles de mantener, probar, modificar y se reduce la propagacin de errores. REFINAMIENTO El refinamiento es una estrategia de diseo descendente. El desarrollo de un programa se realiza al refinar de manera sucesiva los niveles de detalle procedimentales. El refinamiento hace que el diseador trabaje sobre el enunciado original y que proporcione ms y ms detalles conforme se realiza cada refinamiento sucesivo. La abstraccin y el refinamiento son conceptos complementarios. ESTRATEGIAS DE DISEO La meta del diseo es crear un modelo de software que implemente todos los requisitos del cliente de manera correcta y complazca a aqullos que lo usen. El proceso de diseo avanza de una visin general del software a una visin ms estrecha que define el detalle requerido para implementar un sistema. El proceso de diseo comienza con un enfoque en la arquitectura. Se definen los subsistemas, se establecen mecanismos de comunicacin entre los subsistemas; se identifican los componentes y se realiza una descripcin detallada de cada componente. Adems, se disean las interfaces internas, externas y del usuario.
Todas estas actividades se pueden ver como actividades entrelazadas que influyen entre s. Los objetos se identifican y las interfaces se especifican completa o parcialmente en el momento de definir la arquitectura del sistema.
Consideraciones de procesamiento, como concurrencia, paralelismo, distribucin y tiempo real. Estos aspectos pueden variar entre un sistema y otro. Adems, pueden afectar de manera importante la arquitectura final del sistema. Existen diferentes enfoques para la incorporacin del ambiente de implementacin a la arquitectura del sistema: Agregar clases abstractas o interfaces que luego se especializarn segn el ambiente de implementacin. Instanciar objetos especializados para la administracin del ambiente de implementacin Configurar mltiples versiones del sistema correspondientes a diferentes plataformas. DISEO DE SISTEMA - LENGUAJES DE PROGRAMACIN Es importante sealar que un diseo orientado a objetos no necesariamente se tiene que implementar mediante un lenguaje orientado a objetos. Sin embargo, es ms natural hacerlo de esta manera. Esto es debido a que los lenguajes orientados a objetos tienen un apoyo directo a los conceptos del anlisis orientado a objetos (encapsulamiento, generalizacin, polimorfismo). Sin embargo, se puede traducir cualquier concepto o mecanismo orientado a objetos a otros existentes en los lenguajes no orientados a objetos. El problema con este tipo de lenguajes es su conveniencia, mantenimiento y proteccin contra errores. Un lenguaje orientado a objetos hace que la escritura, mantenimiento y extensin de los programas sea ms fcil y segura. Cabe mencionar que no todos los lenguajes de programacin orientados a objetos implementan de la misma forma los conceptos de la metodologa orientada a objetos. Aspectos como manejo de encapsulamiento, referencias, herencia mltiple varan de manera importante entre los lenguajes de programacin. DISEO DE SISTEMA INTERFACES GRFICAS Las interfaces grficas tienen como objetivo principal administrar la interaccin entre el usuario mediante elementos grficos, como son botones, mens y textos. Las aplicaciones interactivas donde el control del ratn y teclado desempean un papel importante se conocen como sistemas controlados o dirigidos por eventos. Estos eventos comprenden: mover el ratn, oprimir uno de sus botones, oprimir una tecla, etc.
Desarrollar un sistema dirigido por eventos significa que la aplicacin desde un inicio debe considerar un diseo adecuado. Por ejemplo, en Java se escoge alguna de las bibliotecas grficas (AWT o Swing) para utilizar el manejo apropiado de interfaces mediante sus clases (JFrame, Jpanel, JButton). Ms all de estas bibliotecas o clases tambin se afecta la lgica del diseo, ya que se debe contemplar el momento de procesar eventos. Por ejemplo, si se desarrolla un sistema con varias pantallas se puede manejar cada evento mediante una clase para cada pantalla. Otra solucin es usar un JFrame para todas las pantallas y declarar una clase que maneje los eventos del JFrame. En el segundo caso, en lugar de que cada pantalla reciba un evento del usuario, se hace que los eventos sean recibidos por parte de la clase y las pantallas se vuelven ms pasivas y fciles de manipular.
DISEO DE SISTEMA BASES DE DATOS Las bases de datos son fundamentales en los sistemas de informacin. Una decisin estratgica importante en tal contexto es si debe utilizar bases de datos relacionales u orientadas a objetos. En general se consideran tres modelos de bases de datos principales: Modelo relacional: se define una coleccin de tablas donde cada una tiene un nmero especfico de columnas y un nmero arbitrario de filas. Cada objeto se representa como una fila en una tabla y donde cada columna corresponde a un atributo distinto en el objeto. Modelo relacional extendido: el modelo relacional se extiende mediante procedimientos, objetos, versiones y otras nuevas capacidades. No hay un solo modelo relacional extendido, ms bien hay una variedad de ellos, aunque todos comparten las tablas y consultas bsicas del modelo relacional. Modelo orientado a objetos: se define un modelo orientado a objetos donde vara el tipo de encapsulamiento de datos y los procedimientos en el objeto. El trmino orientado a objetos vara segn cada autor. Las bases de datos son depsitos de datos guardados en uno o ms archivos. Existen sistemas de manejo de bases de datos (DBMS) y orientados a objetos (OOBDMS). Las bases de datos dan apoyo en los siguientes aspectos: Mltiples usuarios Mltiples aplicaciones Seguridad Integridad
Distribucin de datos La tarea del diseo se simplifica, creando una tabla correspondiente a cada clase entidad del dominio del problema y manteniendo las asociaciones entre clases. Obviamente el diseo de tablas puede optimizarse para un acceso ms eficiente. DISEO DE SISTEMA ARCHIVOS Aunque es ms efectivo trabajar con bases de datos, es posible utilizar archivos, sobre todo cuando la especificacin del sistema as lo requiera. En el caso de usar una base de datos, regularmente una clase se comunica con el DBMS para hacer solicitudes a cualquier tabla. Sin embargo, en el caso de los archivos, tal manejador no existe por lo que el proceso se hace manualmente.
Se recomienda que el nmero de integrantes sea pequeo de modo que facilite las discusiones. Durante la revisin se presenta a la audiencia el diseo conceptual. Al hacerlo, se demuestra que el sistema tiene la estructura requerida, las funciones y las caractersticas especificadas por los documentos de anlisis. Todos los participantes, en conjunto, verifican que el diseo propuesto incluya el hardware necesario, interfaces con otros sistemas, entradas y salidas. Los clientes aprueban los dilogos y mens, los formatos de los informes y el tratamiento de defectos propuestos REVISIN CRTICA DEL DISEO Realiza una revisin crtica del diseo, donde se presenta una vista general del diseo tcnico. Integrantes: Analista (s), quien colabora para definir los req. del sistema. Diseador (es) del sistema. Un moderador (solo coordina), un secretario (no se involucra). Diseador (es) de programas para este proyecto. Probador del sistema. Analista que escribir la documentacin del sistema. Otros desarrolladores (entregan perspectiva externa). Este grupo es ms tcnico que el anterior. Ya que la revisin trata de aspectos tcnicos. El moderador conduce la reunin para que se traten dos puntos: si el diseo implementa todos los requerimientos y si es un diseo de calidad. Usando diagramas, datos o ambas cosas, se explican las estrategias de diseo alternativa y como y porque se han tomado las principales decisiones de diseo. Si se identifican problemas mayores el diseo se rehace. REVISIN DEL DISEO DE PROGRAMAS Cuando el diseo tcnico resulta satisfactorio, los diseadores de programas estarn en posicin de interpretarlo como el conjunto de descripciones de diseo para los componentes reales, que deben ser codificados y probados. Despus de completar los diseos de programas, pero antes de comenzar la codificacin, presentan sus planes. Integrantes: Analista (s), que produjeran los req. del sistema. Diseador (es) del sistema. Diseador (es) del programa. Un moderador (solo coordina), un secretario (no se involucra).
Diseador (es) de programas para este proyecto. Probador del sistema. Analista que escribir la documentacin del sistema. Otros desarrolladores (entregan perspectiva externa). Este proceso se centra en la deteccin de defectos ms que en su correccin. Adems se est evaluando el diseo no a los diseadores. El proceso beneficia a todos al encontrar defectos y problemas cuando an son fciles y poco costosos de corregir. Documentando el diseo Una parte de la documentacin est dirigida a clientes y usuarios, en lenguaje natural para describir que es lo que el sistema har. La segunda parte usa la terminologa tcnica para escribir la estructura del sistema, datos y funciones. Pauta de los informes: Justificacin racional del diseo: donde se delinean las cuestiones crticas y compromisos que fueron considerados en la generacin del diseo. Descripcin de los componentes del sistema: una de las secciones debera indicar como interactan los usuarios con el sistema incluyendo: Finalmente se realiza un referencia cruzada del diseo y los requerimientos.
hace, sin explicar la manera en que lo hace. Una parte de la descripcin es un Diagrama de la Secuencia del sistema. DIAGRAMA DE SECUENCIA DEL SISTEMA Los casos de uso indican cmo los actores interactan con el Sistema de Software. Durante esa interaccin un actor genera eventos dirigidos al sistema, solicitando alguna operacin a cambio.
Conviene aislar y explicar grficamente las operaciones que un actor solicita al sistema, porque ello contribuye a entender el comportamiento del sistema. En UML los Diagramas de Secuencia dan una descripcin grfica de las interacciones del actor y de las operaciones que las mismas originan. DIAGRAMA DE SECUENCIA => Representacin que muestra, en un determinado Caso de Uso, los eventos generados por actores externos, su orden y los eventos internos del sistema. A todos los sistemas se los trata como una caja negra; los diagramas se centran en los eventos que trascienden las fronteras del sistema y que fluyen desde los actores hacia los sistemas. El Diagrama de Secuencia debe prepararse para el curso normal de los eventos de un caso de uso y los cursos opcionales ms interesantes.
las aptitudes de la empresa en el diseo final. Esto se lograra implementando una base de datos histrica (Data Warehouse) con referencias al desarrollo de otros filtros con el fin de comparar problemas, inconvenientes o ventajas que se tuvieron al desarrollar dichos productos. De igual forma, para la parte de los clientes se podra implementar una interfaz inteligente entre el sistema CAD y la base de datos del marketing que generara un diseo base del filtro que implicara las preferencias ms significativas de los clientes. A partir de este diseo, los expertos de cada rea podran empezar a buscar un punto de balance entre lo que el cliente quiere y lo que ms le conviene a la empresa para as obtener un diseo final de nuestro filtro. Produccin. Ventas. Ventajas de utilizar un Sistema Experto en la IC Los sistemas expertos propician la efectividad de la empresa en todos sus departamentos, al automatizar algunas de las tareas de la empresa y al concentrar toda la informacin competente al proceso de desarrollo del producto. De esta forma podemos apreciar las siguientes ventajas al usar los sistemas expertos en la ingeniera concurrente lo que generalmente se conoce como ingeniera concurrente asistida por computadora (CACE): Informacin integrada. Este aspecto es el que persigue principalmente el sistema experto, pues se pretende juntar una gran cantidad de informacin que nos sirva de base para desarrollar nuestro producto. Esto promueve el hecho de que todos los participantes del equipo multidisciplinario tengan acceso a la informacin de los dems de manera previa, con el fin de que las juntas se lleven a cabo lo ms rpido posible. La arquitectura del sistema experto podra disearse como una arquitectura cliente/servidor con el fin de que los participantes puedan acceder la informacin en cualquier momento e inclusive al mismo tiempo. Comunicacin eficaz. La gran cantidad de informacin que se encuentra al alcance de los participantes del equipo, propicia que todos conozcan a cierto nivel el proceso de desarrollo visto desde el punto de vista cada departamento, con esto, se evitan discusiones sobre aspectos poco comprendidos en el proceso de diseo. Con el conocimiento general del proceso de desarrollo del producto, la comunicacin se vuelve entonces ms eficaz, pues cada participante conoce los inconvenientes y las ventajas que se tendran para cada departamento en funcin de algn cambio en el diseo del producto. Rpida toma de decisiones. Con la informacin integrada en un solo ncleo y con la agilizacin de la comunicacin entre los participantes del proyecto, se obtiene una aceleracin en la toma de decisiones, producto de tener un equipo de expertos en cada rea pero conocen y comprenden a las dems. La Ingeniera Concurrente (IC) es una filosofa orientada a integrar sistemticamente y en forma simultnea el diseo de productos y procesos, para que sean considerados desde un principio todos los elementos del ciclo de vida de
un producto, desde la concepcin inicial hasta su disposicin final, pasando por la fabricacin, la distribucin y la venta.