Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Resumen Modelado de Software, Resúmenes de Informática

Asignatura: Modelado de Software, Profesor: Francisco Casado, Carrera: Gestión Empresarial y Tecnología Informática, Universidad: UCM

Tipo: Resúmenes

2015/2016

Subido el 20/04/2016

jobu-4
jobu-4 🇪🇸

4.5

(2)

4 documentos

1 / 35

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Tema 0. Introducción a las técnicas y lenguajes de Modelado de
Software.
Modelado de actividades y casos de uso.
Modelado estático (Diagramas de clases).
Modelado dinámico (Diagramas de secuencia).
Introducción a la Ingeniería de Software.
El software y la Ingeniería del software.
¿Qué es el Software?
Hace referencia a los programas y toda la información asociada y materiales necesarios para
soportar su instalación, operación, reparación y mejora.
Para construir un elemento software se necesita:
Detallar las especificaciones.
Diseñar la solución.
Codificar el algoritmo.
Probar el programa.
Documentar.
Mantener.
Importancia del Software.
Las economías de todos los países son cada vez más y más dependientes del software.
Cada vez más y más sistemas están controlados por software.
El gasto en desarrollo de software está aumentando su porcentaje en el PIB de todos los países.
Crisis del Software.
Crecimiento espectacular de los costes del software.
Incumplimiento de los plazos de entrega.
Muchas dudas sobre la calidad del software construido.
Costes del Software.
Los costes que representa el Software son a menudo mayores que el hardware.
El mantenimiento resulta más caro que el desarrollo:
En sistemas de vida larga puede ser varias veces más caro.
La Ingeniería del Software tiene que ver con el desarrollo de forma que sea económicamente
viable.
¿Qué es la Ingeniería del Software?
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23

Vista previa parcial del texto

¡Descarga Resumen Modelado de Software y más Resúmenes en PDF de Informática solo en Docsity!

Tema 0. Introducción a las técnicas y lenguajes de Modelado de

Software.

  • Modelado de actividades y casos de uso.
  • Modelado estático (Diagramas de clases).
  • Modelado dinámico (Diagramas de secuencia).

Introducción a la Ingeniería de Software.

El software y la Ingeniería del software.

¿Qué es el Software?

  • Hace referencia a los programas y toda la información asociada y materiales necesarios para soportar su instalación, operación, reparación y mejora.
  • Para construir un elemento software se necesita:
    • Detallar las especificaciones.
    • Diseñar la solución.
    • Codificar el algoritmo.
    • Probar el programa.
    • Documentar.
    • Mantener.

Importancia del Software.

  • Las economías de todos los países son cada vez más y más dependientes del software.
  • Cada vez más y más sistemas están controlados por software.
  • (^) El gasto en desarrollo de software está aumentando su porcentaje en el PIB de todos los países.

Crisis del Software.

  • Crecimiento espectacular de los costes del software.
  • Incumplimiento de los plazos de entrega.
  • Muchas dudas sobre la calidad del software construido.

Costes del Software.

  • Los costes que representa el Software son a menudo mayores que el hardware.
  • El mantenimiento resulta más caro que el desarrollo:
    • En sistemas de vida larga puede ser varias veces más caro.
  • La Ingeniería del Software tiene que ver con el desarrollo de forma que sea económicamente viable.

¿Qué es la Ingeniería del Software?

  • Disciplina que se ocupa del desarrollo del software.
  • Se enfrenta al software como un producto de ingeniería que requiere: planificación, análisis, diseño, implementación, pruebas y mantenimiento.
  • Trata de las teorías, métodos y herramientas que los profesionales del desarrollo del software deben utilizar.

Ingeniería del software.

  • No sólo comprende los procesos técnicos del desarrollo.
  • También, los principios más relevantes de dirección y control de este proceso.
  • También, el desarrollo de nuevas teorías, métodos y herramientas de apoyo a la producción del software. Objetivos de la Ingeniería del software.
    • Mejorar la calidad del software.
    • Aceptar los tiempos de desarrollo.
    • Aumentar la productividad.
    • Necesidad:
      • Incrementar la reutilización del software. Los ingenieros de software deben
  • Adoptar un enfoque sistemático y organizado en su trabajo y
  • Utilizar las herramientas y técnicas más apropiadas, dependiendo:
  • Del problema a resolver,
  • Las restricciones del desarrollo y
  • Los recursos disponibles.

¿Cuál es la diferencia entre Ingeniería del Software y las Ciencias de la Computación?

  • Las Ciencias de la Computación tienen que ver con teorías y fundamentos.
  • (^) La Ingeniería del Software tiene que ver con los aspectos prácticos del desarrollo del software.

¿Cuál es la diferencia entre Ingeniería del Software e Ingeniería de Sistemas?

  • La Ingeniería de Sistemas tiene que ver con todos los aspectos del desarrollo de sistemas basados en computadoras: hardware, software e Ingeniería de procesos.
  • Ingeniería del Software es una parte de este proceso.

Sistemas de Información.

¿Qué es un sistema?

  • Un conjunto de elementos en interacción, que transforman mediante un proceso unos elementos ( entradas ) en otros ( salidas ).
  • Los sistemas no son entidades independientes, existen en un entorno:
  • Subsistema de Control de las Existencias : Del almacén y del inventario de bienes.

¿Qué es un sistema de información automatizado?

  • Si todas las transformaciones significativas son efectuadas por máquinas.
  • Las tareas fundamentales de un SIA son:
    • Memorización del modelo y de la base de información.
    • Tratamiento automático ( control, actualización, búsquedas, cálculos ).
    • Captura de la información.
    • Salida de la información.

Propiedades Emergentes.

  • La compleja relación entre los subsistemas de un sistema significa que éste es más complejo que la suma de sus partes.
  • Las propiedades emergentes son consecuencia de las relaciones entre los componentes.
  • Sólo pueden asegurarse y observarse cuándo el sistema se considera como un todo.
  • Ejemplos:
    • El peso total del sistema:

■ Se puede calcular a partir de las propiedades de los componentes individuales.

  • La fiabilidad del sistema: ■ Depende de la fiabilidad de los componentes y su interrelación.
  • La usabilidad: ■ Esta propiedad compleja no depende sólo del hardware y del software sino que también depende de los operadores y del entorno en que se utilice.

Método y Proceso.

¿Qué es un método?

  • Resulta necesario establecer un enfoque sistemático y disciplinado para llevar a cabo un desarrollo software.
  • Definiciones:
    • Una metodología de Ingeniería del software es un proceso para producir software de forma organizada, empleando una colección de técnicas y convenciones de notación predefinidas.
    • Conjunto de procedimientos, técnicas, herramientas y un soporte documental que ayuda a los desarrolladores a realizar nuevo software.

Componentes de un método.

  • Proceso: Define el marco de trabajo y permite un desarrollo racional de la IS.
  • Técnicas: Indican como construir técnicamente el software. Incluyen técnicas de modelado.
  • Herramientas: Proporcionan el soporte automático o semiautomático para el proceso y para las técnicas.

¿Qué es un proceso software?

  • Un conjunto estructurado de actividades y resultados asociados que conducen a la creación de un producto de software:
  • Diagramas de flujo de datos (DFD’s).
  • Diagramas Entidad-Relación.
  • Diagramas de Estructura.
  • Modelos orientados a objetos.

Validación del Software.

  • La verificación y la validación pretenden demostrar que un sistema es conforme con su especificación y que resuelve los requisitos del cliente.
  • La prueba del sistema implica ejecutar el sistema con los casos de prueba que se obtuvieron en la especificación.

Etapas en el proceso de pruebas.

  • (^) Prueba de unidades.
    • Se comprueban los componentes individuales.
  • Prueba de módulos.
    • Se prueban colecciones de componentes dependientes.
  • Prueba de subsistemas.
    • (^) Los módulos se integran en subsistemas y se prueban. Sobre todo se prueba el acoplamiento de las interfaces.
  • Prueba del sistema.
    • Se prueban las interacciones entre los subsistemas y las propiedades emergentes.
  • Prueba de aceptación.
    • (^) Se prueba con datos reales para comprobar que el sistema es aceptable por el cliente.

Mantenimiento del software.

  • El software es intrínsecamente flexible y puede cambiar.
  • De la misma forma que los requisitos cambian según cambian las circunstancias del negocio, el software que da soporte al negocio también debe desarrollarse y cambiar.
  • Aunque históricamente ha existido una separación entre el desarrollo y el mantenimiento (o evolución) esto es cada vez más irrelevante, puesto que apenas hay sistemas completamente nuevos.

Ayuda automatizada al proceso (CASE).

  • La Ingeniería de Software asistida por Ordenador (CASE) es el software que se utiliza para ayudar a las actividades de desarrollo y evolución del software.
  • Automatización de actividades:
    • Editores gráficos para el desarrollo del modelo del sistema.
    • Diccionario de datos para gestionar las entidades del diseño.
    • Generadores de GUI para la construcción del interfaz de usuario.
    • Depuradores para encontrar los fallos de los programas.
    • Traductores automatizados para generar nuevas versiones de un programa.

Disciplinas de gestión de proyectos.

Objetivos de la gestión de proyectos.

  • Organizar, planificar y programar los proyectos de software.
  • Disciplinas y técnicas:
    • Planificación y estimación de costes.
    • Garantía de calidad.
    • Gestión de la Configuración.
    • Gestión de personal.

Tareas de gestión de proyectos.

(Competencias de un jefe de proyecto).

  • Planificación del proyecto.
    • (^) Tareas a realizar y plan de trabajo.
  • Estimación del coste del proyecto.
  • Supervisión y revisión del proyecto.
  • No tienen en cuenta factores como la fiabilidad, el mantenimiento…
  • La productividad se puede aumentar generalmente a costa de la calidad.

Técnicas de estimación.

  • No hay una forma simple de hacer una estimación exacta del esfuerzo requerido para desarrollar un sistema de software. - Las estimaciones iniciales se basan en información poco precisa que aportan los usuarios. - El software puede tener que ejecutarse en ordenadores no conocidos o utilizar tecnología nueva. - El personal del proyecto es desconocido.
  • Las estimaciones de los costes del proyecto tienden a “auto-realizarse”
    • La estimación determina el presupuesto y el producto se ajusta para cumplir el presupuesto.
  • Modelado algorítmico de costes:
    • Se analizan los costes de otros proyectos realizados. Se utiliza una fórmula matemática para producir los costes del proyecto actual.
  • Opinión de expertos:
    • Se consulta a varios expertos y entre ellos acuerdan una estimación.
  • Estimación por analogía:
    • Se estima por analogía con otros proyectos completados sobre el mismo dominio de aplicación.
  • Ley de Parkinson:
    • El trabajo se extiende para llenar el tiempo disponible.
    • El coste se determina según los recursos disponibles.
  • Precio para ganar:
    • Se acuerda la funcionalidad aceptable para el sistema teniendo en cuenta el coste acordado.

Estructura de un plan de proyecto.

  • Se fijan los recursos disponibles, se divide el trabajo y se crea un calendario de trabajo.
  1. Introducción 1.a. Objetivos del proyecto y restricciones económicas y temporales.
  2. (^) Organización del proyecto.

1.b.Organización del equipo, personas involucradas y sus tareas.

  1. Análisis de riesgos. 1.c. Posibles riesgos, con su probabilidad, y estrategias de reducción de riesgos propuestas.
  2. Requisitos de recursos de hardware y de software. 1.d.Precios de lo que hay que comprar y fechas de entrega.
  3. División del trabajo. 1.e. División del proyecto en actividades, tiempo estimado requerido y asignación de personal.
  4. Calendario del proyecto. 1.f. Dependencias entre actividades, tiempo estimado requerido y asignación de personal.
  5. Mecanismos de supervisión e informe. 1.g.Cuándo y que tipo de informe debe producirse.

Calendario del proyecto.

  • Partir el proyecto en tareas y estimar el tiempo y los recursos necesarios para terminar cada tarea.
  • Organizar las tareas concurrentemente para hacer un uso óptimo de la mano de obra.
  • Minimizar las dependencias entre tareas para evitar retrasos producidos cuando una tarea espera a otra para terminar.
  • Depende de la intuición y la experiencia de los administradores.

Diagramas para la gestión de proyectos.

  • Las notaciones gráficas ilustran la planificación del proyecto.
  • Muestran la descomposición del proyecto en tareas.
    • Las tareas no deben ser demasiado pequeñas.
  • Los diagramas de redes de actividades muestran las dependencias de las tareas y el camino crítico.
  • Los diagramas de barras muestran la planificación sobre el calendario.

Problemas en la planificación.

  • Estimar la dificultad de los problemas, y por lo tanto el coste de desarrollar una solución es difícil.
  • La productividad no es proporcional al número de personas que trabajan en una tarea.
  • Añadir personal al final del proyecto produce más retraso por la sobrecarga en la comunicación.
  • Lo inesperado siempre ocurre.

Otras actividades de gestión.

Gestión del riesgo.

  • El análisis de riesgos consiste en evaluar el proyecto, la tecnología y los recursos con el fin de determinar y comprender la naturaleza y el origen de los riesgos.
  • (^) Posibles riesgos:
    • Comerciales ( competencia, etc. )
    • Financieros ( económicos, etc. )
    • Técnicos ( ¿Base tecnológica sólida y probada? )
    • De desarrollo ( ¿Equipo experimental? )

Conceptos de calidad.

  • ¿Cómo se aplica al software?
  • Control de calidad: inspecciones, revisiones, pruebas.
  • Aseguramiento de la calidad: análisis, auditoría e informes.
  • Estándares de calidad: ISO 90003.

Gestión de la configuración del software.

Existen herramientas que ayudan al control de las versiones a medida que avanzan ( SourceForge ).

Aspectos profesionales y éticos de la Ingeniería del Software.

Recomendaciones de IEEE-CS y ACM.

Objetivos:

  • Los objetivos del cuerpo de conocimientos de la disciplina son seguir un criterio de acreditación de los titulados y mantener un código ético.

Responsabilidad del Ingeniero de Software.

  • La Ingeniería del Software implica una serie de responsabilidades más allá de las habilidades técnicas.
  • Los Ingenieros de Software deben comportarse de modo honesto y ético si quieren lograr respeto como profesionales.
  • Es algo más que cumplir la ley.

Código ético.

  • Sociedad: Los ingenieros de software actuarán de manera coherente con el interés general.
  • Cliente y empresario: Los ingenieros de software deberán actuar de tal modo que se sirvan los mejores intereses para sus clientes y empresarios.
  • Producto: Los ingenieros del software deberán garantizar que sus productos y las modificaciones relacionadas con ellos cumplen los estándares profesionales de mayor nivel que sea posible.
  • Juicio: Los ingenieros del software deberán mantener integridad e independencia en su valoración profesional.

Perspectivas de UML.

  • Ya es el lenguaje de modelado predominante.
  • En él participan importantes empresas.
  • Es aceptado como notación estándar OMG.
  • Inconvenientes:
    • Definición separada del proceso de desarrollo.
    • Falta integración con otras técnicas , tales como patrones de diseño, interfaces de usuario, etc.
    • Monopolio de conceptos, técnicas y métodos en torno a UML.

¿Qué debe aportar un lenguaje de modelado?

  • (^) Elementos de modelado Conceptos y semántica.
  • Notación Representación visual de los elementos.
  • Recomendaciones Cómo usarlo. Arquitectura de UML.

Arquitectura.

Arquitectura de cuatro capas:

  • Meta-modelado: define el lenguaje para especificar metamodelos.
  • Metamodelo: define el lenguaje para especificar modelos.
  • Modelo: define el lenguaje para describir un dominio de información.
  • Objetos de usuario: define un dominio de información específico.

Modelado de objetos.

  • Los objetos se relacionan con las clases de las que son creados por la relación “SerInstanciaDe” (“ InstanceOf ”).
  • Una situación parecida ocurre con las relaciones:

Metamodelado.

  • Se basa en la idea de modelar los tipos de entidades (clases y relaciones) con que forman los modelos.
  • Cuando se ve la clase como un objeto, la clase es una instancia de otra clase (o meta-clase).
  • La idea fundamental en el metamodelado es que las entidades del modelo (ej: clases) juegan dos papeles: - El papel de plantilla (cuando se ve como una clase) - El papel de instancia (cuando se ve como instancia de la meta-clase).

Terminología de metamodelado.

  • La idea de ver las clases como objetos puede ser aplicada repetidamente para crear una jerarquía de instanciación de clases y objetos.
  • En principio esta jerarquía podría continuar hasta cualquier profundidad arbitraria, pero en la práctica no se extiende más allá de cuatro niveles de profundidad.
  • UML se define en cuatro niveles (la guía semántica de UML representa justamente el nivel meta- modelo).

Elementos de modelado en UML.

Notación.

  • Bloques.
    • Elementos. ■ Estructurales.

Diagramas UML.

  • Elicitación de requisitos de usuario.
    • Casos de uso.
  • Modelado de la estructura estática/análisis y diseño.
    • Diagrama de Clases.
  • Modelado de la estructura estática/implementación.
    • Diagrama de componentes.
    • Diagrama de distribución.
  • Modelado de interacción.
    • Diagrama de secuencia.
    • Diagrama de comunicación.
  • Modelado Dinámico
    • Diagrama de Estados.
    • Diagrama de actividades.

Casos de Uso UML.

  • Se emplean en la etapa de Elicitación para captar los requisitos de los usuarios.
  • Son de fácil comprensión por parte de los usuarios de los sistemas.
  • Precisa otras técnicas complementarias para ser utilizado en procesos de modelado OO.