Fundamentos de la Ingeniería      de Software
¿Qué es la Ingeniería de Software? <ul><li>Una actividad de modelado.  Los ingenieros de software manejan la complejidad m...
<ul><li>Una actividad dirigida por la fundamentación    </li></ul><ul><li>La información de la fundamentación permite que ...
Fallas de la Ingeniería de Software <ul><li>En algunos casos los desarrolladores no anticipan situaciones que ocurren rara...
<ul><li>Los proyectos de desarrollo de software están sujetos a cambios constantes.  Los requerimientos son complejos y ne...
Ingeniería de Software:    Conceptos <ul><li>Participantes </li></ul><ul><li>Son quienes están involucrados en el desarrol...
<ul><li>Sistemas y modelos </li></ul><ul><li>Sistema  se refiere a la realidad subyacente ,  modelo  es cualquier abstracc...
<ul><li>Actividades, tareas y recursos </li></ul><ul><li>Una  actividad  son las tareas que se realizan con un fin específ...
<ul><li>Objetivos, requerimientos y restricciones </li></ul><ul><li>Los  objetivos  definen los atributos del sistema que ...
<ul><li>Notaciones, métodos y metodologías </li></ul><ul><li>Una  notación  es un conjunto de reglas gráficas o textuales ...
Actividades de desarrollo de Ingeniería de Software   <ul><li>Obtención de requerimientos </li></ul><ul><li>- El cliente y...
<ul><li>Análisis </li></ul><ul><li>- Se produce un modelo del sistema que sea correcto, completo, consistente, claro, real...
<ul><li>Diseño del Sistema </li></ul><ul><li>- Se definen los objetivos de diseño del proyecto y se descompone el sistema ...
<ul><li>Diseño de Objetos </li></ul><ul><li>Se definen los objetos personalizados para cubrir el hueco entre el modelo de ...
<ul><li>Implementación </li></ul><ul><li>Se traduce el modelo de objetos en código fuente. Esto incluye la implementación ...
Personal y sus Roles
<ul><li>Propietarios del Sistema </li></ul><ul><li>- Son los responsables de fijar el presupuesto </li></ul><ul><li>- Defi...
<ul><li>Líder del Proyecto </li></ul><ul><li>- Responsable de crear un plan para el Desarrollo de    </li></ul><ul><li>Pro...
<ul><li>Analistas de requerimientos </li></ul><ul><li>- Interactúan con el cliente para conocer sus necesidades </li></ul>...
<ul><li>Diseñadores </li></ul><ul><li>- Describen la estrategia de cómo debe funcionar el  </li></ul><ul><li>sistema. </li...
<ul><li>Programadores </li></ul><ul><li>- Escriben las líneas de código o piezas de programación  </li></ul><ul><li>que im...
<ul><li>Probadores </li></ul><ul><li>- Desarrollan el plan de pruebas para la evaluación de  </li></ul><ul><li>software: <...
<ul><li>Entrenadores </li></ul><ul><li>- Enseñan a los usuarios como se utiliza el    </li></ul><ul><li>sistema. </li></ul...
<ul><li>Las asignaciones del personal a las tareas depende de la dimensión del proyecto. </li></ul><ul><li>Una vez se ha d...
Upcoming SlideShare
Loading in …5
×

Clase

633 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
633
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
6
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Clase

  1. 1. Fundamentos de la Ingeniería de Software
  2. 2. ¿Qué es la Ingeniería de Software? <ul><li>Una actividad de modelado. Los ingenieros de software manejan la complejidad mediate el modelado enfocándose en los detalles importantes. </li></ul><ul><li>Una actividad para la solución de problemas Se usan modelos para buscar una solución aceptable. Con frecuencia los ingenieros de software tienen que apoyarse en métodos empíricos para evaluar los beneficios de alternativas diferentes. </li></ul>
  3. 3. <ul><li>Una actividad dirigida por la fundamentación </li></ul><ul><li>La información de la fundamentación permite que los ingenieros de software comprendan las implicaciones de un cambio cuando revisan una decisión. </li></ul>Para cada una de estas actividades los ingenieros de software tienen que trabajar bajo restricciones de personal tiempo y presupuesto. Los cambios pueden suceder en cualquier momento.
  4. 4. Fallas de la Ingeniería de Software <ul><li>En algunos casos los desarrolladores no anticipan situaciones que ocurren rara vez o no anticipan que el usuario haga mal uso del sistema. </li></ul><ul><li>En otros casos las fallas del sistema resultan por fallas de administración(entrega tardía y con presupuesto excedido, entrega a tiempo de un sistema incorrecto, complejidad innecesaria) </li></ul>
  5. 5. <ul><li>Los proyectos de desarrollo de software están sujetos a cambios constantes. Los requerimientos son complejos y necesitan ser actualizados cuando se descubren errores. </li></ul>
  6. 6. Ingeniería de Software: Conceptos <ul><li>Participantes </li></ul><ul><li>Son quienes están involucrados en el desarrollo de un sistema de software. Desde el cliente, quien ordena y paga el sistema, los desarrolladores quienes lo construyen y el gerente del proyecto hasta los usuarios finales. </li></ul><ul><li>Papel </li></ul><ul><li>Conjunto de tareas que se asignan a un participante. Un mismo participante puede cumplir varios papeles. </li></ul>
  7. 7. <ul><li>Sistemas y modelos </li></ul><ul><li>Sistema se refiere a la realidad subyacente , modelo es cualquier abstracción de la realidad. </li></ul><ul><li>Productos de Trabajo </li></ul><ul><li>Es un artefacto que se produce durante el desarrollo, como un documento o fragmento de software para los demás desarrolladores o para el cliente. </li></ul>Ejemplo: Un proyecto de desarrollo es un sistema que puede ser modelado. La candelarización del proyecto , su presupuesto y su tiempo de entrega son modelos del proyecto de desarrollo.
  8. 8. <ul><li>Actividades, tareas y recursos </li></ul><ul><li>Una actividad son las tareas que se realizan con un fin específico, por ejemplo, la obtención de requerimientos. </li></ul><ul><li>Una tarea representa una unidad atómica de trabajo que puede ser administrada. Las tareas dan como resultado productos de trabajo. </li></ul><ul><li>Los recursos son bienes utilizados para realizar el trabajo. Los recursos incluyen tiempo, equipo y mano de obra. </li></ul>
  9. 9. <ul><li>Objetivos, requerimientos y restricciones </li></ul><ul><li>Los objetivos definen los atributos del sistema que son importantes. </li></ul><ul><li>Un requerimiento funcional es un área de funcionabilidad que debe soportar el sistema, un requerimiento no funcional es una restricción sobre la operación del sistema. </li></ul>
  10. 10. <ul><li>Notaciones, métodos y metodologías </li></ul><ul><li>Una notación es un conjunto de reglas gráficas o textuales para representar un modelo. </li></ul><ul><li>Un método es un técnica repetible para la resolución de un problema específico. </li></ul><ul><li>Una metodología es una colección de métodos para la resolución de una clase de problemas. Las metodologías de desarrollo de software decomponen el proceso en actividades: análisis, diseño del sistema y diseño del objeto. </li></ul>
  11. 11. Actividades de desarrollo de Ingeniería de Software <ul><li>Obtención de requerimientos </li></ul><ul><li>- El cliente y los desarrolladores definen el propósito del </li></ul><ul><li>sistema. El resultado es describir el sistema en términos de </li></ul><ul><li>actores y casos de uso. </li></ul><ul><li>- Los actores representan las entidades externas que </li></ul><ul><li>interactúan con el sistema. </li></ul><ul><li>Los casos de uso son secuencias de eventos generales que </li></ul><ul><li>describen todas las acciones posibles entre el actor y el </li></ul><ul><li>sistema </li></ul>
  12. 12. <ul><li>Análisis </li></ul><ul><li>- Se produce un modelo del sistema que sea correcto, completo, consistente, claro, realista y verificable. </li></ul><ul><li>- Los desarrolladores transforman los casos de uso en un modelo de objeto que describa por completo el sistema </li></ul><ul><li>- De este modo se descubren las inconsistencias en el modelo de casos de uso. El resultado del análisis es un modelo de objeto comentado con atributos, operaciones y asociaciones. </li></ul>
  13. 13. <ul><li>Diseño del Sistema </li></ul><ul><li>- Se definen los objetivos de diseño del proyecto y se descompone el sistema en subsistemas más pequeños que puedan realizar los equipos individuales. </li></ul><ul><li>- Se seleccionan estrategias para la construcción del sistema como la plataforma de hardware y software. </li></ul>El resultado del diseño es una descripción clara de cada una de las estrategias, una descomposición en subsistemas y un diagrama de organización que representa el mapeo del hardware y software del sistema.
  14. 14. <ul><li>Diseño de Objetos </li></ul><ul><li>Se definen los objetos personalizados para cubrir el hueco entre el modelo de análisis y la plataforma de hardware y software definida durante el diseño del sistema. </li></ul>El resultado de la actividad de diseño de objetos es un modelo de objetos detallado, comentado con restricciones y descripciones precisas para cada elemento.
  15. 15. <ul><li>Implementación </li></ul><ul><li>Se traduce el modelo de objetos en código fuente. Esto incluye la implementación de los atributos y métodos de cada objeto y la integración de todos los objetos de forma tal que funcionen como un solo sistema </li></ul>
  16. 16. Personal y sus Roles
  17. 17. <ul><li>Propietarios del Sistema </li></ul><ul><li>- Son los responsables de fijar el presupuesto </li></ul><ul><li>- Definir los plazos necesarios para el desarrollo </li></ul><ul><li>- Decidir el tiempo de mantenimiento y último término de validez del sistema. </li></ul>
  18. 18. <ul><li>Líder del Proyecto </li></ul><ul><li>- Responsable de crear un plan para el Desarrollo de </li></ul><ul><li>Proyecto de Software. </li></ul><ul><li>- Crear un cronograma de actividades para el proyecto </li></ul><ul><li>- Calcular el costo de desarrollo del producto de software </li></ul><ul><li>- Supervisar el avance del proyecto dentro de los tiempos </li></ul><ul><li>y costos estimados. </li></ul><ul><li>- Realizar ajustes a la programación. </li></ul>
  19. 19. <ul><li>Analistas de requerimientos </li></ul><ul><li>- Interactúan con el cliente para conocer sus necesidades </li></ul><ul><li>- Con ayuda del cliente desglosan las necesidades en </li></ul><ul><li>requerimientos separados. </li></ul><ul><li>- Determinan la existencia de relaciones entre los </li></ul><ul><li>requerimientos del sistema. </li></ul><ul><li>- Administrar los cambios de requerimientos. </li></ul><ul><li>- Analizar y controlar el impacto provocado por los </li></ul><ul><li>cambios de requerimientos </li></ul>
  20. 20. <ul><li>Diseñadores </li></ul><ul><li>- Describen la estrategia de cómo debe funcionar el </li></ul><ul><li>sistema. </li></ul><ul><li>- Establecer la arquitectura de software que se desarrollará </li></ul><ul><li>- Modelar visualmente el sistema para aumentar la </li></ul><ul><li>comprensión del software que se desarrollará. </li></ul><ul><li>- Definir lineamientos de calidad para el software. </li></ul><ul><li>- Establecer lineamientos a seguir para la elaboración de </li></ul><ul><li>la documentación. </li></ul>
  21. 21. <ul><li>Programadores </li></ul><ul><li>- Escriben las líneas de código o piezas de programación </li></ul><ul><li>que implementan lo que los requerimientos especifican. </li></ul><ul><li>- Modificar piezas de software existentes </li></ul><ul><li>- Documentar las piezas de programación a fin de facilitar </li></ul><ul><li>su mantenimiento y reutilización </li></ul><ul><li>- Realizar pruebas sobre las piezas de programación </li></ul><ul><li>generadas </li></ul>
  22. 22. <ul><li>Probadores </li></ul><ul><li>- Desarrollan el plan de pruebas para la evaluación de </li></ul><ul><li>software: </li></ul><ul><li>- Objetivos </li></ul><ul><li>- Riesgos </li></ul><ul><li>- Requerimientos del ambiente </li></ul><ul><li>- Planean las pruebas </li></ul><ul><li>- Establecer condiciones de la prueba </li></ul><ul><li>- Definir los resultados esperados </li></ul><ul><li>- Preparar las pruebas </li></ul><ul><li>- Desarrollar guiones de las pruebas </li></ul><ul><li>- Crear archivos de pruebas </li></ul>
  23. 23. <ul><li>Entrenadores </li></ul><ul><li>- Enseñan a los usuarios como se utiliza el </li></ul><ul><li>sistema. </li></ul><ul><li>Equipo de mantenimiento </li></ul><ul><li>- Corrigen defectos sobre el software </li></ul><ul><li>- Desarrollan nuevas funcionalidades </li></ul><ul><li>- Ajustan el software según los cambios del negocio. </li></ul><ul><li>- Se aseguran de que el software brinde el nivel de </li></ul><ul><li>servicios esperado por los usuarios. </li></ul>
  24. 24. <ul><li>Las asignaciones del personal a las tareas depende de la dimensión del proyecto. </li></ul><ul><li>Una vez se ha decidido acerca de los roles de los miembros del proyecto se debe decidir que tipo de gente se necesita en cada rol. </li></ul>

×