SlideShare una empresa de Scribd logo
1 de 18
Descargar para leer sin conexión
Fundamentos de Ingeniería de Software




                                                    Marcello Visconti y Hernán Astudillo
                                                           Departamento de Informática
                                               Universidad Técnica Federico Santa María
                                                         {visconti,hernan} at inf.utfsm.cl



                                                Fundamentos de Ingeniería de SW              1




                                                                                  Presentación


          z Instructores
                      Ø Marcello Visconti
                          q Oficina: F-216
                      Ø Hernán Astudillo
                          q Oficina: F-118
          z Horario & materiales
                      Ø Clases: Ma-Mi 7-8 y 9-10; sala M.203
                      Ø Ayudantías y evaluaciones: Ju 7-8, M-201 y M-203
                      Ø www.inf.utfsm.cl/~visconti/ili236/




                      UTFSM
EXUMBRA   I
          N   SOLEM
                                             Fundamentos de Ingeniería de SW                     2




                                                                                                     1
Introducción a la Ingeniería de Software
                                                                           Contenido

          z           Conceptos básicos de Ingeniería de Software
          z           El Software: Factores de Calidad
                      Ø Factores Externos
                      Ø Factores Internos
          z           El ciclo de vida de Desarrollo de Software
                      Ø Ciclo de vida clásico
                      Ø Ciclo de vida con prototipado
                      Ø Ciclo de vida evolutivo
          z           Principios del diseño
                      Ø Abstracción
                      Ø Ocultamiento de Información
                      Ø Modularidad


                      UTFSM
EXUMBRA   I
          N   SOLEM
                                         Fundamentos de Ingeniería de SW          3




                       Introducción a la Ingeniería de Software
                                                                           Objetivos

          z Presentar al alumno los conceptos básicos relacionados con la
            Ingeniería de Software.
          z Estudiar diversos ciclos de vida.
          z Presentar los principios de ingeniería que se emplean en la etapa de
            diseño.




                      UTFSM
EXUMBRA   I
          N   SOLEM
                                         Fundamentos de Ingeniería de SW          4




                                                                                       2
Introducción a la Ingeniería de Software
                      Conceptos básicos de Ingeniería de Software [1]

          z El término “Ingeniería de Software” surge a final de los años 60 dentro
            de una conferencia dedicada a “la crisis del software”.
          z La Ingeniería de Software se define cómo la disciplina tecnológica
            relacionada con la producción sistemática y el mantenimiento de
            productos de software que son desarrollados y modificados en el
            tiempo previsto y dentro de los costos estimados.
                       Ø El objetivo de la Ingeniería de Software es producir productos de software.




                      UTFSM
EXUMBRA   I
          N   SOLEM
                                          Fundamentos de Ingeniería de SW                          5




                        Introducción a la Ingeniería de Software
                      Conceptos básicos de Ingeniería de Software [2]

          z Los productos de software caen en dos categorías:
                       Ø Productos genéricos: Desarrollados para un mercado (p.ej. MS Office).
                       Ø Productos a medida: Encargados por un cliente (p.ej. SIGA).
          z Productos de software: sistemas de software junto a la documentación
                      que describe cómo instalarlo y usarlo.
                       Ø   Documentación de requerimientos.
                       Ø   Documentación de diseño.
                       Ø   Código fuente.
                       Ø   Planes de pruebas del sistema.
                       Ø   Principios de operación.
                       Ø   Instrucciones de instalación.
                       Ø   Procedimientos de mantenimiento.
                       Ø   Manuales de usuario.

                      UTFSM
EXUMBRA   I
          N   SOLEM
                                          Fundamentos de Ingeniería de SW                          6




                                                                                                       3
Introducción a la Ingeniería de Software
                      Conceptos básicos de Ingeniería de Software [3]


                                                       Métodos



                                                       Ingeniería
                                                      de Software

                                       Herramientas              Procedimientos


          z           Ingeniería del Software:
                       Ø“Conjunto de métodos, herramientas y procedimientos para producir
                       software de gran calidad” [R. Pressman]



                      UTFSM
EXUMBRA   I
          N   SOLEM
                                           Fundamentos de Ingeniería de SW                  7




                       Introducción a la Ingeniería de Software
                      Conceptos básicos de Ingeniería de Software [4]

          z Los métodos describen cómo construir técnicamente el software.
            Comprende las actividades de:
                      Ø   Planificación y estimación de proyectos.
                      Ø   Análisis de requisitos.
                      Ø   Diseño.
                      Ø   Codificación.
                      Ø   Prueba.
                      Ø   Mantenimiento.
          z Las herramientas dan soporte automático o semiautomático a los
            métodos.
          z Los procedimientos relacionan formalmente los métodos y las
            herramientas.


                      UTFSM
EXUMBRA   I
          N   SOLEM
                                           Fundamentos de Ingeniería de SW                  8




                                                                                                4
Introducción a la Ingeniería de Software
                                         Factores de calidad de Software [1]

          z La calidad del software es una noción que puede ser descrita mediante
            una serie de factores, que pueden ser:
                      Ø Externos: observables por los usuarios del producto.
                      Ø Internos: observables por profesionales de la computación .




                      UTFSM
EXUMBRA   I
          N   SOLEM
                                         Fundamentos de Ingeniería de SW                          9




                       Introducción a la Ingeniería de Software
                                         Factores de calidad de Software [2]

          z Factores de calidad externos:
                      Ø Corrección: Capacidad de los productos software de ejecutar exactamente
                        sus tareas tal cómo están definidas en su especificación de
                        requerimientos.
                      Ø Robustez: Capacidad de un sistema software para funcionar en situaciones
                        anormales.
                      Ø Modificabilidad: Facilidad de un producto para adaptarse al cambio de
                        especificaciones.
                      Ø Reusabilidad: Facilidad para ser reutilizado en todo o en parte para nuevas
                        aplicaciones.
                      Ø Compatibilidad: Facilidad de los productos software para combinarse unos
                        con otros.
                      Ø Eficiencia: Buen uso de los recursos Software y Hardware disponibles.
                      Ø (cont.)


                      UTFSM
EXUMBRA   I
          N   SOLEM
                                         Fundamentos de Ingeniería de SW                         10




                                                                                                      5
Introducción a la Ingeniería de Software
                                           Factores de calidad de Software [3]

          z Factores de calidad externos (cont.):
                      Ø Portabilidad: Facilidad para adaptarse a otros entornos software o
                        hardware.
                      Ø Verificabilidad: Facilidad para preparar procedimientos de aceptación, en
                        particular datos de prueba, para detectar fallos durante las fases de
                        validación y operación.
                      Ø Integridad: Capacidad de un sistema para proteger sus documentos
                        (programas, datos) contra accesos y modificaciones no autorizados.
                      Ø Facilidad de uso: Capacidad de aprender a manejar un sistema software,
                        operar con el, preparar datos de entrada, interpretar resultados, etc.
          z Factores de calidad internos:
                      Ø Modularidad: Independencia funcional de los componentes del programa.
                      Ø Legibilidad: Facilidad de lectura e interpretación del código del programa



                      UTFSM
EXUMBRA   I
          N   SOLEM
                                           Fundamentos de Ingeniería de SW                          11




                       Introducción a la Ingeniería de Software
                                                            Ciclo de vida de Software

          z Ciclo de vida: Sucesión de etapas por las que atraviesa un producto
            software a lo largo de su desarrollo y existencia.
          z Existen distintas formas o paradigmas de ciclo de vida:
                      Ø   Clásico.
                      Ø   Clásico con prototipado.
                      Ø   Evolutivo o en espiral.
                      Ø   Prototipado puro.
                      Ø   Combinación de estilos, etc.




                      UTFSM
EXUMBRA   I
          N   SOLEM
                                           Fundamentos de Ingeniería de SW                          12




                                                                                                         6
Introducción a la Ingeniería de Software
                                          Ciclo de vida de Software: Clásico [1]

          z Propuesto por W. Royce a principios de los años 70.
          z Aplicación secuencial de una serie de pasos.
          z Cada paso genera entradas y documentación para la siguiente.




                              Análisis           Diseño                    Codificación                    Integración



                                              Ciclo de vida clásico ideal




                      UTFSM
EXUMBRA   I
          N   SOLEM
                                           Fundamentos de Ingeniería de SW                                          13




                       Introducción a la Ingeniería de Software
                                          Ciclo de vida de Software: Clásico [2]

          z El ciclo de vida clásico real tiene la siguiente forma:

                               Análisis

                                            Diseño


                                                          Codificación

                                                                          Pruebas
                                                                         Unitarias

                                                                                     Pruebas de
                                                                                     Integración

                                                                                              Pruebas de
                                                                                              aceptación



                                                     A todas las fases                             Mantenimiento



                      UTFSM
EXUMBRA   I
          N   SOLEM
                                           Fundamentos de Ingeniería de SW                                          14




                                                                                                                         7
Introducción a la Ingeniería de Software
                                        Ciclo de vida de Software: Clásico [3]

          z Críticas al ciclo de vida clásico:
                      Ø   Proyectos raramente siguen el flujo secuencial.
                      Ø   Dificultad para establecer los requerimientos al principio del proceso.
                      Ø   Errores detectados tardíamente.
                      Ø   Mantenimiento por “parcheado” (Corregir según se presenten los
                          problemas).




                      UTFSM
EXUMBRA   I
          N   SOLEM
                                           Fundamentos de Ingeniería de SW                          15




                       Introducción a la Ingeniería de Software
                                 Ciclo de vida de Software: Prototipado [1]

          z Prototipear consiste en construir una versión inicial de un producto, en
            la cual se describe la interacción hombre-máquina sin implementar
            completamente la funcionalidad del sistema (prototipo sin
            funcionalidad).
          z Utilidad:
                       Ø Ayuda a los analistas a establecer las necesidades del cliente.
                       Ø Ayuda a los desarrolladores a mejorar los productos.




                      UTFSM
EXUMBRA   I
          N   SOLEM
                                           Fundamentos de Ingeniería de SW                          16




                                                                                                         8
Introducción a la Ingeniería de Software
                                 Ciclo de vida de Software: Prototipado [2]


                                                      Especificación




                                      Construcción                     Análisis
                                      del Prototipo




                                                       Validación




                                                                         Diseño




                      UTFSM
EXUMBRA   I
          N   SOLEM
                                           Fundamentos de Ingeniería de SW                       17




                       Introducción a la Ingeniería de Software
                                 Ciclo de vida de Software: Prototipado [3]

          z Clases de prototipos:
                      Ø   Vertical: desarrolla completamente algunas de las facetas del producto.
                      Ø   Horizontal: desarrolla parcialmente todas las facetas del producto.
                      Ø   Evolutivo: La versión final es el producto ya construido.
                      Ø   Desechable: Se usa sola para la captación de requerimientos y
                          funcionalidad.
          z Observaciones sobre el prototipado:
                      Ø   Facilita la captación de los requerimientos del cliente.
                      Ø   Reduce el riesgo de “parcheado” del producto final.
                      Ø   La construcción del prototipo supone una inversión adicional.
                      Ø   El cliente ve funcionando una versión de lo que será su programa sin
                          asumir que dicha versión no es robusta ni completa.



                      UTFSM
EXUMBRA   I
          N   SOLEM
                                           Fundamentos de Ingeniería de SW                       18




                                                                                                      9
Introducción a la Ingeniería de Software
                                  Ciclo de vida de Software: Evolutivo [1]

          z Proceso evolutivo (espiral)




                      UTFSM
EXUMBRA   I
          N   SOLEM
                                        Fundamentos de Ingeniería de SW          19




                       Introducción a la Ingeniería de Software
                                  Ciclo de vida de Software: Evolutivo [2]

          z Sistemas OO tienden a evolucionar en el tiempo.
          z Modelo evolutivo de proceso acoplado es el mejor paradigma para la
            Ingeniería del SW OO.
                      Ø Fomenta el ensamblaje (reuso) de componentes.




                      UTFSM
EXUMBRA   I
          N   SOLEM
                                        Fundamentos de Ingeniería de SW          20




                                                                                      10
Introducción a la Ingeniería de Software
                                                                           Principios del diseño

          z           Los principios fundamentales sobre los que se sustenta la Ingeniería
                      de Software son:
                      Ø Abstracción
                      Ø Ocultamiento de Información
                      Ø Modularidad




                      UTFSM
EXUMBRA   I
          N   SOLEM
                                             Fundamentos de Ingeniería de SW                        21




                       Introducción a la Ingeniería de Software
                                          Principios del diseño: Abstracción [1]

          z           Mecanismos de abstracción:
                      Ø Abstracción de procedimientos o funcional.
                      Ø Abstracción funcional con excepciones.
                      Ø Abstracción de datos.

                          Nombre = Procedimiento (v1: T1,..,vn: Tn) Retorna( v1’:T1’,..,vm’:Tm’);
                          requiere
                          efectos
                          modifica




                      UTFSM
EXUMBRA   I
          N   SOLEM
                                             Fundamentos de Ingeniería de SW                        22




                                                                                                         11
Introducción a la Ingeniería de Software
                                             Principios del diseño: Abstracción [2]

          z Abstracción de procedimientos o funcional.
                      Ø Relacionada con los procedimientos o funciones de un lenguaje de
                        programación.
                      Ø Proporciona una función de un conjunto de entradas a un conjunto de
                        salidas, pudiendo eventualmente modificar algunas de las entradas.
          z Las abstracciones funcionales se pueden especificar con la siguiente
            plantilla:
                          Nombre = Procedimiento (v1: T1,..,vn: Tn) Retorna( v1’:T1’,..,vm’:Tm’);
                          requiere
                          efectos
                          modifica

                      Ø “Requiere” contiene las precondiciones de la abstracción.
                      Ø “Modifica” lista los parámetros de entradas que son modificados.
                      Ø “Efectos” describe cómo transforma las entradas en salidas.

                      UTFSM
EXUMBRA   I
          N   SOLEM
                                                Fundamentos de Ingeniería de SW                              23




                       Introducción a la Ingeniería de Software
                                             Principios del diseño: Abstracción [3]

          z Ejemplos de abstracciones funcionales.

                              Concatenar = Procedimiento( a, b: String ) Retorna( c: String );
                              efectos: devuelve en c la concatenación de los strings a y b.

                              Buscar = Procedimiento( a: array[integer , x:integer) Retorna( i: integer );
                              requiere: a ordenado en orden ascendente.
                              efectos: Si x ocurre en a, retorna la posición que ocupa. En otro caso i es
                              igual al tamaño del vector mas uno.

                              Quitar_Duplicados = Procedimiento( a: array[integer ) Retorna( );
                              modifica: a
                              efectos: quita los elementos duplicados de a.




                      UTFSM
EXUMBRA   I
          N   SOLEM
                                                Fundamentos de Ingeniería de SW                              24




                                                                                                                  12
Introducción a la Ingeniería de Software
                                            Principios del diseño: Abstracción [4]

          z Abstracciones funcionales con excepciones.
                      Ø Contienen más de un estado de terminación.
                      Ø Proporcionan un conjunto de funciones, de la forma:

                              Procedimiento: Dominio --> Rango.
                              Dominio = Do U D1 U.. Dn
                              Rango = Ro U R1 U.. Rn


                              Procedimiento: Do --> Normal(Ro)
                              Procedimiento: D1 --> Excepcional(R1).
                              .....
                              Procedimiento: Dn --> Excepcional(Rn)




                      UTFSM
EXUMBRA   I
          N   SOLEM
                                                Fundamentos de Ingeniería de SW                             25




                       Introducción a la Ingeniería de Software
                                            Principios del diseño: Abstracción [5]

          z Ejemplo de abstracciones funcionales con excepciones:

                               Nombre = Procedimiento(v1: T1,.., vn: Tn)
                                              Retorna( v1’:T1’,..,vm’:Tm’)
                                              Señala( NombreExcepcion1 ( v1”:T1”,...,vn”:Tk”),
                                                      ...
                                                      NombreExcepcionn(...));



                               Buscar = Procedimiento(a:array[int ] , x: int) Retorna( i:int)
                                              Señala( No_Ocurre, No_Ordenado, Ocurre(num:int )
                               efectos: Si a no esta ordenado en orden ascendente señala no_ordenado.
                               Señala No_Ocurre si x no ocurre. Si x ocurre una vez devuelve su posición.
                               Si ocurre varias señala Ocurre, siendo Num el número de veces.




                      UTFSM
EXUMBRA   I
          N   SOLEM
                                                Fundamentos de Ingeniería de SW                             26




                                                                                                                 13
Introducción a la Ingeniería de Software
                                         Principios del diseño: Abstracción [6]

          z Abstracciones de datos.
                      Ø Relacionadas con el concepto de tipo abstracto de datos.
                      Ø Una abstracción de datos está formada por un conjunto de objetos y un
                        conjunto de operaciones (abstracciones funcionales) que manipulan esos
                        objetos.
                      Ø Se puede emplear la siguiente plantilla:

                              Nombre = Tipo de datos es Operacion1, Operacion2, ..., Operacionn
                                         Descripción
                                         Operaciones
                              Fin Nombre




                      UTFSM
EXUMBRA   I
          N   SOLEM
                                            Fundamentos de Ingeniería de SW                                 27




                       Introducción a la Ingeniería de Software
                                         Principios del diseño: Abstracción [7]

          z Ejemplo de abstracción de datos:

                          Conjunto_Enteros = Tipo de datos es Crear, Insertar, Miembro_de, Elegir, Tamaño
                          Descripción: El tipo representa conjuntos no acotados de enteros
                          Operaciones
                              Crear = Procedimiento() Retorna( S: Conjunto_Enteros )
                                     Efectos: Devuelve un conjunto vacío de enteros.
                              Insertar = Procedimiento( S: Conjunto_Enteros, x: Int)
                                     Modifica: S
                                     Efectos : Añade x a S.
                          ...
                          Fin Nombre




                      UTFSM
EXUMBRA   I
          N   SOLEM
                                            Fundamentos de Ingeniería de SW                                 28




                                                                                                                 14
Introducción a la Ingeniería de Software
    Principios del diseño: Ocultamiento de información

          z           Principio de ocultamiento de información :
                       Ø“Los módulos de un sistema deben diseñarse de modo que la información
                       contenida en ellos sea inaccesible a todos aquellos módulos que no
                       necesiten tal información” (David Parnas, 1970)


                                                      INTERFAZ


                                                   DATOS INTERNOS




                      UTFSM
EXUMBRA   I
          N   SOLEM
                                          Fundamentos de Ingeniería de SW                       29




                       Introducción a la Ingeniería de Software
                                       Principios del diseño: Modularidad [1]

          z Modularidad:
                         Ø“Un método de diseño software se dice que es modular si ayuda a los
                         diseñadores a construir sistemas software formados por elementos
                         autónomos y organizados en arquitecturas sencillas”.
          z Guías de modularidad:
                         ØPocas interfaces.
                         ØInterfaces estrechas.
                         ØInterfaces explícitas.




                      UTFSM
EXUMBRA   I
          N   SOLEM
                                          Fundamentos de Ingeniería de SW                       30




                                                                                                     15
Introducción a la Ingeniería de Software
                                         Principios del diseño: Modularidad [2]

          z Pocas interfaces:
                         Ø“En un sistema formado por N módulos, el número de conexiones entre
                         ellos debe acercarse más al número mínimo que al máximo”
                              Menos adecuado                                       Más adecuado


                        Modulo1                        Modulo 3          Modulo1                  Modulo 3




                                                          Comunicación




                                                       Modulo 4                                   Modulo 4
                       Modulo 2                                         Modulo 2




                      UTFSM
EXUMBRA   I
          N   SOLEM
                                               Fundamentos de Ingeniería de SW                               31




                       Introducción a la Ingeniería de Software
                                         Principios del diseño: Modularidad [3]

          z Interfaces estrechas: Si dos módulos se comunican deben de
            intercambiar el mínimo de información posible.

                                                       datos entrada

                                        Módulo 1                            Módulo 2


                                                         datos salida



                                                             datos
                                       Módulo 1                                Módulo 2
                                                            globales




          z Interfaces explícitas: La comunicación entre dos módulos debe poder
            deducirse a partir del texto de ambos.


                      UTFSM
EXUMBRA   I
          N   SOLEM
                                               Fundamentos de Ingeniería de SW                               32




                                                                                                                  16
Introducción a la Ingeniería de Software
                                                                   Principios del diseño

          z “Aunque los computadores han tenido mucho éxito, la experiencia
            diaria de uso de computadores es asociada muchas veces con
            dificultad, pena y otras barreras para la mayoría de la gente... La falta
            de usabilidad del software y un diseño pobre de los programas son
            una vergüenza secreta de la industria.”
                      Ø (Mitchell Kapor, Software Design Manifesto, 1990)




                      UTFSM
EXUMBRA   I
          N   SOLEM
                                          Fundamentos de Ingeniería de SW             33




                      Introducción a la Ingeniería de Software
                                                                            Resumen

          z Conceptos básicos de Ingeniería de Software
          z El Software: Factores de Calidad
                      Ø Factores Externos
                      Ø Factores Internos
          z El ciclo de vida de Desarrollo de Software
                      Ø El ciclo de vida clásico
                      Ø El ciclo de vida clásico con prototipado
                      Ø El ciclo de vida evolutivo
          z Ingeniería de Software
                      Ø Principios de Ingeniería en la etapa de diseño




                      UTFSM
EXUMBRA   I
          N   SOLEM
                                          Fundamentos de Ingeniería de SW             34




                                                                                           17
Introducción a la Ingeniería de Software
                                                                             Quiz

          z Explique el aporte y la relación entre métodos, herramientas y
            procesos de Ingeniería de Software.
          z ¿Porqué queremos productos de calidad?
          z ¿Qué es un ciclo de vida?
          z ¿Porqué se dice que el ciclo de vida evolutivo es mejor?




                      UTFSM
EXUMBRA   I
          N   SOLEM
                                Fundamentos de Ingeniería de SW                 35




                      Introducción a la Ingeniería de Software
                                                                             Quiz

          z Explique las causas del
            fenómeno definido en el
            dibujo.




                      UTFSM
EXUMBRA   I
          N   SOLEM
                                Fundamentos de Ingeniería de SW                 36




                                                                                     18

Más contenido relacionado

La actualidad más candente

04.01. ciclo vida
04.01. ciclo vida04.01. ciclo vida
04.01. ciclo vida
teby10
 
Conceptos Básicos de Ingeniería del Software y Control de Proyectos
Conceptos Básicos de Ingeniería del Software y Control de ProyectosConceptos Básicos de Ingeniería del Software y Control de Proyectos
Conceptos Básicos de Ingeniería del Software y Control de Proyectos
edwinlemmon
 
Ingeniería de software
Ingeniería de softwareIngeniería de software
Ingeniería de software
Ingryd Cobain
 
Edwin alexande mata escobar
Edwin alexande mata escobarEdwin alexande mata escobar
Edwin alexande mata escobar
Edwin Alexander
 
Ingeniería de software es la aplicación de un enfoque sistemático
Ingeniería de software es la aplicación de un enfoque sistemáticoIngeniería de software es la aplicación de un enfoque sistemático
Ingeniería de software es la aplicación de un enfoque sistemático
Santiago Moha
 

La actualidad más candente (20)

Proceso de dasarrollo de software
Proceso de dasarrollo de softwareProceso de dasarrollo de software
Proceso de dasarrollo de software
 
La importancia del_modelado_en_la_producción_de_sw_vf
La importancia del_modelado_en_la_producción_de_sw_vfLa importancia del_modelado_en_la_producción_de_sw_vf
La importancia del_modelado_en_la_producción_de_sw_vf
 
Ingeniería de software Definicion,inicion,importancia y utilidad
Ingeniería de software Definicion,inicion,importancia y utilidadIngeniería de software Definicion,inicion,importancia y utilidad
Ingeniería de software Definicion,inicion,importancia y utilidad
 
U1T1 - Conceptos Básicos de Ingeniería del Software
U1T1 - Conceptos Básicos de Ingeniería del SoftwareU1T1 - Conceptos Básicos de Ingeniería del Software
U1T1 - Conceptos Básicos de Ingeniería del Software
 
Ingenieria de Software
Ingenieria de SoftwareIngenieria de Software
Ingenieria de Software
 
04.01. ciclo vida
04.01. ciclo vida04.01. ciclo vida
04.01. ciclo vida
 
Conceptos
ConceptosConceptos
Conceptos
 
Conceptos Básicos de Ingeniería del Software y Control de Proyectos
Conceptos Básicos de Ingeniería del Software y Control de ProyectosConceptos Básicos de Ingeniería del Software y Control de Proyectos
Conceptos Básicos de Ingeniería del Software y Control de Proyectos
 
Trabajo de software ing
Trabajo de software ingTrabajo de software ing
Trabajo de software ing
 
Guia para desarrollo de software seguro
Guia para desarrollo de software seguroGuia para desarrollo de software seguro
Guia para desarrollo de software seguro
 
Ingeniería de software
Ingeniería de softwareIngeniería de software
Ingeniería de software
 
Ingeniería del Software de Gestión. Tema 4
Ingeniería del Software de Gestión. Tema 4Ingeniería del Software de Gestión. Tema 4
Ingeniería del Software de Gestión. Tema 4
 
Ingenieria de software Definiciones
Ingenieria de software DefinicionesIngenieria de software Definiciones
Ingenieria de software Definiciones
 
Ingenieria De Software Para Dummies
Ingenieria De Software Para DummiesIngenieria De Software Para Dummies
Ingenieria De Software Para Dummies
 
Edwin alexande mata escobar
Edwin alexande mata escobarEdwin alexande mata escobar
Edwin alexande mata escobar
 
Buenas Prácticas de Seguridad en el Proceso de Desarrollo de Software
Buenas Prácticas de Seguridad en el Proceso de Desarrollo de SoftwareBuenas Prácticas de Seguridad en el Proceso de Desarrollo de Software
Buenas Prácticas de Seguridad en el Proceso de Desarrollo de Software
 
Ingeniería de software es la aplicación de un enfoque sistemático
Ingeniería de software es la aplicación de un enfoque sistemáticoIngeniería de software es la aplicación de un enfoque sistemático
Ingeniería de software es la aplicación de un enfoque sistemático
 
Ingeniería de software - Descripción, características, modelos
Ingeniería de software - Descripción, características, modelosIngeniería de software - Descripción, características, modelos
Ingeniería de software - Descripción, características, modelos
 
sofware libre
sofware libre sofware libre
sofware libre
 
Ingenieria de software (conceptos básicos)
Ingenieria de software (conceptos básicos)Ingenieria de software (conceptos básicos)
Ingenieria de software (conceptos básicos)
 

Destacado

Presentación sesión inaugural
Presentación sesión inauguralPresentación sesión inaugural
Presentación sesión inaugural
peli
 
Agenzia ansa 20 maggio 2014(5)
Agenzia ansa 20 maggio 2014(5)Agenzia ansa 20 maggio 2014(5)
Agenzia ansa 20 maggio 2014(5)
Nos Archives
 
UTILIZA LA NTP 458 SOBRE ORGANIZACIÓN DE LOS PRIMEROS AUXILIOS EN LA EMPRESA.
UTILIZA LA NTP 458 SOBRE ORGANIZACIÓN DE LOS PRIMEROS AUXILIOS EN LA EMPRESA. UTILIZA LA NTP 458 SOBRE ORGANIZACIÓN DE LOS PRIMEROS AUXILIOS EN LA EMPRESA.
UTILIZA LA NTP 458 SOBRE ORGANIZACIÓN DE LOS PRIMEROS AUXILIOS EN LA EMPRESA.
Roberto Caro
 
Collective Mind: a collaborative curation tool for program optimization
Collective Mind: a collaborative curation tool for program optimizationCollective Mind: a collaborative curation tool for program optimization
Collective Mind: a collaborative curation tool for program optimization
Grigori Fursin
 
Text structures conferring log
Text structures conferring logText structures conferring log
Text structures conferring log
Jennifer Evans
 

Destacado (6)

Presentación sesión inaugural
Presentación sesión inauguralPresentación sesión inaugural
Presentación sesión inaugural
 
Agenzia ansa 20 maggio 2014(5)
Agenzia ansa 20 maggio 2014(5)Agenzia ansa 20 maggio 2014(5)
Agenzia ansa 20 maggio 2014(5)
 
UTILIZA LA NTP 458 SOBRE ORGANIZACIÓN DE LOS PRIMEROS AUXILIOS EN LA EMPRESA.
UTILIZA LA NTP 458 SOBRE ORGANIZACIÓN DE LOS PRIMEROS AUXILIOS EN LA EMPRESA. UTILIZA LA NTP 458 SOBRE ORGANIZACIÓN DE LOS PRIMEROS AUXILIOS EN LA EMPRESA.
UTILIZA LA NTP 458 SOBRE ORGANIZACIÓN DE LOS PRIMEROS AUXILIOS EN LA EMPRESA.
 
Collective Mind: a collaborative curation tool for program optimization
Collective Mind: a collaborative curation tool for program optimizationCollective Mind: a collaborative curation tool for program optimization
Collective Mind: a collaborative curation tool for program optimization
 
Call Sheet 5
Call Sheet 5Call Sheet 5
Call Sheet 5
 
Text structures conferring log
Text structures conferring logText structures conferring log
Text structures conferring log
 

Similar a 01 intro i-sw

Ra semana 1 1
Ra semana 1 1Ra semana 1 1
Ra semana 1 1
victdiazm
 
Ambitos de desarrollo del ingeniero en sistemas
Ambitos de desarrollo del ingeniero en sistemasAmbitos de desarrollo del ingeniero en sistemas
Ambitos de desarrollo del ingeniero en sistemas
djgogo
 
Ambitos de desarrollo del ingeniero en sistemas
Ambitos de desarrollo del ingeniero en sistemasAmbitos de desarrollo del ingeniero en sistemas
Ambitos de desarrollo del ingeniero en sistemas
djgogo
 
AMBITOS DE DESARROLLO DEL INGENIERO EN SISTEMAS
AMBITOS DE DESARROLLO DEL INGENIERO EN SISTEMASAMBITOS DE DESARROLLO DEL INGENIERO EN SISTEMAS
AMBITOS DE DESARROLLO DEL INGENIERO EN SISTEMAS
djgogo
 

Similar a 01 intro i-sw (20)

SINGSWINTRO
SINGSWINTROSINGSWINTRO
SINGSWINTRO
 
Jovanni jimenez v.
Jovanni jimenez v.Jovanni jimenez v.
Jovanni jimenez v.
 
IngSoftware.pptx
IngSoftware.pptxIngSoftware.pptx
IngSoftware.pptx
 
Sesion1 Introducción Ingeniería Software
Sesion1 Introducción Ingeniería SoftwareSesion1 Introducción Ingeniería Software
Sesion1 Introducción Ingeniería Software
 
Ingenieria y facetas de desarrollo de software
Ingenieria y facetas de desarrollo de softwareIngenieria y facetas de desarrollo de software
Ingenieria y facetas de desarrollo de software
 
Que es Ingenieria del Software?,
Que es Ingenieria del Software?,Que es Ingenieria del Software?,
Que es Ingenieria del Software?,
 
Is clase1
Is clase1Is clase1
Is clase1
 
Ra semana 1 1
Ra semana 1 1Ra semana 1 1
Ra semana 1 1
 
MATERIAL - MOANSO - SEM01.pdf
MATERIAL - MOANSO - SEM01.pdfMATERIAL - MOANSO - SEM01.pdf
MATERIAL - MOANSO - SEM01.pdf
 
Is clase1
Is clase1Is clase1
Is clase1
 
Ciclo de de_desarrollo_de_software
Ciclo de de_desarrollo_de_softwareCiclo de de_desarrollo_de_software
Ciclo de de_desarrollo_de_software
 
Gestion de Proyectos
Gestion de ProyectosGestion de Proyectos
Gestion de Proyectos
 
Cap1 gestion
Cap1 gestionCap1 gestion
Cap1 gestion
 
Administracion y Gestion de Proyectos
Administracion y Gestion de ProyectosAdministracion y Gestion de Proyectos
Administracion y Gestion de Proyectos
 
IngSoftCap01-Introduccion.pdf
IngSoftCap01-Introduccion.pdfIngSoftCap01-Introduccion.pdf
IngSoftCap01-Introduccion.pdf
 
02 desarrollodesoftwarecomoingenieria isi
02 desarrollodesoftwarecomoingenieria isi02 desarrollodesoftwarecomoingenieria isi
02 desarrollodesoftwarecomoingenieria isi
 
Ambitos de desarrollo del ingeniero en sistemas
Ambitos de desarrollo del ingeniero en sistemasAmbitos de desarrollo del ingeniero en sistemas
Ambitos de desarrollo del ingeniero en sistemas
 
Manual parcial I
Manual parcial IManual parcial I
Manual parcial I
 
Ambitos de desarrollo del ingeniero en sistemas
Ambitos de desarrollo del ingeniero en sistemasAmbitos de desarrollo del ingeniero en sistemas
Ambitos de desarrollo del ingeniero en sistemas
 
AMBITOS DE DESARROLLO DEL INGENIERO EN SISTEMAS
AMBITOS DE DESARROLLO DEL INGENIERO EN SISTEMASAMBITOS DE DESARROLLO DEL INGENIERO EN SISTEMAS
AMBITOS DE DESARROLLO DEL INGENIERO EN SISTEMAS
 

Último

Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Francisco158360
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
zulyvero07
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
El Fortí
 

Último (20)

ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
 
Programacion Anual Matemática4 MPG 2024 Ccesa007.pdf
Programacion Anual Matemática4    MPG 2024  Ccesa007.pdfProgramacion Anual Matemática4    MPG 2024  Ccesa007.pdf
Programacion Anual Matemática4 MPG 2024 Ccesa007.pdf
 
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSOCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
 
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdfTema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
 
Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
 
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA IIAFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
 
Sesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronósticoSesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronóstico
 
Ley 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circularLey 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circular
 
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptxORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
 
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
 
Unidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la InvestigaciónUnidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la Investigación
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
 
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdfGUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
 
Programacion Anual Matemática5 MPG 2024 Ccesa007.pdf
Programacion Anual Matemática5    MPG 2024  Ccesa007.pdfProgramacion Anual Matemática5    MPG 2024  Ccesa007.pdf
Programacion Anual Matemática5 MPG 2024 Ccesa007.pdf
 

01 intro i-sw

  • 1. Fundamentos de Ingeniería de Software Marcello Visconti y Hernán Astudillo Departamento de Informática Universidad Técnica Federico Santa María {visconti,hernan} at inf.utfsm.cl Fundamentos de Ingeniería de SW 1 Presentación z Instructores Ø Marcello Visconti q Oficina: F-216 Ø Hernán Astudillo q Oficina: F-118 z Horario & materiales Ø Clases: Ma-Mi 7-8 y 9-10; sala M.203 Ø Ayudantías y evaluaciones: Ju 7-8, M-201 y M-203 Ø www.inf.utfsm.cl/~visconti/ili236/ UTFSM EXUMBRA I N SOLEM Fundamentos de Ingeniería de SW 2 1
  • 2. Introducción a la Ingeniería de Software Contenido z Conceptos básicos de Ingeniería de Software z El Software: Factores de Calidad Ø Factores Externos Ø Factores Internos z El ciclo de vida de Desarrollo de Software Ø Ciclo de vida clásico Ø Ciclo de vida con prototipado Ø Ciclo de vida evolutivo z Principios del diseño Ø Abstracción Ø Ocultamiento de Información Ø Modularidad UTFSM EXUMBRA I N SOLEM Fundamentos de Ingeniería de SW 3 Introducción a la Ingeniería de Software Objetivos z Presentar al alumno los conceptos básicos relacionados con la Ingeniería de Software. z Estudiar diversos ciclos de vida. z Presentar los principios de ingeniería que se emplean en la etapa de diseño. UTFSM EXUMBRA I N SOLEM Fundamentos de Ingeniería de SW 4 2
  • 3. Introducción a la Ingeniería de Software Conceptos básicos de Ingeniería de Software [1] z El término “Ingeniería de Software” surge a final de los años 60 dentro de una conferencia dedicada a “la crisis del software”. z La Ingeniería de Software se define cómo la disciplina tecnológica relacionada con la producción sistemática y el mantenimiento de productos de software que son desarrollados y modificados en el tiempo previsto y dentro de los costos estimados. Ø El objetivo de la Ingeniería de Software es producir productos de software. UTFSM EXUMBRA I N SOLEM Fundamentos de Ingeniería de SW 5 Introducción a la Ingeniería de Software Conceptos básicos de Ingeniería de Software [2] z Los productos de software caen en dos categorías: Ø Productos genéricos: Desarrollados para un mercado (p.ej. MS Office). Ø Productos a medida: Encargados por un cliente (p.ej. SIGA). z Productos de software: sistemas de software junto a la documentación que describe cómo instalarlo y usarlo. Ø Documentación de requerimientos. Ø Documentación de diseño. Ø Código fuente. Ø Planes de pruebas del sistema. Ø Principios de operación. Ø Instrucciones de instalación. Ø Procedimientos de mantenimiento. Ø Manuales de usuario. UTFSM EXUMBRA I N SOLEM Fundamentos de Ingeniería de SW 6 3
  • 4. Introducción a la Ingeniería de Software Conceptos básicos de Ingeniería de Software [3] Métodos Ingeniería de Software Herramientas Procedimientos z Ingeniería del Software: Ø“Conjunto de métodos, herramientas y procedimientos para producir software de gran calidad” [R. Pressman] UTFSM EXUMBRA I N SOLEM Fundamentos de Ingeniería de SW 7 Introducción a la Ingeniería de Software Conceptos básicos de Ingeniería de Software [4] z Los métodos describen cómo construir técnicamente el software. Comprende las actividades de: Ø Planificación y estimación de proyectos. Ø Análisis de requisitos. Ø Diseño. Ø Codificación. Ø Prueba. Ø Mantenimiento. z Las herramientas dan soporte automático o semiautomático a los métodos. z Los procedimientos relacionan formalmente los métodos y las herramientas. UTFSM EXUMBRA I N SOLEM Fundamentos de Ingeniería de SW 8 4
  • 5. Introducción a la Ingeniería de Software Factores de calidad de Software [1] z La calidad del software es una noción que puede ser descrita mediante una serie de factores, que pueden ser: Ø Externos: observables por los usuarios del producto. Ø Internos: observables por profesionales de la computación . UTFSM EXUMBRA I N SOLEM Fundamentos de Ingeniería de SW 9 Introducción a la Ingeniería de Software Factores de calidad de Software [2] z Factores de calidad externos: Ø Corrección: Capacidad de los productos software de ejecutar exactamente sus tareas tal cómo están definidas en su especificación de requerimientos. Ø Robustez: Capacidad de un sistema software para funcionar en situaciones anormales. Ø Modificabilidad: Facilidad de un producto para adaptarse al cambio de especificaciones. Ø Reusabilidad: Facilidad para ser reutilizado en todo o en parte para nuevas aplicaciones. Ø Compatibilidad: Facilidad de los productos software para combinarse unos con otros. Ø Eficiencia: Buen uso de los recursos Software y Hardware disponibles. Ø (cont.) UTFSM EXUMBRA I N SOLEM Fundamentos de Ingeniería de SW 10 5
  • 6. Introducción a la Ingeniería de Software Factores de calidad de Software [3] z Factores de calidad externos (cont.): Ø Portabilidad: Facilidad para adaptarse a otros entornos software o hardware. Ø Verificabilidad: Facilidad para preparar procedimientos de aceptación, en particular datos de prueba, para detectar fallos durante las fases de validación y operación. Ø Integridad: Capacidad de un sistema para proteger sus documentos (programas, datos) contra accesos y modificaciones no autorizados. Ø Facilidad de uso: Capacidad de aprender a manejar un sistema software, operar con el, preparar datos de entrada, interpretar resultados, etc. z Factores de calidad internos: Ø Modularidad: Independencia funcional de los componentes del programa. Ø Legibilidad: Facilidad de lectura e interpretación del código del programa UTFSM EXUMBRA I N SOLEM Fundamentos de Ingeniería de SW 11 Introducción a la Ingeniería de Software Ciclo de vida de Software z Ciclo de vida: Sucesión de etapas por las que atraviesa un producto software a lo largo de su desarrollo y existencia. z Existen distintas formas o paradigmas de ciclo de vida: Ø Clásico. Ø Clásico con prototipado. Ø Evolutivo o en espiral. Ø Prototipado puro. Ø Combinación de estilos, etc. UTFSM EXUMBRA I N SOLEM Fundamentos de Ingeniería de SW 12 6
  • 7. Introducción a la Ingeniería de Software Ciclo de vida de Software: Clásico [1] z Propuesto por W. Royce a principios de los años 70. z Aplicación secuencial de una serie de pasos. z Cada paso genera entradas y documentación para la siguiente. Análisis Diseño Codificación Integración Ciclo de vida clásico ideal UTFSM EXUMBRA I N SOLEM Fundamentos de Ingeniería de SW 13 Introducción a la Ingeniería de Software Ciclo de vida de Software: Clásico [2] z El ciclo de vida clásico real tiene la siguiente forma: Análisis Diseño Codificación Pruebas Unitarias Pruebas de Integración Pruebas de aceptación A todas las fases Mantenimiento UTFSM EXUMBRA I N SOLEM Fundamentos de Ingeniería de SW 14 7
  • 8. Introducción a la Ingeniería de Software Ciclo de vida de Software: Clásico [3] z Críticas al ciclo de vida clásico: Ø Proyectos raramente siguen el flujo secuencial. Ø Dificultad para establecer los requerimientos al principio del proceso. Ø Errores detectados tardíamente. Ø Mantenimiento por “parcheado” (Corregir según se presenten los problemas). UTFSM EXUMBRA I N SOLEM Fundamentos de Ingeniería de SW 15 Introducción a la Ingeniería de Software Ciclo de vida de Software: Prototipado [1] z Prototipear consiste en construir una versión inicial de un producto, en la cual se describe la interacción hombre-máquina sin implementar completamente la funcionalidad del sistema (prototipo sin funcionalidad). z Utilidad: Ø Ayuda a los analistas a establecer las necesidades del cliente. Ø Ayuda a los desarrolladores a mejorar los productos. UTFSM EXUMBRA I N SOLEM Fundamentos de Ingeniería de SW 16 8
  • 9. Introducción a la Ingeniería de Software Ciclo de vida de Software: Prototipado [2] Especificación Construcción Análisis del Prototipo Validación Diseño UTFSM EXUMBRA I N SOLEM Fundamentos de Ingeniería de SW 17 Introducción a la Ingeniería de Software Ciclo de vida de Software: Prototipado [3] z Clases de prototipos: Ø Vertical: desarrolla completamente algunas de las facetas del producto. Ø Horizontal: desarrolla parcialmente todas las facetas del producto. Ø Evolutivo: La versión final es el producto ya construido. Ø Desechable: Se usa sola para la captación de requerimientos y funcionalidad. z Observaciones sobre el prototipado: Ø Facilita la captación de los requerimientos del cliente. Ø Reduce el riesgo de “parcheado” del producto final. Ø La construcción del prototipo supone una inversión adicional. Ø El cliente ve funcionando una versión de lo que será su programa sin asumir que dicha versión no es robusta ni completa. UTFSM EXUMBRA I N SOLEM Fundamentos de Ingeniería de SW 18 9
  • 10. Introducción a la Ingeniería de Software Ciclo de vida de Software: Evolutivo [1] z Proceso evolutivo (espiral) UTFSM EXUMBRA I N SOLEM Fundamentos de Ingeniería de SW 19 Introducción a la Ingeniería de Software Ciclo de vida de Software: Evolutivo [2] z Sistemas OO tienden a evolucionar en el tiempo. z Modelo evolutivo de proceso acoplado es el mejor paradigma para la Ingeniería del SW OO. Ø Fomenta el ensamblaje (reuso) de componentes. UTFSM EXUMBRA I N SOLEM Fundamentos de Ingeniería de SW 20 10
  • 11. Introducción a la Ingeniería de Software Principios del diseño z Los principios fundamentales sobre los que se sustenta la Ingeniería de Software son: Ø Abstracción Ø Ocultamiento de Información Ø Modularidad UTFSM EXUMBRA I N SOLEM Fundamentos de Ingeniería de SW 21 Introducción a la Ingeniería de Software Principios del diseño: Abstracción [1] z Mecanismos de abstracción: Ø Abstracción de procedimientos o funcional. Ø Abstracción funcional con excepciones. Ø Abstracción de datos. Nombre = Procedimiento (v1: T1,..,vn: Tn) Retorna( v1’:T1’,..,vm’:Tm’); requiere efectos modifica UTFSM EXUMBRA I N SOLEM Fundamentos de Ingeniería de SW 22 11
  • 12. Introducción a la Ingeniería de Software Principios del diseño: Abstracción [2] z Abstracción de procedimientos o funcional. Ø Relacionada con los procedimientos o funciones de un lenguaje de programación. Ø Proporciona una función de un conjunto de entradas a un conjunto de salidas, pudiendo eventualmente modificar algunas de las entradas. z Las abstracciones funcionales se pueden especificar con la siguiente plantilla: Nombre = Procedimiento (v1: T1,..,vn: Tn) Retorna( v1’:T1’,..,vm’:Tm’); requiere efectos modifica Ø “Requiere” contiene las precondiciones de la abstracción. Ø “Modifica” lista los parámetros de entradas que son modificados. Ø “Efectos” describe cómo transforma las entradas en salidas. UTFSM EXUMBRA I N SOLEM Fundamentos de Ingeniería de SW 23 Introducción a la Ingeniería de Software Principios del diseño: Abstracción [3] z Ejemplos de abstracciones funcionales. Concatenar = Procedimiento( a, b: String ) Retorna( c: String ); efectos: devuelve en c la concatenación de los strings a y b. Buscar = Procedimiento( a: array[integer , x:integer) Retorna( i: integer ); requiere: a ordenado en orden ascendente. efectos: Si x ocurre en a, retorna la posición que ocupa. En otro caso i es igual al tamaño del vector mas uno. Quitar_Duplicados = Procedimiento( a: array[integer ) Retorna( ); modifica: a efectos: quita los elementos duplicados de a. UTFSM EXUMBRA I N SOLEM Fundamentos de Ingeniería de SW 24 12
  • 13. Introducción a la Ingeniería de Software Principios del diseño: Abstracción [4] z Abstracciones funcionales con excepciones. Ø Contienen más de un estado de terminación. Ø Proporcionan un conjunto de funciones, de la forma: Procedimiento: Dominio --> Rango. Dominio = Do U D1 U.. Dn Rango = Ro U R1 U.. Rn Procedimiento: Do --> Normal(Ro) Procedimiento: D1 --> Excepcional(R1). ..... Procedimiento: Dn --> Excepcional(Rn) UTFSM EXUMBRA I N SOLEM Fundamentos de Ingeniería de SW 25 Introducción a la Ingeniería de Software Principios del diseño: Abstracción [5] z Ejemplo de abstracciones funcionales con excepciones: Nombre = Procedimiento(v1: T1,.., vn: Tn) Retorna( v1’:T1’,..,vm’:Tm’) Señala( NombreExcepcion1 ( v1”:T1”,...,vn”:Tk”), ... NombreExcepcionn(...)); Buscar = Procedimiento(a:array[int ] , x: int) Retorna( i:int) Señala( No_Ocurre, No_Ordenado, Ocurre(num:int ) efectos: Si a no esta ordenado en orden ascendente señala no_ordenado. Señala No_Ocurre si x no ocurre. Si x ocurre una vez devuelve su posición. Si ocurre varias señala Ocurre, siendo Num el número de veces. UTFSM EXUMBRA I N SOLEM Fundamentos de Ingeniería de SW 26 13
  • 14. Introducción a la Ingeniería de Software Principios del diseño: Abstracción [6] z Abstracciones de datos. Ø Relacionadas con el concepto de tipo abstracto de datos. Ø Una abstracción de datos está formada por un conjunto de objetos y un conjunto de operaciones (abstracciones funcionales) que manipulan esos objetos. Ø Se puede emplear la siguiente plantilla: Nombre = Tipo de datos es Operacion1, Operacion2, ..., Operacionn Descripción Operaciones Fin Nombre UTFSM EXUMBRA I N SOLEM Fundamentos de Ingeniería de SW 27 Introducción a la Ingeniería de Software Principios del diseño: Abstracción [7] z Ejemplo de abstracción de datos: Conjunto_Enteros = Tipo de datos es Crear, Insertar, Miembro_de, Elegir, Tamaño Descripción: El tipo representa conjuntos no acotados de enteros Operaciones Crear = Procedimiento() Retorna( S: Conjunto_Enteros ) Efectos: Devuelve un conjunto vacío de enteros. Insertar = Procedimiento( S: Conjunto_Enteros, x: Int) Modifica: S Efectos : Añade x a S. ... Fin Nombre UTFSM EXUMBRA I N SOLEM Fundamentos de Ingeniería de SW 28 14
  • 15. Introducción a la Ingeniería de Software Principios del diseño: Ocultamiento de información z Principio de ocultamiento de información : Ø“Los módulos de un sistema deben diseñarse de modo que la información contenida en ellos sea inaccesible a todos aquellos módulos que no necesiten tal información” (David Parnas, 1970) INTERFAZ DATOS INTERNOS UTFSM EXUMBRA I N SOLEM Fundamentos de Ingeniería de SW 29 Introducción a la Ingeniería de Software Principios del diseño: Modularidad [1] z Modularidad: Ø“Un método de diseño software se dice que es modular si ayuda a los diseñadores a construir sistemas software formados por elementos autónomos y organizados en arquitecturas sencillas”. z Guías de modularidad: ØPocas interfaces. ØInterfaces estrechas. ØInterfaces explícitas. UTFSM EXUMBRA I N SOLEM Fundamentos de Ingeniería de SW 30 15
  • 16. Introducción a la Ingeniería de Software Principios del diseño: Modularidad [2] z Pocas interfaces: Ø“En un sistema formado por N módulos, el número de conexiones entre ellos debe acercarse más al número mínimo que al máximo” Menos adecuado Más adecuado Modulo1 Modulo 3 Modulo1 Modulo 3 Comunicación Modulo 4 Modulo 4 Modulo 2 Modulo 2 UTFSM EXUMBRA I N SOLEM Fundamentos de Ingeniería de SW 31 Introducción a la Ingeniería de Software Principios del diseño: Modularidad [3] z Interfaces estrechas: Si dos módulos se comunican deben de intercambiar el mínimo de información posible. datos entrada Módulo 1 Módulo 2 datos salida datos Módulo 1 Módulo 2 globales z Interfaces explícitas: La comunicación entre dos módulos debe poder deducirse a partir del texto de ambos. UTFSM EXUMBRA I N SOLEM Fundamentos de Ingeniería de SW 32 16
  • 17. Introducción a la Ingeniería de Software Principios del diseño z “Aunque los computadores han tenido mucho éxito, la experiencia diaria de uso de computadores es asociada muchas veces con dificultad, pena y otras barreras para la mayoría de la gente... La falta de usabilidad del software y un diseño pobre de los programas son una vergüenza secreta de la industria.” Ø (Mitchell Kapor, Software Design Manifesto, 1990) UTFSM EXUMBRA I N SOLEM Fundamentos de Ingeniería de SW 33 Introducción a la Ingeniería de Software Resumen z Conceptos básicos de Ingeniería de Software z El Software: Factores de Calidad Ø Factores Externos Ø Factores Internos z El ciclo de vida de Desarrollo de Software Ø El ciclo de vida clásico Ø El ciclo de vida clásico con prototipado Ø El ciclo de vida evolutivo z Ingeniería de Software Ø Principios de Ingeniería en la etapa de diseño UTFSM EXUMBRA I N SOLEM Fundamentos de Ingeniería de SW 34 17
  • 18. Introducción a la Ingeniería de Software Quiz z Explique el aporte y la relación entre métodos, herramientas y procesos de Ingeniería de Software. z ¿Porqué queremos productos de calidad? z ¿Qué es un ciclo de vida? z ¿Porqué se dice que el ciclo de vida evolutivo es mejor? UTFSM EXUMBRA I N SOLEM Fundamentos de Ingeniería de SW 35 Introducción a la Ingeniería de Software Quiz z Explique las causas del fenómeno definido en el dibujo. UTFSM EXUMBRA I N SOLEM Fundamentos de Ingeniería de SW 36 18