lunes, 26 de noviembre de 2012

Unidad 2:Modelos de Ingenieria del software

2.1Modelo de capacidad de madurez
Éste corresponde a uno de los modelos más conocidos creado por el SEI (Software Engineering Institute) de la Carnegie Mellon University. El CMM pretende conseguir mejorar la calidad del software mejorando la calidad de los procesos utilizados en su desarrollo. "Las herramientas y las plataformas cambian de forma continua. Pero siempre podemos usar el mismo proceso si éste está bien definido y se sabe utilizar de forma adecuada."
Niveles de madurez:
El primer nivel (Caos) se produce cuando en la empresa no existe ningún modelo y que todo se hace sobre la marcha es decir no se emplea ningún proceso definido. 

En el segundo nivel (Repetible) se encuentran las empresas en las que existe planificación y seguimiento de proyectos y está implementada la gestión de los mismos.
El tercer nivel (Definido) documenta y normaliza los procesos a nivel organizativo. Las claves de este nivel son la gestión de los requisitos, planificación de proyectos y su seguimiento a través de toda la organización

El cuarto nivel (Medible) pone énfasis en la calidad del proceso y del producto. Lo tienen las empresas capaces de medir el estado de un proyecto y utilizar esta información para que los jefes introduzcan los cambios y correcciones necesarias. Una vez adquirido este nivel en la gestión de los proyectos se pueden establecer objetivos. 

El quinto nivel (Mejora continua) se conoce como proceso continuo de mejora. Las áreas clave del proceso incluyen prevención de defectos, administración de cambios tecnológicos y gestión de cambios en los procesos

Metodos de evaluacion:

Para conseguir la certificación CMM, es necesario contactar con algún evaluador acreditado por el SEI. Éstos utilizan distintos métodos para determinar en las organizaciones el nivel de madurez en el que se encuentra el proceso utilizado en el desarrollo de software.

Entre estos métodos destaca el SCE consiste en una auditoría y el CBA-IPI utiliza entrevistas y otros procedimientos encaminados a ayudar a la mejora de los procesos seguidos en la organización.

2.2 Marco de trabajo para el proceso:

Base para el proceso de software completo.
•Es como un libro de recetas de cocina. 

•La adaptacion es especial
•Aplicable a lo largo del proceso de software.
•Su objetivo la gestion,el ratreo y el control del proyecto,
•Garantiza la calidad del software.

Actividades del marco de trabajo: 

Aplicable a todos los proyectos
•Comunicación 

•Planeacion
•Modelado
•Construccion
•Despliegue

Conjunto de tareas: 

Actividades que hacen que el marco de trabajo se adapte a las caracteristicas particulares de cada proyecto.Define el trabajo real a cumplirse:

  • Tareas 
  • Hitos,entregas. 
  • Puntos SQA 
2.3. Modelos de la ingeniería del software:modelo de cascada, modelo de prototipos,modelo de espiral,modelo de Proceso Unificado Racional (RUP).

Modelo cascada:

•Es un modelo sencillo para explicar al cliente.
•Tambien llamado ciclo de vida clasico sugiere un enfoque sistematico. secuencial en el desarrollo del software.
•Requiere que los requerimientos esten bien definidos y estables en forma razonable.
•Es el paradigma mas antiguo para la Ingenieria del Software.


Fases:

•Ingenieria y Analisis del Sistema:Debido a que el software siempre es parte de un sistema mayor el trabajo comienza estableciendo los requerimientos de todos los elementos del sistema y luego asignando algun subconjunto de estos requisitos al software.
•Analisis de los requerimientos del software:El proceso de recopilacion de los requerimientos se centra e intensifica especialmente en el software.El ingeniero del software debe comprender el ambito de la informacion del software asi como la funcion del rendimiento y las interfaces requeridas.
.
•Diseño:Se enfoca en cuatro atributos distintos del programa la estructura de los datos,la arquitectura del software,el detalle procedimental y la caracterizacion de la interfaz.
•Codificacion :Debe traducirse en una forma legible para la maquina.
•Prueba:Se centra en la logica interna del software y en las funciones externas,realizando pruebas que aseguren que la entrada definida produce los resultados que realmente se requiere.

•Mantenimiento:El software sifriria cambios despues de que se entrega al cliente ocurren debido a que hayan encontrado errores que el software deba adaptarse a cambios del entorno externo o que el cliente requiera aplicaciones funcionales o del rendimiento.

Caracteristicas:

  • Es el mas utilizado. 
  • Es una vision del proceso de desarrollo de software como una sucesion de etapas que producen productos intermedios. 
  • Para que el proyecto tenga éxito deben desarrolllarse todas las fases. 
  • Las fases continuan hasta que los objetivos se han cumplido. 
  • Si se cambia el orden de las fases, el producto final sera de inferior calidad.
Ventajas:

oLa planificacion es sencilla.
oLa calidad del producto resultante es alta.
oPermite trabajar con personal poco calificado.

Deventajas:
  • No refleja realmente el proceso de desarrollo del software. 
  • Se tarda mucho tiempo en pasar por todo el ciclo. 
  • El mantenimiento se realiza en el codigo fuente. 
  • Las revisiones de proyectos de gran complejidad son muy dificiles.
Modelo de prototipos:

•Es una vision preliminar del modelo futuro.
•Es un modelo operable.
•Facilmente ampliable y modificable.
•Tiene todas las caracteristicas propuestas pero realmente es un modelo basico que tiene que ser mejorado 

Ventajas:

•La posibilidad de cambiar el modelo. 
•La oportunidad para suspender el modelo del desarrllo del modelo sino es funcional.
•La oportunidad de crear un nuevo modelo que se ajuste a mejor a las necesidades y expectativas de los usuarios.

Relaciones de usuario:

Las sugerencias obtenidas de los usuarios lleven al analista hacia adecuaciones o cambios que se ajustan mejor a las necesidades de los usuarios y que no habian sido pensadas antes de la interaccion del usuario con el prototipo.Debe ser construido en poco tiempo ,no debe de utilizarse mucho dinero,cuando este sea aprobado podemos inciar el verdadero desarrollo del software.Prodra ser construido si con el software es posible experimentar.  

Desventajas:

Debido a que el usuario ve que funciona piensa que este es el producto terminado y no entienden que recien se va a desarrollar el software .
Debe ir acompañado de otro modelo para su desarrollo.

Tipo de modelo de prototipo:
•Desechable.:Nos sive para eliminar dudas sobre las que realmente quiere al cliente ademas para desarrrollar la interfaz que mas le convenga al cliente.
•Evolucionario.:Es parcialmente construido que puede pasar de ser prototipo a ser software pero no tiene una buena documentacion y calidad.
 
A favor:

oUtiles cuando los requerimientos son cambiantes.
oCuando nose conoce bien la aplicación.
oCuando el usuario no se quiere comprometer con los requerimientos.
oCuando se quiere probar una arquitectura o tecnologia.Cuando se requiere rapidez en el desarrollo.

En contra:

No se conoce cuando se tendra un producto aceptable.
No se sabe cuantas interacciones seran necesarias.
Da una falsa ilusion al usuario sobre la velocidad del desarrolllo.
Se puede volver al producto aun y cuando no este en los estandares.


Modelo en espiral:

Las actividades se conforman en un espiral en la que cada bucle o interaccion representa un conjunto de actividades,no estan fijadas a prioridad sino que las siguientes se eligen en funcion de analisis de riesgo comenzando por el bucle interior.

Caracteristicas:

•Encada giro se construye un nuevo modelo del sistema completo.
•Este modelo puede combinarse con otros modelos de proceso de desarrollo .
•Mejo ir modelo para desarrollo de grandes sistemas.
•El analisis de riesgo requiere la participacion del personal con alta calificacion.
•No hay numero definido de interacciones ,deben de decidirlas el equipo de gestion de proyecto.

Ventajas:

  • Modelo espiral de cuatro regiones o modelo original de Boehm. 
  • Modelo espiral de seis regiones. 
  • Modelo espiral WINWIN.
Modelo espiral de cuatro regiones o modelo original de Boehm.


Modelo de seis regiones:


Modelo espiral WINWIN:

WINWIN(Victoria) sugiere una actividad del marco de trabajo que aborda la comunicación con el cliente.El objetivo de esta actividad es mostrar los requisitos del cliente.En un contexto ideal del desarrollador simplemente pregunta al cliente lo que se necesita y proporciona detalles suficientes para continuar.

Ventajas:

•El modelo en espiral es un enfoque realista del desarrollo de sistemas.
•Modelo de proceso adaptable.
•El modelo en espiral puede s aplicarse a lo largo de la vida del software.
•El desarrollador y el cliente comprenden y reaccionan mejor ante riegos en cada uno de los niveles evolutivos.
•Permite a quien lo desarrolla aplicar el enfoque de construccion de prototipos en cualquier etapa de evolucion del producto.
•Demanda una consideracion directa de los riesgos tecnicos en todas las etapas del proyecto y si se aplicada adecuadamente debe reducir los riesgos antes de que se conviertan en problemas.
•Modelos evolutivos como el espral son apropiados oarticularmente parael desarrollo de Sistemas OO.
•Trata de mejorar los ciclos de vida de clasicos y prototipos.
•Permite acomodar otros modelos.
•Incorpora objetivos de calidad y gestion de riesgos.
•Elimina errores y alternativas no atractivas al comienzo.

Desventajas:

•Resulta dificil convencer a grandes clientes de que el enfoque evolutivo es controlable.
•Es nuevo y no se a utilizado tanto como otros modelo de ciclo de vida.
•Requiere una considerable habilidad para la evaluacion del riesgo y cuenta con esta habilidad para el éxito.
•Si un riesgo es importante no es detectado y gestionado a tiempo indudablemente surgiran problemas.

Hitos del modelo WIN-WIN:

Introduce tres hitos son los procesos llamados puntos de fijacion que ayudan a establecer la completitud de un ciclo alrededor de la espiral y proporcionan hitos de decisión antes de continuar el proyecto de software.
Los puntos de fijacion representan tres visiones diferentes del progreso mientras que el proyecto recorre la espiral.

2.4. Tendencias modernas de modelos de la ingeniería del software.

XP:Programacion extrema:

De todas las metodologias habiles esta recibe mas atencion.Valores :
  • Retroalimentación. 
  • Comunicación. 
  • Simplicidad . 
  • Coraje. 

Contruye un proceso de diseño evolutivo refactora un sistema simple en cada iteraccion que se centra en la iteraccion actual no se hace nada anticipadamente.Combina la disiplina con la adaptabilidad.Kent Beck escribio Extreme Programming Explained qu es clave de la XP.

La familia de cristal de Cockburn:

Tipos diferentes de proyectos requieren tipos diferentes de metodologia.

Costituye:el numero de personas de un proyecto y las consecuencias de los errores.Alistar requiere que las personas sigan un proceso diciplinado,explora a metodologia menos disiplinada que aun pueda tener éxito intercambiando productividad.El cristal es menos productivo que la XP maas personas seran capaces de seguirlo.

Codigo abierto:Es un estilo de software,en particular su proceso se engrana a equipos fisicamente distribuidos,la mayoria de los procesos adaptables exigen procesos locales.La mayoria tiene uno mas mantenedores.Un mantenedor es la unica persona a la que se permite hacer cambioen el almacen de codigo fuente,otras personas tambien pueden hacer cambios pero necesitan madarlas a mantenedor para que las revise aplique.

El desarrollo de software adaptable de Highsmith:

Trabajando con metodologías predictivas. él las desarrolló, instaló, enseñó, y concluyó que son defectuosas: particularmente para los negocios modernos. En ASD hay tres fases, no lineales: especulación, colaboración, y aprendizaje. En un ambiente adaptable, aprender desafía a todos - desarrolladores y sus clientes - a examinar sus asunciones y usar los resultados de cada ciclo de desarrollo para adaptar el siguiente.

Scrum:

Scrum divide un proyecto en iteraciones (que ellos llaman carreras cortas) de 30 días. Antes de que comience una carrera se define la funcionalidad requerida para esa carrera y entonces se deja al equipo para que la entregue. el punto es estabilizar los requisitos durante la carrera.
Todos los días el equipo sostiene una junta corta (quince minutos), llamada scrum, dónde el equipo discurre lo que hará al día siguiente. la literatura de scrum se enfoca principalmente en la planeación iterativa y el seguimiento del proceso.

Desarrollo manejado por rasgo:

Fue desarrollado por Jeff de Luca y Peter Coad. Las iteraciones duran dos semanas. Tiene cinco procesos. los primeros tres se hacen al principio del proyecto. 

•desarrollar un modelo global
•construir una lista de los rasgos
•planear por rasgo
•diseñar por rasgo
•construir por rasgo
Los últimos dos se hacen en cada iteración. Cada proceso se divide en tareas y se da un criterio de comprobación.
Los desarrolladores entran en dos tipos: dueños de clases y programadores jefe.

DSDM (MÉTODO DE DESARROLLO DE SISTEMA DINÁMICO)

Empieza con un estudio de viabilidad y negocio. Viabilidad considera si DSDM es apropiado para el proyecto. Negocio es una serie corta de talleres para entender el área de negocio dónde tiene lugar el desarrollo. También propone arquitecturas de esbozos del sistema y un plan del proyecto. 

El resto del proceso forma tres ciclos entretejidos: el ciclo del modelo funcional produce documentación de análisis y prototipos, el ciclo de diseño del modelo diseña el sistema para uso operacional, y el ciclo de implantación se ocupa del despliegue al uso operacional.

Bibliografia:
http://www.eumed.net/libros-gratis/2008a/351/Modelo%20de%20Madurez%20de%20Capacidad.htm
http://www.google.com.mx/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CC0QFjAA&url=http%3A%2F%2Fmedia.wix.com%2Fugd%2F68304f_ca07630d69cf122707afd77c97db80d8.pdf%3Fdn%3D2.4.pdf&ei=MdetUNjrCsa9yAGuioDQCQ&usg=AFQjCNGMuGiiNjdLKZYFwTZAOjIiJlEPRw&sig2=_Kxy5yYC49IqIsXtSH3ZQQ

1 comentario:

  1. El texto no se aprecia muy bien que digamos, el fondo no lo ayuda mucho, deberías cambiarlo para una mejor lectura.

    ResponderEliminar