Programación del curso



Documentos relacionados
El Proceso Unificado de Desarrollo de Software

Plan de estudios ISTQB: Nivel Fundamentos

INFORME Nº1 PROPUESTA METODOLÓGICA Y PLAN DE TRABAJO DESARROLLO DE UN SISTEMA INTEGRADO DE GESTIÓN PARA EL GOBIERNO REGIONAL DE ATACAMA

El Proceso de Desarrollo de Software. Diseño de Software Avanzado Departamento de Informática

Ciclo de vida y Metodologías para el desarrollo de SW Definición de la metodología

Tópicos Avanzados de Análisis y Diseño INGENIERIA DE SOFTWARE ING. MA. MARGARITA LABASTIDA ROLDÁN

Estándares para planes de calidad de software. Escuela de Ingeniería de Sistemas y Computación Desarrollo de Software II Agosto Diciembre 2008

DESARROLLO DE SOFTWARE DEFINICIÓN GENERAL DEL PROCESO GABY LORENA GUERRERO LEYDI ROCIO ERAZO PABLO FELIPE MIRANDA WALTER ALEXIS ANTE

Proceso Unificado de Rational PROCESO UNIFICADO DE RATIONAL (RUP) El proceso de desarrollo de software tiene cuatro roles importantes:

INGENIERÍA DE SOFTWARE CICLOS DE VIDA Y METODOLOGIAS

INGENIERÍA DEL SOFTWARE

Operación 8 Claves para la ISO

Programación Orientada a Objetos: Lenguajes, Metodología y Herramientas Master de Computación

PRU. Fundamento Institucional. Objetivos. Alcance

Instituto Nacional de Tecnología Industrial TESTING DE SOFTWARE

UNIDAD 2: Abstracción del Mundo real Al Paradigma Orientado a Objetos

Ingeniería de Software: Parte 2

1 GLOSARIO. Actor: Es un consumidor (usa) del servicio (persona, sistema o servicio).

Ingeniería de Software I

Contenidos. Parte I - Introducción Capítulo 1 - Evolución. Capítulo 2 Condiciones de trabajo en el Desarrollo de Software

Solución de una Intranet bajo software Open Source para el Gobierno Municipal del Cantón Bolívar [IOS-GMCB] Gobierno Municipal del Cantón Bolívar

GUÍA DOCENTE 1. DESCRIPCIÓN DE LA ASIGNATURA

Fundamentos de Ingeniería del Software

PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación. II MODELOS y HERRAMIENTAS UML. II.2 UML: Modelado de casos de uso

UNIVERSIDAD DE ORIENTE FACULTAD DE CIENCIAS ECONOMICAS

Elementos requeridos para crearlos (ejemplo: el compilador)

MINISTERIO DE EDUCACIÓN DIRECCIÓN DE EDUCACIÓN TÉCNICA Y PROFESIONAL PROGRAMA DE LA ASIGNATURA BASE DE DATOS ESPECIALIDAD INFORMÁTICA.

El Proceso Unificado Rational para el Desarrollo de Software.

EXÁMEN DE VALIDACIÓN DE COMPETENCIAS PROFESIONALES DE PARADIGMAS DE DESARROLLO DE SOFTWARE

ITZOFT, una metodología de desarrollo de sistemas basada en el Proceso Unificado de Rational. Resumen

Departamento de Lenguajes y Sistemas Informáticos. Ciclo de vida del software

Resumen General del Manual de Organización y Funciones

Modelo para el Aseguramiento de Calidad en el Desarrollo de Software Libre

Ingeniería de Software

Calidad Escuela de Ingeniería de Sistemas y Computación Desarrol o de Software II Agosto Diciembre 2007

Anteproyecto Fin de Carrera

Ingeniería de Software

Universidad acional Experimental Del Táchira Decanato de Docencia Departamento de Ingeniería en Informática

Metodología de construcción de Indicadores MODELO 3

Metodologías de Desarrollo de Sistemas de Información

Implantación y Aceptación del Sistema

GUÍA DOCENTE. Curso DESCRIPCIÓN DE LA ASIGNATURA. Ingeniería Informática en Sistemas de Información Doble Grado: Módulo: Módulo 6

Sistema Gestión Licitación para la compra del desarrollo y migración del Sistema de Gestión de Activos y Configuraciones para Plan Ceibal

Gestión y Desarrollo de Requisitos en Proyectos Software

PROCEDIMIENTO ESPECÍFICO. Código G Edición 0

Programa de la asignatura Curso: 2009 / 2010 ANÁLISIS E INGENIERÍA DEL SOFTWARE (1296)

Resumen General del Manual de Organización y Funciones

Metodología básica de gestión de proyectos. Octubre de 2003

1.- DATOS DE LA ASIGNATURA. Nombre de la asignatura: Fundamentos de Ingeniería de Software. Ingeniería en Sistemas Computacionales.

Ciclo de vida y Requerimientos de software. Laboratorio de Programación

GUÍAS. Módulo de Diseño de software SABER PRO

Ingeniería del Software. Diseño. Diseño en el PUD. Diseño de software. Patrones arquitectónicos. Diseño Orientado a Objetos en UML

COPPEL MANUAL TÉCNICO MCC DE SISTEMAS PROGRAMACIÓN DESCRIPCIÓN DEL PROCESO DE ARQUITECTURA DE SOFTWARE

Propuesta Matriz de Actividades para un Ciclo de Vida de Explotación de Datos


<Generador de exámenes> Visión preliminar

Programación orientada a

Gestión de la Configuración

Nombre de la asignatura: Programación Web. Créditos: Aportación al perfil

Metodología Orientada a Objetos Clave Maestría en Sistemas Computacionales

CICLO DE VIDA DEL SOFTWARE

14. Ingeniería de software. Ing. Alejandro Adorjan

Interacción Persona - Ordenador

INGENIERÍA DEL SOFTWARE I. Univ. Cantabria Fac. de Ciencias. Especificación de Requisitos. Práctica 2

Unidades temáticas de Ingeniería del Software. Fases del proceso de desarrollo 4ª edición (2008)

SISTEMAS DE PLANEACIÓN DE RECURSOS EMPRESARIALES 2008

Primer avance de proyecto de software para la gestión de inscripciones en cursos

Ingeniería del Software Web

Proyecto de administración de sistemas informáticos en red

Traducción del. Our ref:

Patrones de software y refactorización de código

Diseño orientado al flujo de datos

Proceso de desarrollo de aplicaciones software.

ANÁLISIS Y DISEÑO DE SISTEMAS DEPARTAMENTO DE CIENCIAS E INGENIERÍA DE LA COMPUTACIÓN

Mantenimiento de Sistemas de Información

LISTA DE CHEQUEO NORMA NTC ISO 9001:2000 No. REQUISITOS EXISTE ESTADO OBSERVACIONES D: Documentado I: Implementado M: Mejorar SI NO D I M

GUIA SOBRE LOS REQUISITOS DE LA DOCUMENTACION DE ISO 9000:2000

-OPS/CEPIS/01.61(AIRE) Original: español Página Estructura del programa de evaluación con personal externo

Planeación del Proyecto de Software:

Programa de Criminología UOC

PREPARADO POR: FECHA DE EMISIÓN: FECHA DE VALIDACIÓN:

6 Anexos: 6.1 Definición de Rup:

Gestión de la Configuración (SCM) Introducción a la Ingeniería de Software

Carrera: SCM Participantes. Representantes de la academia de sistemas y computación de los Institutos Tecnológicos.

Nombre de la asignatura: Proceso Personal para el Desarrollo de Software

DIRECTRICES PARA LA COORDINACION DE TITULACIONES EN LA UNIVERSIDAD DE SALAMANCA

Mesa de Ayuda Interna

TECNOLOGICO DE ESTUDIOS SUPERIORES DE ECATEPEC CALIDAD DE SOFTWARE Guía para Examen Segundo Parcial Grupo 6501

Análisis y Diseño de Aplicaciones

Carrera: ISH

Se aportan, para la configuración de este anexo, las categorías profesionales más habituales según la definición del MRFI-C:

Ciclo de Vida del Desarrollo de un Sistema de Información. Departamento de Ingeniería Industrial Universidad de Chile

PRUEBAS DE SOFTWARE TECNICAS DE PRUEBA DE SOFTWARE

Metodología de Ingeniería del Software para el desarrollo y mantenimiento de sistemas de información del Gobierno de Extremadura

Programa en Microsoft Visual Basic 6.0 para el análisis de riesgos eléctricos en oficinas y centros de cómputo. López Rosales, Juan Carlo.

Planificación de Sistemas de Información

Transcripción:

Ingeniería Software 4º Físicas Programación del curso José M. Drake (drakej@unican.es) Patricia López Martínez ( lopezpa@unican.es ) Computadores y Tiempo Real Santander, 2008 Ingeniería de Programación (4º Físicas) J.M. Drake 0

Que es la ingeniería software La ingeniería software es la actividad que conduce al desarrollo de aplicaciones software que resuelve problemas reales. Es un tipo de ingeniería: Actividad en la que el conocimiento de las ciencias y de la matemática se aplica con juicio para desarrollar formas de utilizar los recursos de la naturaleza para resolver problemas de la humanidad. Que comparte con las otras ingenierías? Necesidad de una descripción y documetación exhaustiva de lo que se produce. Qué la diferencias de las otras ingenierías? Los productos software está sometidos a continuos cambios durante su vida útil. 1 La ingeniería software es por definición un tipo de ingeniería y, por tanto, tiene el mismo conjunto de responsabilidades sociales que las otras. En que se diferencia la ingeniería de software de los otros tipos de ingenierías y en que es similar? Laingeniería de software comparte con las otras ingenierías la necesidad de describir exhaustivamente y metódicamente lo que tiene que producirse (análisis de requisitos). Los proyectos software están sujetos a cambios frecuentes que incluyen los impuestos durante el desarrollo del producto. Ingeniería de Programación (4º Físicas) J.M. Drake 1

Hardware, algorítmo e ingeniería 100% Ingeniería hardware Ingeniería algoritmos Ingeniería proyectos 80% Costo del hardware 60% 40% Costo del software 20% 0% 1950 1960 1970 1980 1990 2000 2 Ingeniería de Programación (4º Físicas) J.M. Drake 2

Actividades de la ingeniería software. Definición del proceso de desarrollo del software que se usará. Administración del proyecto de desarrollo. Descripción del producto software que se desea obtener. Análisis y diseño del producto. Implementación del producto. Pruebas de las partes del producto Integración de las partes del producto y su validación global. Mantenimiento del producto. 3 En la década de los 90, dos tendencias se impusieron en el desarrollo del software: Una fue el crecimiento explosivo de las aplicaciones y de sus dimensiones, la otra, el nacimientos de nuevas herramientas y paradigmas conceptuales basadas en la programación orientada a objetos. Sin embargo, a pesar de las nuevas tendencias, las actividades básicas han permanecido estables. Estas actividades son las que se describen en la transparencia de arriba. Ingeniería de Programación (4º Físicas) J.M. Drake 3

Componentes de la ingeniería software. Personas Proceso Requerimientos Estudio de Elaboración Construcción Transferencia oportunidad Análisis Diseño Implementación Prueba (Quien lo hace) Iteración preliminar Iter. Iter. Iter. Iter. (La manera en que se hace) Iter. Iteración Iteración Proyecto Producto (La ejecución de las tareas) (Los productos que resultan) 4 La ingeniería software incluye Personas, Proceso, Proyecto y Productos. Personas: Una aplicación software de mediana complejidad requiere la participación de un conjunto de personas, algunos son técnicos que desarrollan los productos, otros son los interesados (personas que ganan o pierden algo con el éxito de la aplicación). Es importante definir las funciones y responsabilidades de los participantes para que el trabajo alcance su éxito. Proceso: Representa la organización de las actividades que hay que realizar y los productos que deben obtenerse para elaborar la aplicación. Se han propuesto muchos tipos de proceso, algunos están definidos de acuerdo con las herramientas de que se disponen, otros están definidos en función del tipo de aplicación que se desarrolla. En este curso nos centraremos en el proceso USPD (Unified Software Development Process). Proyecto: Es el conjunto de de actividades necesarias para producir los artefactos requeridos. Incluye: Negociar con el cliente, escribir la documentación, formular el diseño, escribir el código, y probar el producto. La programación orientada a objetos (OO) es un paradigma muy útil para el desarrollo del proyecto, en particular para facilitar los cambios entre fases ya que se hace usando las mismas abstracciones del dominio. El lenguaje unificado de Modelado (UML) es una herramienta muy útil ya que permite representar los conceptos de forma gráfica y facilita el intercambio de ideas entre los participantes. Producto: El producto de una aplicación software no es sólo el código ejecutable, sino todos lo elementos (artefactos) que lo describen y que permiten su compresión, manejo, uso mantenimiento, etc. Entre los principales productos están: Los documentos de especificación de requisitos, que describen la arquitectura hardware y software, que describen el diseño detallado de cada módulo, las implementaciones o código entregable y los procedimientos de prueba y validación. Ingeniería de Programación (4º Físicas) J.M. Drake 4

Calidad del software La calidad consiste en definir un conjunto de métricas que describan: Número de fallos Severidad de los defectos Reusabilidad Estabilidad del desarrollo Costo de mantenibilidad... La calidad es una consecuencia de admitir que los productos tienen defectos. 5 Ingeniería de Programación (4º Físicas) J.M. Drake 5

Tipos de calidades del software Hay dos tipo de calidad: Calidad externa: Es la calidad detectable por el usuario: Correctitud, robustez, extensibilidad, reusabilidad, compatibilidad, eficiencia, portabilidad, verificabilidad, integridad, facilidad de uso). Calidad interna: Es la calidad solo observable por los diseñadores que desarrollan el proyecto (Especificación detallada, arquitectura sencilla, diseño modular, etc.). Los factores de calidad externos son el objetivo final, los factores de calidad internos son el medio de conseguirlos y garantizarlos. 6 Ingeniería de Programación (4º Físicas) J.M. Drake 6

Factores de calidad externa Correctitud Robustez Extensibilidad Reusabilidad Compatibilidad Eficiencia Portabilidad Verificabilidad Integridad Facilidad de uso 7 CORRECTITUD (Correctness): Es el factor de calidad externo fundamental. Es un factor muy fácil de definir, pero solo se puede verificar si las especificaciones son exhaustivas. ROBUSTEZ (Robustness): La respuesta fuera de la especificación no es de interés, pero la aplicación debe dar respuestas correctas cuando se retorna a condiciones especificadas. El concepto de robuztez es difuso, se suele requerir que nunca se alcancen estados catastróficos. EXTENSIBILIDAD (Extendebility): Aparentemente es consustancial con el concepto de software, pero en los proyectos grandes no es posible estimar los efectos colaterales de los cambios. Las dos bases de la extensibilidad son: La simplicidad del diseño y el diseño descentralizado. REUSABILIDAD (Reusability): Es un concepto importante en la industria del software. Debería se facil de alcanzar ya que son pocas las operaciones básicas de software, sin embargo aún no es así. COMPATIBILIDAD (Compatibility): Las claves para conseguir la compatibilidad son: la homogeneidad y la estandarización. EFICIENCIA (Efficency): Es la capacidad de un producto software de hacer un uso completo de los recursos que le proporciona la plataforma sobre la que se ejecuta. PORTABILIDAD (Portability) : Es la capacidad de un producto software para ser transferido a diferentes plataformas hardware y entornos software. VERIFICABILIDAD (Verifiability): Es la facilidad que proporciona un software para detectar y trazar fallos durante las fases de validación y operativa. INTEGRIDAD (Integrity): Es la capacidad que ofrece un producto software para proteger su recursos (código, datos, ficheros, etc.) contra accesos y modificaciones no autorizadas. FACILIDAD DE USO (Ease of use): Es la facilidad que presenta el producto software para ser utilizada, ser gestionada, preparar la información de entrada, interpretar los resultados, etc. Ingeniería de Programación (4º Físicas) J.M. Drake 7

Objetivos de la asignatura Conocer el proceso, la organización y las herramientas que se necesitan para desarrollar una aplicación software de mediana complejidad. Nos centraremos en: Proceso: USPD (Proceso de desarrollo de software unificado) ROPES (Rapid Object-Oriented Process for Embedded Systems) Metodología de especificación: Casos de uso. Metodología de análisis y diseño: Orientado a objeto. Herramienta: ECLIPSE y BOUML Lenguaje de programación: JAVA También: Desarrollo de GUI (Interfaces Graficas de Usuario) 8 El objetivo de la asignatura es aprender a desarrollar una aplicación software de mediana complejidad. Entendemos por aplicación de mediana complejidad aquella que puede ser desarrollada por un equipo de 3 o 4 personas durante un semestre, lo que equivale a un código fuente de unas (4 personas*120 días*25 líneas = 12.000 Líneas de código fuente JAVA sin comentarios (NCSLOC)) (72.000 ). El desarrollo de un proyecto implica diferentes aspectos: -Requiere utilizar un proceso de desarrollo dentro del cual se encuadren las diferentes tareas que conducen a la elaboración de una aplicación. -Requiere conocer la organización de un equipo de personas, identificar los papeles que han de desempeñar y sus responsabilidades. -Requiere conocer los productos que deben generarse de los que uno es el código ejecutable, pero que también requiere documentación textual y gráfica relativa a la especificación, análisis, diseño, codificación, verificación, validación y manuales de usuario. -Requiere conocer las herramientas que permiten describir y modelar las ideas y los conceptos de forma humana no basada en lenguajes de programación. El curso no está planteado como un planteamiento genérico de metodologías de desarrollo de software, sino centrado en un conjunto concreto que se va a utilizar. Ingeniería de Programación (4º Físicas) J.M. Drake 8

Programa de la asignatura PROGRAMA I. Proceso de desarrollo del software II. Gestión del proyecto software III. Análisis y diseño orientado a objetos. IV. Integración y verificación del sistema. SEMINARIOS: 1. Diseño de interfaces de usuario. 2. Herramientas CASE para análisis y diseño orientado a objetos. PROYECTO SOFTWARE MIM: Monitorización de Información Meteorológica 9 Ingeniería de Programación (4º Físicas) J.M. Drake 9

Metodología de trabajo Jueves 12.45-13.30: Teoría Desarrollamos un tema conceptual. Jueves 13.30-14.15: Ejemplo de referencia. Se aplican los conceptos a un ejemplo que se utiliza de referencia. Miércoles 11.45-12.00: Reunión de organización Se planifica el trabajo de la semana. Miércoles 12.45-14.15: Trabajo individual en el laboratorio. Se inicia el trabajo de la semana. En casa: Se elabora el producto. Se envía la documentación asociada al producto desarrollado por E_mail (lopezpa@unican.es) 10 La organización del trabajo va a tener una planificación con ciclo semanal: 45minutos: En una sesión de clase magistral se propone los conceptos relativos a algún tema de forma sistemática y ordenada. 45 minutos: En una sesión de clase conjunta se aplican los conceptos a un ejemplo que se irá desarrollando a lo largo del curso y que se tomará como referencia. 30 minutos: En una reunión del equipo se organiza el plan de trabajo de la semana. 120 minutos: En el laboratorio se inicia el trabajo planificado, y trabajando sobre él se concreta y termina de definir. En casa: Se termina el trabajo semanal que cada uno tiene asignado, se elabora la documentación relativo a la tarea y se remite al profesor por E_mail (drakej@unican.es) con una antelación de 24 horas a la reunión de planificación de trabajo de la siguiente semana. Papeles en el proyecto - El profesor: Cliente Administrador del proyecto Lider -El alumno: Desarrollador Control de calidad. Ingeniería de Programación (4º Físicas) J.M. Drake 10

Programación de la asignatura Mes de Febrero y Marzo Introducción Especificación de aplicaciones Análisis de la aplicaciones Mes de Abril Diseño Mes de Mayo Implementación Verificación 11 Proceso de desarrollo del software: Componentes del desarrollo. Modelo de proceso en cascada. Modelo de proceso en espiral. Modelo USDP. Documentación. Calidad del software. Administración del proyecto: Componentes de la administración de un proyecto. Organización del personal. Identificación y eliminación de los riesgos. Herramientas. Planificación y calendario. Herramientas: Instalación de Rational Rose y J_Builder. Especificación del proyecto y análisis de requisitos: Clasificación de los requisitos. Requisitos orientados al cliente. Descripción y documentación de los requisitos de cliente. Prototipos rápidos y GUIs. Requisitos orientados a los desarrolladores. Requisitos funcionales y no funcionales. Diagramas de contexto. Diagramas de secuencias y de colaboración. Documentación de requisitos. Análisis y diseño de clases y arquitectura: Análisis orientado a objetos. Modelo estructural. Subsistemas, componentes, clases e interfaces. Arquitectura software y hardware. Marcos de referencia y patrones de arquitectura. Ingeniería de Programación (4º Físicas) J.M. Drake 11

Documentación y bibliografía http://www.ctr.unican.es/asignaturas/ip/ Referencia de Ingeniería Software: E.J.Braude: Ingeniería de Software: Una perspectiva orientada a objetos. Editorial RA-MA, 2003. Referencia de UML: M. Fowler y K. Scott: UML: Gota a gota Addison Wesley, 1997. BOUML: User manual, http://bouml.free.fr/documentation.html. Enero, 2008.(PDF) Referencia de GUI Java: K. Arnold, J. Gosling, D. Holmes: El lenguaje de programación Java Addison-Wesley, D.L. 2001. Documentación Eclipse: http://www.eclipse.org/documentation/ Documentación Eclipse: http://www.eclipse.org/articles/ 12 La documentación del curso se entregará a los alumnos directamente en clase, o se colgará de la página www.ctr.unican.es/ingenieriasoftware/. El alumno no requerirá ningún libro de texto para seguir el curso. Los libros de texto siguientes se utilizarán para organizar el curso. -E.J. Braude: Ingeniería de software: Una perspectiva orientada a objetos. Es el libro de texto que va a seguirse en la asignatura. Es un muy buen libro de texto, pero sobrepasa los objetivos del curso. Caso de que quiera tener un libro de ingeniería software, en este momento, éste es el mejor. - M. Fowler y K. Scott: UML: Gota a gota. Es un libro sobre UML para principiante. Es muy claro y sencillo. No lo compre ya que en es muy básico y en seguida resulta inútil. - Rational: Rational Rose 2000e using RoseJ. Es un documento sobre la correspondencia en los modelos UML y código fuente Java que lleva a cabo el generador de código de Rational Rose. Se utilizará como manual. (PDF que se colgará de la página WEB del curso) - Borland: Diseño de aplicaciones con Jbuilder (PDF) Se utilizará como manual cuando se aborde el diseño de las GUIs. - Y.D. Liang: Rapid Java Application development using J Builder Libro de texto relativo al uso de Jbuilder como herramienta de desarrollo de aplicaciones Java. Tiene buenos ejemplos. Ingeniería de Programación (4º Físicas) J.M. Drake 12

Seguimiento y evaluación de la asignatura. El curso tiene por objetivo seguir un ciclo completo de desarrollo de una aplicación y por tanto requiere una atención y dedicación continua semana a semana. La perdida de clases por cualquier razón debe ser recuperada. La evaluación se realiza por los documentos que semanalmente se entregan sobre el trabajo de equipo. Existe una evaluación final para establecer la calificación. Caso de que no se esté conforme con la calificación que resulte de la evaluación continua, puede realizar una evaluación escrita. 13 Ingeniería de Programación (4º Físicas) J.M. Drake 13

Ruegos y preguntas...??? 14 Ingeniería de Programación (4º Físicas) J.M. Drake 14