Ingeniera en Desarrollo de software 5 cuatrimestre Programa de la asignatura Introduccin a la Ingeniera de Software Clave: 150920520/ 160920518 Unidad 2. Ingeniera de Software Universidad Abierta y a Distancia de Mxico
ndice UNIDAD 2. ANLISIS Y MODELADO DE REQUERIMIENTOS ........................................ 3 PRESENTACIN DE LA UNIDAD ..................................................................................... 3 Propsito ........................................................................................................................................ 3 Competencia especfica .............................................................................................................. 4 2.1. Obtencin y especificacin de requerimientos................................................................. 4 2.1.1. Requerimientos funcionales y no funcionales .............................................................. 6 2.1.2. Tcnicas de recoleccin, identificacin y priorizacin de requerimientos ................ 9 2.1.3. Documento de requerimientos ...................................................................................... 13 Actividad 1. Tipos de tcnicas de recoleccin ....................................................................... 15 Actividad 2. Tcnicas de recoleccin ...................................................................................... 16 2.1.4. Validacin de requerimientos ........................................................................................ 16 2.1.5. Casos de uso ................................................................................................................... 17 Actividad 3. Requerimientos ..................................................................................................... 20 2.2. Aplicacin de modelo del dominio y de la interaccin .................................................. 21 2.2.1. Diagramas de clases ...................................................................................................... 22 2.2.2. Diagramas de secuencia ................................................................................................ 25 2.2.3. Diagramas de colaboracin ........................................................................................... 27 2.2.1. Diagramas de estado ...................................................................................................... 28 Autoevaluacin ........................................................................................................................... 29 Evidencia de aprendizaje. Diagramas del dominio e interaccin ...................................... 30 Autorreflexiones .......................................................................................................................... 30 Cierre de la unidad ..................................................................................................................... 30 Para saber ms........................................................................................................................... 31 Fuentes de consulta ................................................................................................................... 31
Propsito
Competencia especfica
Analizar los diagramas del dominio e interaccin, para la representacin grfica de los requerimientos de un caso de estudio, tomando en cuenta los estndares del Lenguaje Unificado de Modelado (UML).
Requerimientos
Usuario
Sistema
En este diagrama se visualiza la primera clasificacin que observa y comprende lo que el autor Ian Sommerville (2011. Pg. 83) define: Los requerimientos del usuario son enunciados, en un lenguaje natural junto con diagramas, acerca de qu servicios esperan los usuarios del sistema, y de las restricciones con las cuales ste debe operar. Un ejemplo de esto puede ser el siguiente: Requerimiento del usuario. El usuario puede realizar la consulta de las existencias del almacn de materia prima de manera remota va Internet. En seguida se definen los principales requerimientos del usuario: Casos de uso: representaciones grficas de las funciones de un software. Sus elementos son el caso de uso o funcin del software, actor que es representado por una figura de un monigote y los arcos que son lneas que relacionan al actor y los casos de uso. Escenarios: son descripciones del usuario de lo que se espera que el software realice. Estas descripciones se realizan como una historieta y son consideradas como requerimientos. Generalmente se utilizan en modelos de desarrollo giles. Prototipos: representaciones tipo borrador de la construccin del software, generalmente se utiliza para mostrar interfaces y su navegacin. La segunda clasificacin son los requerimientos del sistema. Observa la siguiente definicin de Sommerville (2011. Pg. 83): Los requerimientos del sistema son descripciones ms detalladas de las funciones, los servicios y las restricciones operacionales del sistema de software.
Ejemplo de requerimiento del sistema. Todos los viernes el software generar el reporte denominado Explosin de materiales que consiste en mostrar la materia prima que se necesitar para la produccin de la siguiente semana. El cual deber indicar de color rojo los materiales que debern comprarse y las cantidades para poder producir y mantener los niveles de stock adecuados. La manera de representar los requerimientos del sistema es el documento de especificacin de requerimientos del software o SRS (Software Requierement Specification), que contiene todos los requerimientos descritos con un alto nivel de detalle. A veces forma parte del contrato entre el comprador del software y el equipo de desarrollo. De cualquier manera, an y con todo el cuidado que se haya tenido al detectar los requerimientos, stos podrn presentar cambios durante el desarrollo del software. Sin embargo, un adecuado control mantendr el proyecto dentro del margen de lo planeado en tiempo, costo y recursos. Los requerimientos del sistema del software se clasifican como funcionales y no funcionales. Esta clasificacin nos servir para identificar de una mejor manera cules requerimientos se refieren a las caractersticas para concebir el software como un todo y cuales funciones el sistema debe realizar de manera especfica. En el siguiente tema encontrars una explicacin ms amplia de este tipo de requerimientos.
Usuario
Sistema
Funcionales
No funcionales
Diagrama de clasificacin de requerimientos y de requerimientos del sistema. Para entender de forma clara, observa la siguiente definicin que Sommerville (2011, pag. 84) da sobre los requerimientos funcionales. Son enunciados acerca de servicios que el sistema debe proveer, de cmo debera reaccionar el sistema a entradas particulares y de cmo debera comportarse el sistema en situaciones especficas. En algunos casos, los requerimientos funcionales tambin explican lo que no debe hacer el sistema. Un ejemplo de requerimiento funcional sera: El software debe enviar una alerta cuando los niveles de stock o reservas han comenzado a utilizarse y debe sugerir generar la orden de compra. Un requerimiento no funcional podra estar conformado por varios requerimientos funcionales y stos generalmente son restricciones en presupuesto, polticas de la empresa, imposiciones del gobierno, vnculos con algn otro sistema de informacin o atributos de calidad del sistema. Estos requerimientos se refieren al software como una sola entidad y no como un conjunto de elementos. Por ejemplo: El software debe estar accesible para realizar las consultas en tiempo real va Internet las 24 horas del da los 365 das del ao. El software debe restringir el acceso a personas ajenas a la organizacin. Es importante comentar que, al redactar la descripcin de cada requerimiento no funcional, ste debe cuantificarse de alguna manera ya que, de lo contrario, dicha descripcin quedar imprecisa provocando una mala interpretacin llena de subjetividad. Algunas expresiones comunes son las que encontramos en la siguiente tabla que te presentamos a continuacin con dos columnas; la primera se llama Descripcin incorrecta la cual contiene palabras o frases que normalmente nos sentimos tentados a utilizar en la descripcin de algn requerimiento no funcional, lo cual no debe ser as; la segunda columna llamada Descripcin correcta ofrece ejemplos para quitar la imprecisin del requerimiento, haciendo ste ms cuantificable, medible y por lo tanto alcanzable.
Descripcin incorrecta Que el software sea rpido (veloz, en tiempo real, lento)
Descripcin correcta El tiempo de despliegue de las pginas estticas ser dado en un rango de tiempo de <=5 segundos. Otros elementos pueden ser transacciones,
Observa el siguiente ejemplo que demuestra un requerimiento no funcional y que tambin se encuentra mal definido: El software debe ser fcil de usar para el personal del almacn. Como pudiste ver es incorrecto ya que no es posible cuantificar o medir su cumplimiento, ahora se presentara el mismo requerimiento no funcional descrito de forma correcta: El personal del almacn tomar una capacitacin de 3 horas en el uso del software, adems el software contar con videos explicando la funcionalidad del mismo como apoyo extra. Los requerimientos son la base del desarrollo de un sistema de software, es por ello que se hace un especial nfasis en su obtencin, especificacin, clasificacin y buena redaccin. Pero no siempre se cuenta con la informacin necesaria a la mano, para ello habr que utilizar algunas tcnicas de recoleccin para identificar y priorizar los requerimientos. Este tema se abordar en el siguiente punto.
La observacin Partiendo de la idea de que todo software es un modelo de un modelo del usuario, debemos identificar como es que el usuario opera su modelo para entonces, poder simular esto con un software. Es por ello que la observacin es una tcnica sencilla, pero poderosa, ya que nos permite estar directamente siendo testigos de cmo operan las cosas en la organizacin. Para aplicar la tcnica de la observacin el analista deber estar presente en el lugar donde se ejecuta el proceso que se desea observar, analizando la funcionalidad de la operacin que se quiere construir en un software. Su principal ventaja es que se observan todos los detalles del funcionamiento real de la empresa (que a veces no es como se encuentra descrito en los manuales de proceso) y adems se detecta el ambiente en el que se instalar el proyecto Entrevistas Las entrevistas son importantes, ya que nos permiten estar en contacto con el cliente y se pueden combinar con otras tcnicas de recoleccin de informacin, como son la observacin o escenarios, entre otras. Las entrevistas se pueden realizar de dos maneras: cerradas y abiertas 1. Cerradas: los participantes responden a un conjunto de preguntas. No se pueden agregar ms preguntas. 2. Abiertas: no hay un conjunto de preguntas predefinidas solo se abarca una problemtica especfica, las preguntas van surgiendo de acuerdo a lo que el entrevistador quiere indagar o descubrir. En la prctica puede realizarse la combinacin de ambos tipos de entrevistas. El analista prepara un conjunto de preguntas, que incluso, puede enviar previamente al cliente. Durante la entrevista, estas servirn de gua. El analista podr realizar nuevas preguntas para obtener mayor detalle; basarse en las respuestas dadas o, bien, para indagar un nuevo tema que no haya contemplado en la entrevista cerrada. El analista podr solicitar al cliente ejemplos o documentos de la organizacin para completar las respuestas. Escenarios Se utilizan para comprender como funcionara el sistema de software en un escenario real. Los analistas utilizarn esta informacin como requerimientos del sistema. Los escenarios consisten en ejemplos sobre las descripciones de las sesiones de cada
Estado final del sistema Los registros de entrada al almacn debern estar en la base de datos. Se deber actualizar los campos de existencias y costos promedios del registro de cada artculo que ha tenido un registro de entrada. Ejemplo de escenario: entrada de materia prima al almacn. Cuestionario Esta tcnica resulta til cuando es necesario captar un gran volumen de informacin en poco tiempo. Tambin cuando la separacin geogrfica impide que la informacin sea captada por otras tcnicas. Para que un cuestionario sea til, ste debe ser conciso y enfocado a pocos aspectos del sistema. Su redaccin debe estar bien definida, debe ser precisa y clara. Se pueden combinar preguntas abiertas (puede redactar libremente una respuesta) y cerradas (la respuesta queda limitada a una cantidad de opciones), adems se puede incluir una descripcin para explicar el objetivo del cuestionario y favorecer que el usuario conteste lo ms objetivamente posible. Por ltimo puede contener una frase de agradecimiento. (Piattini, M., Calvo M., Cervera J. & Fernandez, Luis. 2004. Pg. 184). A continuacin presta atencin al siguiente tema el cual describe el documento de requerimientos.
El SRS se desarrolla para varios lectores por ejemplo, clientes, administradores, desarrolladores, testers, etc. El contenido de un documento SRS de acuerdo al estndar de la IEEE (Institute of Electrical and Electronics Engineers) es un estndar genrico y se adapta a usos especficos. Como se muestra en la siguiente tabla. Tabla. Estructura de un documento de requerimientos. (Sommerville, Ian. 2011, pg. 93) CAPTULO DESCRIPCIN Prefacio Describir a quin va dirigido, la historia de versiones con el resumen de cambios realizados en cada versin. Introduccin Describe brevemente la necesidad que se cubrir con el sistema, las funciones que tendr y cmo funcionar con otros sistemas. Y cmo se ajusta el sistema a los objetivos de la organizacin. Glosario Define los trminos tcnicos que se emplean en el documento. Definicin de Aqu se presentan los servicios que ofrecen al usuario. Tambin, en requerimientos esta seccin se describen los requerimientos no funcionales del del usuario sistema. Se hace uso del lenguaje natural o diagramas que entiendan los lectores. Arquitectura del Se muestra una descripcin de alto nivel de la arquitectura del sistema sistema, mostrando su funcionalidad a travs de mdulos del sistema. Especificacin Se muestran con detalle los requerimientos funcionales y no de funcionales e, incluso, las interfaces a otros sistemas. requerimientos del sistema Modelos del Son grficos que muestran relaciones entre componentes del sistema sistema y su entorno. Por ejemplo grficos de objetos, modelos de flujos de datos o modelos semnticos. Evolucin del Describe los posibles cambios futuros para el sistema como parte de sistema una continuidad ya sea ocasionada por el hardware, por el usuario o por la organizacin. Apndices Informacin detallada y especfica que se relaciona con la aplicacin a desarrollar. ndice Pueden incluirse varios ndices, el de contenido, de diagramas, de funciones, etc. Como vimos el documento SRS tiene algunas ventajas sin embargo, las metodologas giles no estn de acuerdo en llenar un documento tan extenso, pues -argumentan queen cuanto lo escriben comienza a hacerse obsoleto, as que este documento se desperdicia en gran medida, por ejemplo, en el enfoque que presenta la programacin extrema se recopila de manera incremental requerimientos del usuario y los escriben en
Propsito: dado el caso de estudio, identificar las tcnicas de recoleccin que se emplean. Instrucciones: 1. Despus de haber escuchado atentamente el audio, completa el siguiente cuadro: Dialogo Respuesta 1. 2. 3. En donde en la primera columna dialogo establecers por escrito la parte que identificaste del audio que corresponda a la respuesta de la pregunta y en la segunda columna respuesta redactaras lo que responde a la pregunta. Y las preguntas son las siguientes: Para qu se utiliz alguna tcnica de cuestionario? Para qu se utilizar la tcnica de observacin? Qu tipo de entrevista se est utilizando? 2. Guarda la actividad en un archivo de texto con el nombre IIS_U2_A1_XXYZ. 3. Enva el archivo a tu Facilitador(a) para recibir retroalimentacin.
Almacenista
o Caso de uso.- Son las funciones o comportamientos del sistema. Se representan con una elipse que contiene la descripcin de la funcin en lenguaje natural o
o Las lneas entre los actores y los casos de uso se denominan arcos de comunicacin o relaciones.
Almacenista
Hay diferentes tipos de relaciones: Asociacin. Interaccin entre el actor y el caso de uso.
<< Extiende>>
Extiende. Comportamiento adicional de un caso de uso base. Tambin se puede poner la palabra <<Utiliza>> Generalizacin. Hereda las caractersticas de un caso de uso a otros generando una relacin de especializacin.
<< Incluye>>
Los diagramas de caso de uso deben tener una descripcin, en la cual se detalla las especificaciones de su comportamiento en flujo de actividades de secuencia normal y excepciones. Para lo cual se puede utilizar una tabla como la siguiente: Tabla. Descripcin de los casos de uso. Adaptacin de la tabla de (Sommerville, Ian. 2011, pg.125) [Id Nombre del requerimiento requerimiento] Descripcin Lo que el sistema debe permitir con [actores] en un [tiempo] la [funcionalidad] Requerimientos [id requerimiento] [Nombre del requerimiento]
Excepciones
Registro de materia prima al almacn El sistema debe permitir al almacenista cada vez que exista una materia prima nueva registrarla como un nuevo material al almacn. Requerimientos RF-01-01 Alta materia prima asociados RF-01-02 Baja lgica de materia prima RF-01-03 Modificar materia prima RF-01-04 Consultar materia prima RF-02 Registro de movimientos al almacn Secuencia 1. Almacenista consulta una materia prima en el sistema normal 2. Si existe Selecciona en el sistema la materia prima Si no existe Da de alta la materia prima asignndole un cdigo 3. Registra movimiento de entrada al almacn. Excepciones 1. En caso de que haya encontrado un error en la captura de la materia prima, el sistema debe tener la opcin de modificar los datos. 2. En caso de tener materia prima descontinuada, el sistema debe permitir cambiar el estado a Baja, para que se muestren las consultas nicamente con materiales vigentes. Frecuencia El almacn recibe las compras todos los lunes en un horario de 8 am a 2 pm, sin embargo puede existir alguna compra no programada algn otro da de la semana. Prioridad Alta Observaciones Cuando se inserta una nueva materia prima el cdigo que se le asigna tambin lo lleva en barras para facilitar la lecto
Los diagramas de caso de uso pueden ser tiles para descubrir requerimientos en los procesos de los usuarios, pero tambin son de gran ayuda para describir a los requerimientos funcionales del software. Hay otros diagramas que tambin sirven para mostrar con otra vista a los requerimientos. Estos son los que a continuacin veremos en el modelado del dominio y de la interaccin.
Actividad 3. Requerimientos
Durante este tema has podido identificar como se obtienen y se clasifican los requerimientos. Dentro de esta clasificacin se han mencionado principalmente a los requerimientos del usuario y del sistema. Como una sub clasificacin de los requerimientos del sistema tenemos los requerimientos funcionales y no funcionales.
2. De la tabla anterior obtendrs un listado de requerimientos, el cual debers compartir en el foro. 3. Ingresa al foro y genera una nueva entrada.
Modelos de interaccin: Los sistemas tienen interacciones de algn tipo, por ejemplo, con el usuario que implican entradas y salidas del mismo. Tambin hay interacciones entre el sistema a desarrollar y otros sistemas; o interacciones entre los componentes del sistema. En el modelado de caso de uso y los de secuencia muestran interacciones con diferentes niveles de detalle y es posible utilizarlos juntos. El diagrama de colaboracin es otro ejemplo de este tipo de modelos de interaccin. A continuacin comenzaremos explicando cmo puede modelarse la estructura de un sistema por medio de los diagramas de clases.
Multiplicidad: La multiplicidad determina cuantos objetos de cada tipo intervienen en la relacin. Y existen los siguientes. 1 0..1 X..Y * 0..* 1..* Uno y solo uno Cero o uno Desde X hasta Y Muchos Cero o muchos Uno o muchos
Cada lnea de relacin tiene dos multiplicidades (una para cada extremo de la relacin) Para especificar hay que indicar la multiplicidad mnima y mxima (mnima...mxima) Cuando a multiplicidad es 0, la relacin es opcional. Cuando es 1 indica que la relacin es obligatoria.
Para especificar con mayor detalle las clases, se puede agregar las caractersticas de sta. Por ejemplo: un objeto Artculo tendr atributos como un identificador, la descripcin, existencias y costo unitario, sus operaciones podran ser Alta, Baja, Consultar y Modificar principalmente. En UML los atributos y operaciones se muestran en un rectngulo con tres secciones. De esta manera tenemos que: 1. El nombre de la clase - objeto aparece en la parte superior. 2. Los atributos aparecen en la parte media y de manera opcional tienen el tipo de dato de cada atributo. 3. Las operaciones o comportamientos (Llamadas mtodos en algunos lenguajes de programacin como Java) estn en la seccin inferior del rectngulo. Algunas veces encontraremos objetos que pertenecen a un mismo tipo y por lo tanto, pueden compartir atributos o comportamientos que les son comunes. Estos pueden ser asociados por medio de la relacin llamada herencia. Herencia (Especializacin/Generalizacin): Indica que una clase hereda los mtodos y atributos de la clase base, por lo cual una clase derivada adems de tener sus propios mtodos y atributos, podr acceder a las caractersticas y atributos visibles de su clase base (public y protected).
Diagrama de clases con propiedades y generalizacin. En seguida te presentamos dos conceptos de los cual necesitas comprender para poder observar el diagrama que se encuentra posterior a stos: Composicin: La composicin es una relacin en donde el tiempo de vida del objeto est condicionado por el tiempo de vida del que lo incluye. El objeto base depende del objeto que lo compone o sea es parte de un todo. Agregacin: La agregacin es una relacin donde el tiempo de vida del objeto incluido no depende del que lo incluye. El objeto base utiliza al objeto incluido para su funcionamiento.
Diagrama de clases con composicin y agregacin. El anterior diagrama demuestra lo siguiente: Un Almacn se compone de 1 a muchos objetos tipo Artculo y se asocia con 0 o muchos objetos tipo Proveedor.
Los diagramas de clases son los ms comunes dentro del modelado de sistemas orientados a objetos. Pero nos sirven para representar una vista esttica del sistema. Si queremos demostrar cmo se da la comunicacin e interaccin dentro del sistema tendremos que acudir a otro tipo de diagramas. Por ejemplo el diagrama de secuencia que veremos a continuacin.
:Usuario
:InterfazUsuario
:RegistroArtculo
:ProgramaPrincipal
:BDAlmacn
DespliegaPantallaRegistroArtculo RegistroUsuario GeneraEvento(RegistroUsuario) Ejecuta(Insercin SQL) Retroalimenta DespliegaPantallaRegistroArtculo RegistroArtculo Ejecutar(Insercin SQL) Retroalimenta Retroalimenta Retroalimenta
DespliegaPantallaRegistroArtculo Salir
Diagrama de secuencia de alta de artculo del almacn de materia prima. (Booch, G., Rumbaugh J. & Jacobson, I. 1999. Pg. 83). El diagrama de secuencia de la imagen anterior despliega una serie de mensajes entre los objetos usuario, InterfazUsuario, RegistroArtculo, ProgramaPrincipal, BDAlmacn. Comienza con el DespliguePantallaRegistroArtculo, cuando el usuario entra por primer ocasin debe registrarse en la InterfazUsuario, lo cual dispara el evento GeneraEvento(RegistroUsuario) en el ProgramaPrincipal, a su vez, ejecuta la insercin SQL en la BDAlmacn. Cuando realiza la consulta, el resultado de esta es regresado al ProgramaPrincipal y la InterfazUsuario. Retorna el DesplieguePantallaRegistroArtculo, el usuario introduce datos en el RegistroArtculo y se ejecuta la InsercinSQL en la BDAlmacn. La BDAlmacn, Retroalimenta al ProgramaPrincipal y al RegistroArticulo. El diagrama de secuencia es un tipo de diagrama de interaccin es decir, de comportamiento, ya que demuestran los aspectos dinmicos del sistema. Otro tipo de diagrama con estas caractersticas es el diagrama de colaboracin que vers en el siguiente tema.
Auto delegacin
Diagrama de colaboracin.
En el diagrama anterior se pueden apreciar los componentes. Los rectngulos con el texto subrayado representan instancias de objetos que pueden tener nombre o no (annimos). Si carecen de nombre se dejan los dos puntos [:]. Tienen lneas de transicin que llevan un mensaje con una flecha que indica la direccin del mensaje. Los mensajes van numerados marcando el orden de la secuencia, esta numeracin puede ser entera o
Pos condiciones
Flujo Normal
Flujos Alternativos
Excepciones
Todos los diagramas son tiles para representar diferentes vistas del modelo del software que se quiere construir, para poder lograrlo ser necesario partir de una buena base: los requerimientos y como lo hemos visto durante esta unidad debemos definirlos adecuadamente.
Autoevaluacin
Para reforzar los conocimientos relacionados con los temas que se abordaron en esta tercera unidad del curso, es necesario que resuelvas la actividad de autoevaluacin. Recuerda que es muy importante leer cuidadosamente los planteamientos indicados y elegir la opcin adecuada para cada uno.
Autorreflexiones
Adems de enviar tu trabajo de la Evidencia de aprendizaje, es importante que ingreses al foro Preguntas de Autorreflexin y consultes las preguntas que tu Facilitador(a) presente, a partir de ellas, debes elaborar tu Autorreflexin en un archivo de texto llamado XXX_UX_ATR_XXYZ. Posteriormente enva tu archivo mediante la herramienta Autorreflexiones.
Cierre de la unidad
Aprender a construir diagramas de modelado y saber interpretarlos, forman parte de las habilidades que todo desarrollador de software debe tener, no importa el rol que desempee dentro del equipo. El lder, analista, diseador, programador, encargado de pruebas, documentador, etc. deben entender este tipo de lenguaje que facilita la rpida comprensin de los requerimientos del software y su exposicin desde diferentes vistas. Todo este conocimiento te servir para saber interpretar software documentado por terceros y tambin para aprender a documentar tus propios proyectos. Si formas parte de un equipo de desarrollo de software, el modelado es una parte importante de la traduccin
Para saber ms
Para complementar ms acerca del tema de requerimientos. La siguiente propuesta es un estudio de la ingeniera de requerimientos que abarca retos futuros como lo son la escala y la agilidad. Cheng, B.H.C.; Atlee, J.M. (2007) Research the Requeriments Process, 2nd edition. Michigan State Univ., East Lansing, MI. http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=4221627 Para buscar ms ejemplos y otra forma de describir los diagramas vistos en clase, o bien, para conocer los otros diagramas que no se abarcaron en el programa de la asignatura puedes consultar el siguiente manual de UML. Btz, J. (2011) Desarrollo Orientado a Objetos con UML. Mxico: Mcgraw-Hill. Recuperado el 23 de enero de 2012 de: http://es.scribd.com/doc/2458870/DesarrolloOrientado-a-Objetos-con-UML-librobookespanolspanish
Fuentes de consulta
Booch, G., Rumbaugh J. & Jacobson, I. (1999). El lenguaje unificado de modelado. Madrid: Addison Wesley. Piattini, M., Calvo M., Cervera J. & Fernndez, Luis. (2004). Anlisis y diseo de aplicaciones informticas de gestin. Una perspectiva de ingeniera de software. Mxico: Alfaomega. Ra-Ma. Sommerville, Ian (2011) Ingeniera de software. Mxico: Pearson Educacin.