Prof. Gloria Lucía Giraldo G. (Ph.D) glgiraldog@unal.edu.co Departamento de Ciencias de la...

Post on 21-Apr-2015

2 views 2 download

Transcript of Prof. Gloria Lucía Giraldo G. (Ph.D) glgiraldog@unal.edu.co Departamento de Ciencias de la...

Prof. Gloria Lucía Giraldo G. (Ph.D)glgiraldog@unal.edu.co

Departamento de Ciencias de la Computación y de la Decisión

Facultad de Minas. Of. M8A-313Universidad Nacional de Colombia

Ingeniería de Software (IS)Semestre 2 - 2014

http://unvirtual.medellin.unal.edu.co/

¡¡¡ BIENVENIDOS !!!

Objetivo General del curso

Desarrollar habilidades de modelado con miras al desarrollo de soluciones informáticas a problemas prácticos, empleando para ello un enfoque metodológico.

Ingeniería de Sistemas

¿Qué es un Modelo?

Objetivos específicos del curso

Caracterizar los diferentes diagramas y otros artefactos necesarios para la definición, análisis y diseño de soluciones informáticas. UML (Unified Modeling Languaje) y otros.

Emplear los lineamientos teóricos del objetivo anterior en la solución de ejercicios de modelado.

Garantizar el desarrollo de habilidades para la elaboración de modelos en diferentes métodos de desarrollo.

Manejar la terminología apropiada de la ISAprender a trabajar en equipo.

Contenido del curso

1. Artefactos de Definición2. Artefactos de Análisis3. Artefactos de Diseño

Se reconoce la importancia de cada fase del ciclo de vida del software y se estudian y practican diferentes diagramas útiles en cada una de ellas:

Metodología

Clases magistralesMucho trabajo en clase !!!Talleres (Trabajo en equipo)Foros de discusiónExposiciones de los estudiantes de algunos temas asignados.

Juegos (si el tiempo lo permite).

Evaluación Dos (2) talleres 15%,15% 30%Examen Parcial 15% Examen Final 15%Exposición+ Act. 10% Video 15%Seguimiento 10%Desempeño del trabajo en equipo 5%

TOTAL 100%IMPORTANTE !!!

LOS TALLERES, EL TRABAJO Y EL VIDEO SON EN EQUIPO. NO SE ACEPTARÁN TRABAJOS

INDIVIDUALES.

Trabajo en equipoIMPORTANTE !!!

Conformar equipos de 3 estudiantes. Fecha límite de conformación : Jueves 14 de

AgostoEnviar un archivo excel al correo

glgiraldog@unal.edu.co Columnas del archivo: Documento, Nombres, Apellidos, correo electrónico.

El Asunto del correo debe ser: “IS-2014-2 Integrantes Equipo”.

Los estudiantes que para esta fecha no hayan reportado equipo se les asignará uno al azar.

Trabajo en equipoIMPORTANTE !!!

TALLERES

Se asignará un MODELO VERBAL a cada equipo

Los formatos para cada taller se pondrán en la página.

Enviar talleres por correo y entregarlos en medio magnético únicamente.

Trabajo en equipoIMPORTANTE !!!

Guion y Video. Cada equipo:1.Escribe un guion del video (No se entrega). 2.Elabora un video (max. 10 minutos) con

base en el guion escrito.3.Presentar el video y realizar una actividad

relativa al tema del video.4.Entregar el video en medio magnético,

garantizando que se pueda ver y escuchar. Si hay problemas de audio, se deben colocar subtítulos.

Trabajo en equipoIMPORTANTE !!!

DESEMPEÑOPor cada reunión deben elaborar una bitácora y enviarla por correo. Ver formato.

Un día antes de la entrega de cada tarea/trabajo/taller, ya deben haber enviado todas las bitácoras al correo glgiraldog@unal.edu.co

Trabajo en equipoIMPORTANTE !!!

¿Como se medirá el desempeño de un equipo?

CUMPLIMIENTO: Todas las bitácoras enviadas a tiempo. Todos los talleres entregados a tiempo. Todos los integrantes presentes el día de la entrega.

PROMEDIO DE LAS PRUEBAS DE LAS ENTREGAS: El día de cada entrega, se escogerá un integrante al azar quien presentará una prueba. La nota obtenida por ese estudiante será la nota para todo el equipo. Si el estudiante que se escoge está ausente la nota será 0 para todo el equipo.

ANÁLISIS DE LAS BITÁCORAS: Concepto de la profesora gestión del trabajo en equipo.

Contenido del taller #1: Artefactos fase de Definición

Esquema Preconceptual Modelo del dominioDiagrama Causa – Efecto (Ishikawa) Diagrama de Procesos Diagrama de Actividades UML Diagrama de Objetivos de KAOS

Contenido del taller #2: Artefactos fase de Análisis

Diagrama de Procesos de la soluciónDiagrama de Clases de UMLDiagrama de Objetos UMLDiagrama Entidad-AsociaciónDiagrama de Casos de Uso UML

(incluyendo descripción de los casos de uso, interfaces gráficas de usuario que van dentro de la descripción del caso de uso)

Diagrama de Secuencias por cada caso de uso.

REGLASR1. Todo correo enviado debe llevar

OBLIGATORIAMENTE el asunto de la siguiente forma:

Si es taller: IS-2014-2 Equipo # Taller #

Si es bitácora: IS-2014-2 Equipo # Bitácora #

Si es tarea: IS-2014-2 Equipo # Tarea #

Si es otro tipo de correo: IS-2014-2 Otro

REEMPLAZAR “#” POR SU VALOR CORRESPONDIENTE. EN EL CASO DE UNA TAREA SE REEMPLAZA POR UNA CORTA DESCRIPCIÓN

ATENCIÓN: Correo que no traiga este asunto, no se tendrá en cuenta

REGLASR2. Después de realizada cada reunión de

equipo, los estudiantes redactan una bitácora y la envían al correo glgiraldog@unal.edu.co antes de realizar la siguiente entrega.

R3. Enviar los talleres al correo glgiraldog@unal.edu.co, antes de las 12 de la noche del día anterior al de la entrega.

NOTA: CUMPLIR LAS REGLAS R2 Y R3 AUMENTA LA NOTA DE DESEMPEÑO !!!

REGLAS

R4. Entregar los archivos solamente en medio magnético (CD). El CD debe contener:-El archivo “.doc” con el enunciado y todos los diagramas.

-Los archivos “.vsd” (VISIO) correspondientes.

-Todas las bitácoras.

R5. El taller 2 debe incluir el taller 1 corregido

Introducción a la Ingeniería de Software (IS)

¿Qué es Software?

Es el producto que diseñan y construyen los ingenieros de software.

Comprende tanto los programas ejecutables como la documentación de la aplicación.

¿Qué es la documentación?

-Diagramas-Modelos-Manual de usuario-Comentarios al interior de los programas

¿Qué es Software?

¿Qué es Ingeniería?

Es el conjunto de conocimientos y técnicas científicas aplicadas, que se dedica a la resolución y optimización de los problemas que afectan directamente a la humanidad.

¿Qué es Ingeniería?

Rotating Tower, Dubai , Emiratos Árabes Unidos

Viaducto Millau (Francia)Ingenierí

a de Software

?

¿Qué es la ingeniería de software?

Ingeniería de Software es el estudio de los principios y metodologías para el desarrollo y mantenimiento de sistemas software (Zelkovitz, 1978).

Ingeniería de software es la aplicación práctica del conocimiento científico al diseño y construcción de programas de computadora y a la documentación asociada requerida para desarrollarlos, operarlos y mantenerlos. Se conoce también como Desarrollo de Software o Producción de Software ( Bohem, 1976).

¿Qué es la ingeniería de software?

Ingeniería de Software trata del establecimiento de los principios y métodos de la ingeniería a fin de obtener software de modo rentable, que sea fiable y trabaje en máquinas reales (Bauer, 1972).

La ingeniería del software es la aplicación de un enfoque sistemático, disciplinado y cuantificable al desarrollo, operación y mantenimiento del software. La ingeniería del software ofrece métodos o técnicas para desarrollar y mantener software de calidad que resuelven problemas de todo tipo, y trata áreas muy diversas de la informática y de las ciencias computacionales (IEEE, 1993).

Naturaleza del Software

Por ser intangible, el software es un producto muy especial:

Se desarrolla, no se fabrica.Se deteriora (degenera), no se

desgasta.Se construye a la medida.

[Pressman, 2002]

Etapas en la evolución del software

Etapa 1: 1950-1965Etapa 2: 1965-1976Etapa 3: 1976-1989Etapa 4: 1989-2000Etapa 5: 2000- …

Etapa 1: 1950 a 1965:

Esfuerzo centrado en hardwareAusencia de métodos de desarrolloConstrucción software a la medida y

baja distribución

Etapas en la evolución del software

Etapa 2: 1965 a 1976:Programas de gran extensiónDifícil mantenimiento del softwareAparición de casas de softwareInicio de la Crisis del software:Imprecisión en la planificación del proyecto y estimación de los costos.

Boehm, 1975: 45% de los errores tienen su origen en los requisitos y en el diseño preliminar.

Baja calidad del software.Dificultad de mantenimiento de programas con un diseño poco estructurado, etc.

Etapas en la evolución del software

Etapa 3: 1976 a 1989:Hardware a bajo costoPopularización de los PCGrandes inversiones de la industria en

productos de softwareImprecisión en la planificación del

proyecto y estimación de los costos DeMarco, 1984: 56% de los errores que

tienen lugar en un proyecto software se deben a una mala especificación de requisitos.

Etapas en la evolución del software

Etapa 4: 1989 a 2000Se construye software utilizando IA Sistemas

expertos.Hay un incremento en la demanda del software.Se reconoce en las organizaciones el valor de la

información.Aparece el entorno Cliente-Servidor y las tecnologías

internet.Se agudiza la crisis por dificultad en mantenimiento de

las aplicaciones.Imprecisión en la planificación del proyecto y

estimación de los costos.

Etapas en la evolución del software

Etapa 4: 1989 a 2000Chaos Report, 1995: Los factores principales que

conducen al fracaso en los proyectos software son: – Falta de comunicación con los usuarios. – Requisitos incompletos. – Cambios a los requisitos.

NECESIDAD DE UNA METODOLOGÍA PARA EL

DESARROLLO DE SOFTWARE

Etapas en la evolución del software

Etapa 5: 2000 - …Omnipresencia de la WebReutilización de informaciónComponentes de software reutilizables

Etapas en la evolución del software

NECESIDAD DE UNA METODOLOGÍA PARA EL

DESARROLLO DE SOFTWARE

Algunos desastres famosos relacionados con el software

El cohete Mariner sin rumbo (1962)Descripción: investigación espacial deVenusCosto: 18.5 millones de dólaresCausa: una mala codificación de una fórmula hizo que el

cohete se saliera de la orbita y se destruyó pasados 293 segundos después de su despegue.

La máquina asesina – Therac 25 (1985)Descripción: máquina de terapia radiactiva emitió dosis letales

de radiación a los pacientesCosto: varias vidas humanasCausa : un bug permitió que un técnico configurara mal la

máquina.

NECESIDAD DE UNA METODOLOGÍA PARA EL DESARROLLO DE SOFTWARE

Algunos desastres famosos relacionados con el software

El Ariane 5 (1996)Descripción: cohete espacial europeo no tripuladoCosto: 500 millones de dólaresCausa: error en el algoritmo al calcular la velocidad.

Se generó un problema de desbordamiento al convertir un valor punto flotante de 64 bits a un entero de 16 bits.

NECESIDAD DE UNA METODOLOGÍA PARA EL DESARROLLO DE SOFTWARE

Problemática del desarrollo de software

Fases del ciclo de vida del desarrollo del software

Análisis y definición de requisitosDiseñoConstrucciónPruebasMantenimiento

Análisis y definición de requisitos

Extraer requisitos de un producto de software es la primera etapa para crearlo: se requiere de habilidad y experiencia para reconocer requisitos incompletos, ambiguos y contradictorios.

Diseño y construcción de productos de software

El diseño describe cómo se construirá la aplicación de softwareArquitectura de sistemas: es una

actividad de planeación, ya sea a nivel de infraestructura de red y hardware, o de Software (diseño de componentes de una aplicación).

Programación, pruebas y mantenimiento: no debe ser lo más complicado ni lo más demandante de tiempo.

• Hace ya muchos años se mostró el problema generado por la ausencia de técnicas sistemáticas para desarrollar el software.

• Actualmente, el software está presente en muchísimos aspectos de la vida diaria.

• Por tanto, es de vital importancia, entender y difundir el carácter vital de la aplicación de dichas técnicas.

CONCLUSIÓN

Actividaden equipos de 3 estudiantes

Tomar 3 ejemplos de modelos de la vida real y discutirlos en equipo.

Entregar cada uno de los ejemplos acompañados de una explicación del por qué se consideran modelos.

Tarea Individual (seguimiento)

Investigar y explicar :1. Qué es ciclo de vida del

software?2. Qué es Ingeniería de Software?

Entregar esta tarea escrita a mano.

ATENCIÓN: No olvidar la bibliografía.

Bibliografía

FOWLER, M. UML Distilled: A brief guide to the Standard Object Modeling Language. Addison Wesley, Reading, 2004.

PRESSMAN, R. Ingeniería de Software, un enfoque práctico. Quinta edición. McGraw-Hill, New York, 2002.

BARKER, R. Case Method Entity Relationship Modelling. Addison Wesley.1990.

SOMMERVILLE, I. Ingeniería de Software. Addison Wesley, Reading, Sexta Edición. 2000.

BibliografíaZAPATA, C. M. y GÓMEZ, M. C. Ingeniería del

Software: Una disciplina de Modelamiento. Carlos M. Zapata (Ed.), Medellín, 2006.

ZAPATA, C. M. y OLAYA, Y. Ingeniería de Software para Analistas. Carlos M. Zapata (Ed.), Medellín, 2007.

ARANGO, F. y ZAPATA, C. M. UN-Método para la elicitación de Requisitos de Software. Carlos M. Zapata (Ed.), Medellín, 2007.

ZAPATA, C. M. y ARANGO, F. Construcción automática de Esquemas Conceptuales a partir de Lenguaje Natural. Carlos M. Zapata (Ed.), Medellín, 2007.