Your SlideShare is downloading. ×
Análisis de Requisitos <ul><li>Curso 2006-07 Juan Carlos González Moreno </li></ul>
Programa Introducción Casos prácticos Programación eXtrema El proceso unificado de desarrollo Especificación con UML Exten...
Introducción <ul><li>La disciplina. </li></ul><ul><li>Modelos de Ciclo de Vida. </li></ul><ul><li>Proceso de desarrollo. <...
La disciplina <ul><li>1950-196?:  </li></ul><ul><ul><li>Procesos por lotes  </li></ul></ul><ul><ul><li>Distribución limita...
La disciplina <ul><li>1980-199?: </li></ul><ul><ul><li>Sistemas expertos  </li></ul></ul><ul><ul><li>Máquinas &quot;inteli...
Software <ul><li>El software se define en base a 3 vistas: </li></ul><ul><ul><li>El conjunto de  instrucciones  que cuando...
Productos software <ul><li>Productos genéricos.-  En este grupo se engloban los sistemas autónomos que se producen por par...
Carácterísticas del  software <ul><li>El software es un elemento  lógico . </li></ul><ul><li>El software  es desarrollado ...
Tipos de Software <ul><li>Software de Sistemas.-  Es una colección de programas que sirven a otros programas. </li></ul><u...
Tipos de Software <ul><li>Software empotrado.-   Es el software de productos “inteligentes”. </li></ul><ul><li>Software de...
Crisis de Software <ul><li>Cuando nos referimos a la crisis de software, nos estamos refiriendo a un  conjunto de problema...
Problemas en el Desarrollo de Sw <ul><li>La sofisticación del hardware ha dejado atrás la capacidad de crear software, a l...
Problemas en el Desarrollo de Sw <ul><li>Falta de datos históricos  para comprobar estimaciones y resultados. </li></ul><u...
Causas de la Crisis <ul><li>El mantenimiento del software supone la  modificación del diseño de la aplicación  frente a la...
Causas de la Crisis <ul><li>Es frecuente que los gestores y administradores de las empresas de software, sean  gestores re...
Ingeniería de Software <ul><li>La  Ingeniería de Software  es la disciplina tecnológica que trata de la producción y mante...
Proyectos Software <ul><li>Proyectos triviales.-  500 sentencias. </li></ul><ul><li>Proyectos pequeños.-  25-50 subprogram...
Factores de calidad <ul><li>La capacidad individual.  </li></ul><ul><li>La comunicación entre los miembros del equipo. </l...
Modelos de ciclo de vida  <ul><li>¿Qué es un modelo de ciclo de vida?  Un modelo de ciclo de vida software es cualquier ca...
Modelos de ciclo de vida <ul><li>¿Cómo pueden utilizarse los modelos? </li></ul><ul><ul><li>En la gestión de los temas rel...
Modelos de ciclo de vida <ul><li>Actividades en el desarrollo de software: </li></ul><ul><ul><li>Adopción o iniciación del...
Proceso de desarrollo <ul><li>Un modelo de proceso de desarrollo de software representa a menudo  una malla de las secuenc...
Proceso de desarrollo <ul><li>Clasificación: </li></ul><ul><li>Los  modelos evolucionistas  centran su atención  en la dir...
Modelos tradicionales <ul><li>Modelo en cascada </li></ul><ul><li>Refinamiento progresivo y mejoras iterativas </li></ul><...
Modelos alternativos <ul><li>Orientados al producto </li></ul><ul><ul><li>Prototipado </li></ul></ul><ul><ul><li>Reutiliza...
Metodologías <ul><li>Las metodologías de análisis y diseño de software son  procedimientos, técnicas y procesos  utilizado...
Metodologías <ul><li>Dependiendo del elemento lógico de modelización que se elija como base en el desarrollo podemos clasi...
Cliente y usuario <ul><li>El cliente y/o usuario es un  factor determinante  en el proceso de desarrollo:  </li></ul><ul><...
Metodologías sociales <ul><li>La base es ignorar las cuestiones relativas a la tecnología y centrarse en las necesidades d...
Upcoming SlideShare
Loading in...5
×

Tema Introducción IS

669

Published on

Introducción a la Ingeniería de Software y a los ciclos de vida y procesos de desarrollo de Software

Published in: Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
669
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Transcript of "Tema Introducción IS"

  1. 1. Análisis de Requisitos <ul><li>Curso 2006-07 Juan Carlos González Moreno </li></ul>
  2. 2. Programa Introducción Casos prácticos Programación eXtrema El proceso unificado de desarrollo Especificación con UML Extensiones de UML
  3. 3. Introducción <ul><li>La disciplina. </li></ul><ul><li>Modelos de Ciclo de Vida. </li></ul><ul><li>Proceso de desarrollo. </li></ul><ul><li>Metodologías de desarrollo. </li></ul><ul><li>Cliente y usuario. </li></ul>
  4. 4. La disciplina <ul><li>1950-196?: </li></ul><ul><ul><li>Procesos por lotes </li></ul></ul><ul><ul><li>Distribución limitada </li></ul></ul><ul><ul><li>Software a medida </li></ul></ul><ul><li>1960-197?: </li></ul><ul><ul><li>Sistemas multiusuario y en tiempo real </li></ul></ul><ul><ul><li>Creación de bases de datos </li></ul></ul><ul><ul><li>Producción de software a gran escala </li></ul></ul><ul><li>1970-198?: </li></ul><ul><ul><li>Sistemas distribuidos </li></ul></ul><ul><ul><li>Máquinas con inteligencia empotrada </li></ul></ul><ul><ul><li>Hardware de bajo coste </li></ul></ul><ul><ul><li>Impacto en el consumidor </li></ul></ul>
  5. 5. La disciplina <ul><li>1980-199?: </li></ul><ul><ul><li>Sistemas expertos </li></ul></ul><ul><ul><li>Máquinas &quot;inteligentes&quot; </li></ul></ul><ul><ul><li>Arquitecturas paralelas </li></ul></ul><ul><ul><li>Sistemas multimedia </li></ul></ul><ul><li>1990-20??: </li></ul><ul><ul><li>Aplicaciones Cliente-Servidor </li></ul></ul><ul><ul><li>Productos &quot;inteligentes&quot; </li></ul></ul><ul><ul><li>Nuevos procesadores (cobre, orgánicos, ...) </li></ul></ul><ul><ul><li>Sistemas remotos </li></ul></ul>
  6. 6. Software <ul><li>El software se define en base a 3 vistas: </li></ul><ul><ul><li>El conjunto de instrucciones que cuando se ejecutan proporcionan la función y el comportamiento deseado. </li></ul></ul><ul><ul><li>El conjunto de estructuras de datos que facilitan a los programas representar y manipular adecuadamente la información. </li></ul></ul><ul><ul><li>El conjunto de documentos que describen el manejo y funcionamiento de los programas. </li></ul></ul>
  7. 7. Productos software <ul><li>Productos genéricos.- En este grupo se engloban los sistemas autónomos que se producen por parte de una organización de desarrollo y se venden en un mercado abierto a cualquier usuario que pueda comprarlo. </li></ul><ul><li>Productos a medida (a demanda).- En este caso se trata de sistemas que son encargados por clientes particulares, donde el software es desarrollado especial y específicamente para dicho cliente. </li></ul>
  8. 8. Carácterísticas del software <ul><li>El software es un elemento lógico . </li></ul><ul><li>El software es desarrollado y no fabricado . </li></ul><ul><li>El software no se deteriora , en el sentido de que no acumula polvo, o golpes. Acumula cambios en su código que en la mayor parte de los casos incorporan errores. </li></ul><ul><li>Para el software no existen piezas de repuesto para las partes que funcionan mal. </li></ul><ul><li>La mayoría del software se realiza a la medida , frente a la construcción de hardware que se realiza combinando componentes ya existentes. </li></ul>
  9. 9. Tipos de Software <ul><li>Software de Sistemas.- Es una colección de programas que sirven a otros programas. </li></ul><ul><li>Sistemas de tiempo real.- Es el software de sucesos del mundo real (sistemas interactivos). </li></ul><ul><li>Sistemas de gestión.- Es el software dedicado a la informática comercial. </li></ul><ul><li>Software de ingeniería y científico .- Es el software del cálculo numérico. </li></ul>
  10. 10. Tipos de Software <ul><li>Software empotrado.- Es el software de productos “inteligentes”. </li></ul><ul><li>Software de Ordenadores Personales.- Son programas orientados al público en general. </li></ul><ul><li>Software de Inteligencia Artificial.- Lo constituyen gran cantidad de algoritmos no numéricos para resolver problemas que no se adaptan a soluciones de cálculo o análisis directo (reconocimiento de patrones, ...) </li></ul><ul><li>Software multimedia.- Es el conjunto de aplicaciones que integran de manera interactiva programas, sonido e imágenes. </li></ul>
  11. 11. Crisis de Software <ul><li>Cuando nos referimos a la crisis de software, nos estamos refiriendo a un conjunto de problemas que surgen en torno al desarrollo de software: </li></ul><ul><ul><li>Funcionamiento inadecuado </li></ul></ul><ul><ul><li>Problemas de desarrollo de software. </li></ul></ul><ul><ul><li>Problemas de mantenimiento </li></ul></ul><ul><ul><li>Satisfacción de la demanda creciente </li></ul></ul>
  12. 12. Problemas en el Desarrollo de Sw <ul><li>La sofisticación del hardware ha dejado atrás la capacidad de crear software, a la medida de la máquina, explorando todo el potencial de ésta. Esto se debe en gran medida a la cada vez más limitada vida de un ordenador . </li></ul><ul><li>Es imposible dejar de crear aplicaciones para ciertos equipos, debido a su demanda. </li></ul><ul><li>La existencia de aplicaciones concebidas en base a un mal diseño o a la utilización de recursos inadecuados, suponen un difícil y costoso mantenimiento del producto. </li></ul>
  13. 13. Problemas en el Desarrollo de Sw <ul><li>Falta de datos históricos para comprobar estimaciones y resultados. </li></ul><ul><li>La insatisfacción del cliente, la mala comunicación del cliente con la empresa y entre los empleados. </li></ul><ul><li>La imprecisión con que se tratan algunos puntos esenciales del producto final. </li></ul><ul><li>La falta de mecanismos para medir la calidad del software producido. </li></ul><ul><li>La ausencia de mantenimiento. </li></ul>
  14. 14. Causas de la Crisis <ul><li>El mantenimiento del software supone la modificación del diseño de la aplicación frente a la sustitución de una pieza en el caso del hardware. </li></ul><ul><li>Existen problemas de comunicación &quot; hombre-máquina &quot;, que se presentan en dos frentes diferentes: &quot; realizador-máquina &quot; y &quot; usuario-máquina &quot;. </li></ul>
  15. 15. Causas de la Crisis <ul><li>Es frecuente que los gestores y administradores de las empresas de software, sean gestores reconvertidos de otras áreas , que no comprenden bien los problemas y las necesidades que se van a presentar durante el desarrollo de una aplicación software. </li></ul><ul><li>La numerosa presencia en puestos claves de lo que los americanos denominan &quot; programadores &quot; frente a la utilización de los denominados &quot; ingenieros &quot;. </li></ul>
  16. 16. Ingeniería de Software <ul><li>La Ingeniería de Software es la disciplina tecnológica que trata de la producción y mantenimiento sistemático de productos software que se desarrollan y mantienen a lo largo del tiempo y con un coste estimado. </li></ul>
  17. 17. Proyectos Software <ul><li>Proyectos triviales.- 500 sentencias. </li></ul><ul><li>Proyectos pequeños.- 25-50 subprogramas. </li></ul><ul><li>Proyectos medianos.- 2 y 5 personas durante 2 años, y desarrollando entre 10000 y 50000 líneas de código divididas entorno a 250-1000 subprogramas. </li></ul><ul><li>Proyectos grandes.- 20 programadores entre 2 y 3 años. Elaborando entre 50000 y 100000 líneas. </li></ul><ul><li>Proyectos muy grandes.- El sistema OS/360 de IBM . </li></ul><ul><li>Proyectos extremadamente grandes.- El programa espacial denominado &quot; Guerra de las Galaxias &quot;. </li></ul>
  18. 18. Factores de calidad <ul><li>La capacidad individual. </li></ul><ul><li>La comunicación entre los miembros del equipo. </li></ul><ul><li>La complejidad del producto. </li></ul><ul><li>Utilización de una notación adecuada . </li></ul><ul><li>Empleo de métodos sistemáticos . </li></ul><ul><li>Conocer el tiempo disponible. </li></ul><ul><li>Existencia de facilidades y recursos externos. </li></ul>
  19. 19. Modelos de ciclo de vida <ul><li>¿Qué es un modelo de ciclo de vida? Un modelo de ciclo de vida software es cualquier caracterización descriptiva o prescriptiva de evolución software. </li></ul>
  20. 20. Modelos de ciclo de vida <ul><li>¿Cómo pueden utilizarse los modelos? </li></ul><ul><ul><li>En la gestión de los temas relativos al proyecto software. </li></ul></ul><ul><ul><li>Como prescripciones que indican la documentación que debe ser entregada a los clientes. </li></ul></ul><ul><ul><li>Como una base para determinar que herramientas de ingeniería de software y que metodologías son más adecuadas. </li></ul></ul><ul><ul><li>Como marco de trabajo para la localización y el consumo de recursos durante el proceso de desarrollo. </li></ul></ul><ul><ul><li>Para comparar los resultados obtenidos. </li></ul></ul><ul><ul><li>Como guía en la productividad, coste y calidad del software construido. </li></ul></ul>
  21. 21. Modelos de ciclo de vida <ul><li>Actividades en el desarrollo de software: </li></ul><ul><ul><li>Adopción o iniciación del Sistema. </li></ul></ul><ul><ul><li>Análisis de requisitos y especificación. </li></ul></ul><ul><ul><li>Especificación funcional o prototipado. </li></ul></ul><ul><ul><li>Partición y selección (Comprar/Construir/Reusar). </li></ul></ul><ul><ul><li>Especificación de la configuración arquitectónica. </li></ul></ul><ul><ul><li>Especificación de diseño detallado. </li></ul></ul><ul><ul><li>Otras: Implementación y depuración. Integración y prueba de software. Revisión de documentaciones y entregables del sistema. Aprendizaje y uso. Mantenimiento de software. </li></ul></ul>
  22. 22. Proceso de desarrollo <ul><li>Un modelo de proceso de desarrollo de software representa a menudo una malla de las secuencias de actividades, objetos, transformaciones y sucesos que constituyen las estrategias que permiten la evolución del software . </li></ul><ul><li>Tales modelos pueden ser utilizados para un desarrollo más preciso y formal de las descripciones de las actividades del ciclo de vida. </li></ul>
  23. 23. Proceso de desarrollo <ul><li>Clasificación: </li></ul><ul><li>Los modelos evolucionistas centran su atención en la dirección del cambio en términos del progreso que se produce sobre una serie de estados que conducen (eventualmente) a un estado final. </li></ul><ul><li>Los modelos evolutivos por otra parte centran su atención en los mecanismos y procesos que cambian el sistema. </li></ul>
  24. 24. Modelos tradicionales <ul><li>Modelo en cascada </li></ul><ul><li>Refinamiento progresivo y mejoras iterativas </li></ul><ul><li>Versiones incrementales </li></ul>
  25. 25. Modelos alternativos <ul><li>Orientados al producto </li></ul><ul><ul><li>Prototipado </li></ul></ul><ul><ul><li>Reutilización de componentes </li></ul></ul><ul><ul><li>Evolución del programa </li></ul></ul><ul><li>Orientados al proceso de producción </li></ul><ul><ul><li>Programas de exploración </li></ul></ul><ul><ul><li>Transformaciones formales </li></ul></ul><ul><ul><li>Modelo en espiral (no operativo) </li></ul></ul><ul><li>Orientados al escenario de producción </li></ul>
  26. 26. Metodologías <ul><li>Las metodologías de análisis y diseño de software son procedimientos, técnicas y procesos utilizados para dirigir las actividades de cada etapa del ciclo de vida según un proceso de desarrollo particular. </li></ul>
  27. 27. Metodologías <ul><li>Dependiendo del elemento lógico de modelización que se elija como base en el desarrollo podemos clasificar las metodologías como sigue: </li></ul><ul><ul><li>Orientadas al proceso. </li></ul></ul><ul><ul><li>Orientadas a los datos. </li></ul></ul><ul><ul><li>Orientadas a objetos. </li></ul></ul><ul><ul><li>Semánticas. </li></ul></ul><ul><ul><li>No metodológicas. </li></ul></ul>
  28. 28. Cliente y usuario <ul><li>El cliente y/o usuario es un factor determinante en el proceso de desarrollo: </li></ul><ul><ul><li>Proporciona información sobre las actividades y los datos del negocio que han de ser automatizados. </li></ul></ul><ul><ul><li>Las aportaciones del usuario en el proceso de desarrollo, no sólo han de ser deseables, sino que incluso han de considerarse obligatorias. </li></ul></ul><ul><ul><li>Su participación como colaborador (no como adversario) ha de ser significativa. </li></ul></ul>
  29. 29. Metodologías sociales <ul><li>La base es ignorar las cuestiones relativas a la tecnología y centrarse en las necesidades del usuario. Las tres técnicas principales son: </li></ul><ul><ul><li>Diseño de aplicaciones conjuntas : Reunión fuera de contexto de todos los usuarios y personal (5/10 días) para desarrollar una descripción funcional detallada de los requisitos de la aplicación. </li></ul></ul><ul><ul><li>Sistemas técnico sociales. </li></ul></ul><ul><ul><li>Éticas. </li></ul></ul>

×