Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Resumen
El diseo y la construccin del software est soportada por varios principios fundamentales. Estos principios favorecen que los objetivos de calidad del software se alcancen con mayor facilidad. En este tema se estudiarn los principios y tcnicas que permiten construir arquitecturas software correctas. Primeramente se introducir la fase de diseo y el proceso de diseo, para posteriormente centrarse en los principios y conceptos fundamentales del diseo del software, haciendo un especial hincapi en todos aqullos que permitan alcanzar un diseo modular eficaz, basado en mdulos altamente cohesionados, con bajo acoplamiento y construidos sobre la base de la ocultacin de la informacin. Diseo de software. Importancia del diseo de software. Persistencias, almacenamiento, excepciones entre otras. Mtodos para la actividad de diseo. Principios del diseo, interaccin entre el diseo y requerimientos. Diseo de atributos de calidad (funcionabilidad, confiabilidad, usabilidad, eficiencia,mantenibilidad, Transportabilidad) Arquitectura, patrones de diseo y reso. Estrategias de diseo: orientada a funciones, a objetos, a componentes, a estructura de datos, a aspectos.
Temas
Bibliografas
Roger S. Pressman Sexta Edicin. Ingeniera de Software un Enfoque practico. Capitulo 9,10, 11 y 12. Calidad de Software issuu.com FUNDAMENTOS DE DISEO es.scribd.com
Mantenimiento
Mantenimiento Prueba Prueba implementacin
Implementacin
Diseo
Con diseo
Sin diseo
Diseo
Codificacin
Prueba
puedes usar un borrador en la tabla de diseo o un martillo en el sitio de construccin Frank Lloyd Wright
El milagro mas comn de ingeniera es la transicin del anlisis al diseo y del diseo al cdigo. Richard Due
Diseo de la arquitectura del sistema: Este es el proceso durante el cual se produce una especificacin completa y verificada del hardware en general.
Diseo detallado del software: Este ocurre cuando se producen especificaciones verificadas de estructuras de datos. El diseo detallado que se ocupa del refinamiento de la representacin arquitectnica que lleva a una estructura de datos detallada y a las representaciones algortmicas del software.
Adems del diseo de datos, arquitectnico y procedimental, muchas aplicaciones modernas requieren del diseo de interfaz que establece la disposicin y los mecanismos para la interaccin hombre-mquina.
Notacin caja negra: se preocupa con las propiedades externas de los elementos del modelo de diseo.
Notacin caja blanca: se preocupa mayormente con describir algunos aspectos de la realizacin detalladas de un elemento de diseo.
Otra forma es diferenciarlas entre notaciones para describir propiedades estructurales (estticas) y las que describen propiedades conductuales (dinmicas)
Diagramas de clase y objeto: se usan para representar un conjunto de clases (y objetos) y sus relaciones. Una notacin antigua relacionada son los diagramas entidad-relacin, usados para representar modelos conceptuales de datos almacenados en sistemas de informacin. UML tiene esta notacin. Diagramas de componentes: se usan para modelas la vista de implementacin estticas de un sistema, es decir, cosas fsicas (y sus relaciones) como ejecutables, libreras, tablas, archivos y documentos. A pesar que si uso principal es durante la construccin, estos diagramas pueden ser usados durante diseo, por ejemplo, para documentar la estructura de un mdulo. UML tiene esta notacin.
Diagramas de deployment: se usan para modelar la vista de deployment esttico de un sistema, es decir, la configuracin de nodos de procesamiento en tiempo de ejecucin y los componentes que viven en ellos. Tpicamente estos diagramas pueden ser usados para representar aspectos de distribucin, por ejemplo un modelo empotrado, cliente/servidor o sistemas distribuidos. UML tiene esta notacin. Cartas de estructuras o Diagrama de Estructura: se usan para describir la estructura de llamado de un programa, es decir, cul mdulo es invocado por otro mdulo. Estos diagramas son inherentes de la aproximacin de diseo orientado a la funcin.
Diagramas de interaccin: se usan para mostrar las interacciones entre un grupo de objetos. Estos diagramas vienen en dos tipos: diagramas de secuencia ponen el nfasis en el ordenamiento temporal de los mensajes, mientras que los diagramas de colaboracin ponen el nfasis en los objetos, sus enlaces y los mensajes que intercambian en estos enlaces. UML tiene esta notacin. Diagramas de flujo de datos: se usan para mostrar el flujo de datos entre un conjunto de procesos.
Diagramas de transicin de estados y diagramas de statecharts (utilizados en UML): se usan para mostrar el flujo de control de estado a estado en una mquina de estados. Pseudocdigo y lenguajes de diseo de programas: son lenguajes estructurados similares a programacin que se usan para describir en la etapa de diseo detallado la conducta de un procedimiento o mtodo.
Fiabilidad: conjunto de atributos relacionados con la capacidad del software de mantener su nivel de presentacin bajo condiciones establecidas durante un periodo establecido. Caractersticas: Madurez Tolerancia a fallos Capacidad de recuperacin Cumplimiento de la fiabilidad
Usabilidad: conjunto de atributos relacionados con el esfuerzo necesitado para el uso y en la valoracin individual de tal uso, por un establecido o implicado conjunto de usuarios. Caractersticas: Aprendizaje Comprensin Operatividad atractividad
Mantenibilidad: conjunto de atributos relacionados con la facilidad de extender, modificar o corregir errores en un sistema software. Caractersticas: Estabilidad Factibilidad de anlisis Factibilidad de cambio Factibilidad de pruebas
Transportabilidad: conjunto de atributos relacionados con la capacidad de un sistema de software para ser transferido desde una plataforma. Caractersticas: Adaptabilidad Co-existencia Capacidad de instalacin Capacidad de remplazo
Incrementar la productividad
Mejorar la calidad
MODULARIDAD
Se divide el software en componentes identificables y tratables por separado, denominados mdulos, que estn integrados para satisfacer los requisitos del programa. La modularidad es el atributo del software que permite a un programa ser manejable intelectualmente. La complejidad percibida de un problema que combina p y p; es mayor que la complejidad percibida cuando cada problema se considera por separado. Hay un nmero m de mdulos que resultaran en un costo de desarrollo mnimo, pero no tenemos lo necesario para predecir m con seguridad.
Se desarrolla una jerarqua descomponiendo un enunciado macroscpico de funcin (una abstraccin procedimental) al estilo paso a paso hasta que se llega a los enunciados del lenguaje de programacin. La abstraccin y el refinamiento son conceptos complementarios.
Jerarqua de control
La jerarqua de control, tambin denominada estructura del programa, representa la organizacin (frecuentemente jerrquica) de los componentes del programa (mdulos) e implica una jerarqua de control. No representa aspectos procedimentales del software, tales como la secuencia de procesos, la ocurrencia u orden de decisiones o la repeticin de operaciones. Para representar la jerarqua de control se utiliza un diagrama en forma de rbol. La profundidad, y la anchura son una indicacin del nmero de niveles de control y de la amplitud global del control, respectivamente. El grado de salida es una medida del nmero de mdulos que estn directamente controlados por otros mdulos. El grado de entrada indica cuntos mdulos controlan directamente a un mdulo dado. La jerarqua de control tambin representa dos caractersticas, sutilmente diferentes, de la arquitectura del software: la visibilidad y la conectividad. La visibilidad indica el conjunto de componentes del programa que pueden ser invocados o utilizados sus datos por un componente dado, incluso cuando se haga indirectamente. La conectividad indica el conjunto de componentes a los que directamente se invoca o se utilizan sus datos en un determinado mdulo.
Estructuras de datos
Es una representacin de la relacin lgica existente entre los elementos individuales de datos. La estructura de datos dicta la organizacin, los mtodos de acceso, el grado de asociatividad y las alternativas de procesamiento para la informacin.
Proporciona una especificacin precisa del procesamiento, incluyendo la secuencia de sucesos, los puntos concretos de decisiones, la repeticin de operaciones e incluso la organizacin y estructura de los datos.
Cohesin y acoplamiento Acoplamiento se define como la fuerza de las relaciones entre las componentes de software, mientras que cohesin se define por cmo los elementos que conforman un componente se relacionan. Como regla general, acoplamiento entre componentes debe ser dbil, mientras que la cohesin(interna) de un componentes debe ser alta.
El software de computadora es una de solo unas cuantas tecnologas clave que tendrn un impacto significativo en casi cualquier aspecto de la sociedad moderna es un mecanismo para automatizar negocios, industrias y gobiernos, y un medio para transferir nueva tecnologa, un mtodo de captura de experiencias valiosas para que las utilicen otros, un medio para diferenciar los productos de una compaa de los de sus competidores, y una ventana al conocimiento colectivo de una corporacin. El software es un pivote para casi cualquier aspecto de los negocios. Pero en muchas formas, el software tambin es una tecnologa oculta. Se encuentra (usualmente sin darse cuenta de ello) cuando se viaja al trabajo, se realiza alguna compra al menudeo, se detiene en el banco, se hace una llamada telefnica, se visita al medico o se realiza alguna de las cientos de actividades cotidianas que reflejan la vida moderna.
Equipo: