Objetivo: Conocer
los diferentes ciclos de vida para el desarrollo de software
Desarrollo:
- Explique brevemente
(máximo 100 palabras), ¿qué es un proceso de software?
Es
un conjunto de actividades y resultados asociados que producen un producto de
software. Estas actividades son llevadas a cabo por los ingenieros de software.
Existen cuatro actividades fundamentales de procesos que son comunes para todos
los procesos del software.
·
Especificación del
software
·
Desarrollo del software
·
Validación del software
·
Evolución del software
Diferentes tipos de sistemas necesitan diferentes procesos de
desarrollo. (Sommerville, 2005)
- ¿La ISO 12207 como
define un proceso? Y cuales procesos se enmarcan principales, procesos de
soporte, procesos organizacionales, procesos de adaptación.
Un
proceso es un conjunto de actividades interrelacionadas que transforman
entradas en salidas. (Ruiz, 2012).
Procesos principales
·
Adquisición
·
Suministro
·
Desarrollo
·
Operación
·
Mantenimiento
Procesos de soporte
·
Documentación
·
Gestión
de Configuración
·
Aseguramiento
de la Calidad
·
Verificación
·
Validación
·
Revisión
Conjunta
·
Auditoria
·
Resolución
de problemas
Procesos Organizacionales
·
Gestión
·
Infraestructura
·
Mejora
·
Formación
- ¿Qué entiendes como
un ciclo de vida? Consulta según la
norma IEEE 1074 el concepto de ciclo de vida.
Según
la norma 1074 IEEE se define al ciclo de vida del software como “una aproximación lógica a la adquisición, el
suministro, el desarrollo, la explotación y el mantenimiento del software”. (Piattini, 1995).
- De los ciclos de
vida tradicionales (cascada, incremental, espiral, prototipado,
reutilización, evolutivo) y los ciclos de vida para sistemas Orientado a
Objetos (modelo de agrupamiento, modelo fuente, modelo remolino, modelo
pinball) haz una comparación entre ellos, indicando las fases, bondades y
desventajas de estos, UTILIZA la siguiente tabla:
Ciclo
de vida
|
Objetivo
|
Fases
|
Ventajas
|
Desventajas
|
lineal
|
Descompone
la actividad global del proyecto en etapas separadas que son realizadas de
manera lineal.
|
1.
análisis
2.
diseño
3.
implementación
4.pruebas
5.instalacion
6.aceptacion
|
Es
muy sencilla su gestión y su administración tanto económica como temporal.
|
No
deja claro como responder cuando el resultado no es el esperado
|
cascada
|
Ordenar
rigurosamente las etapas del proceso para el desarrollo de software.
|
1.
análisis de requisitos
2.diseño
de sistemas
3.diseño
del programa
4.codificacion
5.pruebas
6.implantacion
7.mantenimiento.
|
Enfocado
en software se podrían entregar resultados sin haber terminado el proyecto en
su totalidad.
|
La
desventaja es que no se puede iniciar una etapa sin que allá finalizado la
anterior.
|
incremental
|
Aplicar
secuencias lineales en forma escalonada a medida que avanza el proyecto.
|
1.comunicacion
2.planeacion
3.modelado
4.construccion
5.despliegue
|
cada
sub entregable ya es operable, el primer entregable es la base del programa y
se va completando.
|
En
caso de realizar algún cambio a un entregable ya ´producido se detiene el
proyecto.
|
evolutivo
|
Su
objetivo es construir un prototipo del software que sirve como mecanismo para
identificar requerimientos.
|
1.comunicacion
2.plan
rápido
3.modelado
de diseño rápido
4.contruccion
del proyecto
5.despliegue
entrega y retroalimentación.
|
Se
construye un prototipo rápidamente que permite dar una idea de como quedara
el proyecto final.
|
Al
ser tan apresurado su primer diseño puede presentar algunas fallas de diseño.
|
espiral
|
Esta
enfocado para proyectos más grandes que están sujetos a riesgos.
|
1.
objetivo y determinación alternativa
2.analisis
y evaluación de riesgos
3.desarrollo
y prueba
4.planificacion
del siguiente ciclo.
|
A
menudo sucede que sus prototipos de transfieren al sistema de producción
final ahorrando tiempo.
|
Sus
riesgos tienen impactos monetarios directos.
|
fuente
|
Tipo
de ciclo de vida pensado para el desarrollo orientado a objetos y
posiblemente más seguido.
|
1.
planificación del negocio
2.construccion
3.entrega
|
Cada
clase puede tener un ciclo de vida solo para ella debido a que cada clase
puede estar en una fase diferente
|
La
ventaja es que permite un desarrollo asolapado e interactivo.
|
agrupamiento
|
Conjunto
de clases relacionadas con un objetivo común.
|
1.especificacion
2.diseño
3.implementacion
4.validacion
5.generalizacion
|
El clúster es la unidad natural para el desarrollo
por parte de un único desarrollador.
|
Evita
el efecto todo o nada propio del modelo de cascada.
|
pinball
|
Modelo muy didáctico señala que el refleja pinball la forma
que se desarrolla el software.
|
1.
identificar clases
2.analisis
3.
definir colaboraciones
4.herencia
5.agrgacion
6.subsistema
7.programacion
e implementación.
|
Es
un modelo donde los pasos se pueden dar en cualquier orden y de forma
simultánea.
|
Tiene
una forma de operar y es creando sus propios métodos, aunque esto tiene
riesgos.
|
- De acuerdo al
estudio realizado, ¿cuál sería el mejor proceso para desarrollar software?
Pensamos
que es el pinball porque es un modelo orientado a objetos el cual es algo que
hemos aprendido en el tiempo de estudio universitario, además se ve una gran
ventaja y es que se pueden ejecutar los diversos procesos de un proyecto
simultáneamente logrando dar resultados operables para el usuario.
II
parte:
- ¿Qué es una
Metodología de Desarrollo de Software?
Consiste
principalmente en hacer uso de diversas herramientas, técnicas, métodos y
modelos para el desarrollo. Regularmente este tipo de metodología, tienen la
necesidad de venir documentadas, para que los programadores que estarán dentro
de la planeación del proyecto comprendan perfectamente la metodología y en
algunos casos el ciclo de vida del software que se pretende seguir.
- ¿Qué Metodologías
existen para el desarrollo de software? Clasifíquelas
Metodologías orientadas a objetos
·
Fusión
·
Object Modelling Technique (OMT)
·
Object Management Facility (OMF)
·
Object Management System (OMS)
·
Unified Process (UP)
Metodologías orientadas a procesos
·
Metodología de Marco
·
Metodología Gane y Sarson
·
Metodología Yourdon/Constantine
Metodologías mixtas
·
Metodología Merise
·
SSADM (Método estructurado de
análisis y diseño de sistemas)
·
Metodología Métrica
Metodologías clásicas
·
Metodología en cascada
·
Metodología de prototipo
·
Modelo evolutivo
·
Modelo incremental
·
Modelo en espiral
Metodologías para sistemas de tiempo real
·
COMET
(Concurrent Object Modelling and architectural design method)
·
Octopus/UML
·
ROPES (Rapid
Object-Oriented Process for Embedded Systems)
·
HRT-HOOD
·
OOHARTS
Metodologias agiles
·
Programacion extrema (XP)
·
Scrum
·
Crystal
·
Mobile-D
·
Adaptive Software Development (ASD)
- ¿Cuál sería la
tendencia de desarrollo de software en cinco años?
Muy probablemente en los próximos 5 años seremos testigos de
asombrosos nuevos desarrollos en aquellos programas de software orientados a
dar solución a las demandas de la gestión de procesos de negocios (lo
que se conoce como BPM, siglas en inglés de Business Process Management).
Estas tendencias muy probablemente giren en torno a arquitectura basada en la
nube, mejoras en movilidad, análisis de datos en tiempo real, capacidades de
detección de fraude mejoradas y mayor funcionalidad de nicho.
Bibliografía
- Sommerville, I. (2005). Ingeniería del software. Pearson
educación.
- Metodologías del Desarrollo de
Software (s.f.) Recuperado de https://okhosting.com/blog/metodologias-del-desarrollo-de-software/
- Ruiz, F. (2012). Ingeniería del Software I.
- Piattini, M. (1995). Capítulo 3: La ingeniería del software,
33–57.
No hay comentarios:
Publicar un comentario