9
Introducci´on Fundamentos de Ingenier´ ıa de SW Jocelyn Simmonds ILI-236 (JS) Intro 1 / 33 Presentaci´ on Instructora: Jocelyn Simmonds (Oficina A-137) [email protected] (con subject: “ILI-236: . . . ” ) Ayudante: Celeste Bertin Horario Clases: Ju 3-4 (B-004) & Vi 5-6 (B-003) Ayudant´ ıa: horarios por definir ILI-236 (JS) Intro 2 / 33 Administrivia Modus Operandi Basado en tareas resueltos por grupos de 3 alumnos cambios de equipo deben ser informados al profesor y ayudantes Clases regulares teor´ ıa + ejercicios Ayudant´ ıas uso de herramientas, ejercicios, etc. Prerrequisito Programaci´ on OO ILI-236 (JS) Intro 3 / 33 Administrivia Evaluaci´ on 2 Cert´ amenes (CE): 30 % c/u Tareas (informes + presentaciones) (CA): 40% Notas m´ ınimas Nota final 55 Promedio cert´ amenes 50 if (CE<50) then NF=CE else NF=60 %*CE+40 %*CA ILI-236 (JS) Intro 4 / 33

Curso Ingeniería de Software - Introducción

Embed Size (px)

DESCRIPTION

Curso Ingeniería de software Universidad Técnica Federico Santa María.

Citation preview

  • Introduccion

    Fundamentos de Ingeniera de SW

    Jocelyn Simmonds

    ILI-236 (JS) Intro 1 / 33

    Presentacion

    I Instructora:Jocelyn Simmonds (Oficina A-137)[email protected] (con subject: ILI-236: . . . )

    I Ayudante:Celeste Bertin

    I HorarioClases: Ju 3-4 (B-004) & Vi 5-6 (B-003)Ayudanta: horarios por definir

    ILI-236 (JS) Intro 2 / 33

    Administrivia

    I Modus OperandiBasado en tareas

    I resueltos por grupos de 3 alumnosI cambios de equipo deben ser informados al profesor y ayudantes

    I Clases regularesteora + ejercicios

    I Ayudantasuso de herramientas, ejercicios, etc.

    I PrerrequisitoProgramacion OO

    ILI-236 (JS) Intro 3 / 33

    Administrivia

    I Evaluacion2 Certamenes (CE): 30 % c/uTareas (informes + presentaciones) (CA): 40 %

    I Notas mnimasNota final 55Promedio certamenes 50

    I if (CE

  • Calendario

    I Certamenes regulares y examenCertamen 1: 21/novCertamen 2: 16/eneExamen: 17/ene

    I La rendicion del examen no requerira la justificacion de inasistencias,sin embargo este sera hecho en base a los contenidos de todo elsemestre y solo reemplazara un certamen no-rendido.

    I Si alguien rindio los dos certamenes pero esta reprobando porcertamenes, podra dar el recuperativo, pero en forma aprobativa.

    ILI-236 (JS) Intro 5 / 33

    Objetivos y Diseno

    I Objetivos del CursoDesarrollar habilidades de comprension, aplicacion y reflexion deconceptos, tecnicas y herramientas en Analisis y Diseno Orientados aObjetosLograr aplicar conceptos, tecnicas y herramientas de Analisis y Disenodurante el desarrollo de un sistema de software

    I Diseno del CursoBasado en tareas resueltos por gruposIterativo incremental

    I Agregando complejidad al casoI Agregando conceptos, tecnicas y herramientas que pueden usar para

    enfrentar el problema y crear una solucion de software

    ILI-236 (JS) Intro 6 / 33

    Introduccion

    ILI-236 (JS) Intro 7 / 33

    Que es Software?

    Que es Software?I Software no son solo los programas que utilizamos

    codigo fuente NO es lo unico que debemos generar

    I Los modelos que describen el problema que resuelven, como fueresuelto, los datos del programa y la documentacion para ocupar,instalar o administrar los programas tambien son software

    ILI-236 (JS) Intro 8 / 33

  • Ejemplo Domestico

    ILI-236 (JS) Intro 9 / 33

    Una situacion cotidiana

    I El software se desarrolla para satisfacer una necesidad

    I Veamos como un especialista en una materia satisface una necesidad

    Marlon, GasfiterHola Senora, cuenteme cual essu problema?

    Juanita, Senora EstandarHola joven, sabe que el Yeisonestaba jugando con los monitosen el lavaplatos y ahora el aguano se va

    Ejemplo Domestico

    ILI-236 (JS) Intro 10 / 33

    Ahh . . . los Monitos son depapel . . . de plastico?

    De plastico joven, como el MaxSteel ese

    Comprendo Senora, entonces usted necesita desbloquear la obstrucciondel conducto evacuador del lavaplatos, que es producido por un elementosolido

    Ejemplo Domestico

    I Que ha hecho Marlon?Marlon ha escuchado las necesidades de la Sra. JuanitaMarlon ha preguntado lo que necesita, para saber la gravedad delproblemaMarlon ha abstrado elementos no importantes del problema (no leimportan Yeison ni Max Steel)Basado en lo anterior, Marlon ha descrito lo que necesita la Sra.Juanita

    I Marlon ha Analizado el Problema y lo que necesita la Sra. Juanita

    ILI-236 (JS) Intro 11 / 33 ILI-236 (JS) Intro 12 / 33

    Y lo puede arreglar, joven? Por supuesto, Senora

    Voy a tener que hacer un corte en el conducto a 10 cm del lavaplatos yotro a 20 cm del suelo para sacar el elemento, y luego volvere a poner elmismo tubo. Por ultimo sellare todo con silicona.

  • Ejemplo Domestico

    I Que ha hecho Marlon?Marlon ha pensado en como resolver el problemaMarlon ha pensado en que puede reutilizar en su solucion propuesta(podra haber usado otro tubo y cobrar mas, pero el sabe que con elmismo funciona, y Marlon es muy etico)Marlon ha descrito su solucion en terminos de los elementos queintervienen en la solucion

    I Marlon ha Disenado una Solucion

    ILI-236 (JS) Intro 13 / 33

    Ejemplo Domestico

    Voy a entrar a Picar

    Marlon esta Implementando la Solucion

    ILI-236 (JS) Intro 14 / 33

    Ejemplo Domestico

    ILI-236 (JS) Intro 15 / 33

    Listo Senora, pruebe nomas, loprobe y funciona

    Funciona perfecto, joven!

    Muy bien Senora, esta es mi tarjeta, cualquier problema con el arreglo meavisa

    Ejemplo Domestico

    I Que ha hecho Marlon?Marlon ha probado su solucionMarlon ha ofrecido sus servicios para una eventual mantencion de lasolucion

    ILI-236 (JS) Intro 16 / 33

  • Ejemplo Domestico

    I En resumen:Marlon analizo el Problema requisitosMarlon diseno la Solucion disenoMarlon implemento la Solucion sistema/programaMarlon probo la Solucion certezaMarlon ofrecio realizar la mantencion de la Solucion

    I El enfoque usado por Marlon es adecuado tambien para resolver unproblema de software

    I Alguna crtica hacia Marlon?El uso de lenguaje excesivamente tecnico

    I tal vez la Sra. Juanita no se convenza de que el entendio el problemaI tal vez la Sra. Juanita no entiende como lo va a resolver

    ILI-236 (JS) Intro 17 / 33

    Como hacemos SW?

    I Sabemos hacer software?Tratamos de entender lo que nos pidenIdeamos una solucionConstruimos la aplicacionProbamos la aplicacion (lo hacemos?)Dejamos la tarjeta,

    I . . . Solos? quizas en grupos pequenosI Problema: El software moderno . . .

    Es mas difcil de entender y resolver; es complejo, quizas consub-partes especializadasRequiere de plazos mas extensos para ser resueltoTpicamente requiere equipos, no individuos aisladosSe deben generar productos intermedios en el desarrollo

    ILI-236 (JS) Intro 18 / 33

    Como hacer SW?

    Como hemos intuido en el analisis del caso hay principalmente dosperspectivas:I Perspectiva Dinamica:

    Tareas (pegas): Que actividades que agregan valor desde el punto devista de la informacion pueden distinguir?Roles: Quienes hacen las pegas?Con quienes interactuan para hacersu pega exitosamente?

    I Como interactuan con su entorno (formularios, software, personas,maquinas) para llevar a cabo su pega?

    I Para la perspectiva estatica:De que hablan estas tareas? Que datos manejan?

    I Identificar Personas, lugares, organizaciones, cosas, eventos, formularioso papeles, tramites y/o registros acerca de las que usted hablo en ladescripcion de las pegas

    Hay relaciones especiales entre ellos (todo-partes y conceptos similarespero que sean mas especficos o generales que otros)?

    ILI-236 (JS) Intro 19 / 33

    Como hacer SW?

    I Hay tecnicas para analizar y describir ambas perspectivas?S!El como analizar un problema de informacion y luego, disenar elsoftware a construir es parte de la Ingeniera de Software (ISW)

    I Como analizamos un problema de negocio?Abstrayendo lo importante de lo insignificante (segun nuestro objetivo):ModelandoEntendiendo el mundo (dominio del problema) desde constructosbasicos comunes

    I Como comienza a entender el mundo una guagua?I R1: Caaaaasaaaa peeeerrrooooI R2: Identificando Objetos (y sus relaciones)

    ILI-236 (JS) Intro 20 / 33

  • Como hacer SW?

    En este curso hablaremos de . . .

    I Ingeniera de Software (ISW)I Tecnicas de analisis y diseno

    Orientacion a objetos (OO)I Este sera el foco de nuestro cursoI Trabajaremos con tecnicas para hacer analisis y diseno OO

    ILI-236 (JS) Intro 21 / 33

    Historia

    1 programador-usuarioProblema simple Codificar-corregir

    Inicialmente

    I El desarrollo de software era tarea de una sola persona.

    I El problema (de tipo cientfico o ingenieril) estaba bien acotado ybien comprendido.

    I Generalmente, el usuario final (cientfico o ingeniero) era el mismoprogramador, quien desarrollaba software para apoyar su propiotrabajo.

    I La aplicacion era mas bien simple y el desarrollo se reduca a lacodificacion en un lenguaje, tpicamente de bajo nivel.

    I El modelo usado era de codificar-corregir:Escribir el codigo; y revisar y eliminar los errores o mejorar/aumentar lafuncionalidad.

    ILI-236 (JS) Intro 22 / 33

    Historia

    1 programador-usuario Mejor HWProblema simple PC masificado Codificar-corregir Problemas mas complejos

    Luego:

    I El hardware aumento sus capacidades y disminuyo sus costos

    I Se amplio el ambito de aplicaciones y se masifico el uso decomputadores.

    I Se incursiono en areas donde los problemas no estaban bien acotados(p.ej. administrativos) y el desarrollo se torno mas complejo.

    ILI-236 (JS) Intro 23 / 33

    Historia

    1 programador-usuario Mejor HW Mantencion de SWProblema simple PC masificado Demanda por calidad Codificar-corregir Problemas mas complejos

    Mas tarde:

    I Paso a haber una gran masa de software pre-existente

    I Aparece un problema aun mayor: mantener los sistemas.

    I Usuarios-programadores ya no manejan todo el proceso de SW

    I Surgen demandas por mayor calidad y confiabilidad de lasaplicaciones y del proceso de SW.

    ILI-236 (JS) Intro 24 / 33

  • Historia

    1 programador-usuario Mejor HW Mantencion de SW Grupos de desarrolloProblema simple PC masificado Demanda por calidad CalidadCodificar-corregir Problemas mas complejos

    Finalmente:

    I El desarrollo se convierte en una actividad de grupo

    I Exige planificar, organizar y estructurar el trabajo en torno aproyectos.

    I La comunicacion entre humanos (usuario-desarrollador ydesarrollador-desarrollador) se convierte en un problema.

    Crisis del software a fines de los 60

    ILI-236 (JS) Intro 25 / 33

    Crisis del Software

    Problemas identificados:

    I Los proyectos no terminaban en plazo.

    I Los proyectos no se ajustaban al presupuesto inicial.

    I La calidad del software generado era baja.

    I Software no cumpla con las especificaciones.

    I El codigo era inmantenible dificultaba la gestion y evolucion delproyecto.

    ILI-236 (JS) Intro 26 / 33

    Crisis del Software

    I Problemas actualesCarencia de informacion respecto a que se haceInsatisfaccion relativa de clientes y usuariosCalidad sospechosaMantencion difcil y costosaInsatisfaccion de la demanda

    I OJO! SW funciona muchas veces tambien . . . pero aun se debemejorar

    ILI-236 (JS) Intro 27 / 33

    Ingeniera de Software (ISW)

    I Objeto de estudioConstruccion sistematica, eficaz y eficiente de software eficaz y eficiente

    I A quien le importa (o debiera importarle)Organizaciones que deben vivir y prosperar haciendo softwareProfesionales que participaran en tales organizacionesGestores que administraran tales organizaciones y profesionales

    ILI-236 (JS) Intro 28 / 33

  • Ingeniera de Software

    I Propuesta de la disciplinaenfoque ingenierilsistematizar y transmitir experiencia

    I Ingeniera de SoftwareEstablecimiento y uso de principios con caracteres de ingenieraapropiados para obtener, eficientemente, software confiable, que opereeficaz y eficientemente en maquinas realesConcepto creado en 1968, en una Conferencia de la OTAN, paraenfatizar el uso de filosofas y paradigmas de disciplinas ingenierilesestablecidas para resolver la mtica crisis del software

    ILI-236 (JS) Intro 29 / 33

    Proceso de software

    El proceso de desarrollo a la antigua, como caja negra.

    ILI-236 (JS) Intro 30 / 33

    Proceso de software

    El proceso de desarrollo como se concibe ahora.

    ILI-236 (JS) Intro 31 / 33

    Actividades de desarrollo

    Estrategias de Desarrollo

    I Las actividades para el desarrollo de software pueden ser organizadasde acuerdo a distintas estrategias, conocidas como Modelos deProceso o Paradigmas de Desarrollo

    I Version simplistaEspecificacion Diseno Validacion Evolucion [Ian Sommerville]

    I Pero hay mas actividades para hacer SoftwareFormalizar las actividades en un Proceso de DesarrolloAdministrar cambios y versiones de los productos de trabajo (Gestionde la configuracion)Gestionar, planificar y medir la ejecucion del desarrolloObtener, desarrollar o adaptar herramientas y metodos para eldesarrolloAsegurar la Calidad del Software

    ILI-236 (JS) Intro 32 / 33

  • ISW

    I ObjetivosMaximizar calidad (de procesos y productos)Maximizar productividad (de procesos y productos)Minimizar riesgos (de procesos y productos)

    I Entonces necesitamosconstructores basicos mas poderososmejores tecnicas de control de calidadmejores herramientas y metodosmejores procesos

    ILI-236 (JS) Intro 33 / 33