Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
MODELADO
UNIDAD 1
INTRODUCCION
INTRODUCCION
Muchos suponen que el software es tan slo otra palabra para los programas
de cmputo.
INTRODUCCION
INTRODUCCION
INTRODUCCION
Ingeniera de software
1.Disciplina de ingeniera Los ingenieros hacen que las cosas funcionen. Aplican
teoras, mtodos y herramientas donde es adecuado. Sin embargo, los usan de
manera selectiva y siempre tratan de encontrar soluciones a problemas, incluso
cuando no hay teoras ni mtodos aplicables.
Ingeniera de software
Ingeniera de software
Procesos de software
Comunicacin. Se busca entender los objetivos de los participantes respecto del proyecto, y reunir los
requerimientos que ayuden a definir las caractersticas y funciones del software.
Modelado. Ya sea usted diseador de paisaje, constructor de puentes, ingeniero aeronutico, carpintero
o arquitecto, a diario trabaja con modelos. Crea un bosquejo del objeto por hacer a fin de entender el
panorama general cmo se ver arquitectnicamente, cmo ajustan entre s las partes constituyentes
y muchas caractersticas ms. Si se requiere, refina el bosquejo con ms y ms detalles en un esfuerzo
por comprender mejor el problema y cmo resolverlo. Un ingeniero de software hace lo mismo al crear
modelos a fin de entender mejor los requerimientos del software y el diseo que los satisfar.
Construccin. Esta actividad combina la generacin de cdigo (ya sea manual o automatizada) y las
pruebas que se requieren para descubrir errores en ste. Despliegue. El software (como entidad
completa o como un incremento parcialmente terminado) se entrega al consumidor que lo evala y
que le da retroalimentacin, misma que se basa en dicha evaluacin.
Tales modelos son abstracciones del proceso que se utilizan para explicar
los diferentes enfoques del desarrollo de software. Se pueden considerar
marcos del proceso que se extienden y se adaptan para crear procesos
ms especficos de ingeniera de software.
2.
3.
Existen cuatro principios bsicos, estos principios son fruto de la experiencia en todas las ramas de la
ingeniera.
b) Todo modelo puede ser expresado a diferentes niveles de precisin. Esto es, es necesario poder
seleccionar el nivel de detalle que se desea ya que en diferentes partes de un proyecto y en
diferentes etapas se tendrn unas determinadas necesidades.
c) Los mejores modelos estn ligados a la realidad. Lo principal es tener modelos que nos permitan
representar la realidad lo ms claramente posible, pero no slo esto, tenemos que saber,
exactamente cuando se apartan de la realidad para no caer en la ocultacin de ningn detalle
importante.
d) Un nico modelo no es suficiente. Cualquier sistema que no sea trivial se afronta mejor desde
pequeos modelos casi independientes, que los podamos construir y estudiar independientemente y
que nos representen las partes ms diferenciadas del sistema y sus interrelaciones.
Para entender mejor los conceptos se utiliza un gato (cat) como analoga para
demostrar su semejanza con los conceptos de OOP.
Objetos
Piense en un objeto del mundo real, como por ejemplo un gato. Podra decirse que un
gato tiene propiedades (o estados) como nombre, edad y color; tambin tiene
comportamientos como dormir, comer y ronronear. En el mundo de la OOP, los objetos
tambin tienen propiedades y comportamientos. Al utilizar las tcnicas orientadas a
objetos, se puede tomar como modelo un objeto del mundo real (como un gato) o un
objeto ms abstracto (como un proceso qumico).
Para especificar objetos y sus propiedades, debe utilizar el operador punto (.). Por
ejemplo:
Crea un nuevo objeto denominado user y crea tres propiedades, name, age y phone,
que son tipos de datos String (cadena) y Number (nmero).
var user:Object = new Object();
user.name = "Irving";
user.age = 32;
user.phone = "555-1234";
Del mismo modo que en OOP, una clase define un modelo para un tipo de
objeto. Las caractersticas y los comportamientos que pertenecen a una
clase se conocen conjuntamente como miembros de dicha clase. Las
caractersticas (en el ejemplo del gato, el nombre, la edad y el color) se
denominan propiedades de la clase, y se representan como variables; los
comportamientos (jugar, dormir) se denominan mtodos de la clase, y se
representan como funciones.
Otro tipo de miembro es un miembro de clase. Slo hay una copia de un miembro de
clase, que se utiliza para toda la clase. Todas las variables declaradas dentro de una
clase, pero fuera de una funcin, son propiedades de la clase. En el siguiente ejemplo,
la clase Person tiene dos propiedades, age y username, de tipo Number y String,
respectivamente:
class Person {
public var age:Number;
public var username:String;
Herencia
Una de las principales ventajas de la OOP es que se pueden crear subclases de una
clase (es decir, ampliar la clase); la subclase heredar todas las propiedades y los
mtodos de la clase.
Una de las principales ventajas que aporta el uso de una estructura superclase/subclase
es que resulta ms fcil reutilizar cdigo similar entre diversas clases. Por ejemplo, puede
crear una superclase denominada Animal que contenga caractersticas y
comportamientos comunes a todos los animales. Seguidamente, tendra que crear
diversas subclases que heredaran de la superclase Animal y que aadieran
caractersticas y comportamientos especficos de ese tipo de animal.
Herencia
Podra crear una clase Cat que heredara de otra clase. Por ejemplo,
podra crear una clase Mammal (mamfero) que defina determinadas
propiedades y comportamientos comunes a todos los mamferos. Luego
podra crear una subclase Cat (gato) que se ampliara a la clase
Mammal. A su vez, otra subclase, pongamos por caso, la clase Siamese
(siams), podra ampliar (subclase) la clase Cat y, as, sucesivamente.
Resumen
Como ya hemos dicho la orientacin a objetos se basa en conceptos como clase, objeto,
herencia y polimorfismo, pero tambin en otros muchos.
Objeto: Un objeto es una cosa, generalmente extrada del vocabulario del espacio del problema o del
espacio de la solucin. Todo objeto tiene un nombre (se le puede identificar), un estado (generalmente
hay algunos datos asociados a l) y un comportamiento (se le pueden hacer cosas a objeto y l puede
hacer cosas a otros objetos). Un objeto de la clase Coches puede ser un Ford Mustang.
Clase: Es una descripcin de un conjunto de objetos similares. Por ejemplo la clase Coches. Una clase
contiene los atributos y las operaciones sobre esos atributos que hacen que una clase tenga la entidad
que se desea.
Atributo: Es una caracterstica concreta de una clase. Por ejemplo atributos de la clase Coches
pueden ser el Color, el Numero de Puertas...
Mtodo: Es una operacin concreta de una determinada clase. Por ejemplo de la clase Coches
podramos tener un mtodo arrancar() que lo que hace es poner en marcha el coche.
Resumen
Instancia: Es una manifestacin concreta de una clase (un objeto con valores concretos).
Tambin se le suele llamar ocurrencia. Por ejemplo una instancia de la clase Coches
puede ser: Un Ford Mustang, de color Gris con 3 puertas
Herencia: Es un mecanismo mediante el cual se puede crear una nueva clase partiendo
de una existente, se dice entonces que la nueva clase hereda las caractersticas de la
case existentes aunque se le puede aadir ms capacidades (aadiendo datos o
capacidades) o modificar las que tiene. Por ejemplo supongamos que tenemos la
VehiculosDeMotor. En esta clase tenemos los siguientes atributos: Cilindrados y Numero de
Ruedas, y el mtodo acelerar(). Mediante el mecanismo de herencia podemos definir la
clase Coches y la clase Motos. Estas dos clases heredan los atributos Cilindrada y Numero
de Ruedas de la clase VehculosDeMotor pero a su vez tendrn atributos propios (como
hemos dicho antes el Numero de Puertas es un atributo propio de la clase Coches que no
tienen sentido en la clase Motos). Se puede decir que Coches extiende la clase
VehculosDeMotor, o que VehculosDeMotor es una generalizacin de las clases Coches y
Motos.
Resumen
Resumen
Polimorfismo: Hace referencia a la posibilidad de que dos mtodos implementen distintas acciones,
aun teniendo el mismo nombre, dependiendo del objeto que lo ejecuta o de los parmetros que
recibe. En el ejemplo anterior tenamos dos objetos que heredaban el mtodo acelerar() de la clase
VehiculosDeMotor. De hecho en clase VehiculosDeMotor al ser general no tiene sentido que tenga
una implementacin concreta de este mtodo. Sin embargo, en las clases Coches y Motos si que hay
una implementacin clara y distinta del mtodo acelerar(), lo podemos ver en el cdigo fuente 1 y 2.
De este modo podramos tener un objeto VehculosDeMotor, llamado vdm, en el que residiera un
objeto Coche. Si realizramos la llamada vdm.acelerar() sabra exactamente que ha de ejecutar el
mtodo Coches::acelerar().
1.
Introduccin al UML
Antes de que UML apareciera, los analistas de sistemas intentaban evaluar los
requerimientos de sus clientes, generar un anlisis de requerimientos en algn tipo de
anotacin que ellos mismos comprendieran (aunque el cliente no lo comprendiera), dar
tal anlisis a uno o varios programadores y esperar que el producto final cumpliese con
lo que el cliente deseaba.
Dado que el desarrollo de sistemas es una actividad humana, hay muchas posibilidades
de cometer errores en cualquier etapa del proceso, por ejemplo, el analista pudo haber
malentendido al cliente, es decir, probablemente produjo un documento que el cliente
no pudo comprender, tal ves ese documento tampoco fue comprendido por los
programadores quienes, por ende, pudieron generar un programa difcil de utilizar y no
generar una solucin al problema original del cliente.
Introduccin al UML
Introduccin al UML
La clave esta en organizar el proceso de diseos de tal forma que los analistas, clientes,
desarrolladores y otras personas involucradas en el desarrollo del sistema lo
comprendan y convengan con el. El UML proporciona tal organizacin.
UML diseado por los 3 amigos ( Grady Booch, James Rumbaugh e Ivar Jacobson),
cada uno contaba con su propia metodologa para el anlisis y diseo orientado a
objetos, sus mtodos predominaron sobre las de sus competidores, y a mediados de los
noventa empezaron a desarrollar su trabajo en conjunto.
Los anteproyectos del UML empezaron a circular en la industria del software y conforme
diversos corporativos vieron que el UML era til para sus propsitos, se conformo un
consorcio del UML. Entre sus miembros se encuentra DEC, HP, intelcorp, Microsoft,
Oracle, y varios mas, el UML ha llegado a ser el estndar en la industria del software y su
evolucin continua.