miércoles, 14 de octubre de 2009

LIMPIEZA DE CUARTO HOTEL




Condiciones huesped salio o permanece

DIAGRAMA DE CASOS DE USO


DIAGRAMA DE CLASES

INGRESO CUARTO DE HOTEL




Se ingresa al cuarto con tarjeta magnetica.
DIAGRAMA DE CASO DE USO


DIAGRAMA DE CLASES

miércoles, 7 de octubre de 2009

GASOLINERA

  • Gasolinera
- Despacho de combustible
- Pago
- Recarga de tanque de almacenamiento
- Corte del dia

DIAGRAMA DE CASO DE USO
DIAGRAMA DE CLASE

CONTROL ALARMA AUTOMOVIL



  • Control mas llave de un auto
- Activar alarma
1. Pone seguros
2. Activa alarma
- Desactivar
1. Quita alarma/levanta seguros
2. Libera todas las puertas
- Abre cajuela
- Panico 4 seg.

DIAGRAMA DE CASO DE USO

DIAGRAMA DE CLASE

domingo, 4 de octubre de 2009

martes, 8 de septiembre de 2009

Beneficios del modelo de objetos y de la POO sobre otros paradigmas.

•La OO permite una modelación más natural de los sistemas, parecido a como un humano los visualiza. El modelo refleja mejor la realidad.
•La OO proporciona soporte para todas las etapas del ciclo de vida del software.
•La LPOO permite crear TDA (tipos de datos abstractos). Es decir nuevos tipos de datos que no están predefinidos en el LP pero son necesarios para el usuario.
•Los LPOO proporcionan un rico conjunto de clases predefinidas que se pueden usar en las aplicaciones.
•Reutilización. Las clases se construyen a partir de otras clases.
•Fiabilidad.
•Productividad del desarrollador.
•Calidad.
•Mantenimiento.
•Costo.
•Escalabilidad.
•Adaptabilidad (mejor independencia e interoperatividad).

Historia de los paradigmas en el desarrollo del software.

Enfoques generales para la escritura de código:
•Programación “espaguetti”. Sin una secuencia de ejecución definida. Sin módulos.
•Programación estructurada. Se usan los módulos (basados en procedimientos) y las sentencias de programación estructuradas.
•POO. Se afina el concepto de módulo al incluir datos y procedimientos (en una “clase”). Incluye nuevos conceptos como herencia, polimorfismo, etc.

Algunos paradigmas de programación específicos (procedimientos computacionales para resolver un problema), son:
•Demostrativo.
•Declarativo.
•Imperativo.
•Funcional.
•Lógico.
•Orientado a Objetos.

Los LP según su nivel de acercamiento con el “hardware” se clasifican en:
•Lenguaje máquina (0, 1).
•Lenguaje ensamblador.
•Lenguajes de tercer nivel (palabras en inglés).
•Lenguajes de 4to. Nivel “declarativo” (indicar que hacer y no como hacerlo).
•Quinta generación. Procesamiento paralelo, uso del lenguaje natural e IA.

Metodologías que se aplican para el ciclo de vida del software (algunas):
•Ciclo vida clásico o cascada.
•Modelo en espiral.
•Prototipos.

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


•Suponer una jerarquía de clases de figuras de dos dimensiones. Cada clase puede tener un método que se llame igual, por ejemplo “area()” pero cada clase tendrá una formula de cálculo de área diferente según la clase







•El método se llama igual, por tener el mismo significado lógico.

•Las llamadas a cada método serían parecidas a la forma:
Cuadrado.area()
Rectángulo.area()
Círculo.area()

- JERARQUIA Y HERENCIA -

Herencia: (por ejemplo, la clase D recibe herencia de la clase C) Es la facilidad mediante la cual la clase D hereda en ella cada uno de los atributos y operaciones de C, como si esos atributos y operaciones hubiesen sido definidos por la misma D.



Jerarquía de clases. Las relaciones de herencia forman una estructura de árbol (jerarquía).




- MODULARIDAD -



•Es la descomposición de un sistema complejo en piezas mas simples llamadas módulos.
•Es más fácil la solución de “pequeños” módulos.
•Este procedimiento de descomposición refleja el principio de “Divide y Vencerás”.

- ENCAPSULAMIENTO -



•Significa reunir a todos los elementos que pueden considerarse pertenecientes a una misma entidad, al mismo nivel de abstracción.

- ABSTRACCIÓN -

•Denota las características esenciales de un objeto, donde se capturan sus comportamientos.

Elementos primordiales en el modelo OO.

La programación Orientada a Objetos trata de cumplir las necesidades de los usuarios finales, estás tareas se realizan mediante la modelización del mundo real, el sopote fundamental es el modelo objeto.
Los elementos más importantes de este modelo son:
Abstracción
Encapsulamiento
Modularidad
Jerarquia y Herencia
Polimorfismo

FUENTE:
http://www.mitecnologico.com/Main/ElementosPrimordialesEnElModeloDeObjetos

- MANTENIMIENTO -

Actualizaciones y ampliaciones, depuración de objetos, corrección de errores, optimización.

- PRUEBA y DEPURACION -

Prueba: Someter al software a ejecuciones con resultados conocidos para evaluarlo.
Depuración: Quitar todos los detalles y defectos que pueda tener.

- PROGRAMACION ORIENTADA A OBJETOS, CONCEPTOS y CARACTERISTICAS -

¿ Que es la programación orientada a objetos?.
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 crecierón 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.
Los lenguajes de alto nivel aparecierón para proporcionar al programador más herramientas con las cuales gestionar esa complejidad. En los años sesenta nace la programación estructurada, este es el método alentando por varios lenguajes como pascal, y C. Con los lenguajes estructurados fue posible escribir programas moderadamente complejos de una forma bastante sencilla. Sin embargo, usando incluso la programación estructurada, cuando los proyectos Alcanzan cierto tamaño, su complejidad se vuelve demasiado difícil para ser controlada por un programador.
La Programación Orientada a Objetos toma las mejores ideas de la programación estructurada la combina con nuevos y poderosos conceptos que animan o alientan una nueva visión de la tarea de la programación. La Programación Orientada a Objetos permite descomponer fácilmente un problema en subgrupos de partes relacionadas. Entonces, puede traducir estos subgrupos en unidades autocontenidas llamadas Objetos.

FUENTE:
http://www.mitecnologico.com/Main/ProgramacionOrientadaObjetosConceptosYCaracteristicas

lunes, 7 de septiembre de 2009

- DISEÑO ORIENTADO A OBJETOS -

•Es una fase de la metodología orientada a objetos para el desarrollo de Software.
•Su uso induce a los programadores a pensar en términos de objetos, en vez de procedimientos, cuando planifican su código. Un objeto agrupa datos encapsulados y procedimientos para representar una entidad.
•La 'interfaz del objeto', esto es, las formas de interactuar con el objeto, también es definida en esta etapa.
•El diseño orientado a objetos es la disciplina que define los objetos y sus interacciones para resolver un problema de negocio que fue identificado y documentado durante el análisis orientado a objetos.

domingo, 6 de septiembre de 2009

- ANALISIS ORIENTADO A OBJETOS -

Es un método de análisis que examina los requisitos desde la perspectiva de las clases y objetos que se encuentran en el vocabulario del dominio del problema.

Documentos de deben tenerse o desarrollarse durante el análisis:
•Especificación de requisitos o requerimientos.
•Diagramas de casos de uso.
•Escenarios y subescenarios.
•Prototipos y su evaluación.

Escenario
•Es una descripción parcial y concreta del comportamiento de un sistema en una determinada situación.
Prototipo
•Es una representación de aquellos aspectos del software que serán visibles para el cliente (por ejemplo, la configuración de la interfaz con el usuario y el formato de los despliegues de salida).
•El prototipo, es evaluado por el cliente para una retroalimentación; gracias a ésta se refinan los requisitos del software que se desarrollará.

- ESPECIFICACION DE REQUERIMIENTOS -

•Comprende las tareas relacionadas con la determinación de las necesidades o de las condiciones a satisfacer para un software nuevo o modificado, tomando en cuenta los diversos requerimientos de los clientes.
•El propósito es hacer que los mismos alcancen un estado óptimo antes de alcanzar la fase de diseño en el proyecto.
•Los buenos requerimientos deben ser medibles, comprobables, sin ambigüedades o contradicciones.

Para esta actividad se debe:
•Identificar las necesidades del usuario (del negocio).
•Describir los objetivos de la aplicación.
•Definir características y funciones generales de la aplicación.
•El equipo de Ingeniería de sistemas y los clientes deben establecer en conjunto las metas y objetivos de la aplicación.

Productos:
- Documento de requerimiento
- Entrar en problemas con el cliente

Conceptos del ciclo de vida del software

Las etapas básicas del ciclo de vida del software son:
•1. Especificación de requerimientos.
•2. Análisis.
•3. Diseño.
•4. Programación.
•5. Mantenimiento.

CONCEPTOS BASICOS DE POO

Características de la POO

Hay un cierto desacuerdo sobre exactamente qué características de un método de programación o lenguaje le definen como "orientado a objetos", pero hay un consenso general en que las características siguientes son las más importantes:
Abstracción: Denota las características esenciales de un objeto, donde se capturan sus comportamientos.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.
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++.
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 volver a implementarlo. 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.

FUENTE:
http://es.wikipedia.org/wiki/Programaci%C3%B3n_orientada_a_objetos

La POO y la complejidad del software

La Programación Orientada a Objetos (POO u OOP según sus siglas en inglés) es un paradigma de programación que usa objetos y sus interacciones para diseñar aplicaciones y programas de computadora. Está basado en varias técnicas, incluyendo herencia, modularidad, polimorfismo y encapsulamiento. Su uso se popularizó a principios de la década de 1990. Actualmente son muchos los lenguajes de programación que soportan la orientación a objetos.

Los objetos son entidades que combinan estado, comportamiento e identidad:
El estado está compuesto de datos, será uno o varios atributos a los que se habrán asignado unos valores concretos (datos).
El comportamiento está definido por los procedimientos o métodos con que puede operar dicho objeto, es decir, qué operaciones se pueden realizar con él.
La identidad es una propiedad de un objeto que lo diferencia del resto, dicho con otras palabras, es su identificador.
La programación orientada a objetos expresa un programa como un conjunto de estos objetos, que colaboran entre ellos para realizar tareas. Esto permite hacer los programas y módulos más fáciles de escribir, mantener, reutilizar y volver a utilizar.

La POO comparada con otros paradigmas de programación, permite manejar de mejor manera la complejidad del software. Por lo siguiente:
•Agrupar elementos comunes (objetos) en clases.
•La clase incluye en una unidad los atributos y los métodos.
•Se pueden construir jerarquías de herencias de clases que hereden (reciban) lo que ya esta definido.
•Lo anterior aumenta la modularidad. El programa esta formado por módulos o partes bien identificadas.


•La modularidad implica:
–El programa se puede construir, probar y depurar por módulos.
–Al agregar nueva funcionalidad, se pueden crear nuevos módulos o incluir la funcionalidad en módulos que ya existen.
–Se facilita el localizar errores, el mantenimiento y el crecimiento del software.

FUENTES:
http://es.wikipedia.org/wiki/Programaci%C3%B3n_orientada_a_objetos
http://www.mitecnologico.com/Main/LaPooYLaComplejidadDelSoftware

La abstracción y el encapsulamiento como proceso natural

Abstracción: Es un método por el cual abstraemos valga la redundancia, una determinada entidad de la realidad de sus características y funciones que desempeñan, estos son representados en clases por medio de atributos y métodos de dicha clase.

•Dentro de las características esenciales se encuentran:
–Atributos (o datos).
–Comportamiento (métodos)

A esto se le llama abstracción. En general un programa no es más que una descripción abstracta de un procedimiento o fenómeno que existe o sucede en el mundo real.
- La abstracción es crucial para comprender este complejo mundo.
- La abstracción es esencial para el funcionamiento de una mente humana normal y es una herramienta muy potente para tratar la complejidad.
- La abstracción es clave para diseñar un buen software.
Procedimientos: Proporcionó la primera posibilidad de ocultación de información.
Módulos: Es una técnica que proporciona la posibilidad de dividir sus datos y procedimientos en una parte privada y una parte pública. Proporcionan un método efectivo de ocultación de la información, pero no permiten realizar instanciación, que es la capacidad de hacer múltiples copias de las zonas de datos.
TADS: Un tipo abstracto de dato (TAD) es un tipo de dato definido por el programador que se puede manipular similarmente a los tipos de datos definidos por el sistema. Un tipo abstracto de dato corresponde a un conjunto (puede ser de tamaño indefinido) de valores legales de datos y un número de operaciones primitivas que se pueden realizar sobre esos valores. Para construir un tipo abstracto de dato se debe:
1.- Exponer una definición del tipo.
2.- Hacer disponible un conjunto de operaciones.
3.- Proteger los datos asociados con el tipo.
4.-Permitir instancias múltiples del tipo.


Encapsulamiento: Significa reunir a todos los elementos que pueden considerarse pertenecientes a una misma entidad, al mismo nivel de abstracción.
•En la OO el encapsulamiento de una entidad se logra mediante la definición de una clase, que reune los datos y comportamiento en una unidad.
Si nos concentramos en las cosas, podemos encapsular en un objeto nuestro entendimiento acerca de sus características y el comportamiento de ese objeto. Lo tratamos como una entidad definida y su comportamiento no esta disperso en nuestro diseño. Es decir, no separamos la viscosidad del aceite de su color sino creamos un objeto aceite y ponemos ambas características como característica de dicho objeto.
El encapsulamiento nos permite considerar a los objetos como cajas negras: como objetos que podemos utilizar sin enfocarnos en la forma en que trabajan.

FUENTE:
http://www.mitecnologico.com/Main/LaAbstraccionYElEncapsulamientoComoUnProcesoNatural

viernes, 4 de septiembre de 2009

Reconocimiento de clases y objetos y sus relaciones en el mundo real.

•Identificar objetos y relaciones en los siguientes sistemas:
•Escuela, Sesión de Internet, Pago de predial, Bosque, Río, Inscripción.

Un objeto se define como una estructura que encapsula atributos (características) y comportamientos (procedimientos) de una entidad con un papel bien definido en una aplicación.
Cada objeto tiene:
- Estado: Conjunto de valores de los atributos en un instante de tiempo dado. El comportamiento de un objeto puede modificar el estado de este.
- Comportamiento: Relacionado con su funcionalidad y determina las operaciones que este puede realizar o a las que puede responder ante mensajes enviados por otros objetos.
- Identidad: Es la propiedad que permite a un objeto diferenciarse de otros. Generalmente esta propiedad es tal, que da nombre al objeto.
Los objetos, concretos y abstractos, están a nuestro alrededor, forman nuestro entorno. Podemos distinguir cada objeto en base a sus características y comportamientos.

Clases: Es la definición de un objeto. Cuando se programa un objeto y se definen sus características y funcionalidades, realmente se programa una clase.

FUENTE:
http://www.mitecnologico.com/Main/ReconocimientoDeObjetosYClases