Sei sulla pagina 1di 29

INTRODUCCION AL

MODELADO
UNIDAD 1

INTRODUCCION

Muchos individuos escriben programas. En las empresas los empleados


hacen programas de hoja de clculo para simplificar su trabajo;
cientficos e ingenieros elaboran programas para procesar sus datos
experimentales. El software profesional, destinado a usarse por alguien
ms aparte de su desarrollador, se lleva a cabo en general por equipos,
en vez de individualmente. Se mantiene y cambia a lo largo de su vida.

La ingeniera de software busca apoyar el desarrollo de software


profesional, en lugar de la programacin individual. Incluye tcnicas que
apoyan la especificacin, el diseo y la evolucin del programa, ninguno
de los cuales son normalmente relevantes para el desarrollo de software
personal.

INTRODUCCION

Muchos suponen que el software es tan slo otra palabra para los programas
de cmputo.

No obstante, cuando se habla de ingeniera de software, esto no slo se


refiere a los programas en s, sino tambin a toda la documentacin
asociada y los datos de configuracin requeridos para hacer que estos
programas operen de manera correcta.

Un sistema de software desarrollado profesionalmente es usualmente ms que


un solo programa. El sistema por lo regular consta de un nmero de
programas separados y archivos de configuracin que se usan para instalar
dichos programas. Puede incluir documentacin del sistema, que describe la
estructura del sistema; documentacin del usuario, que explica cmo usar el
sistema, y los sitios web para que los usuarios descarguen informacin
reciente del producto.

INTRODUCCION

INTRODUCCION

INTRODUCCION

Los ingenieros de software estn interesados por el desarrollo de


productos de software (es decir, software que puede venderse a un
cliente). Existen dos tipos de productos de software:

1. Productos genricos Consisten en sistemas independientes que se producen


por una organizacin de desarrollo y se venden en el mercado abierto a
cualquier cliente que desee comprarlos. Ejemplos de este tipo de productos
incluyen software para PC, como bases de datos, procesadores de texto,
paquetes de dibujo y herramientas de administracin de proyectos.

2. Productos personalizados (o a la medida) Son sistemas que estn destinados


para un cliente en particular. Un contratista de software desarrolla el programa
especialmente para dicho cliente. Ejemplos de este tipo de software incluyen
los sistemas de control para dispositivos electrnicos, sistemas escritos para
apoyar cierto proceso empresarial y los sistemas de control de trfico areo.

Ingeniera de software

La ingeniera de software es una disciplina de ingeniera que se interesa por


todos los aspectos de la produccin de software, desde las primeras etapas
de la especificacin del sistema hasta el mantenimiento del sistema despus
de que se pone en operacin. En esta definicin se presentan dos frases
clave:

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.

2. Todos los aspectos de la produccin del software La ingeniera de software no


slo se interesa por los procesos tcnicos del desarrollo de software, sino tambin
incluye actividades como la administracin del proyecto de software y el desarrollo
de herramientas, as como mtodos y teoras para apoyar la produccin de
software.

Ingeniera de software

La ingeniera busca obtener resultados de la calidad requerida dentro de


la fecha y del presupuesto.

los ingenieros de software adoptan en su trabajo un enfoque sistemtico


y organizado, pues usualmente sta es la forma ms efectiva de producir
software de alta calidad.

Ingeniera de software

Un proceso de software es una secuencia de actividades que conducen a la


elaboracin de un producto de software. Existen cuatro actividades
fundamentales que son comunes a todos los procesos de software, y stas
son:

1. Especificacin del software, donde clientes e ingenieros definen el software


que se producir y las restricciones en su operacin.

2. Desarrollo del software, donde se disea y programa el software.

3. Validacin del software, donde se verifica el software para asegurar que


sea lo que el cliente requiere.

4. Evolucin del software, donde se modifica el software para reflejar los


requerimientos cambiantes del cliente y del mercado.

Procesos de software

Un proceso de software es una serie de actividades relacionadas que


conduce a la elaboracin de un producto de software.

Los procesos de software son complejos y, como todos los procesos


intelectuales y creativos, se apoyan en personas con capacidad de juzgar y
tomar decisiones. No hay un proceso ideal; adems, la mayora de las
organizaciones han diseado sus propios procesos de desarrollo de software.

Los procesos de software pueden mejorarse con la estandarizacin de los


procesos, donde se reduce la diversidad en los procesos de software en una
organizacin. Esto conduce a mejorar la comunicacin, a reducir el tiempo
de capacitacin, y a que el soporte de los procesos automatizados sea ms
econmico. La estandarizacin tambin representa un primer paso
importante tanto en la introduccin de nuevos mtodos y tcnicas de
ingeniera de software, como en sus buenas prcticas.

Modelos de proceso de software

Una estructura de proceso general para la ingeniera de software consta de cinco


actividades:

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.

Planeacin. Cualquier viaje complicado se simplifica si existe un mapa. Un proyecto de software es un


viaje difcil, y la actividad de planeacin crea un mapa que gua al equipo mientras viaja. El mapa
llamado plan del proyecto de software define el trabajo de ingeniera de software al describir las
tareas tcnicas por realizar, los riesgos probables, los recursos que se requieren, los productos del trabajo
que se obtendrn y una programacin de las actividades.

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.

Modelos de proceso de software

Cada modelo del proceso representa a otro desde una particular


perspectiva y, por lo tanto, ofrece slo informacin parcial acerca de
dicho proceso. Por ejemplo, un modelo de actividad del proceso
muestra las actividades y su secuencia, pero quiz sin presentar los roles
de las personas que intervienen en esas actividades.

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.

Modelos de proceso de software

Los modelos del proceso que se veremos son:


1.

El modelo en cascada (waterfall) ste toma las actividades fundamentales del


proceso de especificacin, desarrollo, validacin y evolucin y, luego, los
representa como fases separadas del proceso, tal como especificacin de
requerimientos, diseo de software, implementacin, pruebas, etctera.

2.

Desarrollo incremental Este enfoque vincula las actividades de especificacin,


desarrollo y validacin. El sistema se desarrolla como una serie de versiones
(incrementos), y cada versin aade funcionalidad a la versin anterior.

3.

Ingeniera de software orientada a la reutilizacin Este enfoque se basa en la


existencia de un nmero significativo de componentes reutilizables. El proceso
de desarrollo del sistema se enfoca en la integracin de estos componentes
en un sistema, en vez de desarrollarlo desde cero.

Principios bsicos del modelado

Existen cuatro principios bsicos, estos principios son fruto de la experiencia en todas las ramas de la
ingeniera.

a) La eleccin de qu modelos se creen influye directamente sobre cmo se acomete el problema.


Hay que seleccionar el modelo adecuado para cada momento y dependiendo de que modelo se
elija se obtendrn diferentes beneficios y diferentes costes. En la industria software se ha comprobado
que un modelado orientado a objetos proporciona unas arquitecturas ms flexibles y readaptables
que otros por ejemplo orientados a la funcionalidad o a los datos.

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.

Conceptos bsicos de la orientacin


a objetos

La programacin orientada a objetos (POO, u OOP segn sus siglas en


ingls) es un paradigma de programacin que usa objetos en sus
interacciones, para disear aplicaciones y programas informticos.

Est basada en varias tcnicas, incluyendo herencia, cohesin,


abstraccin, polimorfismo, acoplamiento y encapsulamiento.

Su uso se populariz a principios de la dcada de 1990. En la actualidad,


existe una gran variedad de lenguajes de programacin que soportan la
orientacin a objetos.

Conceptos bsicos de la orientacin


a objetos

La programacin orientada a objetos,


ha tomado las mejores ideas de la
programacin estructurada y los ha combinado con varios conceptos nuevos y
potentes que incitan a contemplar las tareas de programacin desde un nuevo punto
de vista. La programacin orientada a objetos, permite descomponer mas fcilmente
un problema en subgrupos de partes relacionadas del problema. Entonces, utilizando el
lenguaje se pueden traducir estos subgrupos a unidades autocontenidas llamadas
objetos

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

Conceptos bsicos de la orientacin


a objetos

Un objeto es un conjunto de propiedades.

Una propiedad es un atributo que describe el objeto. Por ejemplo, la transparencia de


un objeto (como, por ejemplo, un clip de pelcula) es un atributo que describe su
apariencia. Cada propiedad tiene un nombre y un valor. El valor de una propiedad
puede ser cualquier tipo de datos, incluso el tipo de datos Objeto. Esto permite
organizar unos objetos dentro de otros o anidarlos.

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";

Conceptos bsicos de la orientacin


a objetos

Instancias y miembros de clase

Siguiendo con la analoga de un gato, piense que hay gatos de distintos


colores, edades y nombres, con maneras diferentes de comer y ronronear.
Pero a pesar de sus diferencias individuales, todos los gatos pertenecen a la
misma categora o, en trminos de OOP, a la misma clase: la clase formada
por los gatos (cats). En la terminologa de OOP, se dice que cada gato
individual es una instancia de la clase Cat (gato).

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.

Conceptos bsicos de la orientacin


a objetos

Instancias y miembros de clase

La mayora de los miembros (mtodos y propiedades) descritos hasta ahora en este


captulo son de un tipo denominado miembros de instancias. Por cada miembro de
instancia, existe una copia exclusiva de dicho miembro en cada instancia de la clase.

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;

Conceptos bsicos de la orientacin


a objetos

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.

La subclase normalmente define mtodos y propiedades adicionales o anula los


mtodos o propiedades definidos en la superclase. Las subclases tambin pueden
suplantar a (proporcionar sus propias definiciones para) los mtodos heredados de una
superclase.

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.

Conceptos bsicos de la orientacin


a objetos

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.

La escritura de subclases le permite reutilizar el cdigo. En lugar de volver


a crear todo el cdigo comn a las dos clases, simplemente puede
ampliar una clase existente.

Conceptos bsicos de la orientacin


a objetos

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.

Conceptos bsicos de la orientacin


a objetos

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.

Conceptos bsicos de la orientacin


a objetos

Resumen

Conceptos bsicos de la orientacin


a objetos

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

El UML (lenguaje Unificado de Modelado) es una delas herramientas mas eficientes en


el mundo actual del desarrollo de sistemas. Esto se debe a que permite a los creadores
de sistemas generar diseos que capturen sus ideas en una forma convencional y fcil
de comprender para comunicarlas a otras personas.

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

En un inicio, los programadores no realizaban anlisis muy profundos sobre el


problema a resolver, si acaso garabateaban algo en una servilleta,
comenzaban a escribir el programa desde el principio y el cdigo necesario
se escriba conforme se requera.

Hoy en da es necesario contar con un plan bien analizado, el cliente debe


comprender que es lo que har un equipo de desarrolladores; adems tiene
que ser capaz de sealar cambios sino se ha captado claramente sus
necesidades o si cambia de opinin durante el proceso. A su ves, el desarrollo
es un esfuerzo orientado a equipos, por lo que cada miembro tiene que saber
que lugar toma su trabajo en la solucin final.

Conforme aumenta la complejidad del un sistema, existirn diversas piezas de


hardware y software que se comunican y vinculan a base de datos que a su
ves contienen una gran cantidad de informacin, la pregunta sera Cmo
manejar tanta complejidad?

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.

Otra caractersticas del desarrollo de sistemas contemporneo es reducir el periodo de


desarrollo

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.

Diagramas del UML

El UML esta compuesto por diversos elementos grficos que se combinan


para conformar diagramas.

Debido a que el UML, es un lenguaje, cuenta con reglas para combinar


tales elementos.

La finalidad de los diagramas es presentar diversas perspectivas de un


sistema, a las cuales se les conoce como modelo.

El modelo UML de un sistema es similar a un modelo a escala de un


edificio junta con la interpretacin del artista del edificio.

Potrebbero piacerti anche