You are on page 1of 43

Curso: Ingeniera de Software 1 Ciclo 2010-2

El proceso del software

Temas
Capas de la Ingeniera de Software SWEBOK (gua al conocimiento presente en el rea de la Ingeniera del Software) Modelos de proceso de software El desarrollo gil

Ingeniera del Software


( de la semana 01)

Tecnologa multicapas:
Herramientas Mtodos Proceso Un enfoque de calidad

Herramientas
Soporte automtico o semiautomtico para los mtodos:
Al integrarse todas las herramientas de forma que la informacin creada por una herramienta pueda ser usada por otra, se establece un sistema para el soporte del desarrollo del software, al cual se le nombra como Ingeniera de Software Asistida por Computadora (CASE, Computer Aidded Software Engineering).
4

Mtodos
Modo de decir o hacer con orden las cosas. Los mtodos de la ingeniera del software indican cmo construir tcnicamente el software.

Proceso del software


El conjunto de actividades, mtodos, prcticas y transformaciones que se usa para desarrollar y mantener el software y los productos asociados a ste (planes del proyecto, documentos de diseo, cdigo, casos de prueba y manuales de usuario. El proceso de la ingeniera del software es la unin que mantiene juntas las capas de tecnologa y que permite un desarrollo racional y oportuno de la ingeniera del software. El proceso define un marco de trabajo para un conjunto de reas clave de proceso que se deben establecer para la entrega efectiva de la tecnologa de la ingeniera del software
6

SWEBOK
Es el acrnimo del proyecto: Guide to the SoftWare Engineering Body Of Knowledge
A Project of the IEEE Computer Society Professional Practices Commitee 2004

SWEBOK
Objetivos
Promover una visin consistente de la Ingeniera del Software en todo el mundo. Clarificar la posicin de la Ingeniera del Software respecto a otras disciplinas, como las Ciencias de la Computacin, proyectos o las Matemticas
8

SWEBOK
Objetivos
Caracterizar los contenidos de la Ingeniera del Software. Proveer acceso a travs de las temticas al conjunto de conocimientos de la Ingeniera del Software. Proveer una base para su desarrollo curricular y la creacin de materiales de certificacin.

SWEBOK
reas de Conocimiento
SWEBOK reconoce 10 reas de conocimiento:

1. 2. 3. 4. 5.

Requisitos software Diseo de software Construccin de software Pruebas de Software Mantenimiento de software

reas de conocimiento 1

10

SWEBOK
reas de Conocimiento
SWEBOK reconoce 10 reas de conocimiento:

6. Gestin de la Configuracin del Software 7. La Gestin en la Ingeniera de Software 8. El Proceso en la Ingeniera de Software 9. Herramientas y mtodos en la Ingeniera de Software 10. Calidad del Software
reas de conocimiento 2

11

Marco de trabajo genrico del proceso en los proyectos de desarrollo del software
1. Comunicacin.-Comunicacin con los clientes, abarca la investigacin de requisitos. 2. Planeacin.- Establece un plan de trabajo de la ingeniera de software. Tareas tcnicas, riesgos, recursos requeridos. 3. Modelado.- Creacin de modelos que permiten al cliente y desarrollador entender los requisitos. 4. Construccin.-Generacin del cdigo y pruebas. 5. Despliegue.- El software se entrega al cliente y evala el producto entregado.
Roger Pressman .
12

Cmo saber si est bien mi proceso de software?


La clave es preguntarse:
Qu tan bueno es mi proceso de software? Qu debo hacer para mejorarlo? Por dnde empiezo?

13

Cmo se mejora un proceso de software?


1. Conocer el estado actual del proceso de desarrollo. 2. Desarrollar una visin del proceso deseado. 3. Establecer una lista en orden de prioridad de las acciones necesarias para mejorar el proceso. 4. Producir un plan para realizar las acciones necesarias. 5. Comprometer los recursos necesarios. 6. Volver al paso 1
14

La Necesidad de medir
Cuando lo que ests diciendo puedes medirlo y expresarlo en nmeros, sabes algo acerca de eso; pero cuando no puedes medirlo, no puedes expresarlo en nmeros, tu conocimiento es escaso e insatisfactorio; puede ser el comienzo del conocimiento, pero has

avanzado muy poco al estrado de la ciencia.


Lord Kelvin

15

Caractersticas del proceso


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

Caractersticas del proceso


Confiable Los errores del proceso son descubiertos antes de que se conviertan en errores del producto ?. Robusto Puede continuar el proceso a pesar de problemas inesperados ?. Mantenible Puede el proceso evolucionar para cumplir con los objetivos organizacionales ?.

17

Problemas en el modelo del proceso


Normalmente, las especificaciones incompletas o anmalas. son

No existe una distincin precisa entre la especificacin, el diseo y la manufactura. Solo hasta que el sistema se ha producido se puede probar. El software no siempre se puede reemplazar durante el mantenimiento.
18

Fases genricas del proceso del software

19

Modelos de proceso de software


El Modelo Lineal - Secuencial o de Cascada El Modelo de Prototipo El Modelo RAD (DRA) El Modelo Incremental El Modelo en Espiral El Modelo de Ensamblaje de Componentes El Modelo de Mtodos Formales El Modelo de Tcnicas de 4ta Generacin
20

Modelo lineal-secuencial o de cascada

21

El Modelo de Prototipo

22

El Modelo DRA

23

Modelo incremental

24

Modelo de espiral

25

Desarrollo evolutivo

26

Modelo de ensamblaje de componentes

27

Ventajas del Modelo de Espiral


Centra su atencin en la reutilizacin de componentes y eliminacin de errores en informacin descubierta en fases iniciales. Los objetivos de calidad son el primer objetivo. Integra desarrollo con mantenimiento. Provee un marco de desarrollo de software.
28

Problemas con el Modelo de Espiral


El desarrollo (especialmente cuando se hace bajo contrato) requiere especificaciones y documentos por adelantado que aseguren el control del proyecto. Esto puede ser difcil usando este modelo. Requiere de experiencia en la identificacin de riesgos. Requiere refinamiento para uso generalizado.
29

Modelo de mtodos formales

30

Modelos de tcnicas de 4ta. Generacin


Uso de herramientas CASE Especificacin grficamente) Generacin automtica del cdigo fuente Ventajas en aplicaciones medianas y pequeas: Reduccin de tiempo de desarrollo => Reduccin de costos
31

de

caractersticas

(hoy:

Modelos de Procesos Hbridos


Los sistemas grandes estn hechos usualmente de varios subsistemas. No es necesario utilizar el mismo modelo de proceso para todos los subsistemas. El prototipeo es recomendado cuando existen especificaciones de alto riesgo. El modelo de cascada es utilizado en desarrollo de software cuando los requerimientos son claros.
32

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

Problemas y Riesgos con los Modelos


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

Administracin de Riesgos
La tarea principal del administrador consiste en minimizar riesgos. El riesgo inherente en una actividad se mide segn la incertidumbre que presenta el resultado de esa actividad. Las actividades con alto riesgo causan sobre-costos en cuanto a planeacin y costosEl riesgo es proporcional al monto de la calidad de la informacin disponible. Cuanto menos informacin, mayor el riesgo.
35

Visibilidad del modelo

36

El Desarrollo gil
Representa un balance entre la rigurosidad de la Ingeniera de Software y la necesidad de cambio y rapidez del mundo de negocios actual. Los Procesos de Desarrollo gil pueden entregar sistemas exitosos ms rpido. Hace nfasis en la comunicacin continua y la colaboracin entre desarrolladores y clientes. Tiene una filosofa que se orienta a la satisfaccin del cliente, la entrega de software por incrementos, los pequeos equipos, mtodos informales, y productos de trabajo mnimos. Tiene guas que se enfocan en la entrega a tiempo de un software que est operativo de manera incremental ms que en el anlisis y diseo del mismo (pero sin dejar de hacerlo!)
37

El Manifiesto para el desarrollo gil de software


Al hacerlo nosotros mismos y al ayudar a otros, hemos descubierto mejores maneras de desarrollar software. Por medio de este trabajo, hemos llegado a valorar: Los individuos y sus interacciones ms que los procesos y las herramientas. El software en operacin ms que la documentacin completa. La colaboracin con el cliente ms que la negociacin del contrato. La respuesta al cambio ms que el seguimiento de un plan. Si bien los trminos a la derecha son an muy importantes, nosotros valoramos ms los aspectos de la izquierda.

38

Agilidad
Respuesta a los cambios durante el desarrollo del proyecto Los planes deben ser flexibles Comunicacin entre desarrolladores y clientes ms fcil Elimina la separacin entre desarrolladores y clientes nfasis en la entrega rpida ms que en los productos de software intermedios

39

Procesos giles
Tres suposiciones bsicas:

Es difcil predecir qu requerimientos o prioridades cambiarn Para muchos tipos de software, las actividades de diseo y construccin (programacin) estn entrelazadas (la construccin se utiliza para probar el diseo) El anlisis, diseo y pruebas no son tan predecibles (desde la perspectiva de planificacin) cmo uno quisiera.

40

Factores Humanos en Desarrollo gil


Caractersticas necesarias de los miembros de un equipo: Competencia Enfoque comn Colaboracin Habilidad para tomar decisiones Habilidad para resolver problemas ambiguos Confianza y respeto mutuos Auto-organizacin (disciplina)

41

Modelos de Procesos giles


Extreme Programming (XP) Adaptive Software Development (ASD) Dynamic Systems Development Method (DSDM) SCRUM (pequeos equipos, compartir conocimiento

informalmente) Crystal Feature Driven Development (FDD) Agile Modeling (AM)

42

43

You might also like