Está en la página 1de 32

Proyecto 0151-14 UNA

Mora & Coto, 2015

Resolucin de problemas usando


el paradigma de Programacin
Orientada a Objetos (POO)

Compilado por:
Mag. Sonia Mora.
Dra. Mayela Coto.
1
EIF200 FUNDAMENTOS DE INFORMTICA

Nos apresuramos a pasar por alto


los pasos previos a la programacin,
para tener tiempo de arreglar los
errores cometidos por apurarnos a
pasar a la programacin.
(G. Myers)
EIF200 FUNDAMENTOS DE INFORMTICA

Crisis del desarrollo de software


El trmino Crisis del Software fue acuado a
principios de los aos 70, cuando la ingeniera de
software era prcticamente inexistente.
El trmino expresaba las dificultades del
desarrollo de software frente:

al rpido crecimiento de la demanda por software,


la complejidad de los problemas a ser resueltos
la inexistencia de tcnicas establecidas para el
desarrollo de sistemas que funcionaran
adecuadamente o pudieran ser validados.

EIF200 FUNDAMENTOS DE INFORMTICA

Crisis del desarrollo de software

EIF200 FUNDAMENTOS DE INFORMTICA

Naturaleza y problemas del


desarrollo de software

La crisis del software: problemas que aparecen en


el desarrollo del software al desarrollar, mantener y
atender la demanda de nuevas aplicaciones.

EIF200 FUNDAMENTOS DE INFORMTICA

Crisis del desarrollo de software

EIF200 FUNDAMENTOS DE INFORMTICA

CC-BY por The Project Cartoon. Tomado


6 de
http://projectcartoon.com/gallery/

Principales problemas

EIF200 FUNDAMENTOS DE INFORMTICA

Principales causas
Solo del tiempo de desarrollo se dedicaba a
las fases de anlisis, diseo, codificacin y
pruebas.
Ms de del tiempo se dedicaba a correcciones
y mantenimiento.

Se

arrastran errores graves de las fases de anlisis


y diseo, hacia la fase de implementacin,
produciendo constantes retrocesos para revisar
este anlisis/diseo.

EIF200 FUNDAMENTOS DE INFORMTICA

Principales causas

Causas de la crisis del software

Naturaleza lgica del software


Mala gestin de los proyectos ( ausencia de datos, deficiente
comunicacin, ...)
Ausencia de entrenamiento formal en nuevas tcnicas
(programadores vs. ingenieros de software)
MITOS DE GESTIN
Resistencia al cambio
- Uso de estndares
Mitos del software:
- Uso de herramientas
- Mala planificacin: aumento
de programadores

MITOS DE LOS DESARROLLADORES

MITOS DEL CLIENTE

- Programa funcionando = fin del trabajo


- Calidad = el programa se ejecuta sin errores
- Entrega al cliente: programa funcionando

- Requisitos establecidos como una


declaracin general de objetivos
- Flexibilidad del software ante los
cambios

EIF200 FUNDAMENTOS DE INFORMTICA

Ejemplo: La inversin en desarrollo de


sistemas software ($6.8 Millones)
Crisis del ao 1979
Usado despus de cambios
2% 3%

16%

Usado pero con trabajo


extra o abandonado despus
Pagado pero nunca
entregado

49%
30%

Entregado pero nunca


usado
Usado tal como se entreg

Fuente: Apuntes Ingeniera del Software de Gestin. Tema 1: Software e Ingeniera del Software
EIF200 FUNDAMENTOS DE INFORMTICA

10

Ingeniera de software (IS): la solucin

IS: disciplina que intenta racionalizar el


proceso de desarrollo de software y establecer
pautas a seguir para el desarrollo que
minimicen tiempo, esfuerzo, y coste de
desarrollo y maximicen la calidad del software

EIF200 FUNDAMENTOS DE INFORMTICA

11

Mejoras causadas por la IS


Proyectos terminados con xito
Proyectos terminados con
modificaciones
Proyectos abandonados

1979 1991
2%
52%
3%
31,1%
76%

16,2%

Fuente: Apuntes Ingeniera del Software de Gestin. Tema 1: Software e Ingeniera del Software

EIF200 FUNDAMENTOS DE INFORMTICA

12

Ingeniera del software


Establecimiento y uso de principios de ingeniera
robustos, orientados a obtener software
econmico, fiable, eficiente y que satisfaga las
necesidades del usuario.
Aplicacin de teoras, mtodos y herramientas
para solucionar problemas, teniendo en cuenta
restricciones financieras y organizativas
Comprende procesos tcnicos del desarrollo y
actividades como la administracin de proyectos,
desarrollo de herramientas, mtodos y teoras

EIF200 FUNDAMENTOS DE INFORMTICA

13

Ciclo de vida
Se define como el conjunto de etapas por las que pasa el
sistema, desde su concepcin hasta su retirada de
servicio, pasando por su desarrollo y mantenimiento.
Las etapas cuyo nombre, contenido y especificacin van
variando a lo largo del tiempo de acuerdo con los
diferentes mtodos utilizados.
Las diferentes metodologas de la ingeniera de software
parten de diversos puntos de vista sobre el ciclo de
vida de una aplicacin.
Ciclo de vida en cascada, con prototipos, en
espiral, ciclo de vida en fuente para la orientacin a
objetos, etc.
EIF200 FUNDAMENTOS DE INFORMTICA

14

Durante el ciclo de vida

Todo puede cambiar


Considerar el cambio durante el desarrollo
Facilitar el cambio durante el mantenimiento
Es posible construir el sistema correcto la
primera vez?
Mantenimiento = evolucin

EIF200 FUNDAMENTOS DE INFORMTICA

15

Diseo - qu es?

Significado:
Proceso por el que se genera una solucin a un
problema
Descripcin de la solucin

Requerimientos

Restricciones

EIF200 FUNDAMENTOS DE INFORMTICA

Diseo
1
Diseo
2 ..
.
Diseo
n

Distintos Diseos
(Alternativas) permiten
cumplir con los
requerimientos, pero
cada uno ofrece
prestaciones especficas

16

Diseo y especificacin de Requerimientos


QU?

CMO?

DISEO
CONCEPTUAL

DISEO
TCNICO

Diseadores
del Sistema

funcin

Clientes

EIF200 FUNDAMENTOS DE INFORMTICA

forma

Constructores
del Sistema

17

Todas las imgenes son de dominio pblico

Diseo y
Especificacin de Requerimientos
El usuario podr
enviar mensajes a
cualquier usuario en
cualquier otra
computadora en
red

DISEO
CONCEPTUAL
EIF200 FUNDAMENTOS DE INFORMTICA

Topologa de Red
Protocolo
Velocidad (bps)
...

DISEO
TCNICO
18

Mtodos orientados a objetos

Tcnicas para abordar la complejidad de un problema utilizando


como procedimiento de modularizacin la identificacin de los
objetos del dominio del problema.
Los sistemas se conciben como compuestos de objetos
interrelacionados.

La forma en que se describe y comprende un sistema se realiza


describiendo de forma independiente los objetos y luego describiendo el
sistema en funcin de ellos y de las relaciones que entre ellos se
establecen.

Cada mdulo que se define corresponde a la abstraccin de un


objeto existente en el dominio del problema y en l se incluyen todos
los aspectos (funcionalidad, estados, datos, etc.) que son propios del
objeto.

EIF200 FUNDAMENTOS DE INFORMTICA

19

Programacin orientada a
objetos

Programacin estructurada

En los mtodos estructurados el


criterio de modularizacin es la
funcionalidad. La pregunta bsica
que se realiza en este caso, es:
Que hace el sistema?
Como respuesta a esta pregunta
aparecen las acciones que se
identifican con los mdulos que
son de naturaleza funcional. La
estrategia es tpicamente topdown. Se parte del programa
principal y luego se modulariza.
Descomponer un programa
consiste en descomponer acciones
complejas en trminos de acciones
ms simples capaces de ser
ejecutadas en una computadora.

EIF200 FUNDAMENTOS DE INFORMTICA

En los mtodos orientados a


objetos, el criterio de
modularizacin son los
componentes del problema. La
pregunta bsica que se realiza es:

Que componentes tiene el

problema?
Como respuesta se identifican los
objetos que intervienen en el
problema y la forma que
interactan entre s.
Un problema no se descompone
en funciones, sino en objetos.
El pensar en trminos de objetos
tiene una gran ventaja: se asocian
los objetos del problema a los
objetos del mundo real.
20

Programacin estructurada

Programacin orientada a
objetos
objeto

Programa
principal

Atributos
Mtodos
mensaje

mensaje

EIF200 FUNDAMENTOS DE INFORMTICA

fn1

objeto

fn2

Atributos

Atributos

Mtodos

Mtodos

objeto

21

Qu es la Orientacin a Objetos?

EIF200 FUNDAMENTOS DE INFORMTICA

22

Historia de la Orientacin a Objetos


Surge en el ao 1967 con un lenguaje llamado Simula

67.
En la dcada de 1970 se invent el lenguaje Small
talk, considerado como el primer lenguaje orientado
a objetos puro.
En agosto de 1995 surge el lenguaje de programacin
Java como una extensin de C++.
En el inicio de los 90s se consolida la orientacin a
objetos como una de las mejores maneras para
resolver problemas dentro de la Ingeniera de
Software.

EIF200 FUNDAMENTOS DE INFORMTICA

23

Beneficios de la Orientacin a Objetos

Se parece ms al mundo real


Permite representar modelos complejos
Muy apropiada para gran variedad de aplicaciones
Las empresas se estn orientando hacia la POO
Promueve la reutilizacin no solo del software, sino de
diseos completos.
Produce sistemas que estn construidos en formas
intermedias estables y por ello son ms resistentes al
cambio en especificaciones y tecnologa.
Las nuevas plataformas de desarrollo la han adoptado
(Java / .NET)

EIF200 FUNDAMENTOS DE INFORMTICA

24

Metodologas orientadas a objetos

Tienen su origen en la investigacin sobre los mtodos


que deben introducirse para mejorar la calidad del
software que se desarrolla.
Las caractersticas que debe tener un desarrollo software
para que sea de calidad se pueden clasificar en dos
grupos:

Factores de calidad externos: son aquellas caractersticas


cuya presencia o ausencia pueden ser detectadas por el usuario o
por el experto en el dominio del problema.
Factores de calidad internos: son aquellos que solo pueden
ser detectados por los profesionales informticos que desarrollan
la aplicacin o la mantienen.

EIF200 FUNDAMENTOS DE INFORMTICA

25

Metodologas orientadas a objetos


Los factores de calidad externos constituyen el
objetivo final que hay que satisfacer.
Los factores de calidad internos son necesarios
para poder garantizar que se van a satisfacer los
factores externos
Tcnicas para abordar la complejidad de un
problema utilizando como procedimiento de
modularizacin la identificacin de los objetos
del dominio del problema.

EIF200 FUNDAMENTOS DE INFORMTICA

26

Mtodos orientados a objetos

Los sistemas se conciben como compuestos de objetos


interrelacionados.

La forma en que se describe y comprende un sistema se realiza


describiendo de forma independiente los objetos y luego
describiendo el sistema en funcin de ellos y de las relaciones
que entre ellos se establecen.

Cada mdulo que se define corresponde a la abstraccin


de un objeto existente en el dominio del problema y en l
se incluyen todos los aspectos (funcionalidad, estados,
datos, etc.) que son propios del objeto.

EIF200 FUNDAMENTOS DE INFORMTICA

27

Factores de calidad

EIF200 FUNDAMENTOS DE INFORMTICA

28

Mtodos orientados a objetos

Las herramientas bsicas para abordar la complejidad


del desarrollo de software son:

EIF200 FUNDAMENTOS DE INFORMTICA

29

Mtodos orientados a objetos

Los mtodos orientados a objetos son aplicables a todas las fases de


desarrollo de una aplicacin software.

EIF200 FUNDAMENTOS DE INFORMTICA

30

Bibliografa Consultada
[Booch96] Booch, Grandy; Anlisis y Diseo Orientado a Objetos con
Aplicaciones., Editorial Addison Wesley Logman, 2 da edicin,
Mxico, 1996.

[Martin94] Martn, James; Odell, James J;Anlisis y Diseo


Orientado a Objetos, Editorial Prentice Hall, 1era edicin, Mxico,
1994.

[Rodrguez97] Rodrguez Rojas, Oldemar; C ++ para ambientes


grficos., Editorial Tecnolgica de Costa Rica, 1era edicin, Costa
Rica, 1997.

Wikipedia. http://es.wikipedia.org/wiki/Objeto. 7 abril 2010.


http://histinf.blogs.upv.es/2011/01/04/la-crisis-del-software/
EIF200 FUNDAMENTOS DE INFORMTICA

31

Proyecto 0151-14 UNA


Mora & Coto, 2015

Uso didctico curso EIF 200


Escuela de Informtica
Universidad Nacional
Costa Rica

EIF200 FUNDAMENTOS DE INFORMTICA

32

También podría gustarte