|
UNITEC SUR Prof. Ing. José Luis Lozoya Vázquez - 2. Intro. al Paradigma O.O.
|
|
|
2.1 La complejidad del software.
Al observar sistemas complejos sociales como una gran empresa, los naturales como el universo y los sistemas creados por el hombre como el computador, se observa que exhiben una jerarquía de clases (conceptos) y otra de objetos (instancias). En una empresa donde conjuntos de personas forman un departamento y un conjunto de departamentos forman divisiones se describe la forma canónica de un sistema complejo que exhibe dos jerarquías: Una jerarquía de clases y otra jerarquía de objetos, donde cada objeto es una instancia de la una clase. Este es el modelo del cual se apropia el análisis y diseño orientado a objetos para desarrollar sistemas donde hay gran cantidad de software.
Tipos de Software.
Software de dimensión industrial
- Sistemas reactivos: dirigen o son dirigidos por eventos.
- Sistemas en los cuales, el espacio y el tiempo son recursos escasos.
- Aplicaciones que deben mantener la integridad de cientos o miles de registros de información manteniendo la consistencia ante múltiples actualizaciones.
- Sistemas para la gestión y el control de entidades del mundo real.
Caracterizticas del Software Industral.
- Ciclo de vida largo.
- Usuarios que dependen de ellos.
- Imposibilidad de comprender por un solo desarrollador todas las sutilezas del diseño.
Causas de la complejidad del software
- Facilidad de uso.
- Exigencia de alto rendimiento y bajo costo.
- Capacidad de supervivencia.
Requisitos que cambian durante el desarrollo
- Simplicidad para el usuario.
- Tamaño (líneas de código).
- Modularización.
- Comunicación entre los integrantes del equipo.
- Director del equipo (persona clave).
Problemas de caracterizar sistemas discretos
Los sistemas complejos son jerárquicos y cada nivel de la jerarquía, constituye un nivel de abstracción diferente.
Atributos de un sistema complejo
- La complejidad toma la forma de una jerarquía, por lo que un sistema complejo se compone de subsistemas relacionados.
- La elección de que componentes de un sistema complejo son primitivos depende del diseñador.
- Enlaces internos de los componentes son más fuertes que los enlaces externos.
2.2 Abstracción.
La abstracción encarada desde el punto de vista de la programación orientada a objetos expresa las características esenciales de un objeto, las cuales distinguen al objeto de los demás. Además de distinguir entre los objetos provee límites conceptuales. Entonces se puede decir que la encapsulación separa las características esenciales de las no esenciales dentro de un objeto. Si un objeto tiene más características de las necesarias los mismos resultarán difíciles de usar, modificar, construir y comprender.
La misma genera una ilusión de simplicidad dado a que minimiza la cantidad de características que definen a un objeto.
Durante años, los programadores se han dedicado a construir aplicaciones muy parecidas que resolvían una y otra vez los mismos problemas. Para conseguir que sus esfuerzos pudiesen ser utilizados por otras personas se creó la POO que consiste en una serie de normas para garantizar la interoperabilidad entre usuarios de manera que el código se pueda reutilizar.
Ejemplo:
Pensar en términos de objetos es muy parecido a cómo lo haríamos en la vida real. Una analogía sería modelizar un coche en un esquema de POO. Diríamos que el coche es el elemento principal que tiene una serie de características, como podrían ser el color, el modelo o la marca. Además tiene una serie de funcionalidades asociadas, como pueden ser ponerse en marcha, parar o aparcar. En un esquema POO el coche sería el objeto, las propiedades serían las características como el color o el modelo y los métodos serían las funcionalidades asociadas como ponerse en marcha o parar.
2.3 Modularidad.
Es la propiedad de un sistema que ha sido descompuesto en un conjunto de módulos coherentes e independientes.
2.4 Encapsulamiento.
Esta característica es la que denota la capacidad del objeto de responder a peticiones a través de sus métodos sin la necesidad de exponer los medios utilizados para llegar a brindar estos resultados. O sea, el método MostrarSaldo() del objeto “cliente” antes mencionado, siempre nos va a dar el saldo de la cuenta de un cliente, sin necesidad de tener conocimiento de cuáles son los recursos que ejecuta para llegar a brindar este resultado.
2.5 Jerarquía.
Es el orden de las abstracciones organizado por niveles.
2.6 Polimorfismo.
El polimorfismo indica que una variable pasada o esperada puede adoptar múltiples formas.
Cuando se habla de polimorfismo en programación orientada a objetos se suelen entender dos cosas:
1. La primera se refiere a que se puede trabajar con un objeto de una clase sin importar de qué clase se trata. Es decir, se trabajará igual sea cual sea la clase a la que pertenece el objeto.
Esto se consigue mediante jerarquías de clases y clases abstractas.
2. La segunda suele referirse a la posibilidad de declarar métodos con el mismo nombre que pueden tener diferentes argumentos dentro de una misma clase.
La capacidad de un programa de trabajar con más de un tipo de objeto se conoce con el nombre de polimorfismo.
Hasta ahora la herencia se ha utilizado solamente para heredar los miembros de una clase base, pero también existe la posibilidad de que un método de una clase derivada se llame como método de la clase base pero tenga un funcionamiento diferente.
Por ejemplo, tomemos la clase disco_musica que hereda de la clase base disco:
EJEMPLO:
- class disco{
- protected:
- int capacidad;
- char * fabricante;
- int num_serie;
- public:
- disco (int c, char * f, int n){
- capacidad = c; strcpy(fabricante, f);
- num_serie=n;}
2.7 Persistencia.
Es la propiedad de un objeto a través de la cual su existencia trasciende el tiempo (es decir, el objeto continua existiendo después de que su creador ha dejado de existir) y/o el espacio (es decir, la localización del objeto se mueve del espacio de dirección en que fue creado).
2.8 Concurrencia.
Es la propiedad que distingue un objeto que está activo de uno que no lo está.
|
Hoy habia 6 visitantes (8 clics a subpáginas) ¡Aqui en esta página!
|
|
|
|