Administracin de Proyectos de desarrollo de Software
Ciclo de vida de un proyecto
Enfoque moderno Temas Diseo del software Principios del diseo Actividades y principios del diseo Actividades y principios del diseo Bilio!raf"a #alote$ Pan%a&' ())*' An inte!rated approac+ to Software En!ineerin!' Sprin!er' ,nd ed' Sc+ac+$ Step+en' ,--.' /&ect /riented and Classical Software En!ineerin!' 0c 1raw 2ill' 3t+ edition' Pressman$ 4o!er' ,--.' 5n!enier"a de Software 67n enfoque pr8ctico' 0c1raw 2ill' 39 edicin' Administracin de Proyectos de desarrollo de Software Ciclo de vida de un proyecto Enfoque moderno :in de la presentacin Contin;e en la si!uiente actividad Actividades y principios del diseo Actividades y principios del diseo Diseo del software El diseo es la fase del proceso de desarrollo de software <donde se crea una representacin o modelo del software' A diferencia del an8lisis donde se descrien los datos y funciones requeridos$ el modelo del diseo proporciona los detalles acerca de las estructuras de los datos$ las arquitecturas$ las interfaces y los componentes del software necesarios para implementar el sistema= >Pressman$ ,--.? Actividades y principios del diseo Diseo Actividad que inicia con un con&unto de requerimientos' Se lleva a cao antes de la implementacin Es un len!ua&e intermedio entre los requerimientos y el cdi!o Es el paso del dominio del prolema al dominio de la solucin Pasa de representaciones astractas a m8s concretas El resultado es utili@ado para implementar el sistema Actividades y principios del diseo Diseo Es una actividad creativa cuya meta es !enerar un plan que satisfa!a los requerimientos' Tal ve@ sea la actividad m8s cr"tica en el desarrollo del sistema El diseo determina las principales caracter"sticas de un sistema Tiene un !ran impacto en las prueas y el mantenimiento Aos documentos del diseo son la referencia para las si!uientes fases Actividades y principios del diseo Actividades del diseo El diseo cl8sico consiste de tres actividadesB 6 El diseo de la arquitectura Cconocido tamiDn como diseo l!ico o diseo de alto nivelE 6 Diseo detallado Cconocido como diseo de mdulos$ diseo f"sico o diseo de a&o nivelE 6 Diseo de las prueas Actividades y principios del diseo Diseo de la arquitectura del software El resultado de disear los mdulos de un sistema de software se le conoce como diseo de la arquitectura del sistema' El diseo de la arquitectura es el primer paso en el diseo$ va se!uido del diseo detallado y la fase de prueas del diseo' Actividades y principios del diseo Diseo detallado Durante esta fase$ cada uno de los mdulos identificados durante el diseo de la arquitectura es especificado a detalle$ incluyendo seudocdi!o representando los al!oritmos$ las estructuras de datos y los datos miemros' Actividades y principios del diseo Prueas del diseo Sirve para verificar que los requerimientos se estDn incluyendo conforme a las especificaciones' Aas estructuras creadas durante el diseo de la arquitectura son un ve+"culo importante para las prueas del diseo$ en las que se si!uen los escenarios de los casos de uso en una simulacin del uso del sistema' Dic+as prueas son imposiles sin la representacin de los mdulos y sus interFrelaciones CacoplamientoE' Actividades y principios del diseo 0etodolo!"as del diseo El diseo puede ser orientado a o&etos u orientado a funciones El diseo orientado a funciones consiste de definiciones de mdulos$ cada mdulo soporta la astraccin de una funcin' En el diseo orientado a o&etos$ los mdulos en el diseo representan astracciones de datos' En este tema se estudia el diseo orientado a funciones$ en particular la metodolo!"a del diseo estructurado$ aunque se discuten principios aplicales a cualquier metodolo!"a orientada a funciones o a o&etos' Actividades y principios del diseo Calidad del diseo El o&etivo es encontrar el me&or diseo posile Aos criterios de evaluacin$ son frecuentemente su&etivos y no cuantificales' Aos principales atriutos de calidad a evaluar en un sistema es que Dste seaB 6 Correcto 6 Eficiente 6 0antenile 6 Eficiente en costos Actividades y principios del diseo Calidad del diseo Correcto 6 El diseo del sistema es correcto si al +aerse construido un sistema con Dl se satisfacen los requerimientos de ese sistema Eficiente 6 Se mide con la velocidad de procesamiento$ tiempo de respuesta$ consumo de recursos$ rendimiento y desempeo en !eneral' Actividades y principios del diseo Calidad del diseo 0antenile 6 Comina la +ailidad de eGtender el pro!rama$ adaptarlo y darle servicio$ adem8s$ resistencia a prueas$ compatiilidad$ confi!urailidad Crespecto a +ardwareE$ facilidad para instalarse y para locali@ar prolemas' Eficiente en costos 6 Por la misma calidad$ se puedan minimi@ar costos$ sore todo permita reducir costos en las si!uientes fases Actividades y principios del diseo Principios del diseo El diseo es una actividad creativa$ donde el reto es crear un modelo a partir de requerimientos astractos' EGisten principios que sirven como !u"as durante el diseo' Aos fundamentales sonB 6 Astraccin 6 Particionamiento del prolema 6 Diseo BottomF7p o TopFDown 6 0odularidad CCo+esin y AcoplamientoE Actividades y principios del diseo Astraccin Es un tDrmino com;n a todas las disciplinas de la in!enier"a de software' Es una +erramienta que permite considerar a un componente a un nivel astracto sin preocuparse de los detalles de implementacin' Aa astraccin de un componente descrie su comportamiento eGterno y no los detalles internos para producir dic+o comportamiento' Aa astraccin de componentes 6 Aos representa como ca&as ne!ras 6 Es ;til para entender los sistemas$ especialmente en el mantenimiento Actividades y principios del diseo Astraccin 2ay dos tipos de astraccin 6 Astraccin procedimental 7n mdulo se define por las funciones que desempea$ por e&emplo un mdulo que ordena un arre!lo puede estar representado por la funcin ordenamiento' Al mdulo se le trata como una funcin de entradaHsalida' 6 Astraccin de datos Es la ase del diseo orientado a o&etos ya que se enfoca en los datos y en las operaciones que se e&ecutan en ellos Actividades y principios del diseo Particin del prolema Principio 8sico <divide y vencer8sI El o&etivo es dividir el prolema en pie@as m8s pequeas y mane&ales que puedan resolverse y modificarse separadamente' Aas pie@as no son independientes$ se comunican entre ellas$ lo cual a!re!a comple&idad' Conforme aumenta el n;mero de componentes$ el costo tamiDn se incrementa' Por lo que dee detenerse el particionamiento cuando el costo sea mayor que el eneficio' Actividades y principios del diseo Diseo de ArriaFaFAa&o CTopFDownE 5nicia con las especificaciones del sistema Define un mdulo para implementar las especificaciones Especifica mdulos suordinados' Trata a cada mdulo especificado como el prolema a solucionar Se procede con el refinamiento +asta que se alcan@an los mdulos de nivel m8s a&o CottomE En cada etapa eGiste una ima!en clara del diseo Actividades y principios del diseo Diseo de ArriaFaFAa&o CTopFDownE Es el m8s natural para mane&ar prolemas comple&os Slo se puede utili@ar cuando se conocen claramente las especificaciones y el sistema se empie@a desde cero 2a sido frecuentemente utili@ado y propa!ado 0uc+as metodolo!"as se asan en Dl Aa factiilidad se conoce slo +asta el final Actividades y principios del diseo Diseo de Aa&oFaFArriaCBottomF7pE Se inicia diseando los mdulos en el nivel m8s a&o$ los componentes m8s 8sicos o primitivos Se construyen capas de astraccin o m8quinas virtuales Se implementan las operaciones que provee la capa de astraccin' Aas operaciones de esta capa se utili@an para implementar operaciones m8s poderosas y una capa de astraccin m8s alta$ +asta que se alcan@a un nivel donde las operaciones son las esperadas del sistema Actividades y principios del diseo Diseo de Aa&oFaFArriaCBottomF7pE Esta tDcnica es necesaria si los mdulos van a ser reutili@ados o cuando ya eGiste parte del sistema' Jo es posile usar slo topFdown o slo ottomFup Jormalmente se usa una cominacin de amas' Actividades y principios del diseo 0odularidad Se le considera a un sistema modular si consiste de componentes discretos de tal forma que cada componente puede ser implementado separadamente y camios en un componente tienen m"nimo impacto en los otros' Es un concepto li!ado estrec+amente a la astraccin$ ya que cada mdulo dee una ien definida astraccin y tener una clara interfa@ por la que se interact;a con los otros mdulos Actividades y principios del diseo 0odularidad Aa modularidad 6 Sustenta la independencia de modelos 6 Permite la estructuracin &er8rquica de pro!ramas 6 0e&ora la claridad del diseo y facilita la implementacin 6 4educe costos de prueas$ ;squeda de errores y mantenimiento Para otener modularidad no ;nicamente se parte en peda@os el sistema' Se requieren criterios de descomposicinB 6 AC/PAA05EJT/ K C/2ES5LJ Actividades y principios del diseo Acoplamiento Se refiere a la dependencia entre mdulos' Busca la independenciaB si uno puede totalmente funcionar sin la presencia de otro' Aa independencia entre mdulos es deseale ya queB 6 Aos mdulos pueden ser modificados de forma separada 6 Pueden implementarse y proarse separadamente 6 El costo de pro!ramacin disminuye En un sistema los mdulos no pueden ser totalmente independientes$ deen cooperar unos con otros' 0ientras m8s coneGiones eGistan entre los mdulos 6 Son m8s dependientes y se requiere m8s conocimiento de un mdulo para entender el otro Actividades y principios del diseo Acoplamiento El acoplamiento entre mdulos es la medida de la fuer@a de las interconeGiones entre mdulos' En !eneral$ mientras m8s necesitamos saer del mdulo A para entender el mdulo B$ m8s conectado est8 A con B' 0dulos <Altamente acopladosI est8n li!ados por coneGiones muy fuertes 0dulos <Ba&amente acopladosI tienen coneGiones dDiles Actividades y principios del diseo 0etaB mdulos con el m8s a&o acoplamiento posile En donde sea posile$ tener mdulos independientes' El acoplamiento se decide durante el diseo de la arquitectura Jo puede reducirse el nivel de acoplamiento en la implementacin Aos principales factores que influencian el acoplamiento son tresB 6 El tipo de coneGin entre mdulos 6 Aa comple&idad de la interfa@ 6 El tipo de informacin que fluye entre los mdulos Acoplamiento Actividades y principios del diseo Se dee minimi@ar el n;mero de interfaces por mdulo Se dee minimi@ar la comple&idad de cada interfa@ El acoplamiento se minimi@a siB 6 Aos otros mdulos slo utili@an la entrada definida 6 Aa informacin pasa eGclusivamente por medio de los par8metros El acoplamiento aumenta siB 6 Se usa una interfa@ indirecta u oscura 6 Se usan las partes internas del mdulo directamente 6 Se comparten variales para la comunicacin 6 Se env"a m8s informacin de la necesaria Cp' e&' todo un arre!lo en ve@ del elemento en cuestinE Acoplamiento Actividades y principios del diseo El acoplamiento depende del tipo de informacin que fluye entre los mdulos' Puede ser de dos tiposB 6 Datos o control Cuando se transfiere informacin de control B 6 Aa accin del mdulo depende de la informacin reciida 6 2ace m8s dif"ciles de entender a los mdulos Aa transferencia de informacin tipo datos$ si!nifica que el mdulo pasa como entrada datos a otro mdulo y recie en retorno al!;n dato de salida' 6 Permite a un mdulo ser tratado como una funcin de entradaHsalida que reali@a al!una transformacin a los datos' Aas interfaces que slo mantienen comunicacin de datos tienen el m8s a&o !rado de acoplamiento' Acoplamiento Actividades y principios del diseo 4esumenB !rados de acoplamiento Acoplamiento m8s a&oB las interfaces slo se comunican con datos Acoplamiento m8s altoB interfaces +"ridas Cdatos y controlE Acoplamiento Comple&idad Tipo de Tipo de de interfa@ coneGiones comunicacin Ba&o Simple con el mdulo datos ovia por nomre Alto complicada con elementos control oscura internos +"rida Actividades y principios del diseo Co+esin Aa co+esin es una medida de la fuer@a funcional relativa de un mdulo$ es decir$ su interDs es determinar quD tan cercanamente relacionados est8n los elementos de un mdulo unos con otros' 7n mdulo co+esivo reali@a una sola tarea Actividades y principios del diseo Aa co+esin determina si los diferentes elementos de un mdulo deen estar &untos' El o&etivo es tener alta co+esin Aa co+esin y el acoplamiento est8n relacionados$ a mayor co+esin en los mdulos +ar8 menor acoplamiento entre mdulos Aa correlacin no es perfecta Co+esin Actividades y principios del diseo Jiveles de Co+esin EGisten varios niveles de co+esin 6 Coincidental 6 A!ica 6 Temporal 6 Comunicacional 6 Secuencial 6 :uncional Coincidental es la m8s a&a y la funcional la m8s alta Aa escala no es lineal A la funcional se le considera una fuerte co+esin Actividades y principios del diseo Determinando la Co+esin Descria el propsito de un mdulo en un enunciado 4ealice las si!uientes prueas (' Si el enunciado tiene que cominar varias sentencias$ contiene m8s de un vero$ el mdulo proalemente est8 desempeando m8s de una funcin' Proalemente tiene co+esin secuencial o comunicacional' ,' Si el enunciado tiene palaras relativas al tiempo como <primer=$ <si!uiente=$ <despuDs=$ <empe@ar=$ etc' el mdulo proalemente tiene co+esin secuencial o temporal' Actividades y principios del diseo M' Si el predicado del enunciado no contiene un o&eto espec"fico despuDs del vero$ el mdulo proalemente tiene co+esin l!ica' Por e&emplo <editar todos los datos=$ mientras que <editar datos empleado= puede tener co+esin funcional N' Palaras como <iniciali@a= <limpia= normalmente implican co+esin temporal 0dulos funcionalmente co+esivos siempre pueden descriirse con un enunciado simple Determinando la Co+esin CcontE