SlideShare a Scribd company logo
1 of 47
UNIVERSIDAD DE ORIENTE
                   DEPARTAMENTO DE INGENIERÍA DE SISTEMAS
           ANÁLISIS Y DISEÑO DE SISTEMAS DE INFORMACIÓN – UNIDAD IV




                       Proceso de desarrollo de
                              software
Facilitador:                                        Bachilleres:
Prof. Jesús Chaparro                                Barreto Daniela
                                                    Grillet Diego
Equipo LICAUROS                                     Idrogo Simon




                           MATURÍN, Enero de 2013
Proceso de desarrollo de software

Introducción

Un sistema informático está compuesto por
hardware y software.


En cuanto al hardware, su producción se realiza sistemáticamente
y la base de conocimiento para el desarrollo de dicha actividad está
claramente definida.
Proceso de desarrollo de software

Introducción


Sin embargo, respecto del software, su construcción y resultados
han sido históricamente cuestionados debido a los problemas
asociados.



El “IEEE Standard Glossary of Software Engineering Terminology”
ha desarrollado una definición más completa para ingeniería del
software: La aplicación de un enfoque sistemático, disciplinado y
cuantificable para el desarrollo, operación y mantenimiento del
software; es decir, la aplicación de ingeniería al software.
Proceso de desarrollo de software

Introducción


Pressman, caracteriza la Ingeniería de Software como “una
tecnología multicapa”
Proceso de desarrollo de software

Introducción


Las herramientas de la ingeniería del software proporcionan un
soporte automático o semi-automático para el proceso y los
métodos, a estas herramientas se les llama herramientas CASE
(Computer-Aided Software Engineering).


Los métodos de la ingeniería de software indican cómo construir
técnicamente el software. Los métodos abarcan una gran gama de
tareas que incluyen análisis de requisitos, diseño, construcción de
programas, pruebas y mantenimiento.
Proceso de desarrollo de software

Introducción


El proceso define un marco de trabajo para un conjunto de áreas
clave, las cuales forman la base del control de gestión de
proyectos de software y establecen el contexto en el cual: se
aplican los métodos técnicos, se producen resultados de
trabajo, se establecen hitos, se asegura la calidad y el cambio se
gestiona adecuadamente.
Proceso de desarrollo de software

Introducción


La gestión total de la calidad y las filosofías similares fomentan una
cultura continua de mejoras de procesos que conduce al desarrollo
de enfoques cada vez más robustos para la ingeniería del software.
Proceso de desarrollo de software

El proceso de desarrollo del software


Un proceso de desarrollo de software tiene como propósito la
producción eficaz y eficiente de un producto software que reúna
los requisitos del cliente.
Proceso de desarrollo de software

El proceso de desarrollo del software


Aunque un proyecto de desarrollo de software es equiparable en
muchos aspectos a cualquier otro proyecto de ingeniería, en el
desarrollo de software hay una serie de desafíos adicionales,
relativos esencialmente a la naturaleza del producto obtenido.



Un producto software en sí es complejo, es prácticamente inviable
conseguir un 100% de confiabilidad de un programa por pequeño
que sea.
Proceso de desarrollo de software

El proceso de desarrollo del software


Un producto software es intangible y por lo general muy
abstracto, esto dificulta la definición del producto y sus requisitos,
sobre todo cuando no se tiene precedentes en productos software
similares. Esto hace que los requisitos sean difíciles de consolidar
tempranamente.
Proceso de desarrollo de software

El proceso de desarrollo del software


El proceso de desarrollo de software no es único. No existe un
proceso de software universal que sea efectivo para todos los
contextos de proyectos de desarrollo. Debido a esta diversidad, es
difícil automatizar todo un proceso de desarrollo de software.
Proceso de desarrollo de software

El proceso de desarrollo del software


 A pesar de la variedad de propuestas de proceso de software,
 existe un conjunto de actividades fundamentales que se
 encuentran presentes en todos ellos :

 1. Especificación de software: Se debe definir la funcionalidad y
 restricciones operacionales que debe cumplir el software.
 2. Diseño e Implementación: Se diseña y construye el software de
 acuerdo a la especificación.
 3. Validación: El software debe validarse, para asegurar que
 cumpla con lo que quiere el cliente.
 4. Evolución: El software debe evolucionar, para adaptarse a las
 necesidades del cliente.
Proceso de desarrollo de software

El proceso de desarrollo del software


Otra perspectiva utilizada para determinar los elementos del
proceso de desarrollo de software es establecer las relaciones
entre elementos que permitan responder Quién debe hacer
Qué, Cuándo y Cómo debe hacerlo
Proceso de desarrollo de software

El proceso de desarrollo del software


 •Quién: Las Personas participantes en el proyecto de desarrollo
 desempeñando uno o más Roles específicos.

 •Qué: Un Artefacto3 es producido por un Rol en una de sus
 Actividades. Los Artefactos se especifican utilizando Notaciones
 específicas. Las Herramientas apoyan la elaboración de
 Artefactos soportando ciertas Notaciones.

 •Cómo y Cuándo: Las Actividades son una serie de pasos que
 lleva a cabo un Rol durante el proceso de desarrollo. El avance
 del proyecto está controlado mediante hitos que establecen un
 determinado estado de terminación de ciertos Artefactos.
Proceso de desarrollo de software

Modelos de proceso software


Sommerville define modelo de proceso de software como “Una
representación simplificada de un proceso de software,
representada desde una perspectiva específica. Por su naturaleza
los modelos son simplificados, por lo tanto un modelo de procesos
del software es una abstracción de un proceso real.”
Proceso de desarrollo de software

Modelos de proceso software

Codificar y corregir



Este es el modelo básico utilizado en los inicios del desarrollo de
software. Contiene dos pasos:

•Escribir código
.
•Corregir problemas en el código.
Se trata de primero implementar algo de código y luego pensar
acerca de requisitos, diseño, validación, y mantenimiento.
Proceso de desarrollo de software

Modelos de proceso software

Codificar y corregir



Este modelo tiene tres problemas principales :
•Después de un número de correcciones, el código puede tener
una muy mala estructura, hace que los arreglos sean muy
costosos.
•Frecuentemente, aún el software bien diseñado, no se ajusta a
las necesidades del usuario, por lo que es rechazado o su
reconstrucción es muy cara.
•El código es difícil de reparar por su pobre preparación para
probar y modificar.
Proceso de desarrollo de software

Modelos de proceso software

Modelo en cascada



1.Definición de los requisitos: Los servicios, restricciones y
objetivos son establecidos con los usuarios del sistema. Se busca
hacer esta definición en detalle.
2.Diseño de software: Se particiona el sistema en sistemas de
software o hardware. Se establece la arquitectura total del
sistema. Se identifican y describen las abstracciones y relaciones
de los componentes del sistema.
3.Implementación y pruebas unitarias: Construcción de los
módulos y unidades de software. Se realizan pruebas de cada
unidad.
Proceso de desarrollo de software

Modelos de proceso software

Modelo en cascada




4. Integración y pruebas del sistema: Se integran todas las
unidades. Se prueban en conjunto. Se entrega el conjunto
probado al cliente.
5. Operación y mantenimiento: Generalmente es la fase más
larga. El sistema es puesto en marcha y se realiza la corrección de
errores descubiertos. Se realizan mejoras de implementación. Se
identifican nuevos requisitos.
Proceso de desarrollo de software

Modelos de proceso software

Modelo en cascada


Una fase no comienza hasta que termine la fase anterior y
generalmente se incluye la corrección de los problemas
encontrados en fases previas.
Proceso de desarrollo de software

Modelos de proceso software

Desarrollo evolutivo


Una ventaja de este modelo es que se obtiene una rápida
realimentación del usuario, ya que las actividades de
especificación, desarrollo y pruebas se ejecutan en cada iteración.
Proceso de desarrollo de software

Modelos de proceso software

Desarrollo evolutivo



Desarrollo Exploratorio: El objetivo de este enfoque es explorar
con el usuario los requisitos hasta llegar a un sistema final. El
desarrollo comienza con las partes que se tiene más claras. El
sistema evoluciona conforme se añaden nuevas características
propuestas por el usuario.
Proceso de desarrollo de software

Modelos de proceso software

Desarrollo evolutivo


Enfoque utilizando prototipos: El objetivo es entender los
requisitos del usuario y trabajar para mejorar la calidad de los
requisitos. A diferencia del desarrollo exploratorio, se comienza
por definir los requisitos que no están claros para el usuario y se
utiliza un prototipo para experimentar con ellos. El prototipo
ayuda a terminar de definir estos requisitos.
Proceso de desarrollo de software

Modelos de proceso software

Desarrollo formal de sistemas


Este modelo se basa en transformaciones formales de los requisitos
hasta llegar a un programa ejecutable.
Proceso de desarrollo de software

Modelos de proceso software

Desarrollo basado en reutilización


Como su nombre lo indica, es un modelo fuertemente orientado a
la reutilización. Este modelo consta de 4 fases ilustradas en la
Figura.
Proceso de desarrollo de software

Modelos de proceso software

Desarrollo basado en reutilización



Las ventajas de este modelo son:
•Disminuye el costo y esfuerzo de desarrollo.
•Reduce el tiempo de entrega.
•Disminuye los riesgos durante el desarrollo.
Desventajas de este modelo:
•Los “compromisos” en los requisitos son inevitables, por lo
cual puede que el software no cumpla las expectativas del
cliente.
•Las actualizaciones de los componentes adquiridos no están en
manos de los desarrolladores del sistema.
Proceso de desarrollo de software

Modelos de proceso software

Procesos iterativos



Mills sugirió el enfoque incremental de desarrollo como una forma
de reducir la repetición del trabajo en el proceso de desarrollo y
dar oportunidad de retrasar la toma de decisiones en los requisitos
hasta adquirir experiencia con el sistema .
Proceso de desarrollo de software

Modelos de proceso software

Procesos iterativos


Entre las ventajas del modelo incremental se encuentran:
•Los clientes no esperan hasta el fin del desarrollo para utilizar
el sistema. Pueden empezar a usarlo desde el primer incremento.
•Los clientes pueden aclarar los requisitos que no tengan claros
conforme ven las entregas del sistema.
•Se disminuye el riesgo de fracaso de todo el proyecto, ya que se
puede distribuir en cada incremento.
•Las partes más importantes del sistema son entregadas
primero, por lo cual se realizan más pruebas en estos módulos y
se disminuye el riesgo de fallos.
Proceso de desarrollo de software

Modelos de proceso software

Procesos iterativos



Algunas de las desventajas identificadas para este modelo son:
•Cada incremento debe ser pequeño para limitar el riesgo
(menos de 20.000 líneas).
•Cada incremento debe aumentar la funcionalidad.
•Es difícil establecer las correspondencias de los requisitos
contra los incrementos.
•Es difícil detectar las unidades o servicios genéricos para todo el
sistema.
Proceso de desarrollo de software

Modelos de proceso software

Procesos iterativos


                               El modelo de desarrollo en
                               espiral es actualmente uno
                               de los más conocidos y fue
                               propuesto por Boehm. El
                               ciclo de desarrollo se
                               representa     como      una
                               espiral, en lugar de una
                               serie     de     actividades
                               sucesivas con retrospectiva
                               de una actividad a otra.
Proceso de desarrollo de software

Modelos de proceso software

Procesos iterativos

Cada ciclo de desarrollo se divide en cuatro fases:

1.Definición de objetivos: Se definen los objetivos. Se definen las
restricciones del proceso y del producto. Se realiza un diseño
detallado del plan administrativo. Se identifican los riesgos y se
elaboran estrategias alternativas dependiendo de estos.

2.Evaluación y reducción de riesgos: Se realiza un análisis
detallado de cada riesgo identificado. Pueden desarrollarse
prototipos para disminuir el riesgo de requisitos dudosos. Se
llevan a cabo los pasos para reducir los riesgos.
Proceso de desarrollo de software

Modelos de proceso software

Procesos iterativos


3.Desarrollo y validación: Se escoge el modelo de desarrollo
después de la evaluación del riesgo. El modelo que se utilizará
(cascada, sistemas formales, evolutivo, etc.) depende del riesgo
identificado para esa fase.

4.Planificación: Se determina si continuar con otro ciclo. Se
planea la siguiente fase del proyecto.

Este modelo a diferencia de los otros toma en consideración
explícitamente el riesgo, esta es una actividad importante en la
administración del proyecto.
Proceso de desarrollo de software

Metodologías para desarrollo de software


Un proceso de software detallado y completo suele denominarse
“Metodología”. Las metodologías se basan en una combinación
de los modelos de proceso genéricos (cascada, evolutivo,
incremental, etc.). Adicionalmente una metodología debería
definir con precisión los artefactos, roles y actividades
involucrados, junto con prácticas y técnicas recomendadas, guías
de adaptación de la metodología al proyecto, guías para uso de
herramientas de apoyo, etc.
Proceso de desarrollo de software

Metodologías para desarrollo de software

Metodologías estructuradas



Los métodos estructurados comenzaron a desarrollarse a fines de
los 70’s con la Programación Estructurada, luego a mediados de
los 70’s aparecieron técnicas para el Diseño (por ejemplo: el
diagrama de Estructura) primero y posteriormente para el
Análisis (por ejemplo: Diagramas de Flujo de Datos). Estas
metodologías son particularmente apropiadas en proyectos que
utilizan para la implementación lenguajes de 3ra y 4ta generación.
Proceso de desarrollo de software

Metodologías para desarrollo de software

Metodologías orientadas a objetos



Su historia va unida a la evolución de los lenguajes de
programación orientada a objeto, los más representativos: a fines
de los 60’s SIMULA, a fines de los 70’s Smalltalk-80, la primera
versión de C++ por Bjarne Stroustrup en 1981 y actualmente Java11
o C# de Microsoft. A fines de los 80’s comenzaron a consolidarse
algunos métodos Orientadas a Objeto.
Proceso de desarrollo de software

Metodologías para desarrollo de software

Metodologías ágiles



Las metodologías no ágiles son aquellas que están guiadas por una
fuerte planificación durante todo el proceso de desarrollo;
llamadas también metodologías tradicionales o clásicas, donde se
realiza una intensa etapa de análisis y diseño antes de la
construcción del sistema.
Proceso de desarrollo de software

Metodologías para desarrollo de software

Metodologías ágiles



Un proceso es ágil cuando el desarrollo de software es
incremental (entregas pequeñas de software, con ciclos rápidos),
cooperativo (cliente y desarrolladores trabajan juntos
constantemente con una cercana comunicación), sencillo (el
método en sí mismo es fácil de aprender y modificar, bien
documentado), y adaptable (permite realizar cambios de último
momento).
Proceso de desarrollo de software

Metodologías para desarrollo de software

Metodologías ágiles



Entre las metodologías ágiles identificadas en:
•Extreme Programming.
•Scrum.
•Familia de Metodologías Crystal.
•Feature Driven Development.
•Proceso Unificado Rational, una configuración ágil.
•Dynamic Systems Development Method.
•Adaptive Software Development.
•Open Source Software Development .
Proceso de desarrollo de software

Herramientas CASE para el proceso de desarrollo de Software


Las Herramientas de Ayuda al Desarrollo de Sistemas de
Información, surgieron para intentar dar solución a los problemas
inherentes a los proyectos de generación de aplicaciones
informáticas: plazos y presupuestos incumplidos, insatisfacción
del usuario, escasa productividad y baja calidad de los desarrollos,
entre otros. Algunas de estas herramientas se dirigen
principalmente a mejorar la calidad, como es el caso de las
herramientas CASE.
Proceso de desarrollo de software

Herramientas CASE para el proceso de desarrollo de Software


Se puede definir a las Herramientas CASE como un conjunto de
programas y ayudas que dan asistencia a los analistas, ingenieros
de software y desarrolladores, durante todos los pasos del Ciclo de
Vida de desarrollo de un Software.
Proceso de desarrollo de software

Herramientas CASE para el proceso de desarrollo de Software


El empleo de herramientas Case permiten integrar el proceso de
ciclo de vida:
• Análisis de datos y procesos integrados mediante un
    repositorio.
• Generación de interfaces entre el análisis y el diseño.
• Generación del código a partir del diseño.
• Control de mantenimiento.
Proceso de desarrollo de software

Herramientas CASE para el proceso de desarrollo de Software

Tipos de Herramientas CASE


No existe una única clasificación de herramientas CASE, es difícil
incluirlas en una clase determinada. Podrían clasificarse
atendiendo a:
• Las plataformas que soportan.
• Las fases del ciclo de vida del desarrollo de sistemas que
   abarca.
• La arquitectura de las aplicaciones que produce.
• Su funcionalidad.
Proceso de desarrollo de software

Herramientas CASE para el proceso de desarrollo de Software

Tipos de Herramientas CASE


I-CASE : abarcan todas las fases del ciclo de vida del desarrollo de
sistemas. Las herramientas I-CASE se basan en una metodología.
Tienen un repositorio y aportan técnicas estructuradas para todas
las fases del ciclo de vida. Estas son las características que les
confieren su mayor ventaja: una mejora de la calidad de los
desarrollos. Sin embargo, no todas ellas son modernas en el
sentido de aprovechar la potencia de las estaciones de trabajo o
la utilización de lenguajes de alto nivel o técnicas de prototipo.
Proceso de desarrollo de software

Herramientas CASE para el proceso de desarrollo de Software

Tipos de Herramientas CASE


U-CASE: orientadas a la automatización y soporte de las
actividades desarrolladas durante las primeras fases del
desarrollo: análisis y diseño.
Una estrategia posible es utilizar una U-CASE para análisis y
diseño, combinada con otras herramientas más modernas para las
fases de construcción y pruebas. En este caso, habría que vigilar
cuidadosamente la integración entre las distintas herramientas.


L-CASE : dirigidas a las últimas fases del desarrollo: construcción e
implantación.
Proceso de desarrollo de software

Herramientas CASE para el proceso de desarrollo de Software

Beneficios de las Herramientas CASE

1. Facilidad para la revisión de aplicaciones
La experiencia muestra que una vez que las aplicaciones se
implementan, se emplean por mucho tiempo. Las herramientas
CASE proporcionan un beneficio substancial para las
organizaciones al facilitar la revisión de las aplicaciones. Contar
con un depósito central agiliza el proceso de revisión ya que éste
proporciona bases para las definiciones y estándares para los
datos. Las capacidades de generación interna, si se encuentran
presentes, contribuyen a modificar el sistema por medio de las
especificaciones más que por los ajustes al código fuente.
Proceso de desarrollo de software

Herramientas CASE para el proceso de desarrollo de Software

Beneficios de las Herramientas CASE


2. Soporte para el desarrollo de prototipos de sistemas
En general, el desarrollo de prototipos de aplicaciones toma
varias formas. En ocasiones se desarrollan diseños para pantallas
y reportes con la finalidad de mostrar la organización y
composición de los datos, encabezados y mensajes. Los ajustes
necesarios al diseño se hacen con rapidez para alterar la
presentación y las características de la interface. Sin embargo, no
se prepara el código fuente, de naturaleza orientada hacia
procedimientos, como una parte del prototipo.
Proceso de desarrollo de software

Herramientas CASE para el proceso de desarrollo de Software

Beneficios de las Herramientas CASE


 3. Generación de código
 La ventaja más visible de esta característica es la disminución del
 tiempo necesario para preparar un programa. Sin embargo, la
 generación del código también asegura una estructura estándar
 y consistente para el programa (lo que tiene gran influencia en el
 mantenimiento) y disminuye la ocurrencia de varios tipos de
 errores, mejorando de esta manera la calidad. Las características
 de la generación del código permiten volver a utilizar el software
 y las estructuras estándares para generar dicho código, así como
 el cambio de una especificación modular, lo que significa volver a
 generar el código y los enlaces con otros módulos.

More Related Content

What's hot

PROCESOS DE CALIDAD DE SOFTWARE
PROCESOS DE CALIDAD DE SOFTWAREPROCESOS DE CALIDAD DE SOFTWARE
PROCESOS DE CALIDAD DE SOFTWAREAlejandro Leon
 
Ciclo Vida Sw
Ciclo Vida SwCiclo Vida Sw
Ciclo Vida Swmsc080277
 
Etapas del Proceso de la Ingeniería del Software
Etapas del Proceso de la Ingeniería del SoftwareEtapas del Proceso de la Ingeniería del Software
Etapas del Proceso de la Ingeniería del SoftwareT.I.C
 
Tecnicas.de.ingenieria.de.software
Tecnicas.de.ingenieria.de.softwareTecnicas.de.ingenieria.de.software
Tecnicas.de.ingenieria.de.softwarejuankexmisiodj
 
Investigación de modelos
Investigación de modelos Investigación de modelos
Investigación de modelos bren1995
 
Proceso, modelos y metodos de ingenieria de software
Proceso, modelos y metodos de ingenieria de softwareProceso, modelos y metodos de ingenieria de software
Proceso, modelos y metodos de ingenieria de softwaresergio
 
Metodología de desarrollo de software
Metodología de desarrollo de softwareMetodología de desarrollo de software
Metodología de desarrollo de softwareAbner Garcia
 
Ingeniería de software II - Parte 1
Ingeniería de software II - Parte 1Ingeniería de software II - Parte 1
Ingeniería de software II - Parte 1Marta Silvia Tabares
 
Ingeniería de software
Ingeniería de softwareIngeniería de software
Ingeniería de softwareysik granja
 
Ingeniería de software II - Parte 2
Ingeniería de software II - Parte 2Ingeniería de software II - Parte 2
Ingeniería de software II - Parte 2Marta Silvia Tabares
 
Que es Ingenieria del Software?,
Que es Ingenieria del Software?,Que es Ingenieria del Software?,
Que es Ingenieria del Software?,Robert Rodriguez
 
13. ingeniería del software
13. ingeniería del software13. ingeniería del software
13. ingeniería del softwareDaniel Merchan
 
Modelos de procesos de software(completo)
Modelos de procesos de software(completo)Modelos de procesos de software(completo)
Modelos de procesos de software(completo)David Rosero
 
ciclo de vida de software
ciclo de vida de softwareciclo de vida de software
ciclo de vida de softwareDavid Ortega
 
Inenieria de software - modelos y metodologias
Inenieria de software - modelos y metodologiasInenieria de software - modelos y metodologias
Inenieria de software - modelos y metodologiaslaudyt
 
Resumen swebok original
Resumen swebok originalResumen swebok original
Resumen swebok originalDat@center S.A
 
Ciclo de vida del software
Ciclo de vida del softwareCiclo de vida del software
Ciclo de vida del softwaremasferrer1998
 
Ciclo de vida del desarrollo de software
Ciclo de vida del desarrollo de softwareCiclo de vida del desarrollo de software
Ciclo de vida del desarrollo de softwareDiana Ortiz
 

What's hot (20)

PROCESOS DE CALIDAD DE SOFTWARE
PROCESOS DE CALIDAD DE SOFTWAREPROCESOS DE CALIDAD DE SOFTWARE
PROCESOS DE CALIDAD DE SOFTWARE
 
Ciclo Vida Sw
Ciclo Vida SwCiclo Vida Sw
Ciclo Vida Sw
 
Etapas del Proceso de la Ingeniería del Software
Etapas del Proceso de la Ingeniería del SoftwareEtapas del Proceso de la Ingeniería del Software
Etapas del Proceso de la Ingeniería del Software
 
Tecnicas.de.ingenieria.de.software
Tecnicas.de.ingenieria.de.softwareTecnicas.de.ingenieria.de.software
Tecnicas.de.ingenieria.de.software
 
Investigación de modelos
Investigación de modelos Investigación de modelos
Investigación de modelos
 
Proceso, modelos y metodos de ingenieria de software
Proceso, modelos y metodos de ingenieria de softwareProceso, modelos y metodos de ingenieria de software
Proceso, modelos y metodos de ingenieria de software
 
Metodología de desarrollo de software
Metodología de desarrollo de softwareMetodología de desarrollo de software
Metodología de desarrollo de software
 
Ingeniería de software II - Parte 1
Ingeniería de software II - Parte 1Ingeniería de software II - Parte 1
Ingeniería de software II - Parte 1
 
Ingeniería de software
Ingeniería de softwareIngeniería de software
Ingeniería de software
 
Ingeniería de software II - Parte 2
Ingeniería de software II - Parte 2Ingeniería de software II - Parte 2
Ingeniería de software II - Parte 2
 
Que es Ingenieria del Software?,
Que es Ingenieria del Software?,Que es Ingenieria del Software?,
Que es Ingenieria del Software?,
 
Ingenieria De Software
Ingenieria De SoftwareIngenieria De Software
Ingenieria De Software
 
13. ingeniería del software
13. ingeniería del software13. ingeniería del software
13. ingeniería del software
 
Modelos de procesos de software(completo)
Modelos de procesos de software(completo)Modelos de procesos de software(completo)
Modelos de procesos de software(completo)
 
Swebok
SwebokSwebok
Swebok
 
ciclo de vida de software
ciclo de vida de softwareciclo de vida de software
ciclo de vida de software
 
Inenieria de software - modelos y metodologias
Inenieria de software - modelos y metodologiasInenieria de software - modelos y metodologias
Inenieria de software - modelos y metodologias
 
Resumen swebok original
Resumen swebok originalResumen swebok original
Resumen swebok original
 
Ciclo de vida del software
Ciclo de vida del softwareCiclo de vida del software
Ciclo de vida del software
 
Ciclo de vida del desarrollo de software
Ciclo de vida del desarrollo de softwareCiclo de vida del desarrollo de software
Ciclo de vida del desarrollo de software
 

Viewers also liked

Desarrollo del sofware
Desarrollo del sofwareDesarrollo del sofware
Desarrollo del sofwarealexis326
 
Desarrollo de sofware asignacion 6
Desarrollo de sofware asignacion 6Desarrollo de sofware asignacion 6
Desarrollo de sofware asignacion 6lauraalejandra434
 
Taller powerpoint
Taller powerpointTaller powerpoint
Taller powerpointjdaa95
 
estructuras de repeticion
estructuras de repeticionestructuras de repeticion
estructuras de repeticionadark
 
Fundamentos del análisis orientado a objetos
Fundamentos del análisis orientado a objetosFundamentos del análisis orientado a objetos
Fundamentos del análisis orientado a objetosEduardo Galindo
 
Fundamentos de POO
Fundamentos de POOFundamentos de POO
Fundamentos de POOgueritamala
 
Fundamentos de la ingenieria del software
Fundamentos de la ingenieria del softwareFundamentos de la ingenieria del software
Fundamentos de la ingenieria del softwarealberto calatayu
 
Desarrollo de Software Orienta a Objetos
Desarrollo de Software Orienta a ObjetosDesarrollo de Software Orienta a Objetos
Desarrollo de Software Orienta a ObjetosDat@center S.A
 
Analisis Y DiseñO Orientado A Objetos
Analisis Y DiseñO Orientado A ObjetosAnalisis Y DiseñO Orientado A Objetos
Analisis Y DiseñO Orientado A Objetosyoiner santiago
 
Etapas de Desarrollo Software
Etapas de Desarrollo SoftwareEtapas de Desarrollo Software
Etapas de Desarrollo SoftwareDaniel Román
 

Viewers also liked (14)

Modelos desarrollo de sofware
Modelos desarrollo de sofwareModelos desarrollo de sofware
Modelos desarrollo de sofware
 
Desarrollo del sofware
Desarrollo del sofwareDesarrollo del sofware
Desarrollo del sofware
 
Desarrollo de sofware asignacion 6
Desarrollo de sofware asignacion 6Desarrollo de sofware asignacion 6
Desarrollo de sofware asignacion 6
 
Proceso de-desarrollo-software
Proceso de-desarrollo-softwareProceso de-desarrollo-software
Proceso de-desarrollo-software
 
Taller powerpoint
Taller powerpointTaller powerpoint
Taller powerpoint
 
estructuras de repeticion
estructuras de repeticionestructuras de repeticion
estructuras de repeticion
 
Fundamentos del análisis orientado a objetos
Fundamentos del análisis orientado a objetosFundamentos del análisis orientado a objetos
Fundamentos del análisis orientado a objetos
 
Fundamentos de POO
Fundamentos de POOFundamentos de POO
Fundamentos de POO
 
Procesos del Software
Procesos del SoftwareProcesos del Software
Procesos del Software
 
Fundamentos de la ingenieria del software
Fundamentos de la ingenieria del softwareFundamentos de la ingenieria del software
Fundamentos de la ingenieria del software
 
Desarrollo de Software Orienta a Objetos
Desarrollo de Software Orienta a ObjetosDesarrollo de Software Orienta a Objetos
Desarrollo de Software Orienta a Objetos
 
Analisis Y DiseñO Orientado A Objetos
Analisis Y DiseñO Orientado A ObjetosAnalisis Y DiseñO Orientado A Objetos
Analisis Y DiseñO Orientado A Objetos
 
Programacion Orientada a Objetos
Programacion Orientada a ObjetosProgramacion Orientada a Objetos
Programacion Orientada a Objetos
 
Etapas de Desarrollo Software
Etapas de Desarrollo SoftwareEtapas de Desarrollo Software
Etapas de Desarrollo Software
 

Similar to Proceso de desarrollo de sofware

Trabajo 2 exposicion
Trabajo 2 exposicionTrabajo 2 exposicion
Trabajo 2 exposicionEvelin Oña
 
Ingeniería de software Definicion,inicion,importancia y utilidad
Ingeniería de software Definicion,inicion,importancia y utilidadIngeniería de software Definicion,inicion,importancia y utilidad
Ingeniería de software Definicion,inicion,importancia y utilidadXKWDX
 
Proceso y diseño de un software
Proceso y diseño  de un   softwareProceso y diseño  de un   software
Proceso y diseño de un softwarejafigueroa26
 
Proceso y diseño de un software
Proceso y diseño  de un   softwareProceso y diseño  de un   software
Proceso y diseño de un softwareCESARCONTRERAS009
 
Proceso y diseño de un software
Proceso y diseño  de un   softwareProceso y diseño  de un   software
Proceso y diseño de un softwareCESARCONTRERAS009
 
Proceso y diseño de un software
Proceso y diseño  de un   softwareProceso y diseño  de un   software
Proceso y diseño de un softwarejafigueroa26
 
Seleccion de tecnicas de ingenieria de software
Seleccion de tecnicas de ingenieria de softwareSeleccion de tecnicas de ingenieria de software
Seleccion de tecnicas de ingenieria de softwareIngris Argueta
 
Ciclo de vida de un proyecto de Software.
Ciclo de vida de un proyecto de Software.Ciclo de vida de un proyecto de Software.
Ciclo de vida de un proyecto de Software.Edwin Belduma
 
ingenieradesoftwareii-140115210933-phpapp01 (1).pptx
ingenieradesoftwareii-140115210933-phpapp01 (1).pptxingenieradesoftwareii-140115210933-phpapp01 (1).pptx
ingenieradesoftwareii-140115210933-phpapp01 (1).pptxMaikoUrizar1
 
Modelo de cascadaa
Modelo de cascadaaModelo de cascadaa
Modelo de cascadaamendez45
 
Trabajo diapositiva Software por Jhonatan Ruiz
Trabajo diapositiva  Software por Jhonatan RuizTrabajo diapositiva  Software por Jhonatan Ruiz
Trabajo diapositiva Software por Jhonatan Ruizjhonatanalex
 
Trabajo diapositiva modulo 3 de jhonatan
Trabajo diapositiva modulo 3 de jhonatanTrabajo diapositiva modulo 3 de jhonatan
Trabajo diapositiva modulo 3 de jhonatanjhonatanalex
 

Similar to Proceso de desarrollo de sofware (20)

Trabajo 2 exposicion
Trabajo 2 exposicionTrabajo 2 exposicion
Trabajo 2 exposicion
 
software
softwaresoftware
software
 
Trabajo de desarrollo desoftware
Trabajo de desarrollo desoftwareTrabajo de desarrollo desoftware
Trabajo de desarrollo desoftware
 
Ingeniería de software Definicion,inicion,importancia y utilidad
Ingeniería de software Definicion,inicion,importancia y utilidadIngeniería de software Definicion,inicion,importancia y utilidad
Ingeniería de software Definicion,inicion,importancia y utilidad
 
Proceso del Software
Proceso del Software Proceso del Software
Proceso del Software
 
Ingenieria de software
Ingenieria de softwareIngenieria de software
Ingenieria de software
 
Sdf p4
Sdf p4Sdf p4
Sdf p4
 
Mod 6.2 introducción al análisis
Mod 6.2 introducción al análisisMod 6.2 introducción al análisis
Mod 6.2 introducción al análisis
 
Proceso y diseño de un software
Proceso y diseño  de un   softwareProceso y diseño  de un   software
Proceso y diseño de un software
 
Proceso y diseño de un software
Proceso y diseño  de un   softwareProceso y diseño  de un   software
Proceso y diseño de un software
 
Proceso y diseño de un software
Proceso y diseño  de un   softwareProceso y diseño  de un   software
Proceso y diseño de un software
 
Proceso y diseño de un software
Proceso y diseño  de un   softwareProceso y diseño  de un   software
Proceso y diseño de un software
 
Seleccion de tecnicas de ingenieria de software
Seleccion de tecnicas de ingenieria de softwareSeleccion de tecnicas de ingenieria de software
Seleccion de tecnicas de ingenieria de software
 
Etapas del diseño .pdf
Etapas del diseño .pdfEtapas del diseño .pdf
Etapas del diseño .pdf
 
Ciclo de vida de un proyecto de Software.
Ciclo de vida de un proyecto de Software.Ciclo de vida de un proyecto de Software.
Ciclo de vida de un proyecto de Software.
 
ingenieradesoftwareii-140115210933-phpapp01 (1).pptx
ingenieradesoftwareii-140115210933-phpapp01 (1).pptxingenieradesoftwareii-140115210933-phpapp01 (1).pptx
ingenieradesoftwareii-140115210933-phpapp01 (1).pptx
 
Modelo de cascadaa
Modelo de cascadaaModelo de cascadaa
Modelo de cascadaa
 
Ciclo de vida y diseño de sistemas de informacion
Ciclo de vida y diseño de sistemas de informacionCiclo de vida y diseño de sistemas de informacion
Ciclo de vida y diseño de sistemas de informacion
 
Trabajo diapositiva Software por Jhonatan Ruiz
Trabajo diapositiva  Software por Jhonatan RuizTrabajo diapositiva  Software por Jhonatan Ruiz
Trabajo diapositiva Software por Jhonatan Ruiz
 
Trabajo diapositiva modulo 3 de jhonatan
Trabajo diapositiva modulo 3 de jhonatanTrabajo diapositiva modulo 3 de jhonatan
Trabajo diapositiva modulo 3 de jhonatan
 

Proceso de desarrollo de sofware

  • 1. UNIVERSIDAD DE ORIENTE DEPARTAMENTO DE INGENIERÍA DE SISTEMAS ANÁLISIS Y DISEÑO DE SISTEMAS DE INFORMACIÓN – UNIDAD IV Proceso de desarrollo de software Facilitador: Bachilleres: Prof. Jesús Chaparro Barreto Daniela Grillet Diego Equipo LICAUROS Idrogo Simon MATURÍN, Enero de 2013
  • 2. Proceso de desarrollo de software Introducción Un sistema informático está compuesto por hardware y software. En cuanto al hardware, su producción se realiza sistemáticamente y la base de conocimiento para el desarrollo de dicha actividad está claramente definida.
  • 3. Proceso de desarrollo de software Introducción Sin embargo, respecto del software, su construcción y resultados han sido históricamente cuestionados debido a los problemas asociados. El “IEEE Standard Glossary of Software Engineering Terminology” ha desarrollado una definición más completa para ingeniería del software: La aplicación de un enfoque sistemático, disciplinado y cuantificable para el desarrollo, operación y mantenimiento del software; es decir, la aplicación de ingeniería al software.
  • 4. Proceso de desarrollo de software Introducción Pressman, caracteriza la Ingeniería de Software como “una tecnología multicapa”
  • 5. Proceso de desarrollo de software Introducción Las herramientas de la ingeniería del software proporcionan un soporte automático o semi-automático para el proceso y los métodos, a estas herramientas se les llama herramientas CASE (Computer-Aided Software Engineering). Los métodos de la ingeniería de software indican cómo construir técnicamente el software. Los métodos abarcan una gran gama de tareas que incluyen análisis de requisitos, diseño, construcción de programas, pruebas y mantenimiento.
  • 6. Proceso de desarrollo de software Introducción El proceso define un marco de trabajo para un conjunto de áreas clave, las cuales forman la base del control de gestión de proyectos de software y establecen el contexto en el cual: se aplican los métodos técnicos, se producen resultados de trabajo, se establecen hitos, se asegura la calidad y el cambio se gestiona adecuadamente.
  • 7. Proceso de desarrollo de software Introducción La gestión total de la calidad y las filosofías similares fomentan una cultura continua de mejoras de procesos que conduce al desarrollo de enfoques cada vez más robustos para la ingeniería del software.
  • 8. Proceso de desarrollo de software El proceso de desarrollo del software Un proceso de desarrollo de software tiene como propósito la producción eficaz y eficiente de un producto software que reúna los requisitos del cliente.
  • 9. Proceso de desarrollo de software El proceso de desarrollo del software Aunque un proyecto de desarrollo de software es equiparable en muchos aspectos a cualquier otro proyecto de ingeniería, en el desarrollo de software hay una serie de desafíos adicionales, relativos esencialmente a la naturaleza del producto obtenido. Un producto software en sí es complejo, es prácticamente inviable conseguir un 100% de confiabilidad de un programa por pequeño que sea.
  • 10. Proceso de desarrollo de software El proceso de desarrollo del software Un producto software es intangible y por lo general muy abstracto, esto dificulta la definición del producto y sus requisitos, sobre todo cuando no se tiene precedentes en productos software similares. Esto hace que los requisitos sean difíciles de consolidar tempranamente.
  • 11. Proceso de desarrollo de software El proceso de desarrollo del software El proceso de desarrollo de software no es único. No existe un proceso de software universal que sea efectivo para todos los contextos de proyectos de desarrollo. Debido a esta diversidad, es difícil automatizar todo un proceso de desarrollo de software.
  • 12. Proceso de desarrollo de software El proceso de desarrollo del software A pesar de la variedad de propuestas de proceso de software, existe un conjunto de actividades fundamentales que se encuentran presentes en todos ellos : 1. Especificación de software: Se debe definir la funcionalidad y restricciones operacionales que debe cumplir el software. 2. Diseño e Implementación: Se diseña y construye el software de acuerdo a la especificación. 3. Validación: El software debe validarse, para asegurar que cumpla con lo que quiere el cliente. 4. Evolución: El software debe evolucionar, para adaptarse a las necesidades del cliente.
  • 13. Proceso de desarrollo de software El proceso de desarrollo del software Otra perspectiva utilizada para determinar los elementos del proceso de desarrollo de software es establecer las relaciones entre elementos que permitan responder Quién debe hacer Qué, Cuándo y Cómo debe hacerlo
  • 14. Proceso de desarrollo de software El proceso de desarrollo del software •Quién: Las Personas participantes en el proyecto de desarrollo desempeñando uno o más Roles específicos. •Qué: Un Artefacto3 es producido por un Rol en una de sus Actividades. Los Artefactos se especifican utilizando Notaciones específicas. Las Herramientas apoyan la elaboración de Artefactos soportando ciertas Notaciones. •Cómo y Cuándo: Las Actividades son una serie de pasos que lleva a cabo un Rol durante el proceso de desarrollo. El avance del proyecto está controlado mediante hitos que establecen un determinado estado de terminación de ciertos Artefactos.
  • 15. Proceso de desarrollo de software Modelos de proceso software Sommerville define modelo de proceso de software como “Una representación simplificada de un proceso de software, representada desde una perspectiva específica. Por su naturaleza los modelos son simplificados, por lo tanto un modelo de procesos del software es una abstracción de un proceso real.”
  • 16. Proceso de desarrollo de software Modelos de proceso software Codificar y corregir Este es el modelo básico utilizado en los inicios del desarrollo de software. Contiene dos pasos: •Escribir código . •Corregir problemas en el código. Se trata de primero implementar algo de código y luego pensar acerca de requisitos, diseño, validación, y mantenimiento.
  • 17. Proceso de desarrollo de software Modelos de proceso software Codificar y corregir Este modelo tiene tres problemas principales : •Después de un número de correcciones, el código puede tener una muy mala estructura, hace que los arreglos sean muy costosos. •Frecuentemente, aún el software bien diseñado, no se ajusta a las necesidades del usuario, por lo que es rechazado o su reconstrucción es muy cara. •El código es difícil de reparar por su pobre preparación para probar y modificar.
  • 18. Proceso de desarrollo de software Modelos de proceso software Modelo en cascada 1.Definición de los requisitos: Los servicios, restricciones y objetivos son establecidos con los usuarios del sistema. Se busca hacer esta definición en detalle. 2.Diseño de software: Se particiona el sistema en sistemas de software o hardware. Se establece la arquitectura total del sistema. Se identifican y describen las abstracciones y relaciones de los componentes del sistema. 3.Implementación y pruebas unitarias: Construcción de los módulos y unidades de software. Se realizan pruebas de cada unidad.
  • 19. Proceso de desarrollo de software Modelos de proceso software Modelo en cascada 4. Integración y pruebas del sistema: Se integran todas las unidades. Se prueban en conjunto. Se entrega el conjunto probado al cliente. 5. Operación y mantenimiento: Generalmente es la fase más larga. El sistema es puesto en marcha y se realiza la corrección de errores descubiertos. Se realizan mejoras de implementación. Se identifican nuevos requisitos.
  • 20. Proceso de desarrollo de software Modelos de proceso software Modelo en cascada Una fase no comienza hasta que termine la fase anterior y generalmente se incluye la corrección de los problemas encontrados en fases previas.
  • 21. Proceso de desarrollo de software Modelos de proceso software Desarrollo evolutivo Una ventaja de este modelo es que se obtiene una rápida realimentación del usuario, ya que las actividades de especificación, desarrollo y pruebas se ejecutan en cada iteración.
  • 22. Proceso de desarrollo de software Modelos de proceso software Desarrollo evolutivo Desarrollo Exploratorio: El objetivo de este enfoque es explorar con el usuario los requisitos hasta llegar a un sistema final. El desarrollo comienza con las partes que se tiene más claras. El sistema evoluciona conforme se añaden nuevas características propuestas por el usuario.
  • 23. Proceso de desarrollo de software Modelos de proceso software Desarrollo evolutivo Enfoque utilizando prototipos: El objetivo es entender los requisitos del usuario y trabajar para mejorar la calidad de los requisitos. A diferencia del desarrollo exploratorio, se comienza por definir los requisitos que no están claros para el usuario y se utiliza un prototipo para experimentar con ellos. El prototipo ayuda a terminar de definir estos requisitos.
  • 24. Proceso de desarrollo de software Modelos de proceso software Desarrollo formal de sistemas Este modelo se basa en transformaciones formales de los requisitos hasta llegar a un programa ejecutable.
  • 25. Proceso de desarrollo de software Modelos de proceso software Desarrollo basado en reutilización Como su nombre lo indica, es un modelo fuertemente orientado a la reutilización. Este modelo consta de 4 fases ilustradas en la Figura.
  • 26. Proceso de desarrollo de software Modelos de proceso software Desarrollo basado en reutilización Las ventajas de este modelo son: •Disminuye el costo y esfuerzo de desarrollo. •Reduce el tiempo de entrega. •Disminuye los riesgos durante el desarrollo. Desventajas de este modelo: •Los “compromisos” en los requisitos son inevitables, por lo cual puede que el software no cumpla las expectativas del cliente. •Las actualizaciones de los componentes adquiridos no están en manos de los desarrolladores del sistema.
  • 27. Proceso de desarrollo de software Modelos de proceso software Procesos iterativos Mills sugirió el enfoque incremental de desarrollo como una forma de reducir la repetición del trabajo en el proceso de desarrollo y dar oportunidad de retrasar la toma de decisiones en los requisitos hasta adquirir experiencia con el sistema .
  • 28. Proceso de desarrollo de software Modelos de proceso software Procesos iterativos Entre las ventajas del modelo incremental se encuentran: •Los clientes no esperan hasta el fin del desarrollo para utilizar el sistema. Pueden empezar a usarlo desde el primer incremento. •Los clientes pueden aclarar los requisitos que no tengan claros conforme ven las entregas del sistema. •Se disminuye el riesgo de fracaso de todo el proyecto, ya que se puede distribuir en cada incremento. •Las partes más importantes del sistema son entregadas primero, por lo cual se realizan más pruebas en estos módulos y se disminuye el riesgo de fallos.
  • 29. Proceso de desarrollo de software Modelos de proceso software Procesos iterativos Algunas de las desventajas identificadas para este modelo son: •Cada incremento debe ser pequeño para limitar el riesgo (menos de 20.000 líneas). •Cada incremento debe aumentar la funcionalidad. •Es difícil establecer las correspondencias de los requisitos contra los incrementos. •Es difícil detectar las unidades o servicios genéricos para todo el sistema.
  • 30. Proceso de desarrollo de software Modelos de proceso software Procesos iterativos El modelo de desarrollo en espiral es actualmente uno de los más conocidos y fue propuesto por Boehm. El ciclo de desarrollo se representa como una espiral, en lugar de una serie de actividades sucesivas con retrospectiva de una actividad a otra.
  • 31. Proceso de desarrollo de software Modelos de proceso software Procesos iterativos Cada ciclo de desarrollo se divide en cuatro fases: 1.Definición de objetivos: Se definen los objetivos. Se definen las restricciones del proceso y del producto. Se realiza un diseño detallado del plan administrativo. Se identifican los riesgos y se elaboran estrategias alternativas dependiendo de estos. 2.Evaluación y reducción de riesgos: Se realiza un análisis detallado de cada riesgo identificado. Pueden desarrollarse prototipos para disminuir el riesgo de requisitos dudosos. Se llevan a cabo los pasos para reducir los riesgos.
  • 32. Proceso de desarrollo de software Modelos de proceso software Procesos iterativos 3.Desarrollo y validación: Se escoge el modelo de desarrollo después de la evaluación del riesgo. El modelo que se utilizará (cascada, sistemas formales, evolutivo, etc.) depende del riesgo identificado para esa fase. 4.Planificación: Se determina si continuar con otro ciclo. Se planea la siguiente fase del proyecto. Este modelo a diferencia de los otros toma en consideración explícitamente el riesgo, esta es una actividad importante en la administración del proyecto.
  • 33. Proceso de desarrollo de software Metodologías para desarrollo de software Un proceso de software detallado y completo suele denominarse “Metodología”. Las metodologías se basan en una combinación de los modelos de proceso genéricos (cascada, evolutivo, incremental, etc.). Adicionalmente una metodología debería definir con precisión los artefactos, roles y actividades involucrados, junto con prácticas y técnicas recomendadas, guías de adaptación de la metodología al proyecto, guías para uso de herramientas de apoyo, etc.
  • 34. Proceso de desarrollo de software Metodologías para desarrollo de software Metodologías estructuradas Los métodos estructurados comenzaron a desarrollarse a fines de los 70’s con la Programación Estructurada, luego a mediados de los 70’s aparecieron técnicas para el Diseño (por ejemplo: el diagrama de Estructura) primero y posteriormente para el Análisis (por ejemplo: Diagramas de Flujo de Datos). Estas metodologías son particularmente apropiadas en proyectos que utilizan para la implementación lenguajes de 3ra y 4ta generación.
  • 35. Proceso de desarrollo de software Metodologías para desarrollo de software Metodologías orientadas a objetos Su historia va unida a la evolución de los lenguajes de programación orientada a objeto, los más representativos: a fines de los 60’s SIMULA, a fines de los 70’s Smalltalk-80, la primera versión de C++ por Bjarne Stroustrup en 1981 y actualmente Java11 o C# de Microsoft. A fines de los 80’s comenzaron a consolidarse algunos métodos Orientadas a Objeto.
  • 36. Proceso de desarrollo de software Metodologías para desarrollo de software Metodologías ágiles Las metodologías no ágiles son aquellas que están guiadas por una fuerte planificación durante todo el proceso de desarrollo; llamadas también metodologías tradicionales o clásicas, donde se realiza una intensa etapa de análisis y diseño antes de la construcción del sistema.
  • 37. Proceso de desarrollo de software Metodologías para desarrollo de software Metodologías ágiles Un proceso es ágil cuando el desarrollo de software es incremental (entregas pequeñas de software, con ciclos rápidos), cooperativo (cliente y desarrolladores trabajan juntos constantemente con una cercana comunicación), sencillo (el método en sí mismo es fácil de aprender y modificar, bien documentado), y adaptable (permite realizar cambios de último momento).
  • 38. Proceso de desarrollo de software Metodologías para desarrollo de software Metodologías ágiles Entre las metodologías ágiles identificadas en: •Extreme Programming. •Scrum. •Familia de Metodologías Crystal. •Feature Driven Development. •Proceso Unificado Rational, una configuración ágil. •Dynamic Systems Development Method. •Adaptive Software Development. •Open Source Software Development .
  • 39. Proceso de desarrollo de software Herramientas CASE para el proceso de desarrollo de Software Las Herramientas de Ayuda al Desarrollo de Sistemas de Información, surgieron para intentar dar solución a los problemas inherentes a los proyectos de generación de aplicaciones informáticas: plazos y presupuestos incumplidos, insatisfacción del usuario, escasa productividad y baja calidad de los desarrollos, entre otros. Algunas de estas herramientas se dirigen principalmente a mejorar la calidad, como es el caso de las herramientas CASE.
  • 40. Proceso de desarrollo de software Herramientas CASE para el proceso de desarrollo de Software Se puede definir a las Herramientas CASE como un conjunto de programas y ayudas que dan asistencia a los analistas, ingenieros de software y desarrolladores, durante todos los pasos del Ciclo de Vida de desarrollo de un Software.
  • 41. Proceso de desarrollo de software Herramientas CASE para el proceso de desarrollo de Software El empleo de herramientas Case permiten integrar el proceso de ciclo de vida: • Análisis de datos y procesos integrados mediante un repositorio. • Generación de interfaces entre el análisis y el diseño. • Generación del código a partir del diseño. • Control de mantenimiento.
  • 42. Proceso de desarrollo de software Herramientas CASE para el proceso de desarrollo de Software Tipos de Herramientas CASE No existe una única clasificación de herramientas CASE, es difícil incluirlas en una clase determinada. Podrían clasificarse atendiendo a: • Las plataformas que soportan. • Las fases del ciclo de vida del desarrollo de sistemas que abarca. • La arquitectura de las aplicaciones que produce. • Su funcionalidad.
  • 43. Proceso de desarrollo de software Herramientas CASE para el proceso de desarrollo de Software Tipos de Herramientas CASE I-CASE : abarcan todas las fases del ciclo de vida del desarrollo de sistemas. Las herramientas I-CASE se basan en una metodología. Tienen un repositorio y aportan técnicas estructuradas para todas las fases del ciclo de vida. Estas son las características que les confieren su mayor ventaja: una mejora de la calidad de los desarrollos. Sin embargo, no todas ellas son modernas en el sentido de aprovechar la potencia de las estaciones de trabajo o la utilización de lenguajes de alto nivel o técnicas de prototipo.
  • 44. Proceso de desarrollo de software Herramientas CASE para el proceso de desarrollo de Software Tipos de Herramientas CASE U-CASE: orientadas a la automatización y soporte de las actividades desarrolladas durante las primeras fases del desarrollo: análisis y diseño. Una estrategia posible es utilizar una U-CASE para análisis y diseño, combinada con otras herramientas más modernas para las fases de construcción y pruebas. En este caso, habría que vigilar cuidadosamente la integración entre las distintas herramientas. L-CASE : dirigidas a las últimas fases del desarrollo: construcción e implantación.
  • 45. Proceso de desarrollo de software Herramientas CASE para el proceso de desarrollo de Software Beneficios de las Herramientas CASE 1. Facilidad para la revisión de aplicaciones La experiencia muestra que una vez que las aplicaciones se implementan, se emplean por mucho tiempo. Las herramientas CASE proporcionan un beneficio substancial para las organizaciones al facilitar la revisión de las aplicaciones. Contar con un depósito central agiliza el proceso de revisión ya que éste proporciona bases para las definiciones y estándares para los datos. Las capacidades de generación interna, si se encuentran presentes, contribuyen a modificar el sistema por medio de las especificaciones más que por los ajustes al código fuente.
  • 46. Proceso de desarrollo de software Herramientas CASE para el proceso de desarrollo de Software Beneficios de las Herramientas CASE 2. Soporte para el desarrollo de prototipos de sistemas En general, el desarrollo de prototipos de aplicaciones toma varias formas. En ocasiones se desarrollan diseños para pantallas y reportes con la finalidad de mostrar la organización y composición de los datos, encabezados y mensajes. Los ajustes necesarios al diseño se hacen con rapidez para alterar la presentación y las características de la interface. Sin embargo, no se prepara el código fuente, de naturaleza orientada hacia procedimientos, como una parte del prototipo.
  • 47. Proceso de desarrollo de software Herramientas CASE para el proceso de desarrollo de Software Beneficios de las Herramientas CASE 3. Generación de código La ventaja más visible de esta característica es la disminución del tiempo necesario para preparar un programa. Sin embargo, la generación del código también asegura una estructura estándar y consistente para el programa (lo que tiene gran influencia en el mantenimiento) y disminuye la ocurrencia de varios tipos de errores, mejorando de esta manera la calidad. Las características de la generación del código permiten volver a utilizar el software y las estructuras estándares para generar dicho código, así como el cambio de una especificación modular, lo que significa volver a generar el código y los enlaces con otros módulos.