Guia_de_POO

14

Click here to load reader

Transcript of Guia_de_POO

Page 1: Guia_de_POO

SERVICIO NACIONAL DE APRENDIZAJE, SENAMÓ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

ANGIE KATHERINE SANCHEZ BUITRAGO

BOGOTA D.C Agosto 19 del 2009

Page 2: Guia_de_POO

SERVICIO NACIONAL DE APRENDIZAJE, SENAMÓ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.

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 pos para tener en claro la 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.

Page 3: Guia_de_POO

SERVICIO NACIONAL DE APRENDIZAJE, SENAMÓDULO DE FORMACIÓN EVALUACIÓN DEL

APRENDIZAJE

2. Define los siguientes conceptos: abstracción y encapsulamiento y de un ejemplo de su aplicación en el mundo real.

La Abstracción: Me parece que es un principio por el cual se aísla toda aquella información que no resulta relevante a un determinado nivel de conocimiento. Ejemplo: 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:

Se denomina al ocultamiento del estado, es decir, de los datos miembro, de un objeto de manera que sólo se puede cambiar mediante las operaciones definidas para ese objeto.Complementa a la abstracciónSe consigue:Separando la interfaz de su implementaciónOcultando la información interna de un objetoEscondiendo la estructura e implementación de los métodos (algoritmos).Exponiendo solo la forma de interactuar con el objeto

3. Defina que significa POO y complejidad del software y diga en que casos se aplica cada una de estas.

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 evidencia 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

Page 4: Guia_de_POO

SERVICIO NACIONAL DE APRENDIZAJE, SENAMÓDULO DE FORMACIÓN EVALUACIÓN DEL

APRENDIZAJE

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.

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.

4. Defina que es el ciclo de vida del software y como se lleva a cabo, de un ejemplo de su aplicación.

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.

Page 5: Guia_de_POO

SERVICIO NACIONAL DE APRENDIZAJE, SENAMÓDULO DE FORMACIÓN EVALUACIÓN DEL

APRENDIZAJE

5. Dentro de un problema que se desea resolver por computadora, que se entiende por “especificaciones de requerimientos”.

“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.

6. Explique ampliamente en que consiste el Análisis Orientado a Objetos y de un ejemplo de su aplicación.

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

Page 6: Guia_de_POO

SERVICIO NACIONAL DE APRENDIZAJE, SENAMÓDULO DE FORMACIÓN EVALUACIÓN DEL

APRENDIZAJE

7. Explique ampliamente en que consiste el Diseño Orientado a Objetos y de un ejemplo de su aplicación.

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.

8. Explique ampliamente en que consiste la Programación Orientada a Objetos, conceptos y mencione 10 características de esta.

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.

• 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

Page 7: Guia_de_POO

SERVICIO NACIONAL DE APRENDIZAJE, SENAMÓDULO DE FORMACIÓN EVALUACIÓN DEL

APRENDIZAJE

9. Enliste cuales son los elementos primordiales en el modelo de objetos.

*Abstracción    *Encapsulamiento    *Modularidad    *Jerarquía y Herencia    *Polimorfismo       

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.

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 forma aleatoria en archivos no es

Page 8: Guia_de_POO

SERVICIO NACIONAL DE APRENDIZAJE, SENAMÓDULO DE FORMACIÓN EVALUACIÓN DEL

APRENDIZAJE

ó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++.

Page 9: Guia_de_POO

SERVICIO NACIONAL DE APRENDIZAJE, SENAMÓDULO DE FORMACIÓN EVALUACIÓN DEL

APRENDIZAJE

11.Explique ampliamente cual ha sido el desarrollo histórico de los paradigmas en el desarrollo del software.

En Ingeniería de software el desarrollo en cascada es el enfoque metodológico que ordena rigurosamente las etapas del ciclo de vida del software, de forma tal que el inicio de cada etapa debe esperar a la finalización de la inmediatamente anterior. Un ejemplo de una metodología de , Programación ,Diseño , Análisis de requisitos ,desarrollo en cascada es: Mantenimiento De esta forma, cualquier error de diseño, Implantación .Prueba detectado en la etapa de prueba conduce necesariamente al rediseño y nueva programación del código afectado, aumentando los costes del desarrollo. La palabra cascada sugiere, mediante la metáfora de la fuerza de la gravedad, el esfuerzo necesario para introducir un cambio en las fases más avanzadas de un proyecto. Si bien ha sido ampliamente criticado desde el ámbito académico y la industria, sigue siendo el paradigma más seguido al día de hoy Para cada actividad habrá cuatro tareas. Imagen: Modelo Espiral.JPG Determinar o fijar objetivos Fijar también los productos definidos a obtener: requerimientos, especificación, manual de usuario. Fijar las restricciones. Identificación de riesgos del proyecto y estrategias alternativas para evitarlos. Hay una cosa que solo se hace una vez: Planificación inicial o previa.

12.Explique ampliamente cuales son los Beneficios del modelo de objetos y de la POO sobre otros paradigmas.

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.

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.

Page 10: Guia_de_POO

SERVICIO NACIONAL DE APRENDIZAJE, SENAMÓDULO DE FORMACIÓN EVALUACIÓN DEL

APRENDIZAJE

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.