2. Conceptualización de Tecnología
Orientada a Objetos
La Tecnología Orientada a Objetos es un nuevo enfoque
sobre la manera de organizar las diferentes piezas que
componen un sistema de información (software), como
en el hardware (equipo físico), la base de datos e incluso,
en organizaciones todas estas piezas se denominan
"objetos", los cuales son pequeños subsistemas
independientes con datos propios sobre estos elementos
y sus clases y tipos, rigen tales propiedades como
herencia, comunicación con lenguajes, polimorfismos y
otros que en conjunto permiten ventajas prácticas.
3. La TOO se fundamenta en el proceso de construcción y
utilización de conocimientos, por lo tanto, objetos y clases
son los pasos más importantes en la búsqueda de una
nueva revolución que reemplace, esta vez, parte del
esfuerzo que implica la organización y utilización del
conocimiento, del mismo modo que en la primera, las
máquinas reemplazaron el esfuerzo físico del hombre y de
los animales, permitiendo el vertiginoso avance del mundo.
En Tecnología Orientado a Objetos (TOO) a los conceptos se
les llama objetos, en consecuencia, los OBJETOS son
MODELOS de entes del mundo real. Los percibimos porque
tienen límites que los esperan de su medio ambiente y de
los demás (IDENTIDAD). Se encuentran en un ESTADO
específico en el mundo.
4. Un objeto puede ser concreto (material)o
abstracto (inmaterial), simple o complejo; pero
siempre estará compuesto de DATOS y
OPERACIONES.
Ejemplos:
Un libro, una factura, una organización
Un avión, el vuelo de un avión, una reserva de
avión
Un icono en la pantalla, a la que se puede
señalar y abrir
5. Metodologías emergentes de
desarrollo de Software
METODOLOGÍAS DE DESARROLLO
En ingeniería de software es un marco de trabajo usado para estructurar, planificar y
controlar el proceso de desarrollo en sistemas de información.
Introducción
Una metodología de desarrollo de software se refiere a un framework que es
usado para estructurar, planear y controlar el proceso de desarrollo en sistemas de
información. A lo largo del tiempo, una gran cantidad de métodos han sido
desarrollados diferenciándose por su fortaleza y debilidad. El framework para
metodología de desarrollo de software consiste en:
Una filosofía de desarrollo de programas de computación con el enfoque del
proceso de desarrollo de software Herramientas, modelos y métodos para asistir al
proceso de desarrollo de software. Estos frameworks son a menudo vinculados a
algún tipo de organización, que además desarrolla, apoya el uso y promueve la
metodología. La metodología es a menudo documentada en algún tipo de
documentación formal.
6. Cascada
• Es un proceso secuencial de desarrollo en el
que los pasos de desarrollo son vistos hacia
abajo a través de las fases de análisis de las
necesidades, el diseño, implementación,
pruebas (validación), la integración, y
mantenimiento.
7. Principios básicos del modelo de cascada :
El proyecto está dividido en fases secuenciales.
Hace hincapié en la planificación, los horarios, fechas, presupuestos y ejecución de
todo un sistema de una sola vez.
Un estricto control se mantiene durante la vida del proyecto a través de la utilización
de una amplia documentación escrita, así como a través de comentarios y aprobación
por el usuario y la tecnología de la información de gestión al final de la mayoría de las
fases antes de comenzar la próxima fase.
Análisis de requisitos: En esta fase se analizan las necesidades de los usuarios
finales del software para determinar qué objetivos debe cubrir. Se lleva acabo
documento de especificación de requisitos que contiene la especificación
completa de lo que debe hacer el sistema sin entrar en detalles internos. Es
importante señalar que en esta etapa se debe consensuar todo lo que se requiere
del sistema y será aquello lo que seguirá en las siguientes etapas, no pudiéndose
requerir nuevos resultados a mitad del proceso de elaboración del software.
Diseño del Sistema: Descompone y organiza el sistema en elementos que puedan
elaborarse por aprovechando las ventajas del desarrollo en equipo. Aquí surge un
documento de Diseño del Software, que contiene la descripción de la estructura
relacional global del sistema y la especificación de lo que debe hacer cada una de
sus partes, así como la manera en que se combinan unas con otras.
8. Diseño del Programa: Es la fase en donde se realizan los algoritmos
necesarios para el cumplimiento de los requerimientos del usuario así
como también los análisis necesarios para saber que herramientas usar en
la etapa de Codificación.
Codificación: Es la fase en donde se implementa el código fuente,
haciendo uso de prototipos así como de pruebas y ensayos para corregir
errores. Dependiendo del lenguaje de programación y su versión se crean
las bibliotecas y componentes reutilizables dentro del mismo proyecto
para hacer que la programación sea un proceso mucho más rápido.
Pruebas: Los elementos, ya programados, se ensamblan para componer el
sistema y se comprueba que funciona correctamente y que cumple con los
requisitos, antes de ser entregado al usuario final.
Verificación: Es la fase en donde el usuario final ejecuta el sistema, para
ello el o los programadores ya realizaron exhaustivas pruebas para
comprobar que el sistema no falle. En la creación de desarrollo de cascada
se implementa los códigos de investigación y pruebas del mismo
Mantenimiento: Una de las etapas más criticas, ya que se destina un 75%
de los recursos, es el mantenimiento del Software ya que al utilizarlo
como usuario final puede ser que no cumpla con todas nuestras
expectativas.
9. Incremental
Provee una estrategia para controlar la complejidad y los riesgos,
desarrollando una parte del producto software reservando el resto de
aspectos para el futuro. Los principios básicos son:
Una serie de mini-Cascadas se llevan a cabo, donde todas las fases
de la cascada modelo de desarrollo se han completado para una
pequeña parte de los sistemas, antes de proceder a la próxima
incremental
Se definen los requisitos antes de proceder con lo evolutivo, se
realiza un mini-Cascada de desarrollo de cada uno de los
incrementos del sistema
El concepto inicial de software, análisis de las necesidades, y el
diseño de la arquitectura y colectiva básicas se definen utilizando el
enfoque de cascada, seguida por iterativo de prototipos, que
culmina en la instalación del prototipo final.
10. Etapa de inicialización: Se crea una versión del sistema.
La meta de esta etapa es crear un producto con el que el
usuario pueda interactuar, y por ende retroalimentar el
proceso. Debe ofrecer una muestra de los aspectos claves
del problema y proveer una solución lo suficientemente
simple para ser comprendida e implementada fácilmente.
Para guiar el proceso de iteración se crea una lista de
control de proyecto, que contiene un historial de todas
las tareas que necesitan ser realizadas. Incluye cosas
como nuevas funcionalidades para ser implementadas, y
areas de rediseño de la solución ya existente. Esta lista de
control se revisa periódica y constantemente como
resultado de la fase de análisis.
11. Etapa de iteración: Esta etapa involucra el rediseño
e implementación de una tarea de la lista de control
de proyecto, y el análisis de la versión más reciente
del sistema. La meta del diseño e implementación
de cualquier iteración es ser simple, directa y
modular, para poder soportar el rediseño de la
etapa o como una tarea añadida a la lista de control
de proyecto.
Las modificaciones deben ser más fáciles de hacer
conforme avanzan las iteraciones. Si no es así, hay
un problema primordial usualmente encontrado en
un diseño débil o en la proliferación excesiva de
parches al sistema( los parches son necesarios solo
para evitar el rediseño del sistema).
12. Evolutivo
El modelo Evolutivo conocido también como
incremental e iterativo, consiste en hacer la
documentación de las fases, realizando un
prototipo del sistema, se evalúa el qué tan lejos
el prototipo está de la solución final esperada
por el cliente; se toman en cuenta las
observaciones de esta evaluación, y se crea un
nuevo prototipo que las incluya. Esto se hace
con el fin de cumplir los requerimientos
establecidos.
13. La ventaja es que es ideal para sistemas que no tiene
bien definidos los requerimientos, es decir, para la
mayoría de los sistemas que se desarrollan. El cliente
desde el principio tiene una idea de los requerimientos
de su sistema, pero no están claros hasta el último
detalle. Aún así podemos basarnos en lo ya entendido
(cliente y desarrollador), trabajar con esta información,
y mientras se vayan creando prototipos, el cliente
detallará sus especificaciones.
Su desventaja es que es difícil distinguirlo del proceso
"codifica y corrige", pues en cierta medida son
parecidos, la diferencia está que en la práctica se
requiere que al construir el prototipo se aplique el
análisis y el diseño pero sólo a una parte de los
requerimientos, solo es basado en prototipos.
14. Espiral
Las actividades de este modelo se conforman en
una espiral, en la que cada bucle o iteración
representa un conjunto de actividades. Las
actividades no están fijadas a ninguna prioridad,
sino que las siguientes se eligen en función del
análisis de riesgo, comenzando por el bucle
interior.
15. Ciclos o Iteraciones En cada vuelta o iteración hay que tener en cuenta:
Los Objetivos: qué necesidad debe cubrir el producto.
Alternativas: las diferentes formas de conseguir los objetivos de forma
exitosa, desde diferentes puntos de vista como pueden ser:
Características: experiencia del personal, requisitos a cumplir, etc.
Formas de gestión del sistema.
Riesgo asumido con cada alternativa.
Desarrollar y Verificar: Programar y probar el software.
Si el resultado no es el adecuado o se necesita implementar mejoras o
funcionalidades:
Se planificaran los siguientes pasos y se comienza un nuevo ciclo de la
espiral. La espiral tiene una forma de caracola y se dice que mantiene dos
dimensiones, la radial y la angular:
Angular: Indica el avance del proyecto del software dentro de un ciclo.
Radial: Indica el aumento del coste del proyecto, ya que con cada nueva
iteración se pasa más tiempo desarrollando.
Este sistema es muy utilizado en proyectos grandes y complejos como
puede ser, por ejemplo, la creación de un Sistema Operativo.
16. PROTOTIPOS
El Modelo se basa en la construcción del prototipo en poco tiempo, usando
los programas adecuados y no se debe utilizar muchos recursos.
El diseño rápido se centra en una representación de aquellos aspectos del
software que serán visibles para el cliente o el usuario final. Este diseño
conduce a la construcción de un prototipo, el cual es evaluado por el cliente
para una retroalimentación; gracias a ésta se refinan los requisitos del
software que se desarrollará. La interacción ocurre cuando el prototipo se
ajusta para satisfacer las necesidades del cliente. Esto permite que al mismo
tiempo el desarrollador entienda mejor lo que se debe hacer y el cliente vea
resultados a corto plazo.
• Etapas
• Plan rápido
• Modelado, diseño rápido
• Construcción del Prototipo
• Desarrollo, entrega y retroalimentación
• Comunicación
17. • Tarea :
Investigar
El proceso de desarrollo unificado – RUP
El lenguaje de modelado unificado - UML
18. Proceso de desarrollo unificado – RUP
Es un modelo de software que permite el
desarrollo de software a gran escala, mediante
un proceso continuo de pruebas y
retroalimentación, garantizando el
cumplimiento de ciertos estándares de calidad.
Aunque con el inconveniente de generar mayor
complejidad en los controles de administración
del mismo. Sin embargo, los beneficios
obtenidos recompensan el esfuerzo invertido en
este aspecto.
19. En que consiste RUP
El proceso de desarrollo unificado constituye un
marco metodológico que define en términos de
metas estratégicas, objetivos, actividades y
artefactos (documentación) requerido en cada
fase de desarrollo. Esto permite enfocar
esfuerzo de los recursos humanos en términos
de habilidades, competencias y capacidades a
asumir roles específicos con responsabilidades
bien definidas.
20. Su principal objetivo es asegurar la producción
de software de alta calidad, que cumpla las
necesidades de sus usuarios finales, que sea
realizado en las fechas acordadas y con el
presupuesto disponible.
21. Estructura del ciclo de vida del proceso
de desarrollo unificado ( RUP )
Fase de Inicio.
Es la fase más pequeña del proyecto e, idealmente, debe realizarse también
en un periodo de tiempo pequeño (una única iteración).
El hecho de llevar a cabo una fase de inicio muy larga indica que se esta
realizando una especificación previa excesiva, lo que responde más a un
modelo en cascada.
Objetivos:
Establecer una justificación para el proyecto.
Establecer el ámbito del proyecto.
Esbozar los casos de uso y los requisitos clave que dirigirán las
decisiones de diseño.
Esbozar las arquitecturas candidatas.
Identificar riesgos.
Preparar el plan del proyecto y la estimación de costes. El hito de final de
fase se conoce como Hito Objetivo del Ciclo de Vida.
22. Fase de Elaboración.
Durante esta fase se capturan la mayoría de los requisitos del
sistema.
Los objetivos principales de esta fase serán la identificación de
riesgos y establecer y validar la arquitectura del sistema.
Base de Arquitectura Ejecutable:
• La arquitectura se valida a través de la implementación de una Base
de Arquitectura Ejecutable: se trata de una implementación parcial
del sistema que incluye los componentes principales del mismo.
• Al final de la fase de elaboración la base de arquitectura ejecutable
debe demostrar que soporta los aspectos clave de la funcionalidad
del sistema y que muestra la conducta adecuada en términos de
rendimiento, escalabilidad y coste.
Al final de la fase se elabora un plan para la fase de construcción.
El hito arquitectura del ciclo de vida marca el final de la fase.
23. Fase de construcción.
Es la fase más larga de proyecto.
El sistema es construido en base a lo
especificado en la fase de elaboración.
Las características del sistema se implementan
en una serie de iteraciones cortas y limitadas en
el tiempo.
El resultado de cada iteración es una versión
ejecutable de software.
El hito de capacidad operativa inicial marca el
final de la fase.
24. Fase de transición.
En esta fase el sistema es desplegado para los
usuarios finales.
La retroalimentación recibida permite incorporar
refinamientos al sistema en las sucesivas
iteraciones.
Esta iteración también cubre el entrenamiento de
los usuarios para la utilización del sistema.
El hito de lanzamiento del producto marca el
final de la fase.
25. Lenguaje de modelado unificado(UML)
“Modelo: documentación que se utiliza para poder llevar
a cabo en forma eficiente el proceso.”
UML un lenguaje que permite modelar, construir y
documentar los elementos que forman un sistema
software orientado a objetos.
UML ofrece un estándar para describir un "plano"del
sistema (modelo), incluyendo aspectos conceptuales tales
como procesos de negocios y funciones del sistema, y
aspectos concretos como expresiones de lenguajes de
programación, esquemas de bases de datos.
26. Características de UML
Proporciona a los desarrolladores un lenguaje de
modelamiento ampliamente aceptado y listo
para usar
Es independiente del lenguaje de programación y
de métodos y procesos de desarrollo de software
Proporciona sus propios mecanismos de
extensión
Agrupa los conceptos de orientación a objetos
definiendo su significado.
27. Modelando con UML
Modelo
Diagrama
de Casos
de Usos
Diagrama
de Clases
Diagramas
de
Despliegue
Diagramas de
Componentes
Diagrama
de Objetos
Diagramas
de
Secuencias
Diagramas de
Colaboración
Diagramas
de Estados
Diagramas
de
Actividad