Métodos y modelos de desarrollo de software Unidad 3. Modelos para el desarrollo de sistemas Carrera: Desarrollo de software Semestre 04 Programa de la asignatura: Métodos y modelos de desarrollo de software Unidad 3 Modelos para el desarrollo de sistemas Ciudad de México, mayo de 2023 Clave: Licenciatura TSU 15142420 / 16142420 Universidad Abierta y a Distancia de México 1 Ciencias Exactas, Ingenierías y Tecnología | Ingeniería en Desarrollo de Software 1 Métodos y modelos de desarrollo de software Unidad 3. Modelos para el desarrollo de sistemas Índice Presentación de la unidad ..........................................................................................................3 Logro .............................................................................................................................................3 Competencia específica .............................................................................................................3 Temario de la unidad ..................................................................................................................4 3. Modelos para el desarrollo de sistemas...............................................................................4 Tema 3.1. Modelos estructurados .............................................................................................5 Tema 3.2. Modelos Orientados a Objetos .............................................................................10 Cierre de la unidad ....................................................................................................................12 Para saber más…......................................................................................................................15 Fuentes de consulta ..................................................................................................................15 2 Ciencias Exactas, Ingenierías y Tecnología | Ingeniería en Desarrollo de Software 2 Métodos y modelos de desarrollo de software Unidad 3. Modelos para el desarrollo de sistemas Presentación de la unidad Bienvenido (a) a la Unidad 3; pero antes de entrar en materia, recapitulemos: en la Unidad 1 revisaste conceptos y técnicas para diseñar diagramas UML, con el objetivo de especificar los procesos que cubren los requerimientos para la creación de sistemas solicitados por un cliente, entre otros, revisaste RUP, que es una metodología para la administración y desarrollo de software. Recuerda que RUP no es la única metodología existente para cubrir la gama de proyectos requeridos por los diferentes clientes, existen otros modelos de desarrollo de software que te podrán ayudar para dar solución a esos proyectos. En la segunda unidad conociste diferentes tipos de modelos, los modelos de diseño (arquitectónicos) y los de desarrollo de software. Los modelos de diseño como ya sabes te sirven para definir la arquitectura que debe de existir en el sistema con la finalidad de que los usuarios encuentren disponibles los servicios y programas que tu desarrollarás y los modelos de desarrollo te servirán para definir la metodología apropiada para la creación de un software de acuerdo con las necesidades del cliente. Cada uno de los dos tipos de modelos contienen varios modelos, en la unidad tres y última, estudiarás modelos para el desarrollo de sistemas. Al finalizar la Unidad 3 deberás ser capaz de distinguir cada uno de los modelos para el desarrollo de sistemas y de seleccionar el adecuado para las problemáticas presentadas de los clientes. Logro Identificar los modelos utilizados para el desarrollo de sistemas y la forma en cómo se complementan, en el apoyo del desarrollo de sistemas. Competencia específica Utilizar los modelos estructurados y orientados a objetos para la creación de un sistema, mediante la herramienta StarUml. 3 Ciencias Exactas, Ingenierías y Tecnología | Ingeniería en Desarrollo de Software 3 Métodos y modelos de desarrollo de software Unidad 3. Modelos para el desarrollo de sistemas Temario de la unidad 3. Modelos para el desarrollo de sistemas 3.1. Modelos estructurados 3.1.1. Modelado de datos 3.1.2. Modelo de dominio 3.1.3. Diccionario de datos 3.1.4. Modelo de interfaces 3.1.5. Modelado de requisitos 3.2. Modelos orientados a objetos 3.2.1. Modelo de objetos 3.2.2. Modelo de herencia 3.2.3. Modelo de agregación de herencia 3. Modelos para el desarrollo de sistemas Los modelos de desarrollo de sistemas los clasificaremos en modelos estructurados y en los modelos orientados a objetos. Los modelos estructurados fueron presentados en la década de los ’70, por Larry Constantine, continuó posteriormente por otros autores: Myers, Yourdon y Stevens; éstos nos sirven para la especificación resultante del proceso de análisis de un desarrollo, algunos de los modelos que lo componen son: • Modelado de datos • Modelo de dominio • Diccionario de datos • Modelo de interfaces • Modelado de requisitos Los modelos orientados a objetos, surgen cuando se van a desarrollar 100% sistemas orientados a objetos por medio de la notación UML (Lenguaje Unificado de Modelado); pero, además, los modelos estructurados pueden servir de apoyo para estos desarrollos, pues la base de la POO es la metodología estructurada, entonces los modelos orientados a objetos te servirán para el modelado de software orientado a objetos, Entre ellos se encuentran: • Modelo de objetos • Modelo de herencia • Modelo de agregación de herencia 4 Ciencias Exactas, Ingenierías y Tecnología | Ingeniería en Desarrollo de Software 4 Métodos y modelos de desarrollo de software Unidad 3. Modelos para el desarrollo de sistemas Tema 3.1. Modelos estructurados Para este primer tema, analizarás los modelos estructurados, entre ellos tenemos a: • Modelado de datos • Modelo de dominio • Diccionario de datos • Modelo de interfaces • Modelado de requisitos El modelado estructurado, permite construir modelos de sistemas a partir del análisis de sus procesos y/o actividades que se ejecutan asociados al sistema. Además, permite al equipo encargado del estudio del desarrollo, conocer de forma lógica un sistema o proceso. Su objetivo es organizar las tareas asociadas con la determinación de requerimientos para obtener la mejor comprensión completa y exacta de la problemática dada. Iniciamos con el primer modelo. Modelado de Datos Todas las siguientes lecturas te ayudarán a comprender los niveles de abstracción en los que puedes modelar los datos de un desarrollo de software. Primero comenzaremos con la definición: “es un conjunto de herramientas conceptuales para describir datos, sus relaciones, su significado y sus restricciones de consistencia” Elmasri (2007, pp. 28). En Silberschatz (2006, pág. 1, 4,5), encontrarás algunos ejemplos de aplicaciones del modelado de datos. Se definen 3 niveles de abstracción de los datos: físico, lógico y conceptual o de vistas, en la misma página 5 hay un gráfico que muestra la relación entre los tres niveles de abstracción. Revisa dicho texto. Algo importante de resaltar, del texto que ya leíste, es que los modelos conceptuales tienen sus clasificaciones basados en registros y en objetos. Comprender sus clasificaciones te ayudará para ubicar el modelo específico que puede servirte a crear una solución, la más apropiada a un determinado problema. Algunos de estos modelos de acuerdo a los registros, o a los objetos, los revisarás en otras asignaturas de la Ingeniería en Desarrollo de Software. Pero es bueno que los ubiques. Los modelos basados en registros más comunes son: jerárquico, redes y relacional. Silberschatz (2006, pp. 7), nos recuerda que los modelos jerárquicos y de redes ya no son usados, pues complican el modelado de datos, pero fueron los predecesores del modelo relacional, estos dos modelos fueron usados en los inicios de la computación en donde con mucha frecuencia se programaba a bajo nivel (restringido y orientado por las características de las PCs), hoy en días se programa más orientado al usuario y no a las computadoras, es decir a alto nivel. Por tal motivo, de los tres modelos pertenecientes al modelo por 5 Ciencias Exactas, Ingenierías y Tecnología | Ingeniería en Desarrollo de Software 5 Métodos y modelos de desarrollo de software Unidad 3. Modelos para el desarrollo de sistemas registros, hoy en día, se sigue usando el modelo relacional. No es propósito de este tema leer y dominar cada uno de los modelos del tipo por registro, no obstante, te recomienda al final de esta guía de estudios, consultar las fuentes complementarias para enriquecer tus conocimientos entorno al modelo relacional. De los modelos de datos basados en objetos, se encuentran el modelo Entidad relación (E-R) y el orientado a objetos (OO), en los dos, una de las actividades es identificar las entidades y la forma en cómo están relacionadas; el aprendizaje de las dos metodologías no es propósito de este curso, pero sí identificar sus características principales, leerás del libro de Silberschatz (2006, pp. 169-217). En estas páginas encontrarás del modelo E-R, sus características, restricciones, muchos diagramas de ejemplos, aspectos importantes del diseño, características de modelos E-R extendido, ejemplo de un análisis y diseño de un sistema para un banco, aplicación de normas, su acoplamiento con el modelado unificado UML. Una vez terminada la lectura anterior, deberás leer de Rob (2004, pp. 540-554), este texto te ayudará a conocer las características del modelo de datos orientado a objetos, donde encontrarás: características, representación de los objetos, las relaciones clase-subclase (herencia) y atributos de las relaciones. A modo de resumen, podemos decir que un modelo de datos es un conjunto de herramientas conceptuales, que ayudan a describir los datos, relaciones, significado y sus restricciones de consistencia. Recuerda que tiene clasificaciones basadas en registros y en objetos, todos estos modelos pueden ayudarte a definir diseños de los datos de un sistema; no pierdas de vista el modelo E-R y el orientado a objetos, pues son de los más utilizados hoy en día, debido a que el rango de aplicaciones creció bastante y sus problemas son cada vez más complejos. Son diversas las limitaciones de los modelos relacional, el modelo de red y modelo jerárquico, pues quedaron imposibilitados, en muchos casos, de dar soluciones a las nuevas problemáticas presentadas para el desarrollo de software, necesidades que vinieron a cubrir los modelos E-R y Orientado a Objetos (Silberschatz 2006, pp. 301) Modelo de Dominio Larman (2007) nos dice que a un modelo de dominio se le conoce como un modelo conceptual, por lo tanto, si investigas en torno al tema, encontrarás información sobre el modelo de Dominio, pero, seguramente encontrarás más si buscas por modelo conceptual. Lee Larman (2007, pp. 121-143), esta lectura te servirá para identificar conceptos del modelo de dominio o conceptual (clases), cómo crear un modelo de dominio inicial; además, 6 Ciencias Exactas, Ingenierías y Tecnología | Ingeniería en Desarrollo de Software 6 Métodos y modelos de desarrollo de software Unidad 3. Modelos para el desarrollo de sistemas te ayudará a distinguir entre atributos correctos e incorrectos, es importante que distingas la diferencia entre vista conceptual y de implementación. Para saber más… Larman (2007), en los capítulos 11 (modelo de dominio, añadir asociaciones) y 12 (modelo de dominio, añadir atributos), es más específico en la implementación del modelo, hablando de relaciones y del tratamiento de los atributos. Dicha información te será de ayuda, no obstante, la lectura no es obligatoria para los propósitos de la unidad. Para finalizar el subtema, te recuerdo la importancia del modelo de Dominio, este se utiliza con frecuencia para el diseño de los objetos de software; los modeladores muestran clases conceptuales significativas en un dominio del problema del mundo real; es uno de los artefactos más importantes que se crean durante el análisis orientado a objetos. Diccionario de Datos Es una herramienta más de modelado, que ayuda a conocer el comportamiento de un sistema. Para que te des cuenta de la importancia de un diccionario de datos, Lee Rob (2004, pp. 21), este autor te describe la importancia de la creación y administración de un diccionario de datos. Específicamente lo encontrarás en la sección Administración del diccionario de Datos, donde se te describe qué es y sus beneficios. Lee Rob (2004, pp. 778-780), en este texto se te presentará: otra definición del diccionario de datos, los tipos de diccionario de datos (integrados y autónomos), se describe otra clasificación de diccionarios de datos en cuanto a su forma de actualizarse (activo o pasivos), se describe la función principal de los diccionarios de datos, mencionándolo de manera muy sencilla y practica como “La función principal del diccionario de datos es guardar la descripción de todos los objetos que interactúan con la base de datos “, también es las páginas señaladas encontrarás ejemplos que te servirán de complemento al tema. Resumiendo, construir un diccionario de datos puede ser muy tedioso y, son horas largas de análisis del sistema, pero es una de las actividades más importantes dentro del proceso de desarrollo de software; sin éste, no existirá congruencia en la creación del sistema y te podrá acarrear varios problemas, recuerda es mejor uno aunque sea muy sencillo que no tener nada. Obtendrás más precisión en tu desarrollo de software al tener especificaciones de tus datos. Modelo de interfaces El propósito de este modelo es apoyar en los aspectos de diseño de interfaces, en este tema comprenderás varios principios de diseño de interfaces de usuario, conocerás: • Estilos de interacción y aprenderás cuando es el momento apropiado para aplicar cada uno de ellos. • Presentaciones gráficas y textuales de la información. 7 Ciencias Exactas, Ingenierías y Tecnología | Ingeniería en Desarrollo de Software 7 Métodos y modelos de desarrollo de software Unidad 3. Modelos para el desarrollo de sistemas • Aspectos implicados en las principales actividades en el proceso de diseño de las interfaces de usuario. Revisarás además los atributos de usabilidad y los enfoques de evaluación de interfaces. Para reforzar el tema, nos apoyaremos en Sommerville (2005, pp. 330-351); por favor, lee las páginas señaladas. En esta lectura encontrarás el concepto de diseño, el proceso de diseño de la interfaz, prototipos de interfaz y evaluación de las mismas; esto te ayudará para comprender principios de diseño de interfaz, conocer estilos de interacción, cuándo es más adecuado usarse y cuándo utilizar gráficas e información textual en la interfaz; así también, revisarás aspectos principales en el proceso de diseño de interfaz de los usuarios, atributos de usabilidad y puntos de evaluación de las interfaces. Algo que siempre debe de preguntarse un diseñador es: ¿cómo debe de interactuar el usuario con el sistema informático? y ¿cómo debe de presentarse la información al usuario?, son preguntas que tú debes hacer en el momento apropiado dependiendo del proyecto a desarrollar. Para responder a las preguntas, analizaste varios puntos del tema como son: • Interacción del usuario. Emitir comandos y datos asociados al sistema informático, en éstos viste varias opciones: la interacción directa (mouse), selección de menús, rellenado de formularios, lenguaje de comandos, lenguaje natural. Viene una imagen comparativa en la página Sommerville (2005, pp. 336). • Presentación de la información. La forma en cómo se proporciona información al usuario, también se explica un poco sobre el modelo vista controlador (MVC), se anexaron 14 recomendaciones en el uso del color en las interfaces del usuario. • Se analizó el proceso de diseño de interfaz de usuario, se menciona que es un proceso iterativo, donde todos los usuarios interactúan con los diseñadores y prototipos de la interfaz. Se mencionan tres actividades esenciales: análisis del usuario, prototipado del sistema y evaluación de la interfaz. • Se profundizó en cada uno de las tres actividades en el punto anterior mencionadas. Modelado de Requisitos El modelo de requisitos tiene como propósito delimitar el sistema, reconocer las características funcionales que se ofrecerá desde la visión del usuario. Este modelo puede trabajar como una especie de contrato en ciertos momentos entre el desarrollador y el cliente; como observarás, por el hecho de que te apoya en definir el alcance en un contrato, podrás imaginarte su importancia, sin un contrato que te proteja sobre lo que vas a realizar, donde no tienes que hacer más y no hacer menos, sino sólo lo comprometido en el contrato, en esa situación el cliente no puede pedir más y tú no podrás realizar menos, eso puede ser de mucha ayuda para deslindar responsabilidades y salir bien librado en diferencias con tu cliente. 8 Ciencias Exactas, Ingenierías y Tecnología | Ingeniería en Desarrollo de Software 8 Métodos y modelos de desarrollo de software Unidad 3. Modelos para el desarrollo de sistemas Algo de resaltar, de este modelo, es que es de los primeros modelos en ponerse en acción dentro del proceso de desarrollo de un software, pero, para enriquecer el tema, deberás de conocer términos nuevos y recordar algunos ya vistos anteriormente. Por favor, lee Weitzenfeld (2005, pp. 195-197), en dicho texto se explica la importancia del modelo de requisitos, no pierdas de vista la figura 6.1 del mismo tema, en donde se muestran los distintos modelos del proceso de software y la figura 6.2 muestra los tres ejes del modelo de requisitos. Te solicito, leas a Weitzenfeld (2005, pp. 197-252), donde revisarás el modelo como tal, mostrado a través de un pequeño proyecto de análisis bajo este modelo. Resumiendo la lectura, puedes identificar el modelo de requisitos, basándose sobre en el estudio del problema “Sistema de reservaciones de vuelos”, con varios requerimientos que se enlistan, la solución abarca la utilización de tres modelos que conforman al modelo de requisitos; estos tres modelos son: modelo de casos de uso, modelo de interfaces y el modelo del dominio del problema. En la lectura, se explica por completo el modelo de casos de uso, con este problema en específico, en Weitzenfeld (2005, pp. 207), se inicia con el trabajo en el modelo de interfaces con el mismo problema. Con el modelo de interfaces, pudiste observar que el objetivo es llegar rápido a la funcionalidad de la aplicación, a través del diseño gráfico sofisticado; sobre los casos de uso diseñados, se inició el análisis de las pantallas del usuario, se muestran varias pantallas del sistema y, por último, el análisis en el modelo de requisitos, continua con su tercer modelo quien lo fortalece, que es el modelo del dominio del problema, en este modelo se identifican las clases del problema (hablando de entidades, relaciones, multiplicidad, atributos y comportamientos), pero además se complementa con el Diccionario de Clases. Finalizando con el tema, el modelo de requisitos busca delimitar el sistema a desarrollar, conociendo las características funcionales que se ofrece al usuario, recuerda que para implementar un buen modelo de requisitos, debes de hacer una implementación del modelo de casos, interfaces y un modelo de clases o de información de los proyectos a desarrollar, los tres modelos que componen el modelo de requisitos se explicaron a detalle en las lecturas que realizaste, además el modelo de casos de uso y el de clases, ya los trabajaste en la Unidad 1 de este curso. 9 Ciencias Exactas, Ingenierías y Tecnología | Ingeniería en Desarrollo de Software 9 Métodos y modelos de desarrollo de software Unidad 3. Modelos para el desarrollo de sistemas Tema 3.2. Modelos Orientados a Objetos Ya que revisaste los modelos estructurados, utilizados para el proceso de análisis de desarrollo, ahora harás lo propio con los modelos orientados a objetos que surgen para desarrollar proyectos apoyados con UML. Los modelos que analizarás son: • Modelo de objetos • Modelo de herencia • Modelo de agregación de herencia Modelo de objetos Fue una de las primeras aproximaciones a la orientación a objetos en el desarrollo de software, actualmente se usa de forma generalizada, especialmente en el desarrollo de sistemas interactivos. Uno de los propósitos principales del modelo, es expresar requerimientos utilizando modelos de objetos y su desarrollo del sistema con lenguajes de programación orientado a objetos, como por ejemplo Java y C++. Lee el tema Modelos de objetos en Sommerville (2005, pp. 164-165), este tema te servirá para conocer ¿qué es?, su importancia y su implementación, conocerás que los modelos (herencia y agregación) que se describen después de este tema, son apoyos para complementar este modelo. El texto, te ayudará a identificar y clasificar las entidades de un sistema y cómo puede integrarse para crear clases abstractas; te describe cómo se integra una clase, además te reafirma que el modelado de objetos es un proceso que ayuda en la transición del modelado a la programación. Resumiendo, analizaste que este modelo se expresa utilizando diferentes modelos orientados a objetos de UML principalmente, como son los que apoyan en diagramas de: clases, casos de uso, secuencia, etc. y, que su implementación, está usando lenguajes de programación orientado a objetos, además, observaste que su principal importancia es facilitar el avance entre el diseño orientado a objetos a la programación. Una de las actividades fuertes de realizar es el análisis orientado a objetos y que UML ha sido el estándar para el modelado de objetos; recordaste además que una clase de objetos en UML, se comprende del nombre de la clase, una sección para los atributos y de las operaciones o comportamientos. Modelo de herencia Es un modelo más de los orientados a objetos, perteneciente al modelo de objetos (tema anterior), en donde además de identificar clases de objetos, los organiza mediante clasificaciones que muestran cómo están relacionados unos con otros, a través de sus atributos y comportamientos, las clases se organizan en una jerarquía de herencia, con las 10 Ciencias Exactas, Ingenierías y Tecnología | Ingeniería en Desarrollo de Software 10 Métodos y modelos de desarrollo de software Unidad 3. Modelos para el desarrollo de sistemas más generales que se encuentran al inicio de la jerarquía, estas clases generales heredan sus atributos y servicios a las que le siguen en jerarquía, cada una de ellas además de heredar atributos y comportamientos también tienen sus propios comportamientos y cualidades. Para analizar este modelo continuarás leyendo el libro de Sommerville (2005, pp. 165168), esta lectura es importante porque identificarás las especificaciones del modelo de herencia, observa el gráfico (8.10) en donde se te muestra un ejemplo de jerarquía de clases, basado en la situación de especificación de biblioteca; con este ejemplo, complementarás la información entorno al modelo de herencia, en este ejemplo es importante que observes la figura que se usa para expresar una clase, sus secciones (atributos y comportamientos) y, además, las líneas que relacionan las clases (flechas con punta gorda sin rellenar), indicando a cada clase, de qué clase está heredando atributos y métodos, también se muestra que cada clase puede tener sus propios atributos y métodos. Existe otro gráfico 8.11, en el mismo texto, que muestra otro ejemplo del modelo de herencia. Así también se abordan las problemáticas a las que se enfrentan los analistas en el diseño del modelo de herencia. Es importante que identifiques que se puede representar en un mismo gráfico los modelos de herencia, con múltiples combinaciones de situaciones, en donde una clase puede heredar de varias clases padres, el ejemplo lo encontrarás presentado en el gráfico 8.12. Modelo de agregación de herencia Este modelo también conocido como modelo de agregación de objetos, es similar al de herencia, perteneciente al modelo de objetos, pero en lugar de heredar atributos y servicios a través de la relación de una clase, hereda o pone a disposición las interfaces de los objetos que lo integran, esto es debido a que en el modelado de la solución es necesario describir que un objeto está integrado o formado por otros objetos. El modelado de agregación de herencia te servirá para representar a un objeto y los objetos que lo integran y la forma en cómo estos lo hacen. Lee Sommerville (2005, pp. 168), esta lectura te ayudará a comprender el modelo de agregación de herencia, ahí encontrarás un ejemplo con su representación en UML, describiendo la lectura que hiciste, el ejemplo se trata de una clase llamada “Paquete de estudio”, que tiene sus propios atributos y métodos, pero esta clase está integrada por diferentes objetos como son: tareas, dispositivas, notas y videos. Y a su vez la clase tarea está integrada por las clases ejercicios y soluciones. Como observarás en el ejemplo, el paquete de estudio está integrado por objetos muy diferentes de estudio hablando de atributos y comportamientos (métodos), pues se menciona a los objetos clases, dispositivas, notas y videos, son objetos muy distintos, sin embargo forman un paquete de estudio, por eso mismo en la solución del modelado, se presenta como la clase principal y formada por objetos (tareas, diapositivas, notas y videos) y la solución puede leerse como: 11 Ciencias Exactas, Ingenierías y Tecnología | Ingeniería en Desarrollo de Software 11 Métodos y modelos de desarrollo de software Unidad 3. Modelos para el desarrollo de sistemas “Un paquete de estudio está compuesto por uno o varios elementos asignados, tareas, dispositivas, notas y cintas de video”; podemos interpretar que la clase principal pone a disposición, a través de ella, los objetos que la forman. También podemos decir que, si invocas un método de uno de los objetos internos que no se admite, entonces el objeto principal interviene para responder con un mensaje al problema. Recuerda que para indicar que una clase forma a otra, se usa una línea con una punta en figura de rombo pequeña. Resumiendo, el modelo de agregación de objetos o herencia, es un modelo que ayuda para representar gráficamente cuando una clase está conformada por otras clases; conociste un ejemplo mediante UML y, como observaste, hay un símbolo para representar a la clase, con tres secciones una para el nombre, otro para los atributos y la tercera para los métodos o servicios (como les llama Sommerville), la línea que muestra la relación de agregación es una que, de un extremo tiene una punta de flecha rellena de negro y del otro extremo es un pequeño rombo, la clase principal es la que hereda todos los elementos de las clases. Cierre de la unidad La tercera unidad ha llegado a su conclusión. En esta unidad pudiste conocer los modelos de desarrollo de sistemas. Haciendo un resumen, de los modelos de desarrollo de sistemas, analizamos los modelos estructurados y los modelos orientado a objetos. De los modelos estructurados revisaste: • Modelado de datos • Modelo de dominio • Diccionario de datos • Modelo de interfaces • Modelado de requisitos Y de los modelos orientados a objetos estudiaste: • Modelo de objetos • Modelo de herencia • Modelo de agregación de herencia Recapitulando los modelos estructurados: El propósito del Modelo de datos es el de proporcionar herramientas conceptuales para describir datos, relaciones y restricciones de consistencia, además que se clasifican en 3 categorías: físico, lógico y conceptual o de vistas, también estudiaste que el modelo de datos tiene otra clasificación en cuanto a la representación de registros y por objetos. Por 12 Ciencias Exactas, Ingenierías y Tecnología | Ingeniería en Desarrollo de Software 12 Métodos y modelos de desarrollo de software Unidad 3. Modelos para el desarrollo de sistemas objetos de los más usados es E-R y basados a objetos. Que al final estos dos son de los modelos de datos más usados. El Modelo de dominio o conceptual, es otro modelo estructurado que su propósito es representar el análisis del problema a resolver en un modelo de clases, que es una de las herramientas en las que se apoya para representar las relaciones entre las entidades. También analizaste el modelado de Diccionario de datos y su importancia, recuerda que es un diseño en donde específicas y describes entidades, datos y conceptos del proyecto que se desarrolla. Otro de los modelos estructurados analizados fue el Modelo de interfaz, que es un modelo que te orienta para el diseño de interfaces del proyecto con el usuario, en el tema leíste sobre estilos, presentaciones gráficas y textuales, así como aspectos implicados en las actividades del proceso de diseño, también en el tema conociste sobre atributos de usabilidad. El último modelo de los estructurados fue el Modelo de requisitos, en este modelo identificaste que su representación es en base a tres modelos más, que son el modelo de casos de uso (analizados en el primer capítulo), el modelo de interfaz y el modelo de clases o llamado de información, estos tres últimos modelos ya los hemos revisado con anterioridad. Por último, es importante que no olvides que en estos modelados participa mucho el lenguaje de modelado unificado, mismo que utilizarás en tu desarrollo de aplicaciones de software. Con lo anterior, concluimos la Unidad 3. Modelos para el desarrollo de sistemas, según el dominio que tengas de esta unidad, te ayudará a realizar especificaciones, diseños y modelado de los requisitos para el desarrollo de software. También hemos terminado el curso “Métodos y Modelos de Desarrollo de Software”, durante este curso conociste, aprendiste y practicaste varios métodos y modelados para el desarrollo de software, la importancia de este curso radica en que, si se hace buenos análisis, planeaciones de desarrollo, modelado y diseño de forma correcta, esto ayudará bastante para que los errores que se insertan durante el desarrollo, sean los menos posibles, siendo de esta forma que el proyecto final sea lo más cercano a la calidad solicitada por un cliente, dicho de otra forma, cuando los proyectos se cancelan, se desvían mucho tiempo de su fecha de término o el costo se incrementa, es normalmente problemas de análisis, diseño y/o modelado de la solución a implementar. Para ello es muy importante practicar lo que aprendiste de todas las unidades. 13 Ciencias Exactas, Ingenierías y Tecnología | Ingeniería en Desarrollo de Software 13 Métodos y modelos de desarrollo de software Unidad 3. Modelos para el desarrollo de sistemas ¿Cómo fue en la unidad 1?: Herramientas para el modelado de software • Lenguaje Unificado de Modelado (UML) ✓ Proceso de desarrollo de software ✓ Los casos de uso y sus características ✓ Asociaciones, generalización y relaciones ✓ Diagramas base de UML ✓ StarUML • Proceso Unificado de Rational (RUP) ✓ Generalidades ✓ Fases y elementos ✓ Clasificación En la Unidad 1 revisaste los procesos a seguir para el desarrollo de un software; por ejemplo, describir lo que el cliente te solicita mediante la utilización de casos de uso y además cómo dar seguimiento desde un inicio hasta la liberación de un proyecto usando RUP. En la Unidad 2, trabajaste con diferentes tipos de modelos: Modelos para el desarrollo de software Modelos de diseño Modelo de repositorios Modelo cliente servidor Modelo de capas Modelo de control centralizado Modelos de desarrollo Modelo de cascada o tradicional Modelo evolutivo Modelo basado en componentes Modelo por prototipos Modelo en espiral Recordando los modelos de diseño, son los que tienes que pensar para modelar y tener la disponibilidad de tus servicios en una red y, los modelos de desarrollo, son modelos que utilizas para abordar un desarrollo de software pensando en cómo y de qué forma interactúan las fases levantamiento de requerimientos, análisis, diseño, codificación, pruebas, implementación y liberación para el desarrollo de un software. 14 Ciencias Exactas, Ingenierías y Tecnología | Ingeniería en Desarrollo de Software 14 Métodos y modelos de desarrollo de software Unidad 3. Modelos para el desarrollo de sistemas Espero que hayas disfrutado el curso y más aún que veas la utilidad del mismo. ¡Felicidades! concluiste con la asignatura Métodos y Modelos de Desarrollo de Software. Para saber más… En Elmasri (2007, pp. 31-32), se anexa un gráfico indicando como están relacionados los tipos de modelo de datos y explica nuevamente cada uno de ellos, en el mismo se explican los tres tipos de nivel de abstracción del modelo de datos. En su libro Larman (2007) en el capítulo 11 y 12, aborda los diferentes tipos de relaciones en los diagramas de clases y en el tratamiento de los atributos. Es importante conocer para presentar las entidades en el modelo orientado a objetos, cómo están relacionadas unas con otras, la cardinalidad, atributos, métodos, etc. Con respecto al modelo relacional si te interesa, puedes complementar tu conocimiento en el libro Silberschatz (2006, Capitulo 2). Fuentes de consulta • Elmasri, Rames (2007). Fundamentos de Bases de Datos. México: Addison Wesley. • Larman, Craig (2008). UML y patrones. México: Prentice Hall. • Rob, Peter, (2004). Sistemas de bases de datos. México: Thomson • Silberschatz, Abraham (2006). Fundamentos de bases de datos. España: Mc Graw Hill. • Sommerville, Ian, (2005). Ingeniería de Software. España: Pearson educación. • Weitzenfeld, Alfredo (2005). Ingeniería de software orientado a objetos con Uml, Java e internet. México: Thomson. 15 Ciencias Exactas, Ingenierías y Tecnología | Ingeniería en Desarrollo de Software 15