6. *ORDENA RIGUROSAMENTE
LAS ETAPAS DEL PROCESO
PARA EL DESARROLLO DEL
SOFTWARE.
*SOLO PODRIA SER APLICABLE
A ESCASOS Y PEQUEÑOS
SISTEMAS A DESARROLLAR
*EL PASO DE UNA DE LAS
ETAPAS A OTRA DEBEN SER SIN
8. Fases del modelo de cascada
INGENIERÍA Y ANÁLISIS DEL SISTEMA:
Análisis y de diseño de todos los componentes del sistema
computacional.
Análisisde Requisitos Software:
Se debe conocer que necesita el usuario para saber que
necesidades debemos cubrir.
9. · Diseño: En esta fase se realizan los algoritmos necesarios para que se cumplan
los requerimientos del usuario así como también los análisis necesarios para saber que
herramientas usar en la etapa de Codificación. Se dividen en:
Diseño de Alto Nivel o Arquitectónico
Diseño Detallado
· Codificación: Es la fase de programación propiamente dicha.
Pruebas: Las componentes una vez programadas, se ensamblan para formar el
sistema y se demuestra que trabaja correctamente antes de ser puesto en práctica por
el usuario.
Existen varios tipos de Pruebas:
Pruebas de unidad
Pruebas de integración
Pruebas de sistema.
Pruebas de aceptación
Mantenimiento: El software necesitará cambios después de la entrega. Los tipos de
mantenimiento son:
Mantenimiento Correctivo
Mantenimiento Preventivo y Perfectivo
Mantenimiento Evolutivo
10. No se mezclan las fases.
Es perfecto para proyectos que son rigidos.
Proyectos que especifiquen muy bien los
requerimientos.
Proyectos en que se conozca la herramienta a
utilizar.
Sumamente sencillo ya que sigue los pasos
intuitivos necesarios a la hora de desarrollar el
Software.
11. Puede ser catastrófico para un proyecto
grande.
provoca un gran atraso trabajando en
este modelo, ya que este es muy
restrictivo y no permite movilizarse entre
fases.
El cliente debe tener paciencia yq que el
software estara disponible hasta finalizar
el proyecto
Un error detectado por el cliente puede
ser desastroso.
12. 3.2 MODELO EVOLUTIVO
El modelo evolutivo consta del desarrollo de una versión inicial
que luego de exponerse se va refinando de acuerdo de los
comentarios o nuevos requerimientos por parte del cliente o del
usuario final.
Tipos de Modelo Evolutivo:
• Desarrollo exploratorio: El objetivo del proceso es trabajar
con el cliente para explorar sus requerimientos.
• Prototipos desechables: El objetivo es comprender los
requerimientos del cliente y desarrollar una definición mejorada
de los requerimientos para el sistema. El prototipo se centra en
experimentar con los requerimientos del cliente.
13. VENTAJAS Y DESVENTAJAS
MODELO EVOLUTIVO
VENTAJA: Suele traer más ventajas en
comparación con un enfoque en cascada ya
que el sistema se va ajustando a las
necesidades del cliente.
DESVENTAJA: Tiene dos grandes problemas
en una perspectiva de ingeniería.
El proceso no es visible: Si los sistemas se
desarrollan rápidamente, no es rentable
producir documentos que reflejen cada versión
del sistema.
14. 3.3 MODELOS ESPECIALES:
Modelo Iterativo Incremental
Es un modelo de tipo evolutivo que está
basado en varios ciclos cascada.
Diagrama genérico del desarrollo evolutivo
incremental
16. El cliente utiliza este sistema básico para
evaluar y poder aportar para el desarrollo de
las demás versiones.
17. 3.3 MODELOS ESPECIALES:
Modelo Espiral
Proporciona potencial para desarrollo rápido de
versiones incrementales. En el modelo Espiral
el software se construye en una serie de
versiones incrementales.
El modelo se divide en un número de
Actividades de marco de trabajo, llamadas
“regiones de tareas”
Existen entre tres y seis regiones de tareas
19. 3.4 EL PROCESO UNIFICADO DE
DESARROLLO DE SOFTWARE.
Es un marco de desarrollo de software que se
caracteriza por estar dirigido por casos de uso,
centrado en la arquitectura y por ser iterativo e
incremental.
20. CASOS DE USO
*Un caso de uso es un fragmento de
funcionalidad del sistema que proporciona un
resultado de valor a un usuario. Los casos de
uso modelan los requerimientos funcionales del
sistema.
*Todos los casos de uso juntos constituyen el
modelo de casos de uso.
* Los casos de uso también guían el proceso de
desarrollo (diseño, implementación, y prueba).
Basándose en los casos de uso los
desarrolladores crean una serie de modelos de
diseño e implementación que llevan a cabo los
casos de uso.
21. CENTRADO EN LA
ARQUITECTURA.
La arquitectura de un sistema software
se describe mediante diferentes vistas
del
sistema en construcción.
El concepto de arquitectura software
incluye los aspectos estáticos y
dinámicos más
significativos del sistema.
22. ITERATIVO E
INCREMENTAL
Es práctico dividir el esfuerzo de
desarrollo de un proyecto de software
en partes mas pequeñas o mini
proyectos.
Cada mini proyecto es una iteración que
resulta en un incremento.
Las iteraciones deben estar controladas.
Esto significa que deben seleccionarse
y ejecutarse de una forma planificada.
23. EL CICLO DE VIDA DEL PROCESO
UNIFICADO.
El Proceso Unificado se repite a lo largo de una serie de
ciclos que constituyen la vida de un sistema. Cada ciclo
constituye una versión del sistema.
Fases:Cada ciclo constas de cuatro fases:
inicio, elaboración, construcción, y transición.
25. ¿¿¿QUÉ ES UN PROCESO SOFTWARE???
Es un conjunto de actividades y resultados asociados que producen un producto de
software.
Es uno de los componentes de un método de desarrollo de software. Existen 4
actividades fundamentales de proceso, comunes para todos los procesos de software:
Especificación del software
Desarrollo del software
Validación del software
Evolución del software
¿¿¿QUÉ ES UN PROCESO SOFTWARE? ?? CICLO DE VIDA
Ciclo de vida Ciclo de desarrollo
Desde el análisis hasta
la entrega al usuario
Toda la vida del sistema:
desde la concepción
hasta el fin de uso
26. ESTÁNDARES EN INGENIERÍA DEL SOFTWARE
Estándar: conjunto de criterios aprobados, documentados y disponibles para
determinar la adecuación de una acción (estándar de proceso) o de un objeto
(estándar de producto)
Guía: conjunto de criterios bien definidos y documentados que encaminan una
actividad o tarea
es más flexible que un estándar
Los estándares son útiles porque:
agrupan lo mejor y más apropiado de las buenas prácticas y usos del
desarrollo de software
engloban los “conocimientos” que son patrimonio de una organización
proporcionan un marco para implementar procedimientos de aseguramiento
de la calidad
proporcionan continuidad entre el trabajo de distintas personas
27. Significado de las siglas IEEE
IEEE (leído i-e-cubo en España e i-
triple-e en Hispanoamérica)
corresponde a las siglas de (Institute
of Electrical and Electronics
Engineers) en español Instituto de
Ingenieros Eléctricos y Electrónicos
28. Que es la IEEE
una asociación técnico-profesional
mundial dedicada a la
estandarización, entre otras cosas. Con
cerca de 400.000 miembros y
voluntarios en 160 países, es la mayor
asociación internacional sin ánimo de
lucro formada por profesionales de las
nuevas tecnologías, tales como
ingenieros eléctricos, ingenieros en
electrónica, científicos de la
computación, ingenieros en
informática, ingenieros en
biomédica, ingenieros en
telecomunicación e ingenieros en
29. Su creación se remonta al año
1884, contando entre sus fundadores a
personalidades de la talla de Thomas Alva
Edison, Alexander Graham Bell y Franklin
Leonard Pope. En 1963 adoptó el nombre
de IEEE al fusionarse asociaciones como el
AIEE (American Institute of Electrical
Engineers) y el IRE (Institute of Radio
Engineers).
30. Según el mismo IEEE, su trabajo es promover la creatividad, el
desarrollo y la integración, compartir y aplicar los avances en las
tecnologías de la información, electrónica y ciencias en general
para beneficio de la humanidad y de los mismos profesionales.
Algunos de sus estándares son:
VHDL
POSIX
IEEE 1394
IEEE 488
IEEE 802
IEEE 754
31. Estandar VHDL
Es el acrónimo que representa la
combinación de VHSIC y HDL, donde
VHSIC es el acrónimo de Very High
Speed Integrated Circuit y HDL es a su
vez el acrónimo de Hardware
Description Language.
Es un lenguaje definido por el IEEE
(Institute of Electrical and Electronics
Engineers) (ANSI/IEEE 1076-1993)
usado por ingenieros para describir
circuitos digitales.
32. Estandar POSIX
Son una familia de estándares de
llamadas al sistema operativo definidos
por el IEEE y especificados formalmente
en el IEEE 1003. Persiguen generalizar
las interfaces de los sistemas operativos
para que una misma aplicación pueda
ejecutarse en distintas plataformas.
Estos estándares surgieron de un
proyecto de normalización de las API y
describen un conjunto de interfaces de
aplicación adaptables a una gran
variedad de implementaciones de
sistemas operativos.
33. Estandar IEEE 1394
El IEEE 1394 (conocido como
FireWire por Apple Inc. y como i.Link
por Sony) es un estándar
multiplataforma para la entrada y
salida de datos en serie a gran
velocidad. Suele utilizarse para la
interconexión de dispositivos digitales
como cámaras digitales y
videocámaras a computadoras.
34. Estandar IEEE 488
es un estándar bus de datos digital de
corto rango desarrollado por Hewlett-
Packard en los años 1970 para
conectar dispositivos de test y medida
con dispositivos que los controlen
como un ordenador
35. Estandar IEEE 802
Es un estudio de estándares
elaborado por el Instituto de
Ingenieros Eléctricos y Electrónicos
(IEEE) que actúa sobre Redes de
ordenadores. Concretamente y según
su propia definición sobre redes de
área local (RAL, en inglés LAN) y
redes de área metropolitana (MAN en
inglés)
36. Estandar IEEE 754
es el estándar más extendido para las
computaciones en coma flotante, y es
seguido por muchas de las mejoras de CPU
y FPU. El estándar define formatos para la
representación de números en coma flotante
(incluyendo el cero) y valores
desnormalizados, así como valores
especiales como infinito y NaN, con un
conjunto de operaciones en coma flotante
que trabaja sobre estos valores. También
especifica cuatro modos de redondeo y cinco
excepciones (incluyendo cuándo ocurren
dichas excepciones y qué sucede en esos
momentos).
37. 3.6 HERRAMIENTAS CASE.
*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.
*Conjunto de métodos, utilidades y técnicas
que facilitan la automatización del
ciclo de vida del desarrollo de sistemas de
información, completamente o en
alguna de sus fases.
38. HISTORIA DE LAS
HERRAMIENTAS CASE
Las herramientas CASE iniciaron con un
procesador de palabras que fue usado
para crear y manipular documentación.
En los años 70´s vieron la introducción
de técnicas graficas y diagramas de
flujo de datos.
39. EVOLUCION DE LAS
HERRAMIENTAS CASE.
Inicio de los 80 Mediados de los finales de los 80 Inicio de los 90
80
Ayuda en la Diseño automático Generación Metodología
documentación de análisis y automática de Inteligente.
por computadora. pruebas. código desde
especificaciones Interface de
Diagramación Repositorios de diseño. Usuario reusable
asistida por automáticos de como una
computadora. información de metodología de
sistemas. desarrollo.
Herramientas de
análisis y diseño.
40. CLASIFICACION DE LAS
HERRAMIENTAS CASE.
No existe una única clasificación de
herramientas CASE y, en ocasiones, 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 cubren.
• La arquitectura de las aplicaciones que
producen.
• Su funcionalidad.
41. Las herramientas CASE, en función de las
fases del ciclo de vida abarcadas, se
pueden agrupar de la forma siguiente:
1. Herramientas integradas, I-CASE (Integrated CASE, CASE
integrado):
abarcan todas las fases del ciclo de vida del desarrollo de sistemas.
Son
llamadas también CASE workbench.
2. Herramientas de alto nivel, U-CASE (Upper CASE - CASE
superior) o
front-end, orientadas a la automatización y soporte de las actividades
desarrolladas durante las primeras fases del desarrollo: análisis y
diseño.
3. Herramientas de bajo nivel, L-CASE (Lower CASE - CASE
inferior) o
back-end, dirigidas a las últimas fases del desarrollo: construcción e
implantación.
4. Juegos de herramientas o Tools-Case, son el tipo más simple de
herramientas CASE. Automatizan una fase dentro del ciclo de vida.
Dentro
42. Otra posible clasificación, utilizando la
funcionalidad como criterio principal, es la
siguiente:
Herramientas de planificación de sistemas de
gestión. Sirven para modelizar los requisitos de
información estratégica de una organización. Su
objetivo principal es ayudar a comprender mejor cómo
se mueve la información entre las distintas unidades
organizativas.
Herramientas de análisis y diseño. Permiten al
desarrollador crear un modelo del sistema que se va a
construir y también la evaluación de la validez y
consistencia de este modelo. Proporcionan un grado de
confianza en la representación del análisis y ayudan a
eliminar errores con anticipación.
• Herramientas de análisis y diseño (Modelamiento).
• Herramientas de creación de prototipos y de simulación.
• Herramientas para el diseño y desarrollo de interfaces.
• Máquinas de análisis y diseño (Modelamiento).
43. Herramientas de programación. Se engloban aquí los
compiladores, los editores y los depuradores de los
lenguajes de programación convencionales.
Ejemplos de estas herramientas son:
• Herramientas de codificación convencionales.
• Herramientas de codificación de cuarta generación.
• Herramientas de programación orientadas a los objetos.
Herramientas de integración y prueba: Sirven de ayuda a
la adquisición, medición, simulación y prueba de los equipos
lógicos desarrollados. Entre las más utilizadas están:
• Herramientas de análisis estático.
• Herramientas de codificación de cuarta generación.
• Herramientas de programación orientadas a los objetos.
44. Herramientas de gestión de prototipos. Los
prototipos son utilizados ampliamente en el
desarrollo de aplicaciones, para la evaluación
de especificaciones de un sistema de
información, o para un mejor entendimiento de
cómo los requisitos de un sistema de
información se ajustan a los objetivos
perseguidos.
Herramientas de mantenimiento: La
categoría de herramientas de mantenimiento
se puede subdividir en:
• Herramientas de ingeniería inversa.
• Herramientas de reestructuración y análisis de
45. Otra clasificación, diferencia las
funciones CASE en cinco
grupos:
Repositorio:
Re-ingeniería:
Soporte del ciclo de vida:
Soporte de proyecto:
Mejora continua de calidad:
47. Erwin.
Es una herramienta de diseño de base de datos. Brinda
productividad, en diseño, generación y mantenimiento de
aplicaciones.
Permite visualizar la estructura, los elementos
importantes, y optimizar el diseño de la base de datos.
Genera automáticamente las tablas y miles de líneas de
stored procedure y triggers para los principales tipos de
base de datos.
ERwin hace fácil el diseño de una base de datos. Los
diseñadores de bases de datos sólo apuntan y pulsan un
botón para crear un gráfico del modelo E-R (Entidad-
relación) de todos sus requerimientos de datos y capturar
las reglas de negocio en un
modelo lógico, mostrando todas las
entidades, atributos, relaciones, y llaves importantes.
49. ERwin establece una conexión entre una base de datos
diseñada y una base de datos, permitiendo transferencia entre
ambas y la aplicación de ingeniería reversa. Usando esta
conexión, Erwin genera automáticamente
tablas, vistas, índices, reglas de integridad referencial (llaves
primarias, llaves foraneas), valores por defecto y restricciones
de campos ydominios.
50. ERwin soporta principalmente bases de datos relacionales
SQL y bases de datos que incluyen Oracle, Microsoft SQL
Server, Sybase, DB2, e Informix. El mismo modelo puede ser
usado para generar múltiples bases de datos, o convertir una
aplicación de unaplataforma de base de datos a otra.
51. ESPECIFICACIONES TECNICAS.
Software de Aplicación Compatibles:
NetDynamics, PowerBuilder, PROGRESS, Visual Basic
Bases de Datos Compatibles:
CA-Clipper, CA-OpenIngres, DB2 for MVS y DB2 for OS/390, DB2 UDB,
dBASE, FoxPro,
HiRDB, Informix, InterBase, Microsoft Access, Microsoft SQL Server, Oracle,
Paradox,
Rdb, Red Brick Warehouse, SAS, SQL Anywhere, SQLBase, Sybase,
Teradata.
!Sistemas Operativos Compatibles:
Windows NT, Windows 95, Windows 98
!Requerimientos Técnicos:
Mínimo 10 MB de espacio de disco duro, 16 MB RAM (32 MB RAM
recomendado para
modelos largos.)