Documente Academic
Documente Profesional
Documente Cultură
Programa Magisterial
Mara de los ngeles Cruz Sosa
SINOPSIS Se desarrolla los temas contemplados en el programa magisterial de la materia que consisten en principales mtodos de Anlisis y Diseo de Software Orientado a Objetos adems de tcnicas para verificar la calidad del software tomando en cuenta que la elaboracin del software se debe cumplir con eficiencia y eficacia.
Table of Contents
1. Tcnicas de modelacin de Objetos (OMT) ...................................................... 4
Modelo de Objetos .............................................................................................................................................. 5 Modelo Dinmico ................................................................................................................................................ 5 Modelo Funcional ............................................................................................................................................... 5 Anlisis .................................................................................................................................................................... 6 Documento del anlisis ................................................................................................................................ 6 Anlisis de Objetos ............................................................................................................................................. 6 Anlisis Dinmico ............................................................................................................................................... 6 Anlisis Funcional .............................................................................................................................................. 7 Diseo ...................................................................................................................................................................... 7 Diseo de sistemas ............................................................................................................................................. 7 Documento del diseo del sistema ........................................................................................................... 8 Diseo de Objetos ............................................................................................................................................... 8
Cada modelo describe un aspecto del sistema pero contiene referencias a los dema s modelos. Lo cual indica que los tres no son totalmente independientes.
Modelo de Objetos
El modelo de objetos es el mo delo ma s importante, ya que en e l se identifican las clases dentro del sistema junto con sus relaciones, asi como sus atributos y operaciones, lo que representa la estructura esta tica del sistema. El modelo de objetos se representa mediante un diagrama de clases. Los pasos para construir el modelo de objetos son los siguientes: a. b. c. d. e. f. Identificacio n de objetos y/o clases. Crear un diccionario de datos. Identificacio n de las asociaciones y agregaciones entre los objetos. Identificacio n de atributos y enlaces. Organizacio n y simplificacio n de las clases empleando herencia. Verificacio n de las vias de acceso necesarias para llevar a cabo las probables consultas. g. Realizar las iteraciones necesarias para el refinamiento del modelo. h. Agrupar las clases en mo dulos. Modelo de objetos = Diagrama de modelo de objetos + diccionario de datos.
Modelo Dinmico
Representa los aspectos temporales de comportamiento "de control" del sistema, mediante la secuencia de operaciones en el tiempo. Los pasos para construir el modelo dina mico son los siguientes: a. b. c. d. e. Preparacio n de escenarios de secuencias tipicas de iteracio n. Identificacio n de sucesos que actu an entre objetos. Preparar un seguimiento de sucesos para cada escenario. Construccio n de un diagrama de estado para cada objeto. Comparacio n de los sucesos intercambiados entre objetos para verificar la congruencia.
Modelo Funcional
Representa los aspectos transform acionales "de funcio n" del sistema, mediante la transformacio n de valores de los datos. Se representa mediante un diagrama de flujo. Los pasos para construir el modelo funcional son los siguientes: a. Identificacio n de los val ores de entrada y de salida. b. Construccio n de diagramas de flujo de datos que muestren las dependencias funcionales. c. Descripcio n de las funciones. d. Identificacio n de restricciones. e. Especificacio n de los criterios de optimizacio n. Modelo Funcional = Diagrama de flujo de datos + restricciones.
Anlisis
Se dedica a la comprensin y modelado de la aplicacin y del dominio en el cual funciona. La entrada inicial de la fase de anlisis en una descripcin del problema que hay que resolver y proporciona una visin general conceptual del sistema propuesto. Un dilogo subsiguiente con el cliente y un conocimiento de fondo del mundo real son entradas adicionales del anlisis. La salida del anlisis es el modelo formal que captura los tres aspectos esenciales del sistema: Los objetos y sus relaciones. El flujo dinmico de control. La transformacin funcional de datos que estn sometidos a restricciones.
El modelo de anlisis debera incluir aquella informacin que sea significativa desde el punto de vista del mundo real, y debe presentar el aspecto externo del sistema. El modelo de anlisis debera resultar comprensible para el cliente del sistema, y debera de proporcionar una base til para extraer los verdaderos requisitos del sistema. Los requisitos verdaderos son los que realmente se necesitan, son congruentes internamente y adems se pueden llegar a realizar. Documento del anlisis Son los artefactos que se prepararon durante la conceptualizacin y las fases de anlisis, de que representan los requisitos de proceso para un sistema propuesto. Incluye tpicamente el siguiente: Declaracin del Problema. Requisitos Formales del Sistema. Modelos del Anlisis. Descripcin de la Interfaz Utilizada.
Anlisis de Objetos
Los pasos de progresin del microproceso para el anlisis del modelo del objeto tratan la estructura de un sistema en trminos de la organizacin y de los lazos entre sus clases y objetos. El modelo del objeto - el modelo que muestra la estructura del sistema, y captura el siguiente como parte de su representacin:
Clases y objetos identificados (diagrama de la clase de UML). Asociaciones De la Clase (Diagrama De la Clase De Uml). Atributos De la Clase (Diagrama De la Clase De Uml). Organizacin de la clase usando generalizacin/especializacin y las asociaciones de la jerarqua (diagrama de la clase de UML). Clasifique las agrupaciones en los subsistemas (diagrama de la clase de UML).
Anlisis Dinmico
Los pasos de progresin del microproceso para el anlisis modelo dinmico tratan el comportamiento del sistema y de la evolucin temporal de sus objetos. El comportamiento de cada objeto se define en los trminos de los cambios que
experimenta en respuesta a interacciones con otros objetos, tanto en el interior como en el exterior el sistema. Esta tarea requiere que el anlisis modelo del objeto se haya realizado previamente. Modelo dinmico- el modelo que describe la evolucin temporal de los objetos en un sistema. Se define de la siguiente manera: Descripcin Del Estado. Descripcin Externa Del Acontecimiento. Diagramas de estado del ciclo vital para cada clase que exhibe el comportamiento dinmico (diagrama de estado de UML). Decorados primarios y alternos (refinados / revisados). Diagrama del rastro del acontecimiento / por el decorado (refinado / revisado) (diagramas del rastro del mensaje de UML).
Anlisis Funcional
Los pasos de progresin del microproceso para el anlisis modelo dinmico tratan todas las operaciones que el sistema debe realizarse. Esta tarea requiere que el modelo del objeto y el anlisis modelo dinmico se haya realizado previamente. Operaciones identificadas- una lista y una descripcin de cada operacin identificada en cada transicin del estado (diagrama de estado de UML). Modelo funcional- el modelo que describe todas las operaciones del sistema. Se define en trminos de: Utilizar las Descripciones del Caso. Decorados (refinados / revisados). Diagrama del rastreo del acontecimiento / por el decorado (refinado / revisado) (diagrama del rastro del mensaje de UML). Especificacin de la operacin de cada operacin identificada (especificacin de la operacin de UML). Diagramas De la Interaccin Del Objeto (Diagrama Del Mensaje Del Objeto De Uml / Diagrama Simultneo Del Mensaje Del Objeto). Diseos De la Operacin. Descripciones De Procesos/Funcin. Algoritmos/Cdigos.
Los datos de los diagramas de flujo de cada operacin identificarla, donde esa operacin implica ms de una clase u objeto.
de datos e implementacin del modelo dinmico. Se establecen prioridades para hacer concesiones de diseo. Durante el disen o del sistema se an aden estructuras en el dominio de la solucio n. El modelo de disen o debe ser razonablemente eficiente y pra ctico a la hora de codificar, tratando detalles de bajo nivel que se omiten en el modelo de ana lisis. Documento del diseo del sistema Son los artefactos se prepararon durante la fase del diseo del sistema, se representa la configuracin y la estructura del sistema, pues debe ser puesta en ejecucin. Incluye tpicamente lo siguiente: Descripcin del Subsistema. Esqueleto de la Configuracin del Software lgico(a). Anlisis de Tarea Simultnea (Diagramas Simultneos Del Mensaje Del Objeto De UML). Anlisis del Almacenaje de datos (diagrama de la clase de UML). Opciones y Anlisis Razonado del Diseo. Diagramas de la Clase del Subsistema (Diagrama de la Clase de UML). Diagramas del Mdulo (Diagrama del Mdulo De UML). Diagramas de la Plataforma (Diagrama de la Plataforma de UML). Plan de la Reutilizacin del Subsistema/Componentes. Plan de Lanzamiento.
Diseo de Objetos
En el Disen o de Objetos se toman las decisiones necesarias para construir un sistema sin descender a los detalles particulares de un lenguaje o sistema de base de datos. El disen o de objetos es el comienzo de un desplazamiento con respecto al mundo real, en el mode lo de ana lisis, aproxima ndose a la orientacio n a la computadora, necesaria para una implementacio n pra ctica. Se elaboran los modelos de anlisis, se refinan, y despus se optimizan para producir un diseo prctico. Durante el diseo de objetos existe un desplazamiento de foco de atencin desde los conceptos de la aplicacin hasta los conceptos de la computadora. En primer lugar, se seleccionan los algoritmos bsicos para implementar todas las funciones fundamentales del sistema. Basndose en estos algoritmos, se optimiza entonces la estructura del modelo de objetos para una implementacin eficiente. El diseo tambin debe tener en cuenta la concurrencia y el flujo dinmico de control, segn hayan sido determinados durante el diseo del sistema. Se determina la implementacin de cada asociacin y de cada atributo. Finalmente, los subsistemas se empaquetan en mdulos.
El UML es la creacin de Grady Booch, James Rumbaugh (OMT) e Ivar Jacobson. Estos tres amigos, trabajaban en empresas distintas durante la dcada de los 80s y principios de los 90s, cada uno dise su propia metodologa para el anlisis y diseo orientado a objetos. Sus metodologas predominaron sobre las de sus competidores. A mediados de los 90s empezaron a intercambiar ideas entre s y decidieron desarrollar su trabajo en conjunto. El UML una de las herramientas ms importantes en el desarrollo de sistemas. Esto se debe a que permite a los creadores de sistemas generar diseos que capturen sus ideas en una forma convencional y fcil de comprender para comunicarlas a otras personas. Considerndose como sistema una combinacin de software y hardware que da una solucin a un problema de negocios. El desarrollo de sistemas como la creacin de un programa para un cliente a quien se debe resolver cierto problema.
Es necesario el UML pues es necesario contar con un plan bien analizado especialmente en los negocios de alto riesgo. El cliente debe comprender qu har el equipo de desarrolladores (entendindose como los programadores que generarn el programa que resolver el problema y lo distribuirn en equipos de computacin). Mediante el UML es posible sealar los cambios que surjan durante el proceso o al definir las necesidades del cliente. El UML proporciona una organizacin de tal forma que los analistas, clientes, desarrolladores y otras personas involucradas en el desarrollo del sistema lo comprendan y convengan con l.
Diagramas de UML
La finalidad de los diagramas es presentar diversas perspectivas de un sistema, a las cuales se les conoce como modelo. Un modelo UML describe lo que har un sistema, pero no dice cmo implementarlo. Diagrama de clases Un diagrama de clases representa la estructura esta tica que las clases poseen (Jacobson, 1992). Una clase es una categora o grupo de cosas que tienen atributos y acciones similares. Un rectngulo es el smbolo que representa a la clase, y se divide en tres reas. El rea superior contiene el nombre, el rea central contiene los atributos, y el rea inferior las acciones. Un diagrama de clases est formado por varios rectngulos de este tipo conectados por lneas que muestran la manera en que las clases se relacionan entre s.
Diagrama de objetos Un objeto es una instancia de una clase (una entidad que tiene valores especficos de los atributos y acciones). Un rectngulo es el smbolo que representa al objeto. El nombre de la instancia especfica se encuentra a la izquierda de los dos puntos (:), y el nombre de la clase a la derecha.
Diagrama de Casos de Uso El modelo de casos de uso consta de actores que representan los roles que los diferentes usuarios pueden desempen ar, y los casos de uso que representan lo que deben estar en capacidad de hacer los usuarios con el software por construir. Un diagrama de casos de uso muestra la funcionalidad que ofrece el sistema futuro desde la perspectiva de los usuarios externos al mismo (Jacobson, 1992). Es una descripcin de las acciones de un sistema desde el punto de vista del usuario. Es tcnica de aciertos y errores para obtener los requerimientos del sistema desde el punto de vista del usuario.
Diagrama de Estados Se utilizan para describir el comportamiento de un sistema, representa los diferentes estados que puede adquirir una clase, como representarla a diferentes etapas de su vida. El estado de un objeto se puede caracterizar por el valor de uno o varios de los atributos de su clase, adems, el estado de un objeto tambin se puede caracterizar por la existencia de un enlace con otro objeto. El smbolo que est en la parte superior de la figura representa el estado inicial y el de la parte inferior el estado final.
Diagrama de secuencias Representa una interaccin de objetos entre s. Muestra la mecnica de la interaccin con base en tiempos.
Diagrama de actividades Es una representacio n de una serie de acciones dentro de uno o varios hilos de proceso condicionadas por unos nodos de control
Diagrama de colaboraciones Esta diseado con el fin de representar cmo trabajan en conjunto los elementos de un sistema para cumplir con los objetivos del sistema.
Diagrama de componentes Los diagramas de componentes describen los elementos fisicos del sistema y sus relaciones. Muestran las opciones de realizacio n incluyendo co digo fuente, binario y ejecutable. Los componentes representan todos los tipos de elementos software que entran en la fabricacio n de aplicaciones informa ticas , pueden ser simples archivos, paquetes, bibliotecas cargadas dina micamente, etc.
Diagrama de distribucin Muestra la arquitectura fsica de un sistema informtico. Puede representar los equipos y dispositivos, mostrar sus interconexiones y el software que se encontrar en cada mquina. Cada computadora est representada por un cubo y las interacciones entre las computadoras estn representadas por lneas que conectan a los cubos.
Diagramas de Paquetes Los diagramas de paquetes se usan para reflejar la organizacin de paquetes y sus elementos. Cuando se usan para representaciones, los diagramas de paquete de los elementos de clase se usan para proveer una visualizacin de los espacios de nombres. Los usos ms comunes para los diagramas de paquete son para organizar diagramas de casos de uso y diagramas de clase.
Nota UML ser til para presentar una clara explicacin del porqu un diagrama esta all o la manera en que trabaja. Imaginando a una nota como el equivalente de un papel adhesivo. La nota es un rectngulo con una esquina doblada, y dentro del rectngulo se coloca la explicacin. Se adjunta la nota al elemento del diagrama conectndolos mediante una lnea discontinua.
Estereotipos Un estereotipo le permite crear nuevos elementos a partir de otros existentes. El concepto de una interfaz provee un buen ejemplo de un estereotipo. Una interfaz es una clase que realiza operaciones y que no tiene atributos, es un conjunto de acciones que tal vez quiera utilizar una y otra vez en su modelo. La forma de representar un esteriotipo es en el smbolo de una clase con <<Interfaz>> situada justo sobre el nombre de la clase. El modelo de interfaces especifica co mo interactu a el software por construir con actores externos al ejecutar los casos de uso; en particular, en los sistemas de informacio n ricos en interaccio n con el usuario, especifica co mo se visualizara n
las interfaces gra ficas de usuario y que funcionalidad ofrecera cada una de ellas (Weitzenfeld, 2005)
3. Identificar los objetos principales en el sistema. 4. Desarrollar modelos de diseo. 5. Especificar interfaces. El diseo no es un proceso secuencias tajante, se desarrolla al obtener ideas, proponer soluciones y corregirlas conforme la informacin se encuentra disponible.
OCL tiene sus palabras reservadas para referirse a objetos, restricciones, funciones entre otros. Los resultados obtenidos en varios ejemplos demuestran que usar OCL en el chequeo de reglas de consistencia del modelo UML es un muy buen acercamiento, ya que define todo lo concerniente a las reglas de consistencia de modelos UML en el nivel del metamodelo.
3. Patrones de diseo
Introduccin a los Patrones de Diseo
Los patrones de diseo se derivaron de ideas planteadas por Christopher Alexander (Alexander et al., 1977), quien sugiri que haba ciertos patrones comunes de diseo de construccin que eran relativamente agradables y efectivos. Segn Christopher Alexander, cada patrn describe un problema que ocurre una y otra vez en nuestro entorno, as como la solucin a ese problema, de tal modo que se pueda aplicar esta solucin un milln de veces, sin hacer lo mismo dos veces. Aunque se refera a patrones en ciudades y edificios, lo que dice tambin es vlido para patrones de diseo orientados a objetos. Los cuatro elementos de un patro n: El nombre, el problema, la solucio n y la consecuencia 1) El nombre del patro n: describe un problema con una o dos palabras, sus soluciones y la consecuencia. a. Nombrar un patro n incrementa los vocabularios de disen o. b. Nos permite disen ar con abstraccio n de un nivel ma s alta. 2) El problema: describe cua ndo se puede aplicar el patro n. Explica el problema y su contexto. a. Problemas especificos: tales co mo representar los algorit mos con objetos. b. Clases o estructuras de objetos que son sintoma ticas de un disen o inflexible. c. Una lista de condiciones que se tienen que satisfacer antes de aplicar el patro n. 3) La solucio n: describe los elementos que forman el disen o, sus relaciones, responsabilidades y cooperaciones. a. No describe ningu n disen o concreto. b. Un patro n es una plantilla para muchas situaciones diferentes. c. Un patro n dispone la descripcio n abstracta de un problema de disen o y co mo se resuelve con elementos (clases y objetos) generales. 4) Las consecuencias: los buenos resultados e inconvenientes de aplicar el patro n. a. Para evaluar las soluciones del patro n y entender los costes y beneficios de aplicar el patro n. b. El equilibrio entre el espacio y el tiempo. c. Puede tratar asuntos de lenguajes e implementaciones. d. El impacto sobre la flexibilidad, extensibilidad y portabilidad.
Los patrones de diseo resuelven muchos de los problemas diarios con los que se enfrentan los diseadores orientados a objeto, y lo hacen de formas diferentes. El modelado estricto del mundo real conduce a un sistema que refleja las realidades presentes pero no necesariamente las futuras. Las abstracciones que surgen durante el diseo son fundamentales para lograr un diseo flexible. Los patrones de diseo ayudan a identificar abstracciones menos obvias y los objetos que las expresan. Por ejemplo, los objetos que representan un proceso o algoritmo no tienen lugar en la naturaleza, y sin embargo son una parte crucial de los diseos flexibles. El patrn Strategy describe cmo implementar familias intercambiables de algoritmos. El patrn State representa cada estado de una entidad como un objeto.
Estos objetos rara vez se encuentran durante el anlisis o incluso en las primeras etapas del diseo; son descubiertos ms tarde, mientras se trata de hacer al diseo ms exible y reutilizable. El patrn Facade describe cmo representar subsistemas completos como objetos. El patrn Flyweight describe cmo permitir un gran nmero de objetos de granularidad muy na.
Otros patrones de diseo describen formas concretas de descomponer un objeto en otros ms pequeos. Los patrones Abstract Factory y Builder producen objetos cuya nica responsabilidad es crear otros objetos. El patrn Visitor y el Command dan lugar a objetos cuya nica responsabilidad es implementar una peticin en otro objeto o grupo de objetos.
Los patrones de diseo ayudan a denir interfaces identicando sus elementos clave y los tipos de datos que se envan a la interfaz. Un patrn de diseo tambin puede decir qu no debemos poner en la interfaz. El patrn Memento (Recuerdo) es un buen ejemplo de esto. Dicho patrn describe cmo encapsular y guardar el estado interno de un objeto para que ste pueda volver a ese estado posteriomente. El patrn estipula que los objetos Recuerdo deben denir dos interfaces: una restringida, que permita a los clientes albergar y copiar el estado a recordar, y otra protegida que slo pueda usar el objeto original para almacenar y recuperar dicho estado. Los patrones de diseo tambin especican relaciones entre interfaces. En concreto, muchas veces requieren que algunas clases tengan interfaces parecidas, o imponen restricciones a las interfaces de algunas clases. Por ejemplo, tanto el patrn Decorator como el Proxy requieren que las interfaces de los objetos Decorador y Proxy sean idnticos a los objetos decorado y representado, respectivamente. En el patrn Visitor, la interfaz Visitante debe reejar todas las clases de objeto que pueden ser visitados.
Los sistemas embebidos por lo general operan de manera continua, es decir, su operacin no tiene fin. Comienzan cuando el hardware se activa y deben ejecutarse hasta que el hardware se desactiva. Esto significa que tambin pueden usarse tcnicas para ingeniera de software fiable, para garantizar la operacin continua. El sistema de tiempo real puede incluir mecanismos de actualizacin que soporten reconfiguracin dinmica, de forma que el sistema pueda actualizarse mientras se encuentra en servicio. Los conflictos de proteccin y fiabilidad pueden dominar el diseo del sistema. Muchos sistemas embebidos controlan dispositivos cuyas fallas pueden tener altos costos humanos o econmicos. Por lo tanto, la confiabilidad es crtica y el diseo del sistema debe garantizar comportamiento crtico para la proteccin en todo momento. Con frecuencia, esto conduce al diseo a un enfoque conservador, en el que se usan tcnicas de probada eficacia en vez de tcnicas ms recientes que pueden introducir nuevo modos de falla.
En un mismo sistema pueden coexistir partes crticas y acrticas. Procesos Peridicos: bajo nivel, testeo de sensores, periodo dependiente de las caractersticas fsicas del sistema. Procesos Aperidicos: Aparecen como causa de eventos dinmicos: fallos, operacin, etc.
Cuando se analizan los requerimientos de temporizacin de los sistemas embebidos de tiempo real y se disean sistemas para cumplir dichos requerimientos, existen tres factores clave que se deben considerar: 1. Plazos: Tiempos en que deben procesarse los estmulos y producir alguna respuesta por parte del sistema. Si no se cumple un plazo, entonces, si es un sistema de tiempo real duro, se trata de una falla de sistema; en un sistema de tiempo real blando, el resultado es un servicio de sistema degradado. 2. Frecuencia: El nmero de veces por segundo que debe ejecutarse un procesa para tener la seguridad de siempre cumplir con los plazos. 3. Tiempo de ejecucin: Tiempo requerido para procesar un estmulo y producir una respuesta. Con frecuencia se debn tomar en cuenta dos tiempo de ejecucin: a. El tiempo de ejecucin promedio de un proceso b. El tiempo de ejecucin del peor escenario para dicho proceso. No siempre el tiempo de ejecucin es el mismo, debido a la ejecucin condicional del cdigo, demoras en espera de otros procesos, etctera. En
un sistema de tiempo real duro, tal vez deba hacer suposiciones con base en el tiempo de ejecucin del peor escenario para asegurarse de que no venzan los plazos. En los sistemas de tiempo real blandos, quiz deba basar sus clculos en el tiempo de ejecucin promedio.
por adelantado. En contraste, los sistemas embebidos de tiempo real deben responder en cualquier momento a sucesos inesperados. Esto conduce a un diseo de sistemas de tiempo real basado en concurrencia, con algunos procesos que se ejecutan en paralelo. Puede haber limitaciones fsicas que afecten el diseo de un sistema. Ejemplos de esto incluyen las limitaciones en la energa disponible al sistema y al espacio fsico que ocupa el hardware. Dichas limitaciones pueden generar requerimientos para el software embebido, tal como la necesidad de conservar energa y as prolongar la vida de la batera. Las limitaciones de tamao y peso pueden significar que el software debe hacerse cargo de algunas funciones de hardware debido a la necesidad de restringir el nmero de chips usados en el sistema. Tal vez se requiera interaccin directa con el hardware. En los sistemas interactivos y en los sistemas de informacin, hay una capa de software (los controladores del dispositivo) que ocultan el hardware del sistema operativo. Esto es posible porque slo se puede conectar ciertos tipos de dispositivos a dichos sistemas, tales como teclados, ratones, pantallas, etctera. En contraste, los sistemas embebidos deben interactuar con una amplia gama de dispositivos de hardware que no tienen controladores de dispositivos separados.
Diseo de algoritmo Para cada estmulo y respuesta se disean algoritmos que realizan los clculos requeridos. Tal vez se deban desarrollar los diseos de algoritmo en etapas relativamente tempranas del proceso de diseo, para dar un indicio de la cantidad de procesamiento requerido y del tiempo necesario para completar dicho procesamiento. Esto es especialmente importante para tareas de cmputo intenso, como el procesamiento de seales. Diseo de datos Se especifica la informacin que intercambian los procesos y eventos que coordinan el intercambio de informacin, y se disean las estructuras de datos para administrar este intercambio de informacin. Varios procesos concurrentes pueden compartir estas estructuras de datos. Planeacin del proceso Se disea un sistema de planeacin que garantice que los procesos iniciarn a tiempo para cumplir sus plazos.
5.-Administracin de la fundamentacin
La Administracin de la Configuracin del Software (SCM) es la disciplina de identificar la configuracin de un sistema en distintos puntos en el tiempo, con el propsito de controlar sistemticamente cambios en la configuracin del software y mantener la integridad y la rastreabilidad de la configuracin a travs del ciclo de vida del sistema. Tambie n traducida como Gestio n de configuraciones (CM) es el desarrollo y aplicacio n de esta ndares y procedi mientos para gestionar un sistema software evolutivo. Como se expuso en el tema 4 segundo subtema (Anlisis de Requerimientos de Sistemas en Tiempo Real Orientado a Objetos), los requerimientos del sistema siempre cambian durante su desarrollo y su uso, y se tienen que incorporar estos requerimiento s en nuevas versiones del sistema. Es necesario gestionar estos sistemas que evolucionan, porque es fa cil perder la pista de los cambios que se han incorpor ado dentro de cada versio n. Las versiones incorporan propuestas de cambios, correcciones de fallos y, adaptaciones para hardware y sistemas operativos diferentes. Pueden existir varias versiones en desarrollo y en uso al mismo tiempo. Si no se tienen unos procedimientos de gestio n de configuraciones adecuados, se puede hacer un esfuerzo inu til modificando la versio n erro nea de un sistema, entregar una versio n incorrecta a los clientes o perder la pista de do nde ha sido guardado el co digo fuente. Los procedimientos de gestio n de configuraciones definen co mo registrar y procesar los cambios propuestos al sistema, co mo relacionar e stos con los componentes del sistema y los me todos utilizados para identificar las diversas versiones del sistema. Las herramientas de gestio n de configuraciones se utilizan para almacenar las versiones de los componentes del sistema, construir sistemas a partir de estos componentes y llevar el registro de entregas de las versiones del sistema a los clientes.
Algunas veces, la gestio n de configuraciones es parte de un proceso general de gestio n de la calidad del software, donde el mismo gestor comparte las responsabilidades de la gestio n de la calidad y de la configuracio n . Los desarrolladores del software entregan e ste al equipo de garantia de calidad, quienes son responsables de la comprobacio n de que el sistema es de calidad aceptable. Aqui comienza a ser un sistema controlado, lo que significa que los cambios en el sistema tienen que ser acordados y registrados antes de ser implementados. Algunas veces, los sistemas controlados se denominan lineas base puesto que son el punto de inicio para la evolucio n controlada. Hay muchas razones por las que los sistemas existen en diversas configuraciones. E stas se producen para diferentes computadoras, para diferentes sistemas operativos, para incorporar funciones especificas del cliente, etce tera. Los gestores de la configuracio n son responsables de llevar los registros de las diferencias entre las versiones del software, para asegurar que las nuevas versiones se deriven de forma controlada y para entregar las nuevas versiones a los clientes correctos en el momento justo. La definicio n y uso de gestio n de configuraciones es esencial para la certificacio n de calidad ISO 9000 y para los esta ndares C M M y CMMI (Paulk et al, 1995; Ahem et al 2001; Peach, 1996). Un ejemplo de tal esta ndar es el IEEE 828 -1998, que define un esta ndar para los planes de la gestio n de configuraciones. Dentro de una organizacio n, estos esta ndares se publican en un manual de gestio n de configuraciones o como parte del man ual de calidad. Los esta ndares extemos se utilizan como base para esta ndares organizacionales detallados y se ajustan a un entorno especifico.
Conceptos de la fundamentacin
Las cuatro principales funciones de la Gestin de Configuraciones pueden resumirse en: Llevar el control de todos los elementos de configuracin de la infraestructura TI con el adecuado nivel de detalle y gestionar dicha informacin a travs de la Base de Datos de Configuracin (CMDB). Proporcionar informacin precisa sobre la configuracin TI a todos los diferentes procesos de gestin. Interactuar con las Gestiones de Incidentes, Problemas , Cambios y Versiones de manera que estas puedan resolver ms eficientemente las incidencias, encontrar rpidamente la causa de los problemas, realizar los cambios necesarios para su resolucin y mantener actualizada en todo momento la CMDB. Monitorizar peridicamente la configuracin de los sistemas en el entorno de produccin y contrastarla con la almacenada en la CMDB para subsanar discrepancias.
Control de cambios sobre elementos de configuracin y lineas base. Obtener aprobacin de solicitudes de cambio sobre productos de trabajo de linea base Mantener actualizado y publicar el estado de los elementos de configuracin Realizar auditoras de la gestin de configuracin
Elementos de Informe de configuracin estado de elementos de configuracin Registros de la gestin de configuracin. Linea base. Registro de cambios Informe de auditoria de gestin de configuracin
Administracin de la fundamentacin
El informe del estado de la configuracin es la actividad de reportar la informacin necesaria para gestionar de forma efectiva la configuracin de software. En esta actividad se disea y opera un sistema para la captura y reporte de la informacin necesaria a medida que avanza el ciclo de vida. Como en cualquier sistema de informacin, la informacin sobre el estado de la configuracin que se quiere gestionar debe ser identificada, recogida y mantenida. Son necesarias diversas mtricas e informacin para dar soporte al proceso de gestin de configuracin. El tipo de informacin disponible incluye la identificacin de configuracin aprobada as como el estado actual de la implementacin de los cambios. Por ejemplo, informacin del tipo: Un registro de documentacin de configuracin aprobada. La designacin de un responsable de los elementos de configuracin del proyecto. El estado de cambios propuestos y desviaciones de la configuracin. La implementacin del estado de los cambios aprobados. La configuracin de todas las unidades de los elementos de configuracin en el inventario. Resultados de las auditoras.
Para llevar a cabo estas actividades de recogida de datos y generacin de informes se hace necesario el soporte de una herramienta automatizada. La actividad de auditora de configuracin de software determina en qu medida un elemento de configuracin satisface sus caractersticas funcionales y fsicas requeridas. Se pueden realizar auditoras de este tipo en puntos clave del ciclo de vida. El resultado satisfactorio de una auditora se puede utilizar como prerrequisito para establecer una lnea base del producto. El objetivo de las auditoras de gestin de configuracin es asegurarse de que: Los elementos de configuracin se encuentran en el directorio apropiado. El estado actual de los elementos de configuracin es consistente. La informacin de lnea base se mantiene de forma correcta. Se verifica la conformidad con estndares y procedimientos aplicables a la gestin de configuracin, por ejemplo, comprobando si se usa la versin correcta del documento de diseo para realizar la codificacin.
Como resultado de la auditora se deber generar un informe donde se registren todas las no conformidades detectadas y as iniciar un plan de mejora para solucionarlas. Despus de una auditora de configuracin exitosa se puede establecer una lnea base del producto. La verificacin no se realiza sobre los propios productos sino que consiste en comprobar que los productos que conforman una lnea base estn gestionados correctamente bajo el control de configuracin, que todos los cambios realizados sobre estos productos han sido registrados y, por tanto, se puede establecer una trazabilidad entre cambios y productos afectados.
creo. En general, un mo dulo se entiende como un componente software que cumple las siguiente caracteristicas: Debe ser un bloque ba sico de construccio n de programas. Debe implementar una funcio n independiente simple. Podra ser probado al cien por cien por separado. No debera tener ma s de 500 lineas de co digo.
Tanto pruebas de caja blanca como de caja negra han de aplicar para probar de la manera ma s completa posible un mo dulo. No tese que las pruebas de caja negra (los casos de prueba) se pueden especificar antes de que mo dulo sea programado, no asi las pruebas de caja blanca. Pruebas de Integracion Au n cuando los mo dulos de un programa funcionen bien por separado es necesario probarlos conjuntamente: un mo dulo puede tener un efecto adverso o inadvertido sobre otro mo dulo; las subfunciones, cuando se combinan, pueden no producir la funcio n principal deseada; la imprecisio n aceptada individuamente puede crecer hasta niveles inaceptables al combinar los mo dulos; los datos pueden perderse o malinterpretarse entre interfaces, etc. Por lo tanto, es necesario probar el software ensamblando todos los mo dulos probados previamente. E sta es el objetivo de la pruebas de integracio n. A menudo hay una tendencia a intentar una integracio n no incremental; es decir, a combinar todos los mo dulos y probar todo el programa en su conjunto. El resultado puede ser un poco cao tico con un gran conjunto de fallos y la consiguiente dificultad para identificar el mo dulo (o mo dulos) que los provoco . En contra, se puede aplicar la integracio n incremental en la que el programa se prueba en pequen as porciones en las que los fallos son ma s fa ciles de detectar. Existen dos tipos de integracio n incremental, la denominada ascendente y descendente. Veamos los pasos a seguir para cada caso: Integracio n incremental ascendente: 1. Se combinan los mo dulos de bajo nivel en grupos que realicen una subfuncio n especifica 2. Se escribe un controlador (un programa de control de la prueba) para coordinar la entrada y salida de los casos de prueba. 3. Se prueba el grupo 4. Se eliminan los controladores y se combinan los grupos movie ndose hacia arriba por la estructura del programa. Integracio n incremental descendente: 1. Se usa el mo dulo de control principal como controlador de la prueba, creando resguardos (mo dulos que simulan el funcionamiento de los mo dulos que utiliza el que esta probando) para todos los mo dulos directamente subordinados al mo dulo de control principal.
2. Dependiendo del enfoque e integracio n elegido (es decir, primero -enprofundidad, o primero-en-anchura) se van sustituyendo uno a uno los resguardos subordinados por los mo dulos reales. 3. Se llevan a cabo pruebas cada vez que se integra un nuevo mo dulo. 4. Tras terminar cada conjunto de pruebas, se reemplaza otro resguardo con el mo dulo real. Para la generacin de casos de prueba de integracin, ya sea descendente o ascendente se utilizan tcnicas de caja negra. Pruebas del Sistema Este tipo de pruebas tiene como propsito ejercitar profundamente el sistema para verificar que se han integrado adecuadamente todos los elementos del sistema (hardware, otro software, etc.) y que realizan las funciones adecuadas. Concretamente se debe comprobar que: - Se cumplen los requisitos funcionales establecidos. - El funcionamiento y rendimiento de las interfaces hardware, software y de usuario. - La adecuacin de la documentacin de usuario. - Rendimiento y respuesta en condiciones lmite y de sobrecarga. Para la generacio n de casos de prueba de sistema se utilizan te cnicas de caja negra. Este tipo de pruebas se suelen hacer inicialmente en el entrono del desarrollador, denominadas Pruebas Alfa, y seguidamente en el entrono del cliente denominadas Pruebas Beta. Pruebas de Aceptacion A la hora de realizar estas pruebas, el producto esta listo para implantarse en el entorno del cliente. El usuario debe ser el que realice las pruebas, ayudado por personas del equipo de pruebas, siendo deseable, que sea el mismo usuario quien aporte los casos de prueba. Estas pruebas se caracterizan por: - Participacio n activa del usuario, que debe ejecutar los casos de prueba ayudado por miembros del equipo de pruebas. - Esta n enfocadas a probar los requisitos de usuario, o mejor dicho a demostrar que no se cumplen los requisitos, los criterios de aceptacio n o el contrato. Si no se consigue demostrar esto el cliente debera aceptar el producto - Corresponden a la fase final del proceso de desarrollo de software. Es muy recomendable que las pruebas de aceptacio n se realicen en el entorno en que se va a explotar el sistema (incluido el personal que lo maneje). En caso de un producto de intere s general, se realizan pruebas con varios usuarios que reportara n sus valoraciones sobre el producto. Para la generacio n de casos de prueba de aceptacio n se utilizan te cnicas de caja negra.
Pruebas de Regresion La regresio n consiste en la repeticio n selectiva de pruebas para detectar fallos introducidos durante la modificacio n de un sistema o componente de un sistema. Se efectuara n para comprobar que los cambios no han originado efectos adversos no intencionados o que se siguen cumpliendo los requisitos especificados. En las pruebas de regresio n hay que: Probar integramente los mo dulos que se han cambiado. Decidir las pruebas a efectuar para los mo dulos que no han cambiado y que han sido afectados por los cambios producidos.
Este tipo de pruebas ha de realizarse, tanto durante el desarrollo cuando se produzcan cambios en el software, como durante el mantenimiento.
Cada uno de estos objetivos es importante en si, pero para el ingeniero de software, la calidad del producto debe de ser lo esencial.
se conocer entre los ejemplos que se tratarn ms adelante: se cuentan el nmero de descendientes (nmero de instancias inmediatas de una clase), nmero de predecesores (nmero de generalizaciones inmediatas), y grado de anidamiento de la jerarqua de clases (profundidad de una clase dentro de una jerarqua de herencia) y otros. Te cnicas de abstraccio n de objetos. Dado que una clase es una abstraccin que se puede visualizar con muchos niveles distintos de detalles, y de muchas maneras diferentes, las mtricas OO representan la abstraccin en trminos de medidas de una clase (p.ej.: nmero de instancias por clase por aplicacin).
una u nica operacio n, es posible que las responsabilidades no hayan sido bien estipuladas dentro de la clase. Complejidad de operacio n (CO). La complejidad de una operacio n se consigue calcular empleando cualquiera de las me tricas de complejidad propuestas para el software convencional s abiendo que las operaciones convendrian limitarlas a una responsabilidad especifica, en donde el disen ador deberia esforzarse por mantener el valor de CO tan bajo como sea posible. Nu mero Medio de Para metros por operacio n (NPavg). En cuanto sea ma s grande el nu mero de para metros de la operacio n, sera ma s compleja la colaboracio n entre objetos. En general, NPavg deberia de mantenerse tan bajo como sea posible.
Mtodos Formales
Los mtodos formales son un conjunto de tendencias de desarrollo de software y hardware en donde la especificacin, verificacin y diseo de componentes se realiza mediante notaciones, lenguajes, herramientas y tcnicas basadas en teoras con slido fundamento matemtico.
Conceptos Bsicos
No so lo incluyen fundamentos matema ticos y sobre orientacio n a objetos sino tambie n fundamentos sobre procesos de produccio n de software . Los mtodos formales que se utilizan para describir sistemas de computadoras son tcnicas de base matemtica para describir las propiedades del sistema. Estos mtodos formales proporcionan marcos de referencia en el seno de los cuales las personas pueden especicar, desarrollar y vericar los sistemas de manera sistemtica, en lugar de hacerlo ad hoc. Se dice que un mtodo es formal si posee una base matemtica estable, que normalmente vendr dada por un lenguaje formal de especicacin. Esta base proporciona una forma de denir de manera precisa nociones tales como la consistencia y completitud, y, lo que es aun ms relevante, la especicacin, la implementacin y la correccin.
Conceptos Bsicos
Fundamentos bsicos matemticos Fundamentos sobre OO Proceso de desarrollo de software
Modelos Matemticos
Lgica de primer orden Especificaciones algebraicas Redes de petri Lgica Temporal
Mtodos Formales OO
Mtodos semi-formales
Mtodos generalistas Mtodos orientados a sistemas reactivos Mtodos orientados a componentes
Mtodos Formales
Mtodos basados en lgica de primer orden Mtodos basados en formalismos algebricos Mtodos basados en lgica temporal
Preliminares Matemticos
Se pueden encontrar multitud de mtodos y tcnicas formales con lo que los criterios de clasificacin son bastante variados. La clasificacin ms comn se realiza en base al modelo matemtico subyacente en cada mtodo, de esta manera podran clasificarse en: Especificaciones basadas en lgica de primer orden y teora de conjuntos: permiten especificar el sistema mediante un concepto formal de estados y operaciones sobre estados. Los datos y relaciones/funciones se describen en detalle y sus propiedades se expresan en lgica de primer orden. La semntica de los lenguajes est basada en la teora de conjuntos. Los mtodos de este tipo ms conocidos son: Z, VDM y B. Especificaciones algebraicas: proponen una descripcin de estructuras de datos estableciendo tipos y operaciones sobre esos tipos. Para cada tipo se define un conjunto de valores y operaciones sobre dichos valores. Las operaciones de un tipo se definen a travs de un conjunto de axiomas o ecuaciones que especifican las restricciones que deben satisfacer las operaciones. Mtodos ms conocidos: Larch, OBJ, TADs. Mtodos basados en Redes de Petri: una red de petri es un formalismo basado en autmatas, es decir, un modelo formal basado en flujos de informacin. Permiten expresar eventos concurrentes. Los formalismos basados en redes de petri establecen la nocin de estado de un sistema mediante lugares que pueden contener marcas. Un conjunto de transiciones (con pre y post condiciones) describe la evolucin del sistema entendida como la produccin y consumo de marcas en varios puntos de la red. Mtodos basados en lgica temporal: se usan para especificar sistemas concurrentes y reactivos. Los sistemas reactivos son aquellos que mantienen una continua interaccin con su entorno respondiendo a los estmulos externos y produciendo salidas en respuestas a los mismos, por lo tanto el orden de los eventos en el sistema no es predecible y su ejecucin no tiene por qu terminar. Una especificacin escrita en lgica temporal describe las secuencias admisibles de estado (incluyendo estados concurrentes) para el sistema especificado.
Esta descripcin de estado se asemeja a la declaracin de variables de un programa. Afirma que usados y libres sern los conjuntos de bloques y que ColuBloques ser una sucesin, cada uno de cuyos elementos ser un conjunto de bloques. El invariante de datos se escribir de la siguiente manera:
Los componentes matemticos del invariante de datos se corresponden con los cuatro componentes del lenguaje natural marcados que se han descrito anteriormente. En la primera lnea del invariante de datos se establece que no habr bloques comunes en la coleccin de bloques usados y en la coleccin de bloques libres. En la segunda lnea se establece que la coleccin de bloques usados y de bloques libres ser siempre igual a la coleccin completa de bloques del sistema. La tercera lnea indica que el elemento i-simo de la cola de bloques ser siempre un subconjunto de los bloques usados. La ltima lnea afirma que si dos elementos de la cola de bloques no son iguales, entonces no existirn componentes comunes en estos dos elementos. Los dos ltimos componentes en lenguaje natural del invariante de datos se implementan como consecuencia del hecho consistente en que usados y libres son conjuntos, y por tanto no contendrn duplicados. La primera operacin que se va a definir es la que elimina un elemento de la parte anterior de la cola de bloques. La precondicin es que debe de existir al menos un elemento en la cola: #ColaBloques > O, La postcondicin es que es preciso eliminar la cabeza de la cola y es preciso ubicarla en la coleccin de bloques libres, y es preciso ajustar la cola para mostrar esa eliminacin:
Una convencin que se utiliza en muchos mtodos formales es que el valor de una variable despus de una cierta operacin lleva el signo prima. Por tanto, el primer componente de la expresin anterior afirma que el nuevo conjunto de bloques usados (usados) ser igual al conjunto bloques usados anterior menos los bloques que hayan sido eliminados. El segundo componente afirma que el nuevo conjunto de bloques libres (libres) ser el conjunto viejo de bloques libres despus de aadir la cabeza de la cola de bloques. El tercer componente afirma que la cola nueva de bloques ser igual a la cola del viejo valor de la cola de bloques, es decir, a todos los elementos de la cola salvo el primero. Una segunda operacin es la que se encarga de aadir una cola de bloques BloquesA a la cola de bloques. La precondicin es que BloquesA sea en ese momento un conjunto de bloques usados:
Cmo se pueden representar las precondiciones y las postcondiciones? La postcondicin es que el conjunto de bloques se aade al final de la cola de bloques y el conjunto de bloques libres y usados permanece invariable:
No cabe duda de que la especificacin matemtica de la cola de bloques es considerablemente ms rigurosa que una narracin en lenguaje natural o un modelo grfico. Este rigor adicional requiere un cierto esfuerzo, pero los beneficios ganados a partir de una mejora de la consistencia y de la completitud puedan justificarse para muchos tipos de aplicaciones.
certificacin empleados en el proceso de prueba. Las metas de certificacin, primero establecidas en el plan de medida y refinadas en el plan de prueba de incremento, se pueden expresar en trminos tales como el ndice de confiabilidad del software. Mediante un proceso de refinamiento progresivo, se van refinando las cajas para formar una jerarqua en la cual cada caja tiene una transferencia. Para esto, al interior de la ingeniera del software de sala limpia, se utilizan tres tipos de cajas: Caja negra: Especifica el comportamiento del sistema, o de una parte de un sistema. Caja de estado: Esta caja encapsula los datos de estados y de servicios de forma anloga a los objetos. En esta vista de especificacin, se representan las entradas a la caja de estados y sus salidas. Caja transparente: Las funciones de transicin que estn implicadas en la caja de estados se definen en la caja transparente. La ingeniera del software de sala limpia se diferencia de otros mtodos o paradigmas por las siguientes razones: Hace uso explcito del control estadstico de calidad. Verifica la especificacin del diseo empleando una demostracin de correccin basada en las matemticas. Hace mucho uso de la comprobacin estadstica de utilizacin para descubrir errores de especial incidencia.
Especificacin funcional
Caja Negra Una especificacin de caja negra describe una abstraccin, estmulos y respuestas. La funcin f' se aplica a una secuencia, S*, de entradas (estmulos) y esta funcin los transforma en una salida (respuesta), R. Para componentes sencillos de software, f; puede ser una funcin matemtica, pero en general f se describe empleando el lenguaje natural (o bien un lenguaje de especificacin formal). Muchos de los conceptos introducidos para sistemas orientados a objetos son aplicables tambin para la caja negra. Las abstracciones de datos y las operaciones que manipulan estas abstracciones, se ven encapsuladas por la caja negra. Al igual que una jerarqua de clases, la especificacin de caja negra puede mostrar las jerarquas de utilizacin en que las cajas de nivel inferior heredan las propiedades de las cajas de nivel superior dentro de la estructura de rbol.
Caja de estado La caja de estado es una generalizacin sencilla de una mquina de estado. Recordando la descripcin del modelado de comportamiento y de los diagramas de transicin de estados, un estado es algn modo observable de comportamiento del sistema. A medida que se produce el procesamiento, el sistema va respondiendo a sucesos (estmulos) efectuando una transicin que parte del estado y llega a algn nuevo estado. A medida que se efecta la transicin, puede producirse una accin. La caja de estado utiliza una abstraccin de datos para determinar la transicin al estado siguiente (respuesta) que se producir como consecuencia de la transicin.
La caja de estado contiene una caja negra. El estmulo, S, que se introduce en la caja negra, procede de alguna fuente externa y de un conjunto de estados internos del sistema, T. Mills proporciona una descripcin matemtica de la funcin f, de la caja negra contenida en el seno de la caja de estado:
donde g es una subfuncin que est asociada a un estado especfico t. Cuando se consideran en su conjunto, las parejas de estados y subfunciones (t, g) definen la funcin de caja negra. Caja transparente o limpia La especificacin de caja limpia est ntimamente relacionada con el diseo de procedimientos y con la programacin estructurada. En esencia, la subfuncin g, que se encuentra dentro de la caja de estado, se ve sustituida por las estructuras de programacin estructurada que implementa g.
Como ejemplo, considrese la caja limpia que se muestra en la Figura 26 La caja negra g, que se muestra en Figura 25 se ve sustituida por una sucesin de estructuras que contienen una estructura condicional. stas, a su vez, se pueden refinar para formar cajas transparentes del interior a medida que vaya avanzando el procedimiento de refinamiento progresivo. Es importante tener en cuenta que la especificacin de procedimientos descrita en la jerarqua de caja limpia se puede demostrar a efectos de correccin. Este tema se considerar en la seccin siguiente Refinamient o y verificacin del diseo.
En cada nivel de refinamiento, el equipo de sala limpia lleva a cabo una verificacio n formal de correccio n. Para lograr esto, se asocia un conjunto de condiciones gene ricas de correccio n a las estructuras de programacio n estructurada. Si se expande una funcio n f para dar sucesio n a g y h entonces la condicio n de correccio n para todas las entradas de f es:
Es cierto que g seguido por h da lugar a f? Si se refina una funcio n p para llegar a una estructura condicional (si -entoncessino), la condicio n de correccio n para toda entrada de p es: Siempre que sea cierta la condicion (c) es ciert o que q realiza p y siempre que (c) sea falsa, es cierto que y realiza p? Si se refina una funcio n m en forma de bucle, las condiciones de correccin para todas las entradas de m son: Esta garantizada la finalizacion? Siempre que (c) sea verdadera es cierto que n seguido por m, siempre que (c) sea falso sigue realizandose m si se obvia el bucle? Cada vez que se refina una caja limpia hasta el siguiente nive l de detalle, se aplican las condiciones de correccio n indicadas anteriormente.
Fuentes de Informacin
Modelado y Diseo Orientados a Objetos, metodologa OMT. J. Rumbaugh, M. Blaha, W. Premerlani, F. Eddy, W. Lorensen. Tcnica de Modelado de Objetos (OMT). J. Rumbaugh. Anlisis y Diseo Orientado a Objetos. Instituto Tecnolgico de la Laguna. Paola Romero Guille n . http://usuarios.multimania.es/nmartinez/omt.htm Metodologa OMT (Object Modeling Technique). Instituto Profesional La Araucana. Nelson y Cia. http://www.slideshare.net/guest5ed375/diagramas-de-estado http://www.vico.org/aRecursosPrivats/UML_TRAD/talleres/mapas/UM LTRAD_101A/LinkedDocuments/UML_diagActividad.pdf OCL Object Constraing Language. Mg. Luis Reynoso http://www.dsi.uclm.es/asignaturas/42530/pdf/M2tema12.pdf Especificacin Formal en OCL de Reglas de Consistencia Entre Los Diagramas de Clases y de Casos de Uso de UML y El Modelo de Interfaces. Revista Ingenieras Universidad de Medellin. Carlos Mario Zapata', Guillermo Gonzlez. Patrones de Diseo, Elementos de Software Orientado a Objetos Reutilizable. Erich gamma et al. http://dmi.uib.es/~yuhua/APOO/Tema1.pdf http://ares.cnice.mec.es/informes/21/versionpdf.pdf Ingeniera de Software. Pearson Tcnicas de Evaluacin de Software. Natalia Juristo, Ana M. Moreno, Sira Vegas http://sophia.javeriana.edu.co/~lcdiaz/ingSw20063/EXP_VersionesCambios_fCamargo_fAragon.pdf http://www.mejorasalproceso.com/docs/IngConfiguracion.htm http://www.ambysoft.com/essays/flootSpanish.html http://catarina.udlap.mx/u_dl_a/tales/documentos/lis/gonzalez_d_h/cap itulo6.pdf Me todos Formales Orientados a Objetos . Francisco Jose Gala n Morillo Jose Miguel Can ete Valdeo n http://campusvirtual.unex.es/cala/epistemowikia/index.php?title=Intro duccin_a_los_Mtodos_Formales http://www.utm.mx/edi_anteriores/temas43/1ENSAYO_43_1-R.pdf http://webcache.googleusercontent.com/search?q=cache:R6EiSpiiJusJ:cis .fim.uclv.edu.cu/Bibliografia/libros/ciencia/Ingenieria_de_software/Cap %25A1tulo%252024.pdf+conceptos+b%E1sicos+metodos+formales&cd =4&hl=es-419&ct=clnk&gl=mx&client=safari http://www.lsi.us.es/docs/informes/MFOO.pdf http://aurarivera4.blogspot.mx/2010/11/sala-limpia.html http://aurarivera4.blogspot.mx/2010/11/continuacion-sala-limpia.html http://isoftwareunesum.wordpress.com/2011/04/28/ingenieria-delsoftware-de-sala-limpia/ http://menteerrabunda.blogspot.mx/2008/06/ingeniera-del-softwarede-sala-limpia.html