SlideShare ist ein Scribd-Unternehmen logo
1 von 49
Ingeniería de Software

 x    Diseño, construcción y mantenimiento de sistemas de
      software grandes.




 Diapositivas Traducidas por:

 Dr. Pedro Mejía Alvarez.
 CINVESTAV-IPN, México
 Septiembre 2003.
©Ian Sommerville 2002       Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1   Diapositiva 1
Objetivos

 x    Definir la Ingeniería de Software y explicar su
      importancia.
 x    Discutir los conceptos de producto de software y proceso
      de software.
 x    Explicar la importancia de la visibilidad delos procesos.
 x    Introducir la noción de responsabilidad profesional.




©Ian Sommerville 2002   Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1   Diapositiva 1
Tópicos

 x    Productos de Software.
 x    El proceso de Software.
 x    El modelo de Espiral de Boehm.
 x    La visibilidad de los procesos.
 x    Responsabilidad profesional.




©Ian Sommerville 2002   Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1   Diapositiva 1
Ingeniería de Software

 x    Las economías de los países desarrollados dependen en
      gran parte del software.
 x    Mas y más sistemas son actualmente controlados por
      software.
 x    La Ingeniería de Software concierne a teorías, métodos y
      herramientas para el desarrollo profesional de software.
 x    El gasto en La Ingeniería de Software, representa un alto
      porcentaje del PIB de los países desarrollados.




©Ian Sommerville 2002   Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1   Diapositiva 1
Ingenieria de Software: Conceptos Basicos

 x    Que es la Ingenieria de Software ?
 x    Cual es la diferencia entre un programador y un
      Ingeniero de Software?
 x    Cual es la diferencia entre un Ingeniero de Software y
      un Ingeniero de Sistemas?
 x    Cual es la diferencia entre la Ingenieria de Software y
      la Computacion ?
 x    Que es el software ?
 x    Que es un proceso de software ?
 x    Que es un modelo de software?


©Ian Sommerville 2002   Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1   Diapositiva 1
Que es la Ingeniería de Software


 x    La Ingeniería de Software es una diciplina de la
      Ingeniería que concierne a todos los aspectos de la
      producción de software
 x    Los Ingenieros de Software adoptan un enfoque
      sistematico para llevar a cabo su trabajo y utilizan las
      herramientas y tecnicas necesarias para resolver el
      problema planteado, de acuerdo a las restricciones de
      desarrollo y recursos disponibles.




©Ian Sommerville 2002   Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1   Diapositiva 1
Diferencia entre Ingenieria de Software y Computacion


 x    La computacion concierne a la teoria y fundamentos de
      cualquier sistema de computo, sea de hardware o de
      software.
 x    La Ingenieria de software concierne solo al desarollo de
      sisetmas o productos de software
 x    La Ingeniria de Sofware todavia esta lejos de ser una
      ciencia como los son la Quimica, la Ingenieria Civil o la
      Electronica.




©Ian Sommerville 2002   Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1   Diapositiva 1
Ingenieria de Sistemas e Ingenieria de Software


 x    La Ingeniería de Sistemas concierne a todos los
      aspectos del desarrollo de sistemas basados en
      cómputo, que incluyen hardware, software y el
      proceso de Ingeniería. La Ingeniería de Software es
      solo parte de este proceso.




©Ian Sommerville 2002   Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1   Diapositiva 1
Que es el Software ?


 Programas de cómputo y su documentacion asociada

 x    Sistemas o Productos de software grandes y complejos.
 x    Que contiene el software.
 x    Que tipos de software hay ?
 x    Cual es el costo del software.
 x    Como se desarrolla el software ?
 x    Como saber si un software tiene calidad.



©Ian Sommerville 2002   Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1   Diapositiva 1
Productos de Software

 x    Productos genéricos.
        q   Productos que son producidos por una organización para ser vendidos al
            mercado.
 x    Productos hechos a medida.
        q   Sistemas que son desarrollados bajo pedido a un desarrollador específico.
 x    La mayor parte del gasto del software es en productos
      genéricos, pero hay más esfuerzo en el desarrollo de los
      sistemas hechos a medida.




©Ian Sommerville 2002           Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1   Diapositiva 1
Características de los Productos de
   Software

 x    Mantenibles.
        q   Debe ser posible que el software evolucione y que siga cumpliendo con
            sus especificaciones.
 x    Confiabilidad.
        q   El software no debe causar danos físicos o económicos en el caso de
            fallos.
 x    Eficiencia.
        q   El software no debe desperdiciar los recursos del sistema.
 x    Utilización adecuada.
        q   El software debe contar con una interfaz de usuario adecuada y su
            documentación.



©Ian Sommerville 2002           Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1   Diapositiva 1
Importancia de las características del producto

 x    La importancia relativa de las características depende en el
      tipo de producto y en el ambiente en el que será utilizado.

 x    En algunos casos, algunos atributos pueden dominar.
        q   En sistemas de seguridad críticos de tiempo real, los atributos clave
            pueden ser la confiabilidad y la eficiencia.
 x    Los costos tienden a crecer exponencialmente si son
      requeridos altos niveles de alguna característica.




©Ian Sommerville 2002           Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1   Diapositiva 1
Que contiene el software ?

 x    El software contiene:
       – Líneas de código de algún lenguaje ?
       – Instrucciones de computadora.
       – Descripción de las estructuras de datos.
       – Algoritmos.
       – Procedimientos y funciones.
       – Componentes de software.




©Ian Sommerville 2002   Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1   Diapositiva 1
Que tipos de software hay ?

 x    Por su estructura:
        –   Funcionales.
        –   Orientados a objetos.
        –   Orientados a listas.
        –   Orientados a componentes.
 x    Por su funcion:
        – Programas o Sistemas de Usuario
        – Interfaces Hombre-Maquina.
        – Herramientas de Software.
        – Librerias.
        – Sistemas de uso generico: Compiladores, S.O’s, Procesadores de Texto,
          etc.
        – Bases de Datos.
        – Sistemas basados en Web.

©Ian Sommerville 2002         Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1   Diapositiva 1
Que tipos de software hay ?

 x    Por su plataforma de computo:
        –   Sistemas embebidos.
        –   Sistemas de computo distribuido.
        –   Sistemas de computo paralelo.
        –   Sistemas de tiempo real.
        –   Sistemas basados en Chips.
        –   Wearable computing systems.
        –   Sistemas de computo ubiquos.




©Ian Sommerville 2002        Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1   Diapositiva 1
Costos del Software

 x    Los costos del software a menudo dominan al costo del
      sistema. El costo del software en un PC es a menudo mas
      caro que la PC.
 x    Cuesta mas mantener el software que desarrollarlo. Para
      sistemas con una larga vida, este costo se multiplica.
 x    La Ingeniería de Software concierne a un desarrollo
      efectivo en cuanto a costes del software.




©Ian Sommerville 2002   Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1   Diapositiva 1
Costes de Eficiencia.

                   Costos




                                                                        Eficiencia



©Ian Sommerville 2002       Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1    Diapositiva 1
El Proceso de Software

 x    Conjunto estructurado de actividades requeridas para
      desarrollar un sistema de software.
        q   Especificación- que debe hacer el software y cuales son sus
            especificaciones de desarrollo.
        q   Desarrollo – produccion del sistema de software.
        q   Validación – verificar que el software hace lo que el cliente pide.
        q   Evolución – cambiar/adaptar el software a las demandas.
 x    Las actividades varían dependiendo de la organización y
      del tipo de sistema a desarrollarse.
 x    Debe estar explícitamente modelado si va a ser bien
      administrado.

©Ian Sommerville 2002           Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1   Diapositiva 1
Proceso Genérico de Software

 x    Especificación - establecer los requerimientos y
      restricciones del sistema
 x    Diseño - Producir un modelo en papel del sistema
 x    Manufactura - construir el sistema
 x    Prueba - verificar que el sistema cumpla con las
      especificaciones requeridas
 x    Instalación - entregar el sistema al usuario y asegurar su
      operacionalidad
 x    Mantenimiento - reparar fallos en el sistema cundo sea
      descubiertos

©Ian Sommerville 2002   Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1   Diapositiva 1
Características del proceso

 x    Entendible
        q   Se encuentra el proceso bien definido y es entendible ?.
 x    Visible
        q   El proceso es visible al exterior ?.
 x    Soportable
        q   Puede el proceso ser soportado por herramientas CASE ?.
 x    Aceptable
        q   El proceso es aceptado por aquellos involucrados en el ?.




©Ian Sommerville 2002            Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1   Diapositiva 1
Características del proceso

 x    Confiable
        q   Los errores del proceso son descubiertos antes de que se conviertan en
            errores del producto ?.
 x    Robusto
        q   Puede continuar el proceso a pesar de problemas inesperados ?.
 x    Mantenible
        q   Puede el proceso evolucionar para cumplir con los objetivos
            organizacionales ?.
 x    Rapidez
        q   Que tan rápido puede producirse el sistema ?.



©Ian Sommerville 2002           Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1   Diapositiva 1
Problemas en el Modelo del Proceso

 x    Normalmente, las especificaciones son incompletas o
      anómalas
 x    No existe una distinción precisa entre la especificación, el
      diseño y la manufactura
 x    Solo hasta que el sistema se ha producido se puede probar
 x    El software no se puede remplazar siempre durante el
      mantenimiento




©Ian Sommerville 2002    Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1   Diapositiva 1
Modelos de Desarrollo de Software

 x    Representacion formal o simplificada de processo de
      software.
 x    Modelos Genericos:
        – Modelo de Cascada
              x   Separar en distintas fases de especificación y desarrollo.
        – Desarrollo Evolutivo
              x   La especificación y el desarrollo están intercalados.
        – Prototipado
              x   Un modelo sirve de prototipo para la construcción del sistema final.
        – Transformación Formal
              x   Un modelo matemático del sistema se transforma formalmente en la
                  implementación.
        – Desarrollo basado en Reutilización
              x   El sistema es ensamblado a partir de componentes existentes.
©Ian Sommerville 2002             Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1   Diapositiva 1
Modelo de Cascada (gráfica)

        Definición de
       Requerimientos



                        Diseño del Software
                           y del Sistema



                                           Implementación y
                                          Prueba de unidades



                                                                Integración y Prueba
                                                                     del Sistema



                                                                                            Operación y
                                                                                           Mantenimiento



©Ian Sommerville 2002              Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1                   Diapositiva 1
Fases del Modelo de Cascada

 x    Análisis de requerimientos y definición.
 x    Diseño del sistema y del software.
 x    Implementación y prueba de unidades
 x    Integración y prueba del sistema.
 x    Operación y mantenimiento.
 x    La dificultad en esta modelo reside, en la dificultad de
      hacer cambios entre etapas.




©Ian Sommerville 2002    Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1   Diapositiva 1
Desarrollo Evolutivo
                                Actividades
                               Concurrentes



                                                                                  Versión
                              Especificación                                      Inicial




        Descripción                                                              Versiones
                                  Desarrollo
        del sistema                                                             Intermedias




                                                                                  Versión
                                  Validación                                       Final




©Ian Sommerville 2002   Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1                 Diapositiva 1
Desarrollo Evolutivo

 x    Problemas
        q   Poca visibilidad en el proceso
        q   Los sistemas están pobremente especificados
        q   Se requieren habilidades especiales.
 x    Aplicabilidad
        q   Para sistemas interactivos pequeños o medianos.
        q   Para partes de sistemas grandes (p.ej. la interfaz de usuario).
        q   Para sistemas de corta vida.




©Ian Sommerville 2002            Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1   Diapositiva 1
Prototipado

 x    Prototipado exploratorio
        q   El objetivo es trabajar con clientes hasta evolucionar a un sistema final, a
            partir de una especificación inicial. Se debe comenzar con unas
            especificaciones bien entendidas.
 x    Prototipado de “throw-away”.
        q   El objetivo es entender los requerimientos del sistema. Se puede
            comenzar con especificaciones poco entendidas.




©Ian Sommerville 2002            Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1   Diapositiva 1
Problemas y Riesgos con los Modelos.

 x    Cascada.
        q   Alto riesgo en sistemas nuevos debido a problemas en las especificaciones
            y en el diseño.
        q   Bajo riesgo para desarrollos bien comprendidos utilizando tecnología
            conocida.
 x    Prototipado.
        q   Bajo riesgo para nuevas aplicaciones debido a que las especificaciones y
            el diseño se llevan a cabo paso a paso.
        q   Alto riesgo debido a falta de visibilidad
 x    Evolutivo.
        q   Alto riesgo debido a la necesidad de tecnología avanzada y habilidades
            del grupo desarrollador.


©Ian Sommerville 2002           Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1   Diapositiva 1
Manejo de Riesgos

 x    La tarea principal del administrador consiste en minimizar
      riesgos.
 x    El “riesgo” inherente en una actividad es se mide en base a
      la incertidumbre que presenta el resultado de esa actividad.
 x    Las actividades con alto riesgo causan sobre-costes en
      cuanto a planeación y costos
 x    El riesgo es proporcional al monto de la calidad de la
      información disponible. Cuanto menos información,
      mayor el riesgo.



©Ian Sommerville 2002   Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1   Diapositiva 1
Modelos de Procesos Híbridos

 x    Los sistemas grandes están hechos usualmente de varios
      subsistemas.
 x    No es necesario utilizar el mismo modelo de proceso para
      todos los subsistemas.
 x    El prototipado es recomendado cuando existen
      especificaciones de alto riesgo.
 x    El modelo de cascada es utilizado en desarrollos bien
      comprendidos.




©Ian Sommerville 2002   Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1   Diapositiva 1
Modelo de Proceso de Espiral
                                                                                 Evalúe alternativas,
  Determine objetivos                                                           identifique y resuelva
     alternativas y                                                                     riesgos
     restricciones                                            Análisis de
                                                                 Riesgos
                                                        Análisis de
                                                         Riesgos
                                                Análisis de
                                                 Riesgos                                   Prototipo
                                                                             Prototipo     Operacional
                                                 Análisis          Prototipo     3
                                                    de Proto           2
                                 REVISIÓN        Riesgos tipo 3

                        Plan de requerimientos Concepto de           Simulaciones, modelos y benchmarks
                        Plan del ciclo de vida  Operación      Requeri
                                                              mientos de      Diseño        Diseño
                                                                   SW         del           Detallado
                             Plan de            Validación de            Producto Codificación
                            Desarrollo          Requerimientos
                                                                                 Prueba de
                           Plan de Integración Diseño                             Unidades
                                                                        Prueba de
                                y Prueba          V &V
                                                         Prueba de Integración
         Planea la
                                                         Aceptación                   Desarrolla y verifica
       siguiente fase
                                                 Servicio                              el siguiente nivel
                                                                                          del producto
©Ian Sommerville 2002            Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1                     Diapositiva 1
Fases del Modelo de Espiral

  x    Planteamiento de Objetivos
        q   Se identifican los objetivos específicos para cada fase del proyecto.
  x    Identificación y reducción de riesgos.
        q   Los riesgos clave se identifican y analizan, y la información sirve para
            minimizar los riesgos.
  x    Desarrollo y Validación.
        q   Se elige un modelo apropiado para la siguiente fase del desarrollo.
  x    Planeación.
        q   Se revisa el proyecto y se trazan planes para la siguiente ronda del espiral.




©Ian Sommerville 2002           Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1   Diapositiva 1
Plantilla para una ronda del espiral

 x    Objetivos.
 x    Restricciones.
 x    Alternativas.
 x    Riesgos.
 x    Resolución de riesgos.
 x    Resultados.
 x    Planes.
 x    Garantías (commitments).



©Ian Sommerville 2002   Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1   Diapositiva 1
Ventajas del Modelo de Espiral

 x    Centra su atención en la reutilización de componentes y
      eliminación de errores en información descubierta en fases
      iniciales.
 x    Los objetivos de calidad son el primer objetivo.
 x    Integra desarrollo con mantenimiento.
 x    Provee un marco de desarrollo de hardware/software.




©Ian Sommerville 2002   Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1   Diapositiva 1
Problemas con el Modelo de Espiral

 x    El desarrollo contractual especifica el modelo del proceso
      y los resultados a entregar por adelantado.
 x    Requiere de experiencia en la identificación de riesgos.
 x    Requiere refinamiento para uso generalizado.




©Ian Sommerville 2002   Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1   Diapositiva 1
Que modelo utilizar ?

 x    Para sistemas bien comprendidos utiliza el Modelo de
      Cascada. La fase de análisis de riesgos es relativamente
      fácil.
 x    Con requerimientos estables y sistemas de seguridad
      críticos, utiliza modelos formales.
 x    Con especificaciones incompletas, utiliza el modelo de
      prototipado.
 x    Pueden utilizarse modelos híbridos en distintas partes del
      desarrollo.



©Ian Sommerville 2002   Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1   Diapositiva 1
Visibilidad de Procesos

 x    Los sistemas de software son intangibles por lo que los
      administradores necesitan documentación para identificar
      el progreso en el desarrollo.
 x    Esto puede causar problemas..
        q   El tiempo planeado para entrega de resultados puede no coincidir con el
            tiempo necesario para completar una actividad.
        q   La necesidad de producir documentos restringe la iteración entre
            procesos.
        q   .El tiempo para revisar y aprobar documentos es significativo.
 x    El modelo de cascada es aún el modelo basado en
      resultados mas utilizado.


©Ian Sommerville 2002           Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1   Diapositiva 1
Documentos del Modelo de Cascada
    Actividad                                           Documentos Producidos
    Análisis de Requerimientos                          Documento de Requerimientos
    Definición de Requerimientos                        Documento de Requerimientos.
    Especificación del Sistema.                         Especificación Funcional, Plan de Pruebas de
                                                        Aceptación.
    Diseño Arquitectural                                Especificación de la Arquitectura, y Plan de
                                                        Pruebas del Sistema
    Diseño de Interfaces                                Especificación de la Interfaces y Plan de pruebas
                                                        de Integración.
    Diseño Detallado                                    Especificación del diseño y Plan de prueba de
                                                        Unidades.
    Codificación                                        Código de Programa
    Prueba de Unidades                                  Reporte de prueba de unidades
    Prueba de Módulos                                   Reporte de prueba de módulos
    Prueba de Integración                               Reporte de prueba de integración y Manual de
                                                        usuario final
    Prueba del Sistema                                  Reporte de prueba del sistema
    Prueba de Aceptación                                Sistema final mas la documentación.


©Ian Sommerville 2002              Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1             Diapositiva 1
Visibilidad del Modelo
       Modelo de Proceso                               Visibilidad del Proceso


       Modelo de Cascada                               Buena visibilidad, cada actividad produce
                                                       un documento o resultado

       Desarrollo Evolutivo                            Visibilidad pobre, muy caro al producir
                                                       docuementos en cada iteración.

       Modelos Formales                                Buena visibilidad, en cada fase deben
                                                       producirse documentos.

       Desarrollo orientado a la reutilización         Visibilidad moderada. Importante contar
                                                       con documentación de componentes
                                                       reutilizables.

       Modelo de Espiral                               Buena visibilidad, cada segmento y cada
                                                       anillo del espiral debe producir un
                                                       documento.



©Ian Sommerville 2002                 Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1        Diapositiva 1
Retos de la Ingenieria de Software


 x    Mantener y tratar con sistemas legados. Tratar con una mayor
      diversidad de sistemas con mayores demandas de computo, y menores
      tiempos de entrega
 x    Sistemas Legados
        – Sistemas entiguos que deben ser mantenidos y mejorados.
 x    Hetereogenidad
        – Sistemas que incluyen una mezcla de software y hardware.
 x    Entrega
        – Existe una presion incremental por una entrega a tiempo de los
          productos de software.
 x    Formalidad.
        – Existe una gran demanda de que exista formalidad en el proceso
          de desarrollo de software

©Ian Sommerville 2002     Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1   Diapositiva 1
Retos de la Ingenieria de Software


 x    Por que no podemos desarrollar sistemas de
      software con tecnicas formales como lo
      hacen los Ingenieros en Electronica, los Ing.
      Quimicos o los Ingenieros Civiles. ?




©Ian Sommerville 2002   Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1   Diapositiva 1
Demanda de Ingenieros de Software
    Over the last few decades, information technology
    has grown dramatically, with significant impact to
    both the global economy and everyday life.
    Computing power has increased rapidly while the
    costs of hardware and communications have
    dropped, making it increasingly more economical
    to implement systems in software rather than
    hardware. Mechanical devices in automobiles,
    airplanes, and power plants are being replaced by
    software components because software is more
    adaptable, can provide more functionality, and can
    be upgraded more easily to accommodate future
    needs.
©Ian Sommerville 2002   Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1   Diapositiva 1
Demanda de Ingenieros de Software
 Software is used in medical devices, transportation
systems, and financial systems to automate repetitive
but critical tasks. Scientists and business researchers
use software to sift through data warehouses and to
identify pertinent facts and trends. Banking,
insurance, telecommunications, and other service
industries use software to automate and personalize
the services they offer to their customers. As
software applications have grown more complex,
there has been a surge in the demand for software
engineers who have the knowledge and expertise to
develop high-quality software systems.
©Ian Sommerville 2002   Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1   Diapositiva 1
Responsabilidad profesional

 x    Los Ingenieros de software no solo deben considerar
      aspectos técnicos. Deben tener una visión mas amplia, en
      lo ético, social y profesional.
 x    No existe estatutos para ninguno de estos aspectos.
        q   Desarrollo de sistemas militares.
        q   Piratería.
        q   Que es mejor para la profesión de Ingeniero de Software.




©Ian Sommerville 2002          Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1   Diapositiva 1
Aspectos Éticos

 x    Confidencialidad.
 x    Competencia.
 x    Derechos de propiedad intelectual.
 x    Mal uso de la computadora.




©Ian Sommerville 2002   Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1   Diapositiva 1
Una Profesion Madura de la Ingenieria de Software


       Consultar:

       A Mature Profession of Software Engineering.
       Gary Ford
       Norman Gibbs

       Technical Report: CMU/SEI-96-TR-004
       www.sei.cmu.edu


©Ian Sommerville 2002   Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1   Diapositiva 1
Resumen

 x    La Ingeniería de software concierne a las teorías, métodos
      y herramientas para el desarrollo, administración y
      evolución de productos de software.
 x    Los productos de software consisten de programas y
      documentación. Los atributos de los productos son,
      mantenabilidad, dependabilidad, eficiencia y usabilidad.
 x    El proceso de software consiste en aquellas actividades
      involucradas en el desarrollo de software.




©Ian Sommerville 2002   Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1   Diapositiva 1
Resumen

 x    El modelo de cascada considera cada actividad del proceso
      como una actividad discreta.
 x    El modelo de desarrollo evolutivo considera actividades
      del proceso en forma concurrente.
 x    El modelo de espiral se basa en análisis de riesgos.
 x    La visibilidad del proceso involucra la creación de
      documentos o resultados de las actividades.
 x    Los Ingenieros de software deben tener responsabilidades
      éticas, sociales y profesionales.



©Ian Sommerville 2002   Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1   Diapositiva 1

Weitere ähnliche Inhalte

Was ist angesagt?

Calidad y Seguridad en Procesos de Desarrollo de Software
Calidad y Seguridad en Procesos de Desarrollo de SoftwareCalidad y Seguridad en Procesos de Desarrollo de Software
Calidad y Seguridad en Procesos de Desarrollo de SoftwareConferencias FIST
 
Tema Ingenieria Del Software
Tema Ingenieria Del SoftwareTema Ingenieria Del Software
Tema Ingenieria Del Softwaregueste0af42
 
software
softwaresoftware
softwarealkosto
 
Ingenieria de Software
Ingenieria de SoftwareIngenieria de Software
Ingenieria de Softwareem3marquez
 
Introduccion a la Ingeniería de Software
Introduccion a la Ingeniería de SoftwareIntroduccion a la Ingeniería de Software
Introduccion a la Ingeniería de SoftwareLia IS
 
fundamentos teoricos ingenieria de softwaare
fundamentos teoricos ingenieria de softwaarefundamentos teoricos ingenieria de softwaare
fundamentos teoricos ingenieria de softwaareLuz
 
Unidad i ing_soft
Unidad i ing_softUnidad i ing_soft
Unidad i ing_softUCC
 
Diapositivas De Ingenieria De Software
Diapositivas De Ingenieria De SoftwareDiapositivas De Ingenieria De Software
Diapositivas De Ingenieria De Softwarerapa69
 
SSTQB - Glosario de terminos de pruebas de software
SSTQB  - Glosario de terminos de pruebas de softwareSSTQB  - Glosario de terminos de pruebas de software
SSTQB - Glosario de terminos de pruebas de softwareProfessional Testing
 
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áticoSantiago Moha
 
Administracion y Gestion de Proyectos
Administracion y Gestion de ProyectosAdministracion y Gestion de Proyectos
Administracion y Gestion de ProyectosRodolfoRojasEscalante
 
Introduccion a la Ingenieria de Software
Introduccion a la Ingenieria de SoftwareIntroduccion a la Ingenieria de Software
Introduccion a la Ingenieria de SoftwareFabricio Sanchez
 
Trabajo diapositiva modulo 3 de josue
Trabajo diapositiva modulo 3 de josueTrabajo diapositiva modulo 3 de josue
Trabajo diapositiva modulo 3 de josueJosue Zelaya
 

Was ist angesagt? (19)

Introducción a la ingeniería del software
Introducción a la ingeniería del softwareIntroducción a la ingeniería del software
Introducción a la ingeniería del software
 
Calidad y Seguridad en Procesos de Desarrollo de Software
Calidad y Seguridad en Procesos de Desarrollo de SoftwareCalidad y Seguridad en Procesos de Desarrollo de Software
Calidad y Seguridad en Procesos de Desarrollo de Software
 
conceptos de ingenieria de software
conceptos de ingenieria de softwareconceptos de ingenieria de software
conceptos de ingenieria de software
 
Tema Ingenieria Del Software
Tema Ingenieria Del SoftwareTema Ingenieria Del Software
Tema Ingenieria Del Software
 
software
softwaresoftware
software
 
Conceptos
ConceptosConceptos
Conceptos
 
Diapositivas-Ing-SW-napa
Diapositivas-Ing-SW-napaDiapositivas-Ing-SW-napa
Diapositivas-Ing-SW-napa
 
Ingenieria de Software
Ingenieria de SoftwareIngenieria de Software
Ingenieria de Software
 
Ingenieria De Software
Ingenieria De SoftwareIngenieria De Software
Ingenieria De Software
 
Introduccion a la Ingeniería de Software
Introduccion a la Ingeniería de SoftwareIntroduccion a la Ingeniería de Software
Introduccion a la Ingeniería de Software
 
fundamentos teoricos ingenieria de softwaare
fundamentos teoricos ingenieria de softwaarefundamentos teoricos ingenieria de softwaare
fundamentos teoricos ingenieria de softwaare
 
Unidad i ing_soft
Unidad i ing_softUnidad i ing_soft
Unidad i ing_soft
 
Diapositivas De Ingenieria De Software
Diapositivas De Ingenieria De SoftwareDiapositivas De Ingenieria De Software
Diapositivas De Ingenieria De Software
 
SSTQB - Glosario de terminos de pruebas de software
SSTQB  - Glosario de terminos de pruebas de softwareSSTQB  - Glosario de terminos de pruebas de software
SSTQB - Glosario de terminos de pruebas de software
 
Qa sc
Qa scQa sc
Qa sc
 
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
 
Administracion y Gestion de Proyectos
Administracion y Gestion de ProyectosAdministracion y Gestion de Proyectos
Administracion y Gestion de Proyectos
 
Introduccion a la Ingenieria de Software
Introduccion a la Ingenieria de SoftwareIntroduccion a la Ingenieria de Software
Introduccion a la Ingenieria de Software
 
Trabajo diapositiva modulo 3 de josue
Trabajo diapositiva modulo 3 de josueTrabajo diapositiva modulo 3 de josue
Trabajo diapositiva modulo 3 de josue
 

Andere mochten auch

Expo quimica gases
Expo quimica   gasesExpo quimica   gases
Expo quimica gasesLuis Jimenez
 
Edificios inteligentes2
Edificios inteligentes2Edificios inteligentes2
Edificios inteligentes2angelandres86
 
Ensayo sistema anti error
Ensayo sistema anti errorEnsayo sistema anti error
Ensayo sistema anti errorOscar Pulido
 
Yo cree esta página de cocina para que mis amigos
Yo cree esta página de cocina para que mis amigosYo cree esta página de cocina para que mis amigos
Yo cree esta página de cocina para que mis amigos04022012
 
Trabajo de investigación
Trabajo de investigaciónTrabajo de investigación
Trabajo de investigaciónLorena Meza
 
DP: nuevas soluciones para el aprendizaje de idiomas
DP: nuevas soluciones para el aprendizaje de idiomasDP: nuevas soluciones para el aprendizaje de idiomas
DP: nuevas soluciones para el aprendizaje de idiomasCRISEL BY AEFOL
 
Uso de la plataforma Aulaweb como apoyo al futuro docente en prácticas
Uso de la plataforma Aulaweb como apoyo al futuro docente en prácticasUso de la plataforma Aulaweb como apoyo al futuro docente en prácticas
Uso de la plataforma Aulaweb como apoyo al futuro docente en prácticasCRISEL BY AEFOL
 
Fundamentos y tendencias actuales RRHH para desarrollar proyectos de e-learning
Fundamentos y tendencias actuales RRHH para desarrollar proyectos de e-learningFundamentos y tendencias actuales RRHH para desarrollar proyectos de e-learning
Fundamentos y tendencias actuales RRHH para desarrollar proyectos de e-learningCRISEL BY AEFOL
 
¿Qué es la Terapia Hortícola?
¿Qué es la Terapia Hortícola?¿Qué es la Terapia Hortícola?
¿Qué es la Terapia Hortícola?Andrea Cordone
 

Andere mochten auch (20)

Expo quimica gases
Expo quimica   gasesExpo quimica   gases
Expo quimica gases
 
Edificios inteligentes2
Edificios inteligentes2Edificios inteligentes2
Edificios inteligentes2
 
La aventura de lalo
La aventura de laloLa aventura de lalo
La aventura de lalo
 
Cibernetica
CiberneticaCibernetica
Cibernetica
 
Ensayo sistema anti error
Ensayo sistema anti errorEnsayo sistema anti error
Ensayo sistema anti error
 
Yo cree esta página de cocina para que mis amigos
Yo cree esta página de cocina para que mis amigosYo cree esta página de cocina para que mis amigos
Yo cree esta página de cocina para que mis amigos
 
Tecoc, Aicela
Tecoc, AicelaTecoc, Aicela
Tecoc, Aicela
 
ESPN.
ESPN.ESPN.
ESPN.
 
Tema 1 plp
Tema 1 plpTema 1 plp
Tema 1 plp
 
Diapositiva proyecto
Diapositiva proyectoDiapositiva proyecto
Diapositiva proyecto
 
Trabajo de investigación
Trabajo de investigaciónTrabajo de investigación
Trabajo de investigación
 
DP: nuevas soluciones para el aprendizaje de idiomas
DP: nuevas soluciones para el aprendizaje de idiomasDP: nuevas soluciones para el aprendizaje de idiomas
DP: nuevas soluciones para el aprendizaje de idiomas
 
Europa desde el_cielo
Europa desde el_cieloEuropa desde el_cielo
Europa desde el_cielo
 
Uso de la plataforma Aulaweb como apoyo al futuro docente en prácticas
Uso de la plataforma Aulaweb como apoyo al futuro docente en prácticasUso de la plataforma Aulaweb como apoyo al futuro docente en prácticas
Uso de la plataforma Aulaweb como apoyo al futuro docente en prácticas
 
Fundamentos y tendencias actuales RRHH para desarrollar proyectos de e-learning
Fundamentos y tendencias actuales RRHH para desarrollar proyectos de e-learningFundamentos y tendencias actuales RRHH para desarrollar proyectos de e-learning
Fundamentos y tendencias actuales RRHH para desarrollar proyectos de e-learning
 
¿Qué es la Terapia Hortícola?
¿Qué es la Terapia Hortícola?¿Qué es la Terapia Hortícola?
¿Qué es la Terapia Hortícola?
 
Trabajo e residuos solidos 9.2
Trabajo e residuos solidos 9.2Trabajo e residuos solidos 9.2
Trabajo e residuos solidos 9.2
 
Analisis social injusticia globalizada
Analisis social injusticia globalizadaAnalisis social injusticia globalizada
Analisis social injusticia globalizada
 
Material educativo
Material educativoMaterial educativo
Material educativo
 
Ruizdeazua
RuizdeazuaRuizdeazua
Ruizdeazua
 

Ähnlich wie Ingeniería de Software: Conceptos Básicos

Sesion1 Introducción Ingeniería Software
Sesion1 Introducción Ingeniería SoftwareSesion1 Introducción Ingeniería Software
Sesion1 Introducción Ingeniería SoftwareOscar López
 
Inge de software por jophwa y yasuri
Inge de software por jophwa y yasuriInge de software por jophwa y yasuri
Inge de software por jophwa y yasuriyasurimarleni
 
IngSoftCap01-Introduccion.pdf
IngSoftCap01-Introduccion.pdfIngSoftCap01-Introduccion.pdf
IngSoftCap01-Introduccion.pdfcristian265023
 
Unidad 1.1 Que Es La Ing. De Software
Unidad 1.1 Que Es La Ing. De SoftwareUnidad 1.1 Que Es La Ing. De Software
Unidad 1.1 Que Es La Ing. De SoftwareSergio Sanchez
 
SeccióN De TéCnicas De IngenieríA De Software(2007)
SeccióN De TéCnicas  De IngenieríA De Software(2007)SeccióN De TéCnicas  De IngenieríA De Software(2007)
SeccióN De TéCnicas De IngenieríA De Software(2007)denny osael lopez medina
 
Curso de Ingeniería de Software - Capítulo 1
Curso de Ingeniería de Software - Capítulo 1Curso de Ingeniería de Software - Capítulo 1
Curso de Ingeniería de Software - Capítulo 1Eddie Malca
 
Diapositivas guia 1 de software.melissa burgos
Diapositivas guia 1 de software.melissa burgosDiapositivas guia 1 de software.melissa burgos
Diapositivas guia 1 de software.melissa burgosMelissa Burgos
 
El producto y el proceso
El producto y el procesoEl producto y el proceso
El producto y el procesojenmer
 
Exposicion unidad 1 ing software
Exposicion unidad 1 ing softwareExposicion unidad 1 ing software
Exposicion unidad 1 ing softwareuniv of pamplona
 
El_software_y_la_Ingenieria_de_Software.pdf
El_software_y_la_Ingenieria_de_Software.pdfEl_software_y_la_Ingenieria_de_Software.pdf
El_software_y_la_Ingenieria_de_Software.pdfpauly230688
 
Introduccion a la Ingenieria de software
Introduccion a la Ingenieria de softwareIntroduccion a la Ingenieria de software
Introduccion a la Ingenieria de softwareFabricio Sanchez
 

Ähnlich wie Ingeniería de Software: Conceptos Básicos (20)

Nuevo1
Nuevo1Nuevo1
Nuevo1
 
Sesion1 Introducción Ingeniería Software
Sesion1 Introducción Ingeniería SoftwareSesion1 Introducción Ingeniería Software
Sesion1 Introducción Ingeniería Software
 
Inge de software por jophwa y yasuri
Inge de software por jophwa y yasuriInge de software por jophwa y yasuri
Inge de software por jophwa y yasuri
 
IngSoftCap01-Introduccion.pdf
IngSoftCap01-Introduccion.pdfIngSoftCap01-Introduccion.pdf
IngSoftCap01-Introduccion.pdf
 
1. curso unal cap1
1. curso unal cap11. curso unal cap1
1. curso unal cap1
 
1. curso unal cap1
1. curso unal cap11. curso unal cap1
1. curso unal cap1
 
Apuntes2
Apuntes2Apuntes2
Apuntes2
 
Unidad 1.1 Que Es La Ing. De Software
Unidad 1.1 Que Es La Ing. De SoftwareUnidad 1.1 Que Es La Ing. De Software
Unidad 1.1 Que Es La Ing. De Software
 
SeccióN De TéCnicas De IngenieríA De Software(2007)
SeccióN De TéCnicas  De IngenieríA De Software(2007)SeccióN De TéCnicas  De IngenieríA De Software(2007)
SeccióN De TéCnicas De IngenieríA De Software(2007)
 
Is01
Is01Is01
Is01
 
Clase1.ppt
Clase1.pptClase1.ppt
Clase1.ppt
 
Curso de Ingeniería de Software - Capítulo 1
Curso de Ingeniería de Software - Capítulo 1Curso de Ingeniería de Software - Capítulo 1
Curso de Ingeniería de Software - Capítulo 1
 
Diapositivas guia 1 de software.melissa burgos
Diapositivas guia 1 de software.melissa burgosDiapositivas guia 1 de software.melissa burgos
Diapositivas guia 1 de software.melissa burgos
 
El producto y el proceso
El producto y el procesoEl producto y el proceso
El producto y el proceso
 
Exposicion unidad 1 ing software
Exposicion unidad 1 ing softwareExposicion unidad 1 ing software
Exposicion unidad 1 ing software
 
El_software_y_la_Ingenieria_de_Software.pdf
El_software_y_la_Ingenieria_de_Software.pdfEl_software_y_la_Ingenieria_de_Software.pdf
El_software_y_la_Ingenieria_de_Software.pdf
 
Sistemas
SistemasSistemas
Sistemas
 
INGENIERIA DE SOFTWARE
INGENIERIA DE SOFTWAREINGENIERIA DE SOFTWARE
INGENIERIA DE SOFTWARE
 
Introduccion a la Ingenieria de software
Introduccion a la Ingenieria de softwareIntroduccion a la Ingenieria de software
Introduccion a la Ingenieria de software
 
Tarea intro ing_sw_quina
Tarea intro ing_sw_quinaTarea intro ing_sw_quina
Tarea intro ing_sw_quina
 

Ingeniería de Software: Conceptos Básicos

  • 1. Ingeniería de Software x Diseño, construcción y mantenimiento de sistemas de software grandes. Diapositivas Traducidas por: Dr. Pedro Mejía Alvarez. CINVESTAV-IPN, México Septiembre 2003. ©Ian Sommerville 2002 Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1 Diapositiva 1
  • 2. Objetivos x Definir la Ingeniería de Software y explicar su importancia. x Discutir los conceptos de producto de software y proceso de software. x Explicar la importancia de la visibilidad delos procesos. x Introducir la noción de responsabilidad profesional. ©Ian Sommerville 2002 Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1 Diapositiva 1
  • 3. Tópicos x Productos de Software. x El proceso de Software. x El modelo de Espiral de Boehm. x La visibilidad de los procesos. x Responsabilidad profesional. ©Ian Sommerville 2002 Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1 Diapositiva 1
  • 4. Ingeniería de Software x Las economías de los países desarrollados dependen en gran parte del software. x Mas y más sistemas son actualmente controlados por software. x La Ingeniería de Software concierne a teorías, métodos y herramientas para el desarrollo profesional de software. x El gasto en La Ingeniería de Software, representa un alto porcentaje del PIB de los países desarrollados. ©Ian Sommerville 2002 Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1 Diapositiva 1
  • 5. Ingenieria de Software: Conceptos Basicos x Que es la Ingenieria de Software ? x Cual es la diferencia entre un programador y un Ingeniero de Software? x Cual es la diferencia entre un Ingeniero de Software y un Ingeniero de Sistemas? x Cual es la diferencia entre la Ingenieria de Software y la Computacion ? x Que es el software ? x Que es un proceso de software ? x Que es un modelo de software? ©Ian Sommerville 2002 Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1 Diapositiva 1
  • 6. Que es la Ingeniería de Software x La Ingeniería de Software es una diciplina de la Ingeniería que concierne a todos los aspectos de la producción de software x Los Ingenieros de Software adoptan un enfoque sistematico para llevar a cabo su trabajo y utilizan las herramientas y tecnicas necesarias para resolver el problema planteado, de acuerdo a las restricciones de desarrollo y recursos disponibles. ©Ian Sommerville 2002 Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1 Diapositiva 1
  • 7. Diferencia entre Ingenieria de Software y Computacion x La computacion concierne a la teoria y fundamentos de cualquier sistema de computo, sea de hardware o de software. x La Ingenieria de software concierne solo al desarollo de sisetmas o productos de software x La Ingeniria de Sofware todavia esta lejos de ser una ciencia como los son la Quimica, la Ingenieria Civil o la Electronica. ©Ian Sommerville 2002 Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1 Diapositiva 1
  • 8. Ingenieria de Sistemas e Ingenieria de Software x La Ingeniería de Sistemas concierne a todos los aspectos del desarrollo de sistemas basados en cómputo, que incluyen hardware, software y el proceso de Ingeniería. La Ingeniería de Software es solo parte de este proceso. ©Ian Sommerville 2002 Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1 Diapositiva 1
  • 9. Que es el Software ? Programas de cómputo y su documentacion asociada x Sistemas o Productos de software grandes y complejos. x Que contiene el software. x Que tipos de software hay ? x Cual es el costo del software. x Como se desarrolla el software ? x Como saber si un software tiene calidad. ©Ian Sommerville 2002 Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1 Diapositiva 1
  • 10. Productos de Software x Productos genéricos. q Productos que son producidos por una organización para ser vendidos al mercado. x Productos hechos a medida. q Sistemas que son desarrollados bajo pedido a un desarrollador específico. x La mayor parte del gasto del software es en productos genéricos, pero hay más esfuerzo en el desarrollo de los sistemas hechos a medida. ©Ian Sommerville 2002 Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1 Diapositiva 1
  • 11. Características de los Productos de Software x Mantenibles. q Debe ser posible que el software evolucione y que siga cumpliendo con sus especificaciones. x Confiabilidad. q El software no debe causar danos físicos o económicos en el caso de fallos. x Eficiencia. q El software no debe desperdiciar los recursos del sistema. x Utilización adecuada. q El software debe contar con una interfaz de usuario adecuada y su documentación. ©Ian Sommerville 2002 Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1 Diapositiva 1
  • 12. Importancia de las características del producto x La importancia relativa de las características depende en el tipo de producto y en el ambiente en el que será utilizado. x En algunos casos, algunos atributos pueden dominar. q En sistemas de seguridad críticos de tiempo real, los atributos clave pueden ser la confiabilidad y la eficiencia. x Los costos tienden a crecer exponencialmente si son requeridos altos niveles de alguna característica. ©Ian Sommerville 2002 Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1 Diapositiva 1
  • 13. Que contiene el software ? x El software contiene: – Líneas de código de algún lenguaje ? – Instrucciones de computadora. – Descripción de las estructuras de datos. – Algoritmos. – Procedimientos y funciones. – Componentes de software. ©Ian Sommerville 2002 Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1 Diapositiva 1
  • 14. Que tipos de software hay ? x Por su estructura: – Funcionales. – Orientados a objetos. – Orientados a listas. – Orientados a componentes. x Por su funcion: – Programas o Sistemas de Usuario – Interfaces Hombre-Maquina. – Herramientas de Software. – Librerias. – Sistemas de uso generico: Compiladores, S.O’s, Procesadores de Texto, etc. – Bases de Datos. – Sistemas basados en Web. ©Ian Sommerville 2002 Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1 Diapositiva 1
  • 15. Que tipos de software hay ? x Por su plataforma de computo: – Sistemas embebidos. – Sistemas de computo distribuido. – Sistemas de computo paralelo. – Sistemas de tiempo real. – Sistemas basados en Chips. – Wearable computing systems. – Sistemas de computo ubiquos. ©Ian Sommerville 2002 Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1 Diapositiva 1
  • 16. Costos del Software x Los costos del software a menudo dominan al costo del sistema. El costo del software en un PC es a menudo mas caro que la PC. x Cuesta mas mantener el software que desarrollarlo. Para sistemas con una larga vida, este costo se multiplica. x La Ingeniería de Software concierne a un desarrollo efectivo en cuanto a costes del software. ©Ian Sommerville 2002 Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1 Diapositiva 1
  • 17. Costes de Eficiencia. Costos Eficiencia ©Ian Sommerville 2002 Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1 Diapositiva 1
  • 18. El Proceso de Software x Conjunto estructurado de actividades requeridas para desarrollar un sistema de software. q Especificación- que debe hacer el software y cuales son sus especificaciones de desarrollo. q Desarrollo – produccion del sistema de software. q Validación – verificar que el software hace lo que el cliente pide. q Evolución – cambiar/adaptar el software a las demandas. x Las actividades varían dependiendo de la organización y del tipo de sistema a desarrollarse. x Debe estar explícitamente modelado si va a ser bien administrado. ©Ian Sommerville 2002 Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1 Diapositiva 1
  • 19. Proceso Genérico de Software x Especificación - establecer los requerimientos y restricciones del sistema x Diseño - Producir un modelo en papel del sistema x Manufactura - construir el sistema x Prueba - verificar que el sistema cumpla con las especificaciones requeridas x Instalación - entregar el sistema al usuario y asegurar su operacionalidad x Mantenimiento - reparar fallos en el sistema cundo sea descubiertos ©Ian Sommerville 2002 Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1 Diapositiva 1
  • 20. Características del proceso x Entendible q Se encuentra el proceso bien definido y es entendible ?. x Visible q El proceso es visible al exterior ?. x Soportable q Puede el proceso ser soportado por herramientas CASE ?. x Aceptable q El proceso es aceptado por aquellos involucrados en el ?. ©Ian Sommerville 2002 Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1 Diapositiva 1
  • 21. Características del proceso x Confiable q Los errores del proceso son descubiertos antes de que se conviertan en errores del producto ?. x Robusto q Puede continuar el proceso a pesar de problemas inesperados ?. x Mantenible q Puede el proceso evolucionar para cumplir con los objetivos organizacionales ?. x Rapidez q Que tan rápido puede producirse el sistema ?. ©Ian Sommerville 2002 Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1 Diapositiva 1
  • 22. Problemas en el Modelo del Proceso x Normalmente, las especificaciones son incompletas o anómalas x No existe una distinción precisa entre la especificación, el diseño y la manufactura x Solo hasta que el sistema se ha producido se puede probar x El software no se puede remplazar siempre durante el mantenimiento ©Ian Sommerville 2002 Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1 Diapositiva 1
  • 23. Modelos de Desarrollo de Software x Representacion formal o simplificada de processo de software. x Modelos Genericos: – Modelo de Cascada x Separar en distintas fases de especificación y desarrollo. – Desarrollo Evolutivo x La especificación y el desarrollo están intercalados. – Prototipado x Un modelo sirve de prototipo para la construcción del sistema final. – Transformación Formal x Un modelo matemático del sistema se transforma formalmente en la implementación. – Desarrollo basado en Reutilización x El sistema es ensamblado a partir de componentes existentes. ©Ian Sommerville 2002 Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1 Diapositiva 1
  • 24. Modelo de Cascada (gráfica) Definición de Requerimientos Diseño del Software y del Sistema Implementación y Prueba de unidades Integración y Prueba del Sistema Operación y Mantenimiento ©Ian Sommerville 2002 Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1 Diapositiva 1
  • 25. Fases del Modelo de Cascada x Análisis de requerimientos y definición. x Diseño del sistema y del software. x Implementación y prueba de unidades x Integración y prueba del sistema. x Operación y mantenimiento. x La dificultad en esta modelo reside, en la dificultad de hacer cambios entre etapas. ©Ian Sommerville 2002 Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1 Diapositiva 1
  • 26. Desarrollo Evolutivo Actividades Concurrentes Versión Especificación Inicial Descripción Versiones Desarrollo del sistema Intermedias Versión Validación Final ©Ian Sommerville 2002 Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1 Diapositiva 1
  • 27. Desarrollo Evolutivo x Problemas q Poca visibilidad en el proceso q Los sistemas están pobremente especificados q Se requieren habilidades especiales. x Aplicabilidad q Para sistemas interactivos pequeños o medianos. q Para partes de sistemas grandes (p.ej. la interfaz de usuario). q Para sistemas de corta vida. ©Ian Sommerville 2002 Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1 Diapositiva 1
  • 28. Prototipado x Prototipado exploratorio q El objetivo es trabajar con clientes hasta evolucionar a un sistema final, a partir de una especificación inicial. Se debe comenzar con unas especificaciones bien entendidas. x Prototipado de “throw-away”. q El objetivo es entender los requerimientos del sistema. Se puede comenzar con especificaciones poco entendidas. ©Ian Sommerville 2002 Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1 Diapositiva 1
  • 29. Problemas y Riesgos con los Modelos. x Cascada. q Alto riesgo en sistemas nuevos debido a problemas en las especificaciones y en el diseño. q Bajo riesgo para desarrollos bien comprendidos utilizando tecnología conocida. x Prototipado. q Bajo riesgo para nuevas aplicaciones debido a que las especificaciones y el diseño se llevan a cabo paso a paso. q Alto riesgo debido a falta de visibilidad x Evolutivo. q Alto riesgo debido a la necesidad de tecnología avanzada y habilidades del grupo desarrollador. ©Ian Sommerville 2002 Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1 Diapositiva 1
  • 30. Manejo de Riesgos x La tarea principal del administrador consiste en minimizar riesgos. x El “riesgo” inherente en una actividad es se mide en base a la incertidumbre que presenta el resultado de esa actividad. x Las actividades con alto riesgo causan sobre-costes en cuanto a planeación y costos x El riesgo es proporcional al monto de la calidad de la información disponible. Cuanto menos información, mayor el riesgo. ©Ian Sommerville 2002 Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1 Diapositiva 1
  • 31. Modelos de Procesos Híbridos x Los sistemas grandes están hechos usualmente de varios subsistemas. x No es necesario utilizar el mismo modelo de proceso para todos los subsistemas. x El prototipado es recomendado cuando existen especificaciones de alto riesgo. x El modelo de cascada es utilizado en desarrollos bien comprendidos. ©Ian Sommerville 2002 Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1 Diapositiva 1
  • 32. Modelo de Proceso de Espiral Evalúe alternativas, Determine objetivos identifique y resuelva alternativas y riesgos restricciones Análisis de Riesgos Análisis de Riesgos Análisis de Riesgos Prototipo Prototipo Operacional Análisis Prototipo 3 de Proto 2 REVISIÓN Riesgos tipo 3 Plan de requerimientos Concepto de Simulaciones, modelos y benchmarks Plan del ciclo de vida Operación Requeri mientos de Diseño Diseño SW del Detallado Plan de Validación de Producto Codificación Desarrollo Requerimientos Prueba de Plan de Integración Diseño Unidades Prueba de y Prueba V &V Prueba de Integración Planea la Aceptación Desarrolla y verifica siguiente fase Servicio el siguiente nivel del producto ©Ian Sommerville 2002 Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1 Diapositiva 1
  • 33. Fases del Modelo de Espiral x Planteamiento de Objetivos q Se identifican los objetivos específicos para cada fase del proyecto. x Identificación y reducción de riesgos. q Los riesgos clave se identifican y analizan, y la información sirve para minimizar los riesgos. x Desarrollo y Validación. q Se elige un modelo apropiado para la siguiente fase del desarrollo. x Planeación. q Se revisa el proyecto y se trazan planes para la siguiente ronda del espiral. ©Ian Sommerville 2002 Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1 Diapositiva 1
  • 34. Plantilla para una ronda del espiral x Objetivos. x Restricciones. x Alternativas. x Riesgos. x Resolución de riesgos. x Resultados. x Planes. x Garantías (commitments). ©Ian Sommerville 2002 Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1 Diapositiva 1
  • 35. Ventajas del Modelo de Espiral x Centra su atención en la reutilización de componentes y eliminación de errores en información descubierta en fases iniciales. x Los objetivos de calidad son el primer objetivo. x Integra desarrollo con mantenimiento. x Provee un marco de desarrollo de hardware/software. ©Ian Sommerville 2002 Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1 Diapositiva 1
  • 36. Problemas con el Modelo de Espiral x El desarrollo contractual especifica el modelo del proceso y los resultados a entregar por adelantado. x Requiere de experiencia en la identificación de riesgos. x Requiere refinamiento para uso generalizado. ©Ian Sommerville 2002 Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1 Diapositiva 1
  • 37. Que modelo utilizar ? x Para sistemas bien comprendidos utiliza el Modelo de Cascada. La fase de análisis de riesgos es relativamente fácil. x Con requerimientos estables y sistemas de seguridad críticos, utiliza modelos formales. x Con especificaciones incompletas, utiliza el modelo de prototipado. x Pueden utilizarse modelos híbridos en distintas partes del desarrollo. ©Ian Sommerville 2002 Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1 Diapositiva 1
  • 38. Visibilidad de Procesos x Los sistemas de software son intangibles por lo que los administradores necesitan documentación para identificar el progreso en el desarrollo. x Esto puede causar problemas.. q El tiempo planeado para entrega de resultados puede no coincidir con el tiempo necesario para completar una actividad. q La necesidad de producir documentos restringe la iteración entre procesos. q .El tiempo para revisar y aprobar documentos es significativo. x El modelo de cascada es aún el modelo basado en resultados mas utilizado. ©Ian Sommerville 2002 Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1 Diapositiva 1
  • 39. Documentos del Modelo de Cascada Actividad Documentos Producidos Análisis de Requerimientos Documento de Requerimientos Definición de Requerimientos Documento de Requerimientos. Especificación del Sistema. Especificación Funcional, Plan de Pruebas de Aceptación. Diseño Arquitectural Especificación de la Arquitectura, y Plan de Pruebas del Sistema Diseño de Interfaces Especificación de la Interfaces y Plan de pruebas de Integración. Diseño Detallado Especificación del diseño y Plan de prueba de Unidades. Codificación Código de Programa Prueba de Unidades Reporte de prueba de unidades Prueba de Módulos Reporte de prueba de módulos Prueba de Integración Reporte de prueba de integración y Manual de usuario final Prueba del Sistema Reporte de prueba del sistema Prueba de Aceptación Sistema final mas la documentación. ©Ian Sommerville 2002 Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1 Diapositiva 1
  • 40. Visibilidad del Modelo Modelo de Proceso Visibilidad del Proceso Modelo de Cascada Buena visibilidad, cada actividad produce un documento o resultado Desarrollo Evolutivo Visibilidad pobre, muy caro al producir docuementos en cada iteración. Modelos Formales Buena visibilidad, en cada fase deben producirse documentos. Desarrollo orientado a la reutilización Visibilidad moderada. Importante contar con documentación de componentes reutilizables. Modelo de Espiral Buena visibilidad, cada segmento y cada anillo del espiral debe producir un documento. ©Ian Sommerville 2002 Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1 Diapositiva 1
  • 41. Retos de la Ingenieria de Software x Mantener y tratar con sistemas legados. Tratar con una mayor diversidad de sistemas con mayores demandas de computo, y menores tiempos de entrega x Sistemas Legados – Sistemas entiguos que deben ser mantenidos y mejorados. x Hetereogenidad – Sistemas que incluyen una mezcla de software y hardware. x Entrega – Existe una presion incremental por una entrega a tiempo de los productos de software. x Formalidad. – Existe una gran demanda de que exista formalidad en el proceso de desarrollo de software ©Ian Sommerville 2002 Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1 Diapositiva 1
  • 42. Retos de la Ingenieria de Software x Por que no podemos desarrollar sistemas de software con tecnicas formales como lo hacen los Ingenieros en Electronica, los Ing. Quimicos o los Ingenieros Civiles. ? ©Ian Sommerville 2002 Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1 Diapositiva 1
  • 43. Demanda de Ingenieros de Software Over the last few decades, information technology has grown dramatically, with significant impact to both the global economy and everyday life. Computing power has increased rapidly while the costs of hardware and communications have dropped, making it increasingly more economical to implement systems in software rather than hardware. Mechanical devices in automobiles, airplanes, and power plants are being replaced by software components because software is more adaptable, can provide more functionality, and can be upgraded more easily to accommodate future needs. ©Ian Sommerville 2002 Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1 Diapositiva 1
  • 44. Demanda de Ingenieros de Software Software is used in medical devices, transportation systems, and financial systems to automate repetitive but critical tasks. Scientists and business researchers use software to sift through data warehouses and to identify pertinent facts and trends. Banking, insurance, telecommunications, and other service industries use software to automate and personalize the services they offer to their customers. As software applications have grown more complex, there has been a surge in the demand for software engineers who have the knowledge and expertise to develop high-quality software systems. ©Ian Sommerville 2002 Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1 Diapositiva 1
  • 45. Responsabilidad profesional x Los Ingenieros de software no solo deben considerar aspectos técnicos. Deben tener una visión mas amplia, en lo ético, social y profesional. x No existe estatutos para ninguno de estos aspectos. q Desarrollo de sistemas militares. q Piratería. q Que es mejor para la profesión de Ingeniero de Software. ©Ian Sommerville 2002 Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1 Diapositiva 1
  • 46. Aspectos Éticos x Confidencialidad. x Competencia. x Derechos de propiedad intelectual. x Mal uso de la computadora. ©Ian Sommerville 2002 Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1 Diapositiva 1
  • 47. Una Profesion Madura de la Ingenieria de Software Consultar: A Mature Profession of Software Engineering. Gary Ford Norman Gibbs Technical Report: CMU/SEI-96-TR-004 www.sei.cmu.edu ©Ian Sommerville 2002 Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1 Diapositiva 1
  • 48. Resumen x La Ingeniería de software concierne a las teorías, métodos y herramientas para el desarrollo, administración y evolución de productos de software. x Los productos de software consisten de programas y documentación. Los atributos de los productos son, mantenabilidad, dependabilidad, eficiencia y usabilidad. x El proceso de software consiste en aquellas actividades involucradas en el desarrollo de software. ©Ian Sommerville 2002 Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1 Diapositiva 1
  • 49. Resumen x El modelo de cascada considera cada actividad del proceso como una actividad discreta. x El modelo de desarrollo evolutivo considera actividades del proceso en forma concurrente. x El modelo de espiral se basa en análisis de riesgos. x La visibilidad del proceso involucra la creación de documentos o resultados de las actividades. x Los Ingenieros de software deben tener responsabilidades éticas, sociales y profesionales. ©Ian Sommerville 2002 Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1 Diapositiva 1