SERVICIO NACIONAL DE APRENDIZAJE, SENA
MÓDULO DE FORMACIÓN EVALUACIÓN DEL
APRENDIZAJE
Sistema de Gestión de la Calidad
TECNICO EN PROGRAMACION DE SOFTWARE
EJE DE FORMACION: PROGRAMACION DE SOFTWARE
Su nombre
Ricardo Esteban Valenzuela Jiménez
Ciudad y fecha
Bogotá 16/08/09
SERVICIO NACIONAL DE APRENDIZAJE, SENA
MÓDULO DE FORMACIÓN EVALUACIÓN DEL
APRENDIZAJE
GUIA DE APRENDIZAJE
EJE DE FORMACIÓN: PROGRAMACION DE SOFTWARE
UNIDAD DE APRENDIZAJE No. 1: FUNDAMENTOS DE PROGRAMACION
ORIEBTADA A OBJETOS
ACTIVIDAD DE ENSEÑANZA – APRENDIZAJE – EVALUACIÓN 2 TALLER
INVESTIGATIVO
TIEMPO DE LA ACTIVIDAD DE E-A-E: 3 HORAS
TIEMPO DE LA GUIA DE APRENDIZAJE: 1 HORAS
Cuestionario 1 Conceptos básicos del modelo orientado a objetos.
1. Como se reconocen los objetos y clases en el mundo real y cual es la
interacción que existe entre ellos.
2. Define los siguientes conceptos: abstracción y encapsulamiento y de un
ejemplo de su aplicación en el mundo real.
3. Defina que significa POO y complejidad del software y diga en que casos
se aplica cada una de estas.
4. Defina que es el ciclo de vida del software y como se lleva a cabo, de un
ejemplo de su aplicación.
5. Dentro de un problema que se desea resolver por computadora, que se
entiende por “especificaciones de requerimientos”.
6. Explique ampliamente en que consiste el Análisis Orientado a Objetos y de
un ejemplo de su aplicación.
7. Explique ampliamente en que consiste el Diseño Orientado a Objetos y de
un ejemplo de su aplicación.
8. Explique ampliamente en que consiste la Programación Orientada a
Objetos, conceptos y mencione 10 características de esta.
SERVICIO NACIONAL DE APRENDIZAJE, SENA
MÓDULO DE FORMACIÓN EVALUACIÓN DEL
APRENDIZAJE
9. Enliste cuales son los elementos primordiales en el modelo de objetos.
10. Defina los siguientes conceptos y de un ejemplo de la aplicación de cada
uno de ellos: Abstracción, Encapsulamiento, Modularidad, Jerarquía y
herencia, Polimorfismo.
11. Explique ampliamente cual ha sido el desarrollo histórico de los
paradigmas en el desarrollo del software.
12. Explique ampliamente cuales son los Beneficios del modelo de objetos y
de la POO sobre otros paradigmas.
SOLUCION
SERVICIO NACIONAL DE APRENDIZAJE, SENA
MÓDULO DE FORMACIÓN EVALUACIÓN DEL
APRENDIZAJE
RTA:1)
Todo objeto del mundo real tiene 2 componentes: características y
comportamiento.
Por ejemplo, los automóviles tienen características (marca, modelo, color,
velocidad máxima, etc.) y comportamiento (frenar, acelerar, retroceder, llenar
combustible, cambiar llantas, etc.).
Entonces Una clase representa la esencia de un grupo de objetos por ejemplo:
lápiz, borrador, sacapuntas etc. son objetos que pertenecen a una misma clase
por que son del mismo tipo.
Definición de estudiante:
Que hay dos tipos de componentes en los objetos del mundo real que son
características y comportamiento del objeto.
Como reconocerlos por medio de sus características y comportamientos que
depende del objeto que se hable.
RTA:2)
Definición de abstracción y encapsulamiento.
La abstracción no es única:
Un coche puede ser...
Una cosa con ruedas, motor, volante y pedales (conductor)
Algo capaz de transportar personas (taxista)
Una caja que se mueve (simulador de tráfico)
Conjunto de piezas (fabricante)
Encapsulamiento:
Ninguna parte de un sistema complejo debe depender de los detalles internos de
otra.
Complementa a la abstracción
Se consigue:
Separando la interfaz de su implementación
Ocultando la información interna de un objeto
Escondiendo la estructura e implementación de los métodos (algoritmos).
Exponiendo solo la forma de interactuar con el objeto.
Definición del estudiante: La abstracción es la referencia de un objeto que se
nombra y puede tener barias utilidades como el auto que tiene llantas y sirve de
taxi eso es lo abstracción las características del objeto.
SERVICIO NACIONAL DE APRENDIZAJE, SENA
MÓDULO DE FORMACIÓN EVALUACIÓN DEL
APRENDIZAJE
El Encapsulamiento trata todo lo inverso de del abstracción este no se refiere a
ningún objeto que se complejo debe de depender de los detalles.
RTA:3)
La Programación Orientada a Objetos
Es un paradigma de programación, que se basa en organizar el software como
una colección de objetos discretos que incorporan tanto estructuras de datos
como comportamiento. Esto contrasta con la programación convencional, en la
que las estructuras de datos y el comportamiento estaban escasamente
relacionadas.
Un Modelo Objeto es un marco de referencia conceptual, en el que se establece
el conjunto básico de los conceptos, la terminología asociada y el modelo de
computación de los Sistemas Software soportados por la tecnología orientada a
los objetos. Este conjunto básico de conceptos deberá incluir, como mínimo, los
de abstracción, encapsulación, jerarquía y modularidad y deberá considerar el
sistema de información como un conjunto de entidades conceptuales modeladas
como objetos e interactuando entre ellas.
Definición del estudiante:
En la Programación Orientada a Objetos es la organización de software como una
colección de objetos que incorpora una serie de datos que es el comportamiento
y el modelo del objeto que incluye la abstracción, encapsulación, jerarquía y
modularidad que cada una de ellas interactúa por si misma.
La Complejidad Del Software
Introducimos para los más profanos las bases sobre las que se asienta la
Programación Orientada a Objetos. La programación Orientada a objetos (POO)
es una forma especial de programar, más cercana a como expresaríamos las
cosas en la vida real que otros tipos de programación.
Con la POO tenemos que aprender a pensar las cosas de una manera distinta,
para escribir nuestros programas en términos de objetos, propiedades, métodos y
otras cosas que veremos rápidamente para aclarar conceptos y dar una pequeña
base que permita soltarnos un poco con este tipo de programación.
Definición del estudiante:
En la complejidad del software es como otra lengua que interactuamos con la
computadora que nos permite interpretar objetos del mundo real y que nos
enseña a pensar de manera distintas para poder interpretarlo en el programa
como lo decía antes en términos de objetos.
SERVICIO NACIONAL DE APRENDIZAJE, SENA
MÓDULO DE FORMACIÓN EVALUACIÓN DEL
APRENDIZAJE
RTA:4)
El ciclo de vida del software en el Proceso Unificado
Las fases del ciclo de vida del software son: concepción, elaboración,
construcción y transición. La concepción es definir el alcance del proyecto y
definir el caso de uso. La elaboración es proyectar un plan, definir las
características y cimentar la arquitectura. La construcción es crear el producto y la
transición es transferir el producto a sus usuarios [Booch 1998].
Un ingeniero de software necesita de herramientas, entre ellas las herramientas
de Rational son las más avanzadas, pero son muy costosas. También puede
utilizar las herramientas de oficina como un editor de textos, un modelador de
datos, etc., muchas de ellas son de código abierto y aún están de desarrollo.
Utiliza las que más te sean de utilidad.
Definición del estudiante:
En este punto explica el manejo del proyecto y que tiene unas faces para su
elaboración y que el programador de software necesita unas herramientas pero
entre estas hay una muy costosa para sus utilidades de trabajo, que le permite
editar textos y modelador de datos que son códigos abiertos.
RTA:5)
“La parte más dura en la construcción de un sistema software es decidir cómo
construirlo…Ninguna parte del trabajo mutila el resultado del sistema si está
hecho mal. Ninguna parte es más dificultosa para rectificarlo después”
La ingeniería de requisitos facilita el mecanismo apropiado para comprender lo
que quiere el cliente, analizando necesidades, confirmando su viabilidad,
negociando una solución razonable, especificando la solución sin ambigüedad,
validando la especificación y gestionando los requisitos para que se transformen
en un sistema operacional.
Los requerimientos para un sistema de software determinan lo que hará el
sistema y definen las restricciones de su operación e implementación.
El proceso de ingeniería de requisitos puede ser descrito en 5 pasos distintos:
identificación de requisitos, Análisis de requisitos y negociación, Especificación de
requisitos, Modelizado del sistema, Validación y gestión de requisitos.
Definición del estudiante:
SERVICIO NACIONAL DE APRENDIZAJE, SENA
MÓDULO DE FORMACIÓN EVALUACIÓN DEL
APRENDIZAJE
Este se caracteriza por los requisitos que necesita y es muy difícil en la parte de
construcción de un sistema software es decidir como construirlo en estos
requisitos se encuentran unos componentes, Especificación de modelización par
un modo de validación y gestión de requisitos es como el modo de prueba para
los requisitos.
RTA:6)
Se considera como un análisis de actividades y consiste en la solución de
negocios para el usuario y se expresa con los casos de uso. El diseño lógico es la
solución del equipo de proyecto del negocio y consiste de las siguientes tareas:
Identificar los usuarios y sus roles Obtener datos de los usuarios Evaluar la
información Documentar los escenarios de uso Validar con los usuarios Validar
contra la arquitectura de la empresa.
Definición del estudiante:
Es la solución de problemas lógicos y de negoción para el usuario y como
proyecto es la identificar los usuarios para validar con los usuarios frente ala
arquitectura.
RTA:7)
Elaborar una especificación completa y validada de la arquitectura global
hardware-software, de la estructura de control y de la estructura de datos del
producto, así como un esquema de los manuales de usuarios y planes de test; de
las interfaces de relación, dimensionamiento y algoritmos claves de cada
componente de programa.
Definición del estudiante:
Es la estructura de especificación del hardware-software que es un plan de un
test de las interfaces de relación y dimensión de los algoritmos claves de cada
programa.
RTA:8)
La Programación Orientada a Objetos (POO) es una forma de enfocar la tarea de
programación. Los enfoques de la programación han cambiado drásticamente
desde la invención de las computadoras, la creciente complejidad de los
programas, antes se realizaban mediante una consola las instrucciones máquinas
en binario. Esto funcionaba porque los programas sólo tenían unos pocos cientos
de instrucciones. Cuando crecieron los programas, se invento el lenguaje
ensamblador para que el programador pudiera manejar programas más largos y
complejos usando una representación simbólica de las instrucciones máquina.
SERVICIO NACIONAL DE APRENDIZAJE, SENA
MÓDULO DE FORMACIÓN EVALUACIÓN DEL
APRENDIZAJE
• Herencia múltiple
• Sobrecarga de operadores y funciones
• Derivación
• Funciones virtuales
• Plantillas
• Gestión de excepciones Estado interno:
• Principio de ocultación
• Representación de un objeto
• Encapsulamiento
Definición del estudiante: Hay un cierto desacuerdo sobre exactamente qué
características de un método de programación o lenguaje le definen como
"orientado a objetos"
RTA:9)
*Abstracci
*Encapsulamiento
*Modularidad
*Jerarquía y Herencia
*Polimorfismo
RTA: 10)
Abstracción: Cada objeto en el sistema sirve como modelo de un "agente"
abstracto que puede realizar trabajo, informar y cambiar su estado, y
"comunicarse" con otros objetos en el sistema sin revelar cómo se implementan
estas características. Los procesos, las funciones o los métodos pueden también
ser abstraídos y cuando lo están, una variedad de técnicas son requeridas para
ampliar una abstracción.
Encapsulamiento: Significa reunir a todos los elementos que pueden
considerarse pertenecientes a una misma entidad, al mismo nivel de abstracción.
Esto permite aumentar la cohesión de los componentes del sistema. Algunos
autores confunden este concepto con el principio de ocultación, principalmente
porque se suelen emplear conjuntamente.
Modularidad: Es la propiedad que permite subdividir una aplicación en partes
más pequeñas (llamadas módulos), cada una de las cuales debe ser tan
independiente como sea posible de la aplicación en sí y de las restantes partes.
La modularización consiste en dividir un programa en módulos que se puedan
compilar por separado, pero que tienen conexiones con otros módulos. Al igual
que la encapsulación, los lenguajes soportan la Modularidad de diversas formas.
La Modularidad es la propiedad de un sistema que permite su descomposición en
un conjunto de módulos cohesivos y débilmente acoplados. Por supuesto no
todos los módulos son iguales: tomar un programa monolítico y separarlo de
SERVICIO NACIONAL DE APRENDIZAJE, SENA
MÓDULO DE FORMACIÓN EVALUACIÓN DEL
APRENDIZAJE
forma aleatoria en archivos no es óptimo. Se debe tener en cuenta los conceptos
asociados de dependencia, acoplamiento, cohesión, interfaz, encapsulación y
abstracción. Una vez identificado lo que es un buen módulo, se puede contemplar
la reutilización de un buen módulo como componente.
Herencia: las clases no están aisladas, sino que se relacionan entre sí, formando
una jerarquía de clasificación. Los objetos heredan las propiedades y el
comportamiento de todas las clases a las que pertenecen. La herencia organiza y
facilita el polimorfismo y el encapsulamiento permitiendo a los objetos ser
definidos y creados como tipos especializados de objetos preexistentes. Estos
pueden compartir (y extender) su comportamiento sin tener que reimplementar su
comportamiento. Esto suele hacerse habitualmente agrupando los objetos en
clases y estas en árboles o enrejados que reflejan un comportamiento común.
Cuando un objeto hereda de más de una clase se dice que hay herencia múltiple;
esta característica no está soportada por algunos lenguajes (como Java).
Polimorfismo: comportamientos diferentes, asociados a objetos distintos,
pueden compartir el mismo nombre, al llamarlos por ese nombre se utilizará el
comportamiento correspondiente al objeto que se esté usando. O dicho de otro
modo, las referencias y las colecciones de objetos pueden contener objetos de
diferentes tipos, y la invocación de un comportamiento en una referencia
producirá el comportamiento correcto para el tipo real del objeto referenciado.
Cuando esto ocurre en "tiempo de ejecución", esta última característica se llama
asignación tardía o asignación dinámica. Algunos lenguajes proporcionan medios
más estáticos (en "tiempo de compilación") de polimorfismo, tales como las
plantillas y la sobrecarga de operadores de C++.
RTA: 11)
Análisis del riesgo Se estudian todos los riesgos potenciales y se seleccionan una
o varias alternativas propuestas para reducir o eliminar los riesgos. Desarrollar,
verificar y validar (probar) Tareas de la actividad propia y se prueba. Planificar
Revisamos todo lo hecho, evaluándolo, y con ello decidimos si continuamos con
las fases siguientes y planificamos la próxima actividad. Ventajas El análisis del
riesgo se hace de forma explícita y clara. Une los mejores elementos de los
restantes modelos. Inconvenientes Genera mucho trabajo adicional. Exige una
cierta habilidad en los analistas (es bastante difícil).
RTA: 12)
En resumen, la programación orientada a objetos beneficia a los desarrolladores
debido a que: Los programas son fáciles de diseñar debido a que los objetos
reflejan elementos del mundo real.
Las aplicaciones son más sencillas para los usuarios debido a que los datos
innecesarios están ocultos.
SERVICIO NACIONAL DE APRENDIZAJE, SENA
MÓDULO DE FORMACIÓN EVALUACIÓN DEL
APRENDIZAJE
Los objetos son unidades autocontenida.
La productividad se incrementa debido a que puede reutilizar el código.
Los sistemas son fáciles de mantener y se adaptan a las cambiantes necesidades
de negocios.
Es más fácil crear nuevos tipos de objetos a partir de los ya existentes.
Simplifica los datos complejos.
Reduce la complejidad de la transacción.
Confiabilidad.
Robustez.
Capacidad de ampliación.