250023521 tipos de programacion

Anuncio
Luis Octavio Reyes Alatorre no. Mat. 250023521
Programación estructural






El programa completo tiene
un diseño modular.
Los módulos se diseñan con
metodología descendente
(puede hacerse también
ascendente)
Cada módulo se codifica
utilizando las tres estructuras
de control básicas:
secuenciales, selectivas y
repetitivas.
Estructuración y modularidad
son conceptos
complementarios.
Compuesto de segmentos, los
cuales puedan estar
constituidos por unas pocas
instrucciones o por una
página o más de codificación.
Cada segmento tiene
solamente una entrada y una
salida, estos segmentos,
asumiendo que no poseen
lazos infinitos y no tienen
instrucciones que jamás se
ejecuten, se denominan
programas propios.




Programación orientada a
objetos
El programa se organiza como
un conjunto finito de objetos
que contienen datos y
operaciones (funciones
miembro en C++) que llaman
a esos datos y que se
comunican entre sí mediante
mensajes.
Programación orientada a
aspectos
 Requiere de tres elementos
básicos:
Un lenguaje para definir la
funcionalidad basica, conocido
como lenguaje base o
componente. Podría ser un
lenguaje como C#, C++, Java o
Lisp.
Un objeto es una abstracción
de algún hecho o cosa del
mundo real que tiene
atributos que representan sus
características o propiedades
y métodos que representan
su comportamiento o
acciones que realizan.
Uno o varios lenguajes de
aspectos, para especificar el
comportamiento de los aspectos.
Como podrían ser COOL para
sincronización o RIDL para
distribución.
Todas las propiedades y
métodos comunes a los
objetos se encapsulan o se
agrupan en clases. ¨Una clase
es una plantilla o un prototipo
para crear objetos, por eso se
dice que los objetos son
instancias de clases
Protección de la información
Un tejedor de aspectos (aspect
weaver) que produce una
aplicación que integra las
funcionalidades de las clases y los
aspectos. Tal proceso se puede
llevar acabo en tiempo de
ejecución o en tiempo de
compilación.

La programación orientada a
aspectos se enfoca en los
conceptos que se entrecruzan
Programación orientada a
eventos
 El flujo de ejecución del
programa sigue la secuencia
de sentencias que lo forman.
 El estado del programa: esta
definido por el punto del
programa en el que estamos
ejecutando,(más los datos).
 Programas que atienden a
sucesos (eventos) que
ocurren, y dependiendo de
cuales sean, se ejecutan
diferentes funciones.
 No existe un único flujo de
ejecución
 Se especifican los eventos a
los que debe responder el
programa.
 Se especifican las acciones a
realizar cuando ocurren los
eventos.
 Funcionamiento asíncrono.
 Más difícil de conocer que en
un sistema secuencial.
Suelen ser Multihilo
Existen varios módulos
ejecutándose a velocidades
relativas diferentes.
Luis Octavio Reyes Alatorre no. Mat. 250023521







-Los programas son más
fáciles de entender. Puede ser
leído en secuencia, de arriba
hacia abajo, sin necesidad de
estar saltando de un sitio a
otro en la lógica.
La estructura del programa es
más clara puesto que las
instrucciones están más
ligadas o relacionadas entre si
Reducción del esfuerzo en las
pruebas. El programa se
puede tener listo para
producción normal en un
tiempo menor del tradicional;
por otro lado, el seguimiento
de las fallas o depuración, se
facilita debido a la lógica más
visible, de tal forma que los
errores se pueden detectar y
corregir más fácilmente.
Programas más sencillos y
más rápidos.
Aumento en la productividad
del programador.
Se facilita la utilización de las
otras técnicas para el
mejoramiento de la
productividad en
programación.
Los programas quedan mejor
documentados internamente.




Rápido desarrollo
Fácil mantenimiento
Se desea evitar la definición
multiple de datos y funciones
común, se logra mediante la
herencia (evita la definición
multiple de propiedades
comunes a muchos objetos) y
el polimorfismo (permite la
modificación de métodos
heredados)




Permite una implementación
modularizada reduciendo el
acoplamiento entre sus
partes.
El código es más limpio,
menos duplicado, más fácil de
entender y de mantener.
Elimina los problemas
causados por el código
mezclado y el código
diseminado.
Mayor reutilización, los
aspectos tienen mayores
probabilidades de ser
reutilizados en otros sistemas
con requerimientos similares.
Los sistemas son más
adaptables a cambios, la
separación de conceptos
permite agregar nuevos
aspectos, modificarlos o
removerlos fácilmente.
Los eventos internos ocurren en
cualquier momento.
El usuario decide que módulos
ejecuta, cuando, y cuantas veces.
Pueden existir módulos que no se
ejecuten nunca, o que se ejecuten
varias instancias
simultáneamente.
Existen datos compartidos entre
todos los módulos.
Necesita elementos que
monitoricen cuando se producen
los eventos, los capturen, y los
metan en una cola y planificador
o distribuidor que saque un
evento de la cola y se lo pase al
módulo que debe reaccionar ante
él
Luis Octavio Reyes Alatorre no. Mat. 250023521
Descargar