Documentos de Académico
Documentos de Profesional
Documentos de Cultura
INTRODUCCION AL SOFTWARE
Por que nos obliga a unir nociones que se excluyen en el marco del principio de
simplificación/reducción.
Capas o niveles
SERVICIO NACIONAL DE APRENDIZAJE, SENA
TÉCNICO EN PROGRAMACIÓN DE SOFTWARE
MODELOS
P1. Elegir bien el modelo. La elección del modelo influye contundentemente sobre como se
acomete el problema y como se acomete la solución
COMPLEJIDAD
COMPLEJIDAD DE SOFTWARE
INCERTIDUMBRE
MODULARIDAD
GENERALIDAD - GENERACIDAD
INTERFAZ
NOCIONES DE CAOS
NOCIONES DE INCERTIDUMBRE
MÁQUINAS DE ESTADO FINITO
INGENIERÍA DE REQUERIMIENTOS
SERVICIO NACIONAL DE APRENDIZAJE, SENA
TÉCNICO EN PROGRAMACIÓN DE SOFTWARE
SERVICIO NACIONAL DE APRENDIZAJE, SENA
TÉCNICO EN PROGRAMACIÓN DE SOFTWARE
Es la capacidad de los productos de software para realizar Con exactitud sus tareas tal y como la
definen las especificaciones. Son tantas las situaciones complejas que una estrategia multinivel
en la que cada nivel confía en la corrección de los niveles inferiores.
Hardware
Robustez
Esta complementa la corrección que cubre lo previsto y aquí cubre lo imprevisto. Tendrá que ver
con el estudio de excepciones.
Extensibilidad
1. Simplicidad de diseño: Una arquitectura simple siempre será más fácil de adaptar a los
2. Descentralización: Cuanto más autónomos sean los módulos, más alta es la probabilidad
Reutilización
SERVICIO NACIONAL DE APRENDIZAJE, SENA
TÉCNICO EN PROGRAMACIÓN DE SOFTWARE
Hay situaciones en las que sistemas de software siguen ciertos patrones similares de modo que se
puede explotar esta similitud. Capturando este patrón un elemento reutilizable de software se
podrá aplicar en muchos desarrollos diferentes.
Compatibilidad
Eficiencia
Portabilidad
Facilidad de uso
Es la facilidad con la cual las personas de diferentes niveles y oficios pueden aprender a usar los
productos software y aplicarlos a la solución de problemas. Facilidad de instalación, operación y
SERVICIO NACIONAL DE APRENDIZAJE, SENA
TÉCNICO EN PROGRAMACIÓN DE SOFTWARE
supervisión. “un buen diseñador debe hacer un esfuerzo para comprender a la comunidad de
usuarios a la que se destina el sistema”.
Funcionalidad
Otras cualidades
Integridad: Es la capacidad de los sistemas de software para proteger sus diversos Componentes
(programas, datos...).
BENEFICIOS
SERVICIO NACIONAL DE APRENDIZAJE, SENA
TÉCNICO EN PROGRAMACIÓN DE SOFTWARE
1. Descomposición modular:
SERVICIO NACIONAL DE APRENDIZAJE, SENA
TÉCNICO EN PROGRAMACIÓN DE SOFTWARE
2. Composición modular:
3. Compr
ensibilidad modular:
4. Continuidad modular:
5. Protección modular:
Un método satisface la protección modular si produce arquitecturas en las cuales el efecto de una
situación anormal que se produzca dentro de un módulo durante la ejecución, queda confinado a
dicho módulo , ó, en el peor de los casos, solo a unos pocos módulos vecinos.
DE LOS 5 CRITERIOS ANTERIORES SE DERIVAN CINCO REGLAS QUE SE DEBEN SEGUIR PARA
GARANTIZAR LA MODULARIDAD.
1. Correspondencia directa.
2. Pocas interfaces
3. Pequeñas interfaces
Si dos módulos se comunican deben intercambiar la menor información posible“.
4. Interfaces explícitas.
Siempre que dos módulos A y B se comuniquen esto debe ser obvio a partir del texto de A
y B o de ambos.
En resumen, esta regla se refiere a que el lenguaje a cualquier nivel (Análisis – diseño-
implementación) los módulos puedan compilarse por separado.
Excluye combinar métodos que permiten modularidad y otros no. Ejemplo, intentar
Implementar, lo que esta OO en un lenguaje que no permite objetos (pascal o C).
2. Principio auto-documentación.
El diseñador de un módulo deberá esforzarse por lograr que toda la información relativa
al módulo forme parte del propio módulo.
4. Principio abierto-cerrado.
Los módulos deben ser a la vez abiertos y cerrados.
Abierto: El módulo debe poderse extender. Ejemplo: Debería ser posible expandir su
conjunto de operaciones o añadir datos a sus estructuras de datos.
CERRADO: El módulo está disponible para ser usado por otros módulos. Entonces se
supone que el módulo tiene una descripción (interfaz en el sentido de ocultación de
información) estable y bien definida.
Cerrar un módulo en especificación o diseño: Que haya sido aprobado por la dirección
del proyecto.
Cerrar un módulo en nivel implementación: Implica que se pueda compilar, tal vez,
almacenar en una biblioteca y ponerlo a disposición de otros (clientes) para su uso.
¿Que es generosidad?
La generosidad es una facilidad para autores de módulos proveedores. Hace posible escribir el
mismo texto del proveedor cuando se utiliza la misma implementación de un cierto concepto,
aplicada a diferentes clases de objetos.
¿Qué es un paquete?
P1.Es una estructura del lenguaje, de modo que todo paquete tiene un nombre y un ámbito
sintáctico claro.
P2.La definición de cada paquete contiene un cierto número de declaraciones de los elementos
relacionados, tales como rutinas y variables, que en lo sucesivos se denominan características del
paquete.
P3.Cada paquete puede especificar unos derechos de acceso precisos que gobiernan la utilización
de sus características por parte de otros paquetes. Es decir, permite la ocultación de información.
P4.En un lenguaje de compilar (que pueda usarse para implementación y no solo para
especificación y diseño) es posible compilar paquetes por separado.
Ingredientes de la computación
SERVICIO NACIONAL DE APRENDIZAJE, SENA
TÉCNICO EN PROGRAMACIÓN DE SOFTWARE
• Los objetos: son las estructuras de datos sobre los que se aplican las acciones
TECNOLOGIA DE OBJETOS
SERVICIO NACIONAL DE APRENDIZAJE, SENA
TÉCNICO EN PROGRAMACIÓN DE SOFTWARE
Es un tipo abstracto de dato equipado de una implementación posiblemente parcial. Una clase es
un modelo y un objeto es una instancia de ese modelo
SERVICIO NACIONAL DE APRENDIZAJE, SENA
TÉCNICO EN PROGRAMACIÓN DE SOFTWARE
CLASE EFECTIVA:
Clase diferida:
PRINCIPIOS METODOLOGICOS
Las reglas de metodologías de software deben basarse en una teoría sobre el tema adyacente.
Las reglas de metodologías de software deben estar respaldadas por una amplia experiencia
práctica”.
De la experiencia en reutilización:
SERVICIO NACIONAL DE APRENDIZAJE, SENA
TÉCNICO EN PROGRAMACIÓN DE SOFTWARE
Para poder asegurar que se es un experto en el campo de la orientación a objetos Se debe haber
desempeñado un papel clave en el desarrollo de alguna biblioteca. De clases que haya sido
utilizada con éxito en un grupo amplio de proyectos Diferentes y en diferentes contextos.
Al elaborar las reglas metodológicas se deben favorecer los positivos absolutos para cada una de
estas reglas hay que examinar si es posible o no imponerla automáticamente a través de
herramientas o estructuras del lenguaje.
Todo negativo absoluto debe estar respaldado por una explicación precisa de por que el autor
considera que el mecanismo rechazado es malo en la práctica y ddebe estar acompañado por una
descripción precisa de la forma de sustituir este Mecanismo por otros.
De las recomendaciones:
EXCEPCIONES
De inclusión de excepciones:
Si una regla metodológica presenta una guía que es aplicable en general, pero que tiene
excepciones, las excepciones deben anunciarse como parte de la regla.
SERVICIO NACIONAL DE APRENDIZAJE, SENA
TÉCNICO EN PROGRAMACIÓN DE SOFTWARE
• Examine la herramienta o lenguaje usados como base para determinar si esta refleja
deficiencia en el diseño su adyacente.
TALLER