Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Presentado por:
Presentado a:
Davis Díaz
Chiquinquirá Boyacá
2019
1. Conceptos y Principios del Diseño de Software
Cada uno del modelo de análisis proporciona información necesaria para crear
un modelo de diseño, los requisitos de software, manifestado por datos y
modelos funcionales y de comportamiento, componen la fase de diseño, como
lo son:
En el proceso de diseño, se evalúa la calidad del diseño por medio de una serie
de revisiones técnicas formales, tres características que sirven como guía para
la evulación de un buen diseño son:
- Presentar una organización jerárquica que haga un uso inteligente del control
entre los componentes del software.
- Ser modular (partición lógica del software en elementos que realicen
funciones y sub funciones específicas).
- Contener abstracciones de datos y procedimentales.
- Producir módulos que presenten características funcionales independientes.
- Conducir a interfaces que produzcan la complejidad de las conexiones entre
los módulos y el entorno exterior.
- Producir un diseño usando un método que pudiera repetirse según la
información obtenida durante el análisis de requisitos del software.
- Factores de calidad externos: son esas propiedades del software que pueden
ser observadas fácilmente por los usuarios (por ejemplo, velocidad, fiabilidad,
grado de corrección, usabilidad).
- Factores de calidad internos: tienen importancia para los ingenieros del
software. Desde una perspectiva técnica conducen a un diseño de calidad
alta. Para lograr los factores de calidad internos, el diseñador deberá
comprender los conceptos de diseño básicos.
Arquitectura del software: el diseño del software debe crear una versión
arquitectónica de un sistema. Propiedades que deberían especificarse como
parte de un diseño arquitectónico:
- Propiedades estructurales: define los componentes de un sistema, la
manera que se empaquetan estos componentes y como interactúan con los
otros.
- Propiedades extra-funcionales: el diseño arquitectónico debería ocuparse
como consigue la arquitectura del diseño los requisitos de rendimiento,
capacidad, fiabilidad, seguridad, etc.
- Familias de sistemas relacionados: debería tener la capacidad de utilizar
bloques de construcción arquitectónica reutilizados.
I) AMBITO.
II) DISEÑO DE DATOS.
III) DISEÑO ARQUITECTÓNICO
IV) DISEÑO DE INTERFAZ
V) DISEÑO PROCEDIMENTAL
VI) REFERENCIA CRUZADA DE REQUISITOS.
VII) RECURSOS DE PRUEBAS
VIII) NOTAS ESPECIALES
IX) APENDICE.
Fuerte
Por contenido, cuando desde un módulo se puede cambiar datos locales de otro.
Común, se emplea una zona común de datos a la que tienen acceso varios
módulos.
Moderado
De control, la zona común es un dispositivo externo al que están ligados los
módulos, esto implica que un cambio en el formato de datos los afecta a todos.
Débil
De datos, viene dado por los datos que intercambian los módulos. Es el mejor.
Sin acoplamiento directo, es el acoplamiento que no existe.
Actividad 1: La encuesta
En general, la encuesta ocupa sólo del 5 al 10 por ciento del tiempo y los
recursos de todo el proyecto, y para los proyectos pequeños y sencillos pudiera
ni siquiera ser una actividad formal. A pesar de todo lo anterior, es una
actividad importante debido a que la administración pudiera decidir cancelar el
proyecto si no parece atractivo desde el punto de vista de costo-beneficio.
Actividad 2: El análisis de sistemas
El propósito principal de la actividad de análisis es transformar sus dos
entradas – o insumos o factores – principales, las políticas del usuario y el
esquema del proyecto, en una especificación estructurada. Esto implica
modelar el ambiente del usuario con diagramas de flujo de datos, diagramas de
entidad-relación, diagramas de transición de estado, etc.
El proceso paso a paso del análisis de sistemas implica el desarrollo de un
modelo ambiental y el desarrollo de un modelo de comportamiento, los cuales
se combinan para formar el modelo esencial que representa una descripción
formal de lo que el nuevo sistema debe hacer, independientemente de la
naturaleza de la tecnología que se use para cubrir los requerimientos.
Al final de la actividad de análisis también se debe preparar un conjunto de
presupuestos y cálculos de costo y beneficio más precisos y detallados.
Actividad 3: El diseño
Actividad 4: Implantación
Actividad 9: Instalación
4. MODELO DE OBJETOS
5. Modelo Dinámico
6. Reutilización de software
Dificultades de la reutilización
Ventajas
Desventajas
Necesidad de invertir antes de obtener resultados.
Carencia de métodos adecuados.
Necesidad de formar al personal.
Convencer a los “manager”.
Dificultad para institucionalizar los procesos.
1. Componentes ya desarrollados
2. Componentes ya experimentados
Especificaciones, diseños, código o datos de prueba existentes desarrollados
para proyectos anteriores que son similares al software que se va a construir
para el proyecto actual. Los miembros del equipo de software actual ya han
tenido la experiencia completa en el área de la aplicación representada para
estos componentes. Las modificaciones, por tanto, requeridas para
componentes de total experiencia, tendrán un riesgo relativamente bajo.
4. Componentes nuevos
Los componentes de software que el equipo de software debe construir
específicamente para las necesidades del proyecto actual.
Tipos de reutilización
Oportunista
El ingeniero de software reutiliza piezas que él sabe que se ajustan al
problema
Sistemática
Esfuerzo a nivel organizacional y planificado de antemano
Todo componente reutilizado ha de ser ideado, a priori, para ser
reutilizado
mplica inversiones iniciales para recoger frutos en el futuro
Diseñar componentes genéricos para que sean reutilizados con facilidad
Patrones de diseño
Descripción del problema y la esencia de una solución, de forma que la
solución se pueda reutilizar en diferentes situaciones
No es una especificación detallada
Es una descripción de conocimiento y experiencia acumulada
Los patrones y los lenguajes de patrones son formas de describir las mejores
prácticas, buenos diseños y encapsulan la experiencia de tal forma que es
posible para otros reutilizar dicha experiencia
Tipos de patrones
1. Patrones de creación
Permiten que el sistema sea independiente de cómo se crean, componen o
representan sus objetos
Encapsulan el conocimiento sobre las clases concretas que se van a utilizar
Ejemplos: Abstract factory, Builder, Factory Method, Singleton
2. Patrones estructurales
Facilitar y mejorar las relaciones entre objetos
Manera en que las instancias se comunican entre si.
Ejemplos: Adapter, Bridge, Composite, Decorator, Facade, Flyweight, Proxy
3. Patrones de comportamiento
Están relacionados con el flujo de control del sistema
Ciertas formas de organizar el control en un sistema pueden derivar en grandes
beneficios para la eficiencia y el mantenimiento del sistema
Ejemplos: Chain of Responsability, Comand, Interpreter, Iterator, Mediator,
Memento, Observer, State, Strategy, Template Method, Visitor
Niveles de Reutilización
1. Reutilización de Código
Librerías de funciones, editores, inclusión de ficheros, mecanismos
de herencia en POO, componentes, etc.
2. Reutilización de Diseños
No volver a inventar arquitecturas
ejemplo: patrones de diseño.
Estas herramientas automatizadas deberían ser más que simples formas rápidas
de introducción de datos en la base de datos de errores. Los paquetes de
software, tales como Selenium, permiten que el equipo de control de calidad
escriba código que inicia la aplicación e interactúa con ella al igual que lo haría
un usuario. El software puede pulsar botones, introducir datos, elegir diferentes
opciones y luego leer la pantalla para garantizar que se hayan dado las
respuestas correctas. Es importante saber qué herramienta utiliza el equipo de
control de calidad porque sus desarrolladores de aplicaciones pueden modificar
ligeramente la forma en que construyen el software para hacer que el proceso
de prueba automatizado sea más fácil y más productivo.
Paso 4. Formación
Además, no espere hacer esto una sola vez. Este es un proceso continuo, por lo
que debe asignar tiempo para hacerlo cuando sea necesario.