SlideShare ist ein Scribd-Unternehmen logo
1 von 7
Downloaden Sie, um offline zu lesen
Introducción a la Ingeniería de
                       INGENIERÍA de
                                                                                                                       Requerimientos
                      REQUERIMIENTOS
                                                                                                                La Ingeniería de Requerimientos (IR) se
                                  Unidad I – Parte I                                                            relaciona con la búsqueda de la situación
                                                                                                                futura y el cambio asociado.
               Introducción – Ing. De Software – Ing. De
             Requerimientos – Ciclo de Vida del Software –                                                      Está relacionada con encontrar (capturar)
                   Crisis del Software – Chaos Report                                                           información y considerar posibles
                                                                                                                opciones, y con la identificación de lo que
                                                                                                                debería ser diseñado en orden a satisfacer
                                                                                                                una necesidad futura percibida
                                                                                                 1                                                                                                    2




                    Hito: “No Silver Bullets”                                                                            Hito: “No Silver Bullets”
                                 (Brooks, 1987)                                                                                       (Brooks, 1987)
                                                                                                       •    Problemas o dificultades esenciales:
• Paper magistral de Brooks (Abril,1987)
                                                                                                            – Complejidad
• Dos tipos de problemas:
                                                                                                                 •   no lineal con el tamaño,
    – Esenciales: inherentes a la naturaleza                                                                     •   dependiente de diversos factores,
      del software.
                                                                                                                 •   problemas de gestión, de comunicación, …
    – Accidentales: relacionadas a la
                                                                                                            – Conformidad (complejidad arbitraria, puntos de vista)
      producción de software, pero que no
      son inherentes a él.                                                                                  – Modificabilidad (presiones constantes al cambio)
                                                                                                            – Invisibilidad (no tangible, no visualizable)



                                                                                         3
Brooks, Fred P. (1987). "No Silver Bullet - Essence and Accidents in Software Engineering". IEEE     Brooks, Fred P. (1987). "No Silver Bullet - Essence and Accidents in Software Engineering". IEEE
                                                                                                                                                                                               4
Computer, 20(4): 10-19.                                                                              Computer, 20(4): 10-19.




                    Hito: “No Silver Bullets”                                                                            Hito: “No Silver Bullets”
                                 (Brooks, 1987)                                                                                       (Brooks, 1987)
  “La parte más difícil de construir un sistema de software es                                        “La parte más difícil de construir un sistema de software es
               decidir precisamente qué construir.                                                                 decidir precisamente qué construir.
  Ninguna otra parte del trabajo conceptual es tan dificultosa                                            Ninguna otra parte del trabajo conceptual es tan
     como establecer los requerimientos técnicos detallados,                                             dificultosa como establecer los requerimientos técnicos
        incluyendo todas las interfases hacia las personas,                                                detallados, incluyendo todas las interfases hacia las
             máquinas y otros sistemas de software.                                                          personas, máquinas y otros sistemas de software.
  Ninguna otra parte del trabajo paraliza el sistema si es mal                                        Ninguna otra parte del trabajo paraliza el sistema si es mal
       hecha. Ninguna otra parte es tan difícil de rectificar                                             hecha. Ninguna otra parte es tan difícil de rectificar
                             después”                                                                                            después”

Brooks, Fred P. (1987). "No Silver Bullet - Essence and Accidents in Software Engineering". IEEE
                                                                                         5           Brooks, Fred P. (1987). "No Silver Bullet - Essence and Accidents in Software Engineering". IEEE
                                                                                                                                                                                              6
Computer, 20(4): 10-19.                         Luciana C. Ballejos                                  Computer, 20(4): 10-19.                         Luciana C. Ballejos
                                CIDISI, Centro de I+D en Ingeniería en Sistemas de Información                                       CIDISI, Centro de I+D en Ingeniería en Sistemas de Información




                                                                                                                                                                                                          1
Hito: “No Silver Bullets”
                                                                                                          Costo relativo de corregir defectos
                                 (Brooks, 1987)

                    3 ideas fundamentales a considerar:

        • La parte más difícil del trabajo: al inicio.
        • El impacto perjudicial del error.
        • La dificultad de rectificar posteriormente.


                                                                                                       El costo de reparar un defecto de software varía de acuerdo
                                                                                                          al momento en que se esté dentro del ciclo de vida del
                                                                                                                                software.
Brooks, Fred P. (1987). "No Silver Bullet - Essence and Accidents in Software Engineering". IEEE
                                                                                         7            Wiegers, Karl E. (2003). Software Requirements, Second Edition. Microsoft Press   8
Computer, 20(4): 10-19.                         Luciana C. Ballejos
                                CIDISI, Centro de I+D en Ingeniería en Sistemas de Información




            Problemas del Diseño de Soft                                                                         Problemas del Diseño de Soft
                                                                                                       Áreas problemáticas:
       Causas de problemas:
                                                                                                       • Obtención de información informal,
                                                                                                       • funcionalidades implícitas o no establecidas,
       • Simplificaciones en los procesos
                                                                                                       • suposiciones no fundamentadas o no
       • Prácticas usadas para obtener, documentar,                                                      comunicadas,
         acordar y alterar los requerimientos de los
                                                                                                       • requerimientos no adecuadamente documentados
         productos.
                                                                                                       • cambios casuales en los procesos de
                                                                                                         requerimientos.
                                                                                                  9                                                                                     10




            Problemas del Diseño de Soft                                                                                    Orientación de la IR
  Entre el 40 y el 60 % de los defectos encontrados                                                      Trabajo presente                 Opciones
  pertenecen a la etapa de requerimientos.                                                                 del usuario                   Tecnológicas
                                                                                                                                                                      IR: relacionada
  Esencialmente la diferencia es “entre lo que los                                                                                                                    a encontrar la
                                                                                                                           Diseño del                                 situación futura
  desarrolladores piensan que tienen que construir y                                                                        Sistema
                                                                                                                                                                      y el cambio
  lo que los usuarios o clientes piensan que van a
                                                                                                                                                                      asociado
  obtener”.
                                                                                                                         Sistema Futuro
                                                                                                                                                             t
                                                                                                 11                                                                                     12




                                                                                                                                                                                             2
Los ciclos de vida y la IR                                                 Los ciclos de vida y la IR
    Requerimientos


                   Diseño


                            Codificación
   Requerimientos en el
  modelo de Ciclo de Vida                  Testeo
       en Cascada.
                                                    Operación
                                                                                           Requerimientos en el modelo en V.
                                                                13                                                                                                      14




          Los ciclos de vida y la IR                                                 Los ciclos de vida y la IR
Modelo Incremental                                                     Modelo Espiral
                                                                       •   Comenzar produciendo una pequeña parte del sistema (pero
                                                                           completamente funcional).
                                                                       •   Una vez completada, se crea una segunda parte, acoplada a la primera, de
                                                                           manera de que en cada iteración, se obtiene una versión aumentada del
                                                                           sistema hasta terminar.
                                                                       •   No hay conocimiento completo a priori de los requerimientos
                                                                           (incertidumbre)




     Cada secuencia produce un “incremento” de software.
     Cada iteración o “incremento” produce una versión
     operativa    se entrega un producto operacional.
                                                                15                                                                                                      16
                                                                                                                      Luciana C. Ballejos
                                                                                                CIDISI, Centro de I+D en Ingeniería en Sistemas de Información




          Los ciclos de vida y la IR                                                    Requerimientos en CMMi
Requerimientos en el Rational Unified Process (RUP)

                                                                       Categorías:
                                                                     - Administración
                                                                     de Procesos
                                                                     - Administración
                                                                     de Proyectos
                                                                     - Ingeniería
                                                                     - Soporte




                                                                                        REQM: Administración de Requerim.                            PI: Integración de Producto.
                                                                                        RD: Desarrollo de Requerimientos.                            VER: Verificación
                                                                17                      TS: Solución Técnica.                                        VAL: Validación     18




                                                                                                                                                                                    3
La IR en la Ingeniería de Software                                           Crisis del Software: Crónicas
      Del Proceso de Producción de Software se encarga la                 • Nuevo aeropuerto de Denver (’90s)
                                                                          • El sistema de manejo de equipaje
               Ingeniería de Software                                       subterráneo: casi 34 km de cintas
                                                                            transportadoras y 4000 telecars
 ¿Cómo surge?: Debido a los problemas ocasionados por errores               independientes para 20 aerolíneas.
                         de software
                                                                          • Un sistema central de 100 PC en red, 5000
   Función: Producción de Software más robusto, proveyendo
                                                                            sensores eléctricos, 400 receptores de radio
            procesos de producción más confiables.                          y 56 lectores de barra.

                                                            19                                                                       20




      Crisis del Software: Crónicas                                            Crisis del Software: Crónicas
• Por nueve meses no estuvo en funcionamiento por                         • FAA de EEUU: Reemplazo del sistema de control de
                                                                            tráfico aéreo por el AAS (Advanced Automation System).
  errores en el sistema de control.
                                                                          • Cuando un sistema es muy complejo no hay un gerente
• 193 millones de dólares, pospuso la apertura del                          enteramente responsable del mismo.
  aeropuerto por 8 meses. De octubre a mayo, el costo                     • Más de 1 millón de líneas, distribuidas en más de 100
  1,1 millón por día.                                                       computadoras.
  De cada 6 sistemas que se ponen en operación, 2 son                     • Se eligió a IBM.
  cancelados.                                                             • Se esperaba pagar 500 U$S por línea de código
  El mayor presupuesto promedio estimado siempre es la                    • Se pagó 700 - 900 por línea
  mitad de lo que se paga.                                                • Cada línea de código escrita se reescribió once veces!
  Alrededor de ¾ de los grandes sistemas no funcionan                     • La FAA: canceló dos de las 4 partes solicitadas y rediseñó
                                                                            (para atrás) otra.
  como se intentó o no son usados.
                                                                          • Costo total del proyecto 144 millones de U$S.
                                                            21                                                                       22




                                                                                         CHAOS Report (2009)
                       Crónicas                                  •     Exitoso: El proyecto se completa en el tiempo y con el
                                                                       presupuesto planificado, con todas las funciones y
                                                                       características especificadas originalmente.
    • De cada 6 sistemas que se ponen en                         •     Comprometido/Cuestionado (“Challenged”): El proyecto se
      operación, 2 son cancelados.                                     completa y es operacional, pero con tiempos y presupuesto
                                                                       mayores a los estimados y/o con menor cantidad de
    • El mayor presupuesto promedio estimado                           características y funciones de las especificadas inicialmente.
      siempre es la mitad de lo que se paga.                     •     Fallado o Cancelado: El proyecto se cancela antes de ser
                                                                       completado o nunca es implementado.
    • Alrededor del 70% de los grandes sistemas
      no funcionan como se intentó o no son
      usados.

                                                            23                                                                       24
                                                                     The Standish Group. (2009). Chaos Report 2009.




                                                                                                                                          4
CHAOS Report (2009)                                                       Chaos Report
                                                                     • Por qué fallan los proyectos?
                                                                               1. Requerimientos Incompletos                  13.1%
                                                                               2. Pobre Inclusión de los Usuarios             12.4%
                                                                               3. Planificación y Estrategia                  10.6%
                                                                               4. Expectativas no Realistas                   9.9%
                                                                               5. Falta de Soporte Gerencial                  9.3%
                                                                               6. Requerimientos y Espec. Cambiantes 8.7%
                                                                               7. Recursos Insuficientes             8.1%
                                                                               8. Reqs. dejan de ser Necesarios      7.5%
                                                                               9. Pobre Manejo de IT                          6.2%
                                                                25
                                                                               10. Desconocimiento de la Tecnología           4.3%          26
The Standish Group. (2009). Chaos Report 2009.




                           Chaos Report                                  Introducción: Abstracción vs. Formalismo
                                                                                                                                        Abstracto
   • Por qué los proyectos son exitosos?
                                                                                                                             Muy alto
             1. Usuarios involucrados                   15.9%                           (IDEAL)
                                                                                                                             nivel
             2. Soporte Gerencial                       13.9%                                                                No Alg.
                                                                                 (CONVENCIONAL)    +                         Algorit.
             3. Requerimientos Claros                   13.0%
             4. Planeamiento Apropiado                  9.6%                                                                 Alto
                                                                                                                             nivel
             5. Expectativas Realistas                  8.2%
                                                                                                                             Bajo
             6. Milestones Pequeños (hitos/objetivos)   7.7%                                                    +            nivel
             7. Recursos Apropiados                     7.2%
                                                                                                            Meta             Nivel de
             8. Metodología y Estrategia                5.3%                                                                 máquina

             9. Visión y Objetivos Claros               2.9%         Prosa           Especificación                 Código
                                                                                                                                        Concreto
             10. Trabajo Duro, Recursos en Foco         2.4%    27   Informal        Nivel Lingüístico               Formal                 28




   ¿En qué se relaciona la Ingeniería de Software con                                         Introducción
           la Ingeniería en Requerimientos?
                                                                                 Lo que abarca Ingeniería de Requerimientos?

  La Ingeniería de Software abarca todo lo concerniente al
  desarrollo del Software, ofreciendo métodos y técnicas para las        UdI
                                                                                 DEFINICIÓN
                                                                                               ?
  distintas etapas del ciclo de vida, de manera de desarrollar y
  mantener software de calidad:

                      ♣ Definición del Problema
                                                                                                       DISEÑO

                      ♣ Estudio de Factibilidad
                      ♣ Análisis                  CICLO DE                                                            IMPLEMEN- SOFTWARE
                      ♣ Diseño del Sistema          VIDA                                                                TACIÓN
                      ♣ Diseño Detallado          DEL SOFT
                      ♣ Implementación
                      ♣ Mantenimiento                           29                                                                          30




                                                                                                                                                    5
Introducción                                                 Necesidad de Requerimientos
La Ingeniería en requerimientos entra como una subtarea de la
                                                                                   ¿Porqué es necesaria una etapa de Requerimientos?
Ingeniería de Software; propone métodos, técnicas y herramientas que
faciliten el trabajo de Definición de lo que se quiere de un software:      Determina-      Compra       Instalación   Introducción y     Uso          Uso
                                                                              ción de          o                       entrenamiento    limitado       Total
                                                ♣ Definición del Problema   Necesidades    Desarrollo
    Ingeniería de requerimientos:
                                                ♣ Estudio de Factibilidad
          Rol fundamental
                                                ♣ Análisis                                                                                         t

                                                ♣ Diseño del Sistema                        Evaluación y                                       Evaluación de
                                                ♣ Diseño Detallado                           decisión de                                        limitaciones
                                                ♣ Implementación                           etapa siguiente                                      del producto
                                                ♣ Mantenimiento
   Debido a esta relación se deriva que:
                                 Muy fuerte                                    Desde el punto de vista del cliente una etapa de requerimientos
                                 interacción                                   es necesaria porque le ayuda a entender y expresar las nuevas
        Ing. en requerimientos                 Demandantes del Soft            necesidades y a identificar cómo puede satisfacerlas.
                                                                      31                                                                                32




            Requerimiento - requisito                                                     Requerimiento - requisito
                     ¿Qué es un Requerimiento?
                                                                                 ’94 Jones: “Los requerimientos son las sentencias de necesidades
                                                                                de un usuario que lanzan el desarrollo de un programa o sistema”
     • Simplemente... cualquier cosa que un cliente necesite.
                                                                                ’93 Alan Davis: “una necesidad de un usuario o una facilidad
     • Desde el punto de vista del diseñador, cualquier cosa                    necesaria, función o atributo de un sistema que puede ser sensado
     que necesite ser diseñada.                                                 desde una posición externa al sistema”

                                                                                En general, el énfasis está en:

                                                                                   Lo que irá en el producto, sus características. No cómo el
                                                                                              producto se diseñará o construirá.

                                                                      33                                                                                34




            Requerimiento - requisito                                                     Requerimiento - requisito
                                                                               La más notable de las definiciones es la de la IEEE:
    ’97 Sommerville and Sawyer: “Requerimientos son... una                     1. Una condición o capacidad necesaria para un
   especificación de lo que debería ser implementado. Son una                  usuario para resolver un problema o alcanzar un
   descripción de cómo el sistema debería comportarse o de una
   propiedad o atributo del sistema. Puede ser una restricción sobre
                                                                               objetivo.
   el proceso de desarrollo del sistema”                                       2. Una condición o capacidad que debe ser alcanzada
                                                                               o poseída por un sistema o componente de un sistema
   Lo que realmente necesitamos es asegurarnos que todos los                   para satisfacer un contrato, estándar, especificación, u
   stakeholders del proyecto llegan a un entendimiento                         otro documento formalmente impuesto.
   compartido de los términos usados para describir los
   requerimientos.
                                                                               3. Una representación documentada de una condición
                                                                               o capacidad dada en 1 o 2.
                                                                      35                                                                                36




                                                                                                                                                               6
Requerimientos                                                               Requerimientos
                                                                            Clasificación de los requerimientos
   Clasificación de los requerimientos:
                                                                                            En cuanto al nivel de abstracción
                       En cuanto al contenido
                                                                              • requerimientos-c: contienen los requerimientos funcionales,
                                                                                requerimientos-
    • Funcionales: describen las entradas, salidas y funciones de
                                                                              no funcionales e inversos descriptos en un lenguaje
      Funcionales
    transformación del Sistema;                                               comprensible al cliente/usuario, utilizando excesivamente el
                                                                              vocabulario de la aplicación;
    • No Funcionales: definen atributos como confiabilidad,
          Funcionales
    performance, entre otros;                                                 • requerimientos-d: contienen también los requerimientos
                                                                                requerimientos-
                                                                              funcionales, no funcionales e inversos, siendo, mientras
    • Inversos: definen cómo el Sistema de Software nunca se debe             tanto, descriptos en un lenguaje orientado al
    comportar.                                                                analista/desarrollador, evitando al máximo la utilización del
                                                             37               vocabulario de la aplicación.                             38




                    Requerimientos                                       Reqs. del
                                                                                                 Requerimientos
   Otra clasificación                                                    Negocio
                                                                                                        Relación entre los componentes de
                        En cuanto al origen                             Doc. Visión y Alcance           requerimientos de software

                                                                                   Reqs. del                         Atributos de
•Del negocio: objetivos de alto nivel de la organización.
                                                                                   Usuario                             Calidad
Documentados en la visión o alcance del proyecto.
                                                                                                                                     Otros RNFs
                                                                                       Doc. Casos de Uso
•Del usuario: tareas que los usuarios deben hacer con el producto.
Documentados en los casos de uso o escenarios.
                                                                       Reqs. del                       Reqs.                                   Restricciones
•Funcionales: las funcionalidades del soft a construir.                Sistema                      funcionales
•No Funcionales: que responden a estándares, regulaciones,
contratos, interfases, performance, restricciones y atributos de                                                  Especificación de
                                                                                                              Requerimientos de Software
calidad.                                                                                                                (SRS)
                                                             39                                                                                         40
                                                                     Wiegers, Karl E. (2003). Software Requirements, Second Edition. Microsoft Press




                                                                                                                                                               7

Weitere ähnliche Inhalte

Empfohlen

AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Applitools
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at WorkGetSmarter
 

Empfohlen (20)

AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 
ChatGPT webinar slides
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slides
 
More than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike RoutesMore than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike Routes
 

Optimizacion

  • 1. Introducción a la Ingeniería de INGENIERÍA de Requerimientos REQUERIMIENTOS La Ingeniería de Requerimientos (IR) se Unidad I – Parte I relaciona con la búsqueda de la situación futura y el cambio asociado. Introducción – Ing. De Software – Ing. De Requerimientos – Ciclo de Vida del Software – Está relacionada con encontrar (capturar) Crisis del Software – Chaos Report información y considerar posibles opciones, y con la identificación de lo que debería ser diseñado en orden a satisfacer una necesidad futura percibida 1 2 Hito: “No Silver Bullets” Hito: “No Silver Bullets” (Brooks, 1987) (Brooks, 1987) • Problemas o dificultades esenciales: • Paper magistral de Brooks (Abril,1987) – Complejidad • Dos tipos de problemas: • no lineal con el tamaño, – Esenciales: inherentes a la naturaleza • dependiente de diversos factores, del software. • problemas de gestión, de comunicación, … – Accidentales: relacionadas a la – Conformidad (complejidad arbitraria, puntos de vista) producción de software, pero que no son inherentes a él. – Modificabilidad (presiones constantes al cambio) – Invisibilidad (no tangible, no visualizable) 3 Brooks, Fred P. (1987). "No Silver Bullet - Essence and Accidents in Software Engineering". IEEE Brooks, Fred P. (1987). "No Silver Bullet - Essence and Accidents in Software Engineering". IEEE 4 Computer, 20(4): 10-19. Computer, 20(4): 10-19. Hito: “No Silver Bullets” Hito: “No Silver Bullets” (Brooks, 1987) (Brooks, 1987) “La parte más difícil de construir un sistema de software es “La parte más difícil de construir un sistema de software es decidir precisamente qué construir. decidir precisamente qué construir. Ninguna otra parte del trabajo conceptual es tan dificultosa Ninguna otra parte del trabajo conceptual es tan como establecer los requerimientos técnicos detallados, dificultosa como establecer los requerimientos técnicos incluyendo todas las interfases hacia las personas, detallados, incluyendo todas las interfases hacia las máquinas y otros sistemas de software. personas, máquinas y otros sistemas de software. Ninguna otra parte del trabajo paraliza el sistema si es mal Ninguna otra parte del trabajo paraliza el sistema si es mal hecha. Ninguna otra parte es tan difícil de rectificar hecha. Ninguna otra parte es tan difícil de rectificar después” después” Brooks, Fred P. (1987). "No Silver Bullet - Essence and Accidents in Software Engineering". IEEE 5 Brooks, Fred P. (1987). "No Silver Bullet - Essence and Accidents in Software Engineering". IEEE 6 Computer, 20(4): 10-19. Luciana C. Ballejos Computer, 20(4): 10-19. Luciana C. Ballejos CIDISI, Centro de I+D en Ingeniería en Sistemas de Información CIDISI, Centro de I+D en Ingeniería en Sistemas de Información 1
  • 2. Hito: “No Silver Bullets” Costo relativo de corregir defectos (Brooks, 1987) 3 ideas fundamentales a considerar: • La parte más difícil del trabajo: al inicio. • El impacto perjudicial del error. • La dificultad de rectificar posteriormente. El costo de reparar un defecto de software varía de acuerdo al momento en que se esté dentro del ciclo de vida del software. Brooks, Fred P. (1987). "No Silver Bullet - Essence and Accidents in Software Engineering". IEEE 7 Wiegers, Karl E. (2003). Software Requirements, Second Edition. Microsoft Press 8 Computer, 20(4): 10-19. Luciana C. Ballejos CIDISI, Centro de I+D en Ingeniería en Sistemas de Información Problemas del Diseño de Soft Problemas del Diseño de Soft Áreas problemáticas: Causas de problemas: • Obtención de información informal, • funcionalidades implícitas o no establecidas, • Simplificaciones en los procesos • suposiciones no fundamentadas o no • Prácticas usadas para obtener, documentar, comunicadas, acordar y alterar los requerimientos de los • requerimientos no adecuadamente documentados productos. • cambios casuales en los procesos de requerimientos. 9 10 Problemas del Diseño de Soft Orientación de la IR Entre el 40 y el 60 % de los defectos encontrados Trabajo presente Opciones pertenecen a la etapa de requerimientos. del usuario Tecnológicas IR: relacionada Esencialmente la diferencia es “entre lo que los a encontrar la Diseño del situación futura desarrolladores piensan que tienen que construir y Sistema y el cambio lo que los usuarios o clientes piensan que van a asociado obtener”. Sistema Futuro t 11 12 2
  • 3. Los ciclos de vida y la IR Los ciclos de vida y la IR Requerimientos Diseño Codificación Requerimientos en el modelo de Ciclo de Vida Testeo en Cascada. Operación Requerimientos en el modelo en V. 13 14 Los ciclos de vida y la IR Los ciclos de vida y la IR Modelo Incremental Modelo Espiral • Comenzar produciendo una pequeña parte del sistema (pero completamente funcional). • Una vez completada, se crea una segunda parte, acoplada a la primera, de manera de que en cada iteración, se obtiene una versión aumentada del sistema hasta terminar. • No hay conocimiento completo a priori de los requerimientos (incertidumbre) Cada secuencia produce un “incremento” de software. Cada iteración o “incremento” produce una versión operativa se entrega un producto operacional. 15 16 Luciana C. Ballejos CIDISI, Centro de I+D en Ingeniería en Sistemas de Información Los ciclos de vida y la IR Requerimientos en CMMi Requerimientos en el Rational Unified Process (RUP) Categorías: - Administración de Procesos - Administración de Proyectos - Ingeniería - Soporte REQM: Administración de Requerim. PI: Integración de Producto. RD: Desarrollo de Requerimientos. VER: Verificación 17 TS: Solución Técnica. VAL: Validación 18 3
  • 4. La IR en la Ingeniería de Software Crisis del Software: Crónicas Del Proceso de Producción de Software se encarga la • Nuevo aeropuerto de Denver (’90s) • El sistema de manejo de equipaje Ingeniería de Software subterráneo: casi 34 km de cintas transportadoras y 4000 telecars ¿Cómo surge?: Debido a los problemas ocasionados por errores independientes para 20 aerolíneas. de software • Un sistema central de 100 PC en red, 5000 Función: Producción de Software más robusto, proveyendo sensores eléctricos, 400 receptores de radio procesos de producción más confiables. y 56 lectores de barra. 19 20 Crisis del Software: Crónicas Crisis del Software: Crónicas • Por nueve meses no estuvo en funcionamiento por • FAA de EEUU: Reemplazo del sistema de control de tráfico aéreo por el AAS (Advanced Automation System). errores en el sistema de control. • Cuando un sistema es muy complejo no hay un gerente • 193 millones de dólares, pospuso la apertura del enteramente responsable del mismo. aeropuerto por 8 meses. De octubre a mayo, el costo • Más de 1 millón de líneas, distribuidas en más de 100 1,1 millón por día. computadoras. De cada 6 sistemas que se ponen en operación, 2 son • Se eligió a IBM. cancelados. • Se esperaba pagar 500 U$S por línea de código El mayor presupuesto promedio estimado siempre es la • Se pagó 700 - 900 por línea mitad de lo que se paga. • Cada línea de código escrita se reescribió once veces! Alrededor de ¾ de los grandes sistemas no funcionan • La FAA: canceló dos de las 4 partes solicitadas y rediseñó (para atrás) otra. como se intentó o no son usados. • Costo total del proyecto 144 millones de U$S. 21 22 CHAOS Report (2009) Crónicas • Exitoso: El proyecto se completa en el tiempo y con el presupuesto planificado, con todas las funciones y características especificadas originalmente. • De cada 6 sistemas que se ponen en • Comprometido/Cuestionado (“Challenged”): El proyecto se operación, 2 son cancelados. completa y es operacional, pero con tiempos y presupuesto mayores a los estimados y/o con menor cantidad de • El mayor presupuesto promedio estimado características y funciones de las especificadas inicialmente. siempre es la mitad de lo que se paga. • Fallado o Cancelado: El proyecto se cancela antes de ser completado o nunca es implementado. • Alrededor del 70% de los grandes sistemas no funcionan como se intentó o no son usados. 23 24 The Standish Group. (2009). Chaos Report 2009. 4
  • 5. CHAOS Report (2009) Chaos Report • Por qué fallan los proyectos? 1. Requerimientos Incompletos 13.1% 2. Pobre Inclusión de los Usuarios 12.4% 3. Planificación y Estrategia 10.6% 4. Expectativas no Realistas 9.9% 5. Falta de Soporte Gerencial 9.3% 6. Requerimientos y Espec. Cambiantes 8.7% 7. Recursos Insuficientes 8.1% 8. Reqs. dejan de ser Necesarios 7.5% 9. Pobre Manejo de IT 6.2% 25 10. Desconocimiento de la Tecnología 4.3% 26 The Standish Group. (2009). Chaos Report 2009. Chaos Report Introducción: Abstracción vs. Formalismo Abstracto • Por qué los proyectos son exitosos? Muy alto 1. Usuarios involucrados 15.9% (IDEAL) nivel 2. Soporte Gerencial 13.9% No Alg. (CONVENCIONAL) + Algorit. 3. Requerimientos Claros 13.0% 4. Planeamiento Apropiado 9.6% Alto nivel 5. Expectativas Realistas 8.2% Bajo 6. Milestones Pequeños (hitos/objetivos) 7.7% + nivel 7. Recursos Apropiados 7.2% Meta Nivel de 8. Metodología y Estrategia 5.3% máquina 9. Visión y Objetivos Claros 2.9% Prosa Especificación Código Concreto 10. Trabajo Duro, Recursos en Foco 2.4% 27 Informal Nivel Lingüístico Formal 28 ¿En qué se relaciona la Ingeniería de Software con Introducción la Ingeniería en Requerimientos? Lo que abarca Ingeniería de Requerimientos? La Ingeniería de Software abarca todo lo concerniente al desarrollo del Software, ofreciendo métodos y técnicas para las UdI DEFINICIÓN ? distintas etapas del ciclo de vida, de manera de desarrollar y mantener software de calidad: ♣ Definición del Problema DISEÑO ♣ Estudio de Factibilidad ♣ Análisis CICLO DE IMPLEMEN- SOFTWARE ♣ Diseño del Sistema VIDA TACIÓN ♣ Diseño Detallado DEL SOFT ♣ Implementación ♣ Mantenimiento 29 30 5
  • 6. Introducción Necesidad de Requerimientos La Ingeniería en requerimientos entra como una subtarea de la ¿Porqué es necesaria una etapa de Requerimientos? Ingeniería de Software; propone métodos, técnicas y herramientas que faciliten el trabajo de Definición de lo que se quiere de un software: Determina- Compra Instalación Introducción y Uso Uso ción de o entrenamiento limitado Total ♣ Definición del Problema Necesidades Desarrollo Ingeniería de requerimientos: ♣ Estudio de Factibilidad Rol fundamental ♣ Análisis t ♣ Diseño del Sistema Evaluación y Evaluación de ♣ Diseño Detallado decisión de limitaciones ♣ Implementación etapa siguiente del producto ♣ Mantenimiento Debido a esta relación se deriva que: Muy fuerte Desde el punto de vista del cliente una etapa de requerimientos interacción es necesaria porque le ayuda a entender y expresar las nuevas Ing. en requerimientos Demandantes del Soft necesidades y a identificar cómo puede satisfacerlas. 31 32 Requerimiento - requisito Requerimiento - requisito ¿Qué es un Requerimiento? ’94 Jones: “Los requerimientos son las sentencias de necesidades de un usuario que lanzan el desarrollo de un programa o sistema” • Simplemente... cualquier cosa que un cliente necesite. ’93 Alan Davis: “una necesidad de un usuario o una facilidad • Desde el punto de vista del diseñador, cualquier cosa necesaria, función o atributo de un sistema que puede ser sensado que necesite ser diseñada. desde una posición externa al sistema” En general, el énfasis está en: Lo que irá en el producto, sus características. No cómo el producto se diseñará o construirá. 33 34 Requerimiento - requisito Requerimiento - requisito La más notable de las definiciones es la de la IEEE: ’97 Sommerville and Sawyer: “Requerimientos son... una 1. Una condición o capacidad necesaria para un especificación de lo que debería ser implementado. Son una usuario para resolver un problema o alcanzar un descripción de cómo el sistema debería comportarse o de una propiedad o atributo del sistema. Puede ser una restricción sobre objetivo. el proceso de desarrollo del sistema” 2. Una condición o capacidad que debe ser alcanzada o poseída por un sistema o componente de un sistema Lo que realmente necesitamos es asegurarnos que todos los para satisfacer un contrato, estándar, especificación, u stakeholders del proyecto llegan a un entendimiento otro documento formalmente impuesto. compartido de los términos usados para describir los requerimientos. 3. Una representación documentada de una condición o capacidad dada en 1 o 2. 35 36 6
  • 7. Requerimientos Requerimientos Clasificación de los requerimientos Clasificación de los requerimientos: En cuanto al nivel de abstracción En cuanto al contenido • requerimientos-c: contienen los requerimientos funcionales, requerimientos- • Funcionales: describen las entradas, salidas y funciones de no funcionales e inversos descriptos en un lenguaje Funcionales transformación del Sistema; comprensible al cliente/usuario, utilizando excesivamente el vocabulario de la aplicación; • No Funcionales: definen atributos como confiabilidad, Funcionales performance, entre otros; • requerimientos-d: contienen también los requerimientos requerimientos- funcionales, no funcionales e inversos, siendo, mientras • Inversos: definen cómo el Sistema de Software nunca se debe tanto, descriptos en un lenguaje orientado al comportar. analista/desarrollador, evitando al máximo la utilización del 37 vocabulario de la aplicación. 38 Requerimientos Reqs. del Requerimientos Otra clasificación Negocio Relación entre los componentes de En cuanto al origen Doc. Visión y Alcance requerimientos de software Reqs. del Atributos de •Del negocio: objetivos de alto nivel de la organización. Usuario Calidad Documentados en la visión o alcance del proyecto. Otros RNFs Doc. Casos de Uso •Del usuario: tareas que los usuarios deben hacer con el producto. Documentados en los casos de uso o escenarios. Reqs. del Reqs. Restricciones •Funcionales: las funcionalidades del soft a construir. Sistema funcionales •No Funcionales: que responden a estándares, regulaciones, contratos, interfases, performance, restricciones y atributos de Especificación de Requerimientos de Software calidad. (SRS) 39 40 Wiegers, Karl E. (2003). Software Requirements, Second Edition. Microsoft Press 7