tarea 15a17Dis - Carreras de Informática y Sistemas

Download Report

Transcript tarea 15a17Dis - Carreras de Informática y Sistemas

Capitulo IV: Fase Desarrollo
1. Diseño
2. Codificación
3. Pruebas
Mgr. Indira Camacho
Objetivos
 Establecer actividades estructurales de la fase de
desarrollo
 Establecer los objetivos de la fase de desarrollo y sus
principales actividades:
 diseño,
 codificación
 pruebas
 Establecer subactividades de diseño, codificación y
pruebas
 Establecer los hitos de las actividades de diseño,
codificación y pruebas
Carrera de Sistemas&Informática
UMSS: Cochabamba-Bolivia
2
Mgr. Indira Camacho del Castillo
Materia: Ingeniería de Software
Desarrollo
¿ Cómo lo hacemos ?
¿ Cómo han de ser las estructuras de datos. ?
¿ Cómo va ha ser la arquitectura del software. ?
¿ Cómo han de implementarse los procedimientos identificados. ?
¿ Cómo va a traducirse el diseño a un lenguaje de programación. ?
¿ Cómo ha de realizarse la prueba. ?
Carrera de Sistemas&Informática
UMSS: Cochabamba-Bolivia
3
Mgr. Indira Camacho del Castillo
Materia: Ingeniería de Software
Actividad: Diseño
Carrera de Sistemas&Informática
UMSS: Cochabamba-Bolivia
4
Mgr. Indira Camacho del Castillo
Materia: Ingeniería de Software
Actividad: Diseño
Carrera de Sistemas&Informática
UMSS: Cochabamba-Bolivia
5
Mgr. Indira Camacho del Castillo
Materia: Ingeniería de Software
¿Por qué diseñar?
Puede hacerlo una sola
persona
Vs.
Construido eficientemente y en un
Requiere:
tiempo razonable por un equipo
Modelado mínimo
Requiere:
Proceso simple
Herramientas
Carrera de simples
Sistemas&Informática
UMSS: Cochabamba-Bolivia
Modelado
(de Patricio Lettelier)
Mgr. Indira Camacho del Castillo
Proceso bien definido
Herramientas más sofisticadas
Materia: Ingeniería de Software
6
¿Por qué diseñar?
 El diseño debe actuar como base para la
implementación.
 Es un medio de comunicación entre los
diseñadores de subsistemas
 Provee información para el mantenimiento, a
cerca de la intención original.
Carrera de Sistemas&Informática
UMSS: Cochabamba-Bolivia
7
Mgr. Indira Camacho del Castillo
Materia: Ingeniería de Software
¿Qué es Diseño?
Un modelo de un sistema del mundo real que
tiene muchas entidades participantes y
relaciones entre ellas.
¿Qué es diseñar ?
Traducir los requisitos del software a
un conjunto de representaciones:
gráficas, tabulares, basadas en lenguajes, que
describen la estructura de datos, la arquitectura,
el procedimiento algorítmico, características de
la interfaz y otros aspectos del software.
Carrera de Sistemas&Informática
UMSS: Cochabamba-Bolivia
8
Mgr. Indira Camacho del Castillo
Materia: Ingeniería de Software
Diseño: El producto
El Documento de Diseño del Sistema
Se produce una especificación de diseño. La especificación se
compone de los modelos del diseño que describen los datos,
arquitectura, interfaces y componentes.
Cada una de estas partes es lo que forma el producto obtenido del
proceso de diseño.
Carrera de Sistemas&Informática
UMSS: Cochabamba-Bolivia
9
Mgr. Indira Camacho del Castillo
Materia: Ingeniería de Software
Contenido Documento de Diseño
Arquitectura
2. Planteamiento de la solución
1.
a)
b)
c)
d)
3.
Diferentes vistas del sistema
Modelos de procesos
Modelos de Almacenamiento
Algoritmos
Diseño de la Interfaz de Usuario
Carrera de Sistemas&Informática
UMSS: Cochabamba-Bolivia
10
Mgr. Indira Camacho del Castillo
Materia: Ingeniería de Software
Actividades de diseñar SW (Sommerville)
Especificación de
Requerimientos
Diseño
Arquitectónico
Especificación
Abstracta
Diseño de la
Interface
Diseño de
componentes
Diseño de la
estructura de datos
Diseño de
Algoritmos
Arquitectura del
sistema
Especificación de
Software
Especificación de
la interface
Especificación de
componentes
Especificación
estructura de datos
Especificación de
algoritmos
Carrera de Sistemas&Informática
UMSS: Cochabamba-Bolivia
11
Mgr. Indira Camacho del Castillo
Materia: Ingeniería de Software
Actividades de diseñar SW (Sommerville)
Diseño arquitectónico: Los subsistemas que conforman el sistema completo y sus
relaciones son identificados y documentados
Especificación abstracta: para cada subsistema, una especificación abstracta de los
servicios que proveerán y las restricciones bajo las cuales deben operar son
establecidas.
Diseño de la interfaz: Para cada subsistema su interfaz con otros subsistemas es
diseñada y documentada. Esta especificación de la interfaz debe ser no ambigua y
debe permitir que el subsistema sea usado sin conocer como opera internamente.
Diseño de componentes: Los servicios que provee un subsistema son particionados
en componentes de ese subsistema
Diseño de la estructura de datos: Las estructuras de datos usadas en la
implementación del sistema son diseñadas y especificadas en detalle.
Diseño de algoritmos: Los algoritmos usados para proveer servicios son diseñados y
especificados en detalle.
Carrera de Sistemas&Informática
UMSS: Cochabamba-Bolivia
12
Mgr. Indira Camacho del Castillo
Materia: Ingeniería de Software
La Actividad de Diseño
 Entrada
 Documento de requisitos del software
 Actividades
 Estrategias de solución
 Modelo de solución
 Salida
 Documento de diseño del software
Carrera de Sistemas&Informática
UMSS: Cochabamba-Bolivia
13
Mgr. Indira Camacho del Castillo
Materia: Ingeniería de Software
Características ….
 Debe implementar todos los requisitos
explícitos
contenidos en el modelo de análisis, debe ser ajustable a los
requisitos del cliente
 Debe ser una guía legible y comprensible
para quienes generan el código, debe proporcionar una
imagen completa del software desde una perspectiva de
implementación
Carrera de Sistemas&Informática
UMSS: Cochabamba-Bolivia
14
Mgr. Indira Camacho del Castillo
Materia: Ingeniería de Software
Diseño : Atributos de SW
El diseño se enfoca sobre cuatro atributos
distintos del programa:
1. La estructura de los datos
2. La arquitectura del software
3. El detalle procedimental y
4. La caracterización de la interfaz.
Carrera de Sistemas&Informática
UMSS: Cochabamba-Bolivia
15
Mgr. Indira Camacho del Castillo
Materia: Ingeniería de Software
Cualidades o atributos de calidad
Modular
Buen
nombra
miento
Bien
documentado
Carrera de Sistemas&Informática
UMSS: Cochabamba-Bolivia
Robusto
Mínimo
acoplamie
nto
Simple
Adaptable
Legible =
Entendible
Mantenible =
Modificable
Cohesión
16
Mgr. Indira Camacho del Castillo
Materia: Ingeniería de Software
Cualidades o atributos de calidad
Mantenible = Modificable
Legible =
Entendible
Buen
nombra
miento
Bien
docume
ntado
Carrera de Sistemas&Informática
UMSS: Cochabamba-Bolivia
Simple
Adaptable
Robusto
Modular
Cohesión
Mínimo
acoplami
ento
17
Mgr. Indira Camacho del Castillo
Materia: Ingeniería de Software
Niveles de cohesión por Yourdon
Estudia la relación que existe entre elementos
del mismo módulo
Cohesión.- es la medida de la relación “funcional”
de los elementos (cualquier pieza) de un
módulo.
 Elementos que tengan una mayor relación (alta cohesión) Mismo
módulo
 Elementos no relacionados (baja o ninguna cohesión) Módulos
separados
Carrera de Sistemas&Informática
UMSS: Cochabamba-Bolivia
18
Mgr. Indira Camacho del Castillo
Materia: Ingeniería de Software
Niveles de cohesión por Yourdon
 1. Cohesión accidental
Las partes de un componente no están relacionadas, aunque han sido puestas en un mismo
componente.
 2. Asociación lógica
Componentes que ejecutan funciones similares como entrada, manejo de errores, etc. son puestos
en el componente.
 3. Cohesión temporal
Todos lo componentes son activados a un mismo tiempo, como por ejemplo: levantar el sistema,
bajar el sistema.
 4. Cohesión procedural
Todos los componentes son activados para realizar una secuencia de control
 5. Cohesión comunicacional
Todos los elementos de un componente operan sobre los mismos datos o producen la misma
salida.
 6. Cohesión secuencial
La salida de un elemento en el componente sirve como entrada para otros elementos
 7. Cohesión funcional
Cada uno de los elementos del componente es necesario para la ejecución de una simple función.
Carrera de Sistemas&Informática
UMSS: Cochabamba-Bolivia
19
Mgr. Indira Camacho del Castillo
Materia: Ingeniería de Software
DISEÑO:
ARQUITECTURA DE SW
Definición
El proceso de diseño inicial para identificar los
subsistemas y establecer un marco de
trabajo para el control y comunicación de los
subsistemas se llama diseño arquitectónico y
lo que produce este proceso de diseño es
una descripción de la ….
arquitectura de software.
Carrera de Sistemas&Informática
UMSS: Cochabamba-Bolivia
21
Mgr. Indira Camacho del Castillo
Materia: Ingeniería de Software
Ventajas del diseño arquitectónico
Bass et al (1998)
 Comunicación entre los participantes: Arquitectura es
representación de alto nivel se utiliza como punto de discusión por un rango
diferente de participantes.
 Análisis del sistema Hacer explícita la arquitectura del sistema es una
etapa inicial del desarrollo facilita el análisis. Las decisiones de diseño
arquitectónico tienen un efecto profundo sobre cuándo el sistema puede
cumplir los requerimientos críticos como el desempeño la fiabilidad y la
mantenibilidad.
 Reutilización a gran escala Una arquitectura del sistema es una
descripción compacta y manejable de cómo se organiza el sistema y cómo
inter-operan los componentes. La arquitectura se puede transferir a lo largo
de los sistemas con requerimientos similares y así poder reutilizar software
a gran escala. Es posible desarrollar arquitecturas de líneas de productos
donde la misma arquitectura se utilice en varios sistemas relacionados.
Carrera de Sistemas&Informática
UMSS: Cochabamba-Bolivia
22
Mgr. Indira Camacho del Castillo
Materia: Ingeniería de Software
De la A del sist. Dependen
siguientes requerimientos no funcionales
 Desempeño: A debe permitir localizar las operaciones críticas dentro de un número
reducido de comp.del sist. con poca comunicación. Es mejor utilizar componentes de grano
grueso antes de fino para reducir la comunicación entre componentes
 Seguridad: A más adecuada puede ser una estructura de capas, donde recursos más
críticos están protegidos por capas más internas y con alto nivel de validación de la
seguridad aplicado a esas capas.
 Protección: A debe localizar los elementos a proteger en un solo subsistema o en un
número reducido de subsistemas, lo que reduce costos, problemas de validación y hace
posible crear sistemas de protección relacionados.
 Disponibilidad: A se debe diseñar para incluir componentes redundantes, para poder
reemplazar, actualizar componentes sin detener el sistema (para alta disponibilidad:
sistemas tolerantes a fallas)
 Mantenibilidad: A debe diseñar componentes auto contenidos de grano fino que
puedan cambiarse con facilidad. Los productores de datos deben estar separados de los
productores y las estructuras de datos compartidas deben evitarse.
Carrera de Sistemas&Informática
UMSS: Cochabamba-Bolivia
23
Mgr. Indira Camacho del Castillo
Materia: Ingeniería de Software
Actividades de P.A.
(Sommerville)
1. Estructuración del sistema
2. Modelado del control
3. Descomposición modular.
Carrera de Sistemas&Informática
UMSS: Cochabamba-Bolivia
24
Mgr. Indira Camacho del Castillo
Materia: Ingeniería de Software
1.Estructuración del sistema
 El sistema se estructura en varios subsistemas
principales.
 Donde un subsistema es una unidad de software
independiente.
 Se identifican las comunicaciones entre los subsistemas.
arreglo A790
arreglo A812
nuevo requerimiento
1.0
V 1.2
VArquitectura
1.2a
Carrera de Sistemas&Informática
UMSS: Cochabamba-Bolivia
25
Mgr. Indira Camacho del Castillo
Materia: Ingeniería de Software
1.Estructuración del sistema
El modelo de depósito
Subsistemas deben intercambiar información para trabajar en forma conjunta y
efectiva. Se puede lograr de dos formas:
1. Todos los datos compartidos se ubican en una base de datos central que puede
ser accedida por todos los subsistemas.
2. Cada subsistema tiene su propia base de datos. Los datos se intercambian con
otros subsistemas pasando mensajes entre ellos.
Editor de Diseño
Traductor de
diseño
Arquitectura
de un Editor
CASE
Carrera de Sistemas&Informática
UMSS: Cochabamba-Bolivia
Generador de código
Editor de
programas
Depósito de Proyectos
Analizador de
diseño
Generador de
informes
26
Mgr. Indira Camacho del Castillo
Materia: Ingeniería de Software
1.Estructuración del sistema
Modelo de depósito: Características
• Forma eficiente de compartir grandes cantidades de datos : no existe necesidad de
transmitir datos explícitamente de un sistema a otro.
• Todos los subsistemas deben estar acorde al modelo de depósito de datos. Lo
que limita las posibilidades de utilización de otros subsistemas y también puede afectar al diseño.
• Si se genera un gran volumen de información, puede ser difícil
migrar esto a un nuevo
modelo de datos, si se tiene ya uno acordado.
• Actividades de respaldo, seguridad, control de acceso y recuperación están centralizadas. Son
las responsables de administrar el depósito.
• Si diferentes subsistemas tienen diferentes políticas de seguridad, recuperación y respaldo, este
modelo obliga a la uniformidad.
• El modelo de compartición es visible y se pueden añadir nuevas herramientas que sean
compatibles con el modelo de datos dado.
• Es difícil repartir el depósito en varias máquinas.
Carrera de Sistemas&Informática
UMSS: Cochabamba-Bolivia
27
Mgr. Indira Camacho del Castillo
Materia: Ingeniería de Software
1.Estructuración del sistema
Modelo cliente servidor
Modelo de sistemas distribuidos que muestra cómo los datos y el procesamiento
se distribuyen a lo largo de varios procesadores. Sus componentes principales
son:
1. Un conjunto de servidores independientes
2. Un conjunto de clientes que llaman a los servicios ofrecidos por los
servidores. Por lo general estos son subsistemas
3. Un red que permite a los clientes acceder a estos servicios.
Cliente 1
Arquitectura
Sistema
Blibliotecario para
Películas e
Imágenes
Carrera de Sistemas&Informática
UMSS: Cochabamba-Bolivia
Cliente 2
Cliente 3
Cliente 4
Red de Banda Ancha
Servidor de
catálogos
Servidor de
videos
Servidor de
imágenes
Servidor de
hipertexto
Catálogo
Archivo de clips
de video
Fotografías
digitalizadas
Web de
hipertexto
28
Mgr. Indira Camacho del Castillo
Materia: Ingeniería de Software
1.Estructuración del sistema
Modelo cliente servidor: Características
• Los clientes tienen que conocer los nombres de los servidores y los servicios
que suministran, pero los servidores no necesitan conocer la identidad de los
clientes.
• La ventaja más importante de este modelo es que es una arquitectura
distribuida, los sistemas en red se pueden utilizar de forma efectiva con muchos
procesadores distribuidos, es fácil agregar un nuevo procesador e integrarlo con
el resto del sistema
• Sin embargo es necesario hacer cambios a los servidores y clientes para
obtener nuevos servicios al integrar un nuevo servidor.
Carrera de Sistemas&Informática
UMSS: Cochabamba-Bolivia
29
Mgr. Indira Camacho del Castillo
Materia: Ingeniería de Software
1.Estructuración del sistema
Modelo de máquina abstracta
También denominado modelo de
capas, modela interacción entre
subsistemas.
Administrador de versiones
Administrador de objetos
Caraterísticas
Sistema de bases de datos
Cada capa define una máquina
abstracta cuyo lenguaje (servicios
suministrados por la capa) se
utiliza
para
implementar
el
siguiente nivel
de la máquina
abstracta.
Sistema
operativo
Arquitectura sistema
administración de versiones
Carrera de Sistemas&Informática
UMSS: Cochabamba-Bolivia
30
Mgr. Indira Camacho del Castillo
Materia: Ingeniería de Software
2. Modelo del control
Los modelos para estructurar un sistema se refieren a la manera en
que un sistema se descompone en subsistemas.
Para trabajar como un sistema, los subsistemas deben controlarse
para que sus servicios se entreguen al lugar correcto en el momento
justo los modelos estructurales no incluyen información de control.
El arquitecto también debe organizar los subsistemas acorde a un
modelo de control que complemente el modelo estructural que se
utiliza. El modelo de control a este nivel comprende el nivel de control entre
subsistemas.
Carrera de Sistemas&Informática
UMSS: Cochabamba-Bolivia
31
Mgr. Indira Camacho del Castillo
Materia: Ingeniería de Software
2. Mod.control:Enfoques grals. p/control
Control centralizado
Un subsistema es responsable de controlar, iniciar y detener otros
subsistemas. También puede dar el control a otros subsistemas, pero
espera a que le regrese el control. Existen dos tipos de este enfoque:
1. Modelo de llamada-retorno
Este es modelo familiar de subrutina descendente y el control se inicia
en la parte superior de una jerarquía, por medio de llamadas a
subrutinas, pasa a los niveles inferiores del árbol, solo se aplica a
sistemas secuenciales.
Programa
principal
Rutina 1
Rutina 1
Carrera de Sistemas&Informática
UMSS: Cochabamba-Bolivia
Rutina 2
Rutina 1
Rutina 3
Rutina 1
Rutina 1
32
Mgr. Indira Camacho del Castillo
Materia: Ingeniería de Software
2. Mod.control:Enfoques grals. p/control
Control centralizado
2. Modelo del administrador
Se aplica a modelos concurrentes. Un
componente se designa como
administrador y controla el inicio,
detención y coordinación de otros
procesos del sistema. Un proceso es
un subsistema o módulo que se
ejecuta en paralelo con otros
procesos. También es aplicable a
sistema secuenciales donde la rutina
de administración llama a subsistemas
particulares, dependiendo de los
valores
de
algunas
variables
(generalmente se
instrucción case)
Carrera de Sistemas&Informática
UMSS: Cochabamba-Bolivia
implemente
como
Procesos
del sensor
Procesos del
actuador
Controlador
del sistema
Procesos
de cálculo
una
Controlad
or de fallas
Interfaz de
usuario
Modelo de control para un
sistema de tiempo real
33
Mgr. Indira Camacho del Castillo
Materia: Ingeniería de Software
2. Mod.control:Enfoques grals. p/control
Control centralizado
3. Control basado en eventos
Cuando la información de control está contenida en un sistema, cada
subsistema puede responder a eventos generados en el exterior. De otros
subsistemas o entorno del sistema
Carrera de Sistemas&Informática
UMSS: Cochabamba-Bolivia
34
Mgr. Indira Camacho del Castillo
Materia: Ingeniería de Software
2. Mod.control:Enfoques grals. p/control
Control dirigido por eventos
En los sistemas de control centralizado el control queda determinado por
los valores de variables de estado del sistema. En cambio en sistemas
dirigidos por eventos el control esta dirigido por eventos generados en
el exterior. La distinción entre un evento y una entrada simple es que la
duración del evento queda fuera de control de proceso. Existen varios
modelo de sistemas dirigidos por eventos, nosotros solo veremos dos.
Carrera de Sistemas&Informática
UMSS: Cochabamba-Bolivia
35
Mgr. Indira Camacho del Castillo
Materia: Ingeniería de Software
2. Mod.control:Enfoques grals. p/control
Control dirigido por eventos
1. Modelos de transmisión
Un evento se transmite, a todos los subsistemas. Cualquier subsistema
que pueda manejar ese evento responde a él.
Subsist 1
Subsist 2
Subsist 3
Subsist 4
Controlador de eventos y mensajes
Modelo de control basado en
transmisión selectiva
Carrera de Sistemas&Informática
UMSS: Cochabamba-Bolivia
36
Mgr. Indira Camacho del Castillo
Materia: Ingeniería de Software
2. Mod.control:Enfoques grals. p/control
Control dirigido por eventos
2. Modelos dirigidos por interrupciones
Estos se utilizan solo para sistemas de tiempo real, donde las interrupciones
externas son detectadas por un controlador de interrupciones, que pasa
estas a otro componente para su procesamiento,
Interrupciones
Controlador 1
Controlador 1
Controlador 2
Controlador 2
Subsist 1
Subsist 2
Subsist 3
Subsist 4
Carrera de Sistemas&Informática
UMSS: Cochabamba-Bolivia
37
Mgr. Indira Camacho del Castillo
Materia: Ingeniería de Software
3. Descomposición Modular
Después de diseñar una arquitectura estructural, la siguiente etapa del
proceso de diseño arquitectónico es descomponer los subsistemas en
módulos. No existe una distinción rígida entre la descomposición del sistema
y la descomposición modular, por lo que los modelos utilizados en la
estructuración del sistema también pueden utilizarse para esto.
Algunos de los modelos que se consideran para la descomposición modular
son:
1. Modelo orientado a objetos
El sistema se descompone en un conjunto de objetos que se comunican entre
ellos. Este tipo de modelo estructura el sistema en un conjunto de objetos
débilmente acoplados con interfaces bien definidas. Los objetos llaman a los
servicios ofrecidos por otros objetos.
2. Modelo de flujo de datos
El sistema se descompone en módulos funcionales que afectan entradas de datos
y las transforman, de alguna manera, en datos de salida.
Carrera de Sistemas&Informática
UMSS: Cochabamba-Bolivia
38
Mgr. Indira Camacho del Castillo
Materia: Ingeniería de Software
Actividades de P.A.
(Sommerville)
Síntesis:
Carrera de Sistemas&Informática
UMSS: Cochabamba-Bolivia
1.
Estructuración del sistema
2.
Modelado del control
3.
Descomposición modular.
39
Mgr. Indira Camacho del Castillo
Materia: Ingeniería de Software
A de dominio específico
Así como los modelos generales también se puede utilizar
modelos específicos para un dominio de aplicación
particular.
Aunque las instancias de estos sistemas defieren en
detalles, cuando se desarrollan nuevos sistemas se
puede reutilizar la estructura arquitectónica común.
Estos modelo arquitectónicos se denominan arquitecturas
de dominio específico.
Carrera de Sistemas&Informática
UMSS: Cochabamba-Bolivia
40
Mgr. Indira Camacho del Castillo
Materia: Ingeniería de Software
A de dominio específico
Tipos de modelos arquitectónicos de dominio específico:
1. Modelos genéricos son abstracciones de varios sistemas reales.
Encapsulan las características principales de estos sistemas. Por
ejemplo, en sistemas de tiempo real, existen modelos arquitectónicos
genéricos de diversos tipos: como los sistemas de recolección de
datos, los sistemas de supervisión, etcétera.
2.
Modelos referencia que son modelos abstractos y describen a una
clase mayor de sistemas. Son una forma de informar a los
diseñadores de la estructura general de esa clase de sistemas. Por
ejemplo: Rockwell y Gera (1993) han propuesto un modelo de
referencia para fábricas de software. Las arquitecturas de referencia se
utilizan como base para la implementación sin embargo normalmente no se
implementan, su función principal es servir de medio de comparación de
diversos sistemas e un dominio, pues provee vocabulario para la comparación
y actúa como un estándar, contra el cual se deben evaluar los sistemas.
Carrera de Sistemas&Informática
UMSS: Cochabamba-Bolivia
41
Mgr. Indira Camacho del Castillo
Materia: Ingeniería de Software
A de dominio específico
1. Ejemplos de modelos genéricos:
Indica que un compilador debe incluir los siguientes módulos:
1. Un analizador léxico que toma como entrada los tokens del lenguaje los convierte a alguna
forma interna.
2. Una tabla de símbolos, construida por el analizador léxico, que contiene información de los
nombre tipos utilizados en el programa.
3. Un analizador sintáctico que verifica la sintaxis del lenguaje a compilar. Utiliza una gramática
definida del lenguaje y construye un árbol sintáctico.
4. Un árbol sintáctico, el cual es una estructura interna que representa el programa a compilar.
5. Un analizador semántico que utiliza información del árbol sintáctico y de la tabla de símbolos para
verificar la exactitud semántica del programa entrante.
6. Un generador de código que recorre el árbol sintáctico y genera código de máquina.
Modelo arquitectónico
genérico
de un compilador:
modelo de flujos de
datos
Análisis
léxico
Carrera de Sistemas&Informática
UMSS: Cochabamba-Bolivia
Tabla de
Símbolos
Análisis
sintáctico
Análisis
semántico
Generación
de Código
42
Mgr. Indira Camacho del Castillo
Materia: Ingeniería de Software
A de dominio específico
1. Ejemplos de modelos genéricos:
Modelo arquitectónico
genérico
de un compilador:
Modelo de depósito de
un sistema de
procesamiento de
lenguajes
Impresora
Editor
Analizador
sintáctico
Analizador
Léxico
Arbol
sintáctico
abstracto
Tabla de
símbolos
Carrera de Sistemas&Informática
UMSS: Cochabamba-Bolivia
Def. de
Analizador
Semántico
Optimizador
gramática
Definición
de la
salida
Generador
de Código
43
Mgr. Indira Camacho del Castillo
Materia: Ingeniería de Software
A de dominio específico
OSI
referencia
Arquitectura del Modelo de
Modelo de Referencia
2. Ejemplos de modelo de referencia:
Carrera de Sistemas&Informática
UMSS: Cochabamba-Bolivia
Aplicación
Aplicación
Presentación
Presentación
Sesión
Sesión
Transporte
Transporte
Red
Red
Vínculo de datos
Física
Vínculo de datos
Física
Red
Vínculo de datos
Física
Medios de Comunicación
44
Mgr. Indira Camacho del Castillo
Materia: Ingeniería de Software
Patrones de Diseño
Cuando se trata de reutilizar componentes ejecutables, se está
restringido por decisiones de diseño detallado. Que van desde
algoritmo particulares, hasta objetos y tipos en las interfaces de los
componentes. Si estas decisiones entran en conflicto con los
requerimientos particulares, entonces la reutilización es imposible o
introduce ineficiencias significativas en el sistema.
Para que se pueda reutilizar los diseños es preciso que estos sean
más abstractos que no incluyan detalles de implementación. Estos
detalles se implementan para ajustarse a los requerimientos de la
aplicación.
Los patrones de diseño se asocian con diseño orientado a objetos,
pues a menudo se cuentan con características como herencia y
polimorfismo. Pero el principio general es que se aplica a todos los
enfoques de diseño de software.
Carrera de Sistemas&Informática
UMSS: Cochabamba-Bolivia
45
Mgr. Indira Camacho del Castillo
Materia: Ingeniería de Software
Patrones de Diseño
Definición:
Los patrones de diseño son abstracciones de alto nivel que
documentan soluciones de diseño exitosas. Son fundamentales para
reutilizar los diseños en el desarrollo orientado a objetos.
Cuando se trata de reutilizar componentes ejecutables, se está restringido por
decisiones de diseño detallado. Que van desde algoritmo particulares, hasta objetos
y tipos en las interfaces de los componentes. Si estas decisiones entran en conflicto
con los requerimientos particulares, entonces la reutilización es imposible o
introduce ineficiencias significativas en el sistema.
Para que se pueda reutilizar los diseños es preciso que estos sean más abstractos que
no incluyan detalles de implementación. Estos detalles se implementan para
ajustarse a los requerimientos de la aplicación.
Los patrones de diseño se asocian con diseño orientado a objetos, pues a menudo se
cuentan con características como herencia y polimorfismo. Pero el principio general
es que se aplica a todos los enfoques de diseño de software.
Carrera de Sistemas&Informática
UMSS: Cochabamba-Bolivia
46
Mgr. Indira Camacho del Castillo
Materia: Ingeniería de Software
Patrones de Diseño
Gamma et al. (1995) define los 4 elementos esenciales del diseño de
patrones:
 Un nombre que es una referencia significativa para el patrón.
 Una descripción del área del problema que explique cuándo se aplica el
patrón.
 Una descripción de la solución que señala las diferentes partes del
diseño de la solución, su relación y responsabilidades. Esta no es una
descripción concreta de diseño. Es una plantilla para una solución de
diseño que se puede instanciar de diferentes formas. A menudo esto se
expresa gráficamente mostrando las relaciones entre los objetos y las
clases de objetos en la solución.
 Una declaración de las consecuencias - Los resultados y compromisos
de aplicar el patrón. Esto se utiliza para ayudar a los diseñadores a
comprender cuándo se puede o no aplicar en una situación en particular.
Estos elementos esenciales se pueden dividir aún más. Por ejemplo, Gamma et al. (1995) dividen el problema de
descripción en motivación (una descripción de por qué es útil el patrón) y Aplicabilidad ( una descripción de las situaciones en
las que se puede utilizar el patrón.
Carrera de Sistemas&Informática
UMSS: Cochabamba-Bolivia
47
Mgr. Indira Camacho del Castillo
Materia: Ingeniería de Software
DISEÑO:
INTERFAZ DE USUARIO
Basado en la presentación de los estudiantes:
•Abasto Méndez Yndyra
•Arias Riva Juan Manuel
•Jaldin Camacho Remberto
Introducción
El diseño de la interfaz de usuario (IU) es la
categoría de diseño que crea un medio de
comunicación entre el hombre y la maquina.
Para poder diseñar una interfaz de usuario se
debe tomar en cuenta:




Carrera de Sistemas&Informática
UMSS: Cochabamba-Bolivia
Las personas tienen memoria limitada a corto plazo.
Todos cometemos errores.
Poseemos un amplio rango de capacidades físicas.
Tenemos diferentes preferencias de iteración.
49
Mgr. Indira Camacho del Castillo
Materia: Ingeniería de Software
Ejemplo de IU
Carrera de Sistemas&Informática
UMSS: Cochabamba-Bolivia
50
Mgr. Indira Camacho del Castillo
Materia: Ingeniería de Software
Consideraciones en diseño de IU
Familiaridad
del usuario
La interfaz debe utilizar términos y conceptos obtenidos de
la experiencia de las personas que más utilizan el sistema
Uniformidad
Siempre que sea posible la interfaz debe ser uniforme en el
sentido de que las operaciones comparables se activen de
la misma forma
Mínima
sorpresa
El comportamiento del sistema no debe provocar sorpresa a
los usuarios
Recuperabilidad
Guía de
usuario
La interfaz debe incluir mecanismos para permitir a los
usuarios recuperarse de los errores
Cuando ocurran errores la interfaz debe proporcionar
retroalimentación significativa y características de ayuda
sensible al contexto
Diversidad de La interfaz debe proporcionar características de interacción
usuarios
apropiadas para los diferentes tipos de usuarios del sistema
Carrera de Sistemas&Informática
UMSS: Cochabamba-Bolivia
51
Mgr. Indira Camacho del Castillo
Materia: Ingeniería de Software
Consideraciones en diseño de IU
Manejo del color: el color puede mejorar las
interfaces y ayudar a usuarios a manejar la
complejidad
Carrera de Sistemas&Informática
UMSS: Cochabamba-Bolivia
52
Mgr. Indira Camacho del Castillo
Materia: Ingeniería de Software
Manejo del color

Se debe de limitar el uso de colores máximo 4 en una ventana y 7
en una interfaz de usuario mas pueden causar molestias y
confusión en el usuario.

Un cambio de color para mostrar el estado del sistema donde un
cambio de color identifica un cambio en el sistema.

Código de colores para dar apoyo a usuarios que tratan de
identificar o descubrir instancias anómalas.

Utilizar código de colores de forma consistente y uniforme donde se
utilicen colores para algo especifico y no para muchas cosas.

Ser cuidadoso al utilizar pares de colores donde al juntar 2 colores
cause molestias al usuario por ejemplo el rojo y el azul
Carrera de Sistemas&Informática
UMSS: Cochabamba-Bolivia
53
Mgr. Indira Camacho del Castillo
Materia: Ingeniería de Software
Consideraciones en diseño de IU
Se utiliza menos de 5 colores
Cambio de color para estados del sistema
Carrera de Sistemas&Informática
UMSS: Cochabamba-Bolivia
Se juntan 2 colores el blanco y el negro
donde no causan molestias
54
Mgr. Indira Camacho del Castillo
Materia: Ingeniería de Software
Tipos de IU que existen
 Según Shneiderman se tiene:
 Manipulación directa: el usuario interactúa directamente
con los elementos de las ventanas (juego, sistemas
CAD).
 Selección de menús: el usuario utiliza comandos de
una lista ya definida (sistemas en general).
 Llenado de formularios: el usuario llena campos de
formulario acompañados de botones que operan en sus
celdas (procesamiento de celdas).
 Lenguaje de comandos: el usuario escribe comandos y
sus parámetros asociados (SO, comandos de control).
 Lenguaje natural: el usuario emite comandos en
lenguaje natural (sistemas de recuperación de
información).
Carrera de Sistemas&Informática
UMSS: Cochabamba-Bolivia
55
Mgr. Indira Camacho del Castillo
Materia: Ingeniería de Software
Mostrando la información
Tipo de
presentación
de información
Texto
Grafica
Carrera de Sistemas&Informática
UMSS: Cochabamba-Bolivia
¿Cuando utilizar ?
Ventajas
Desventajas
Cuando se desea
que la información
sea precisa y no
cambien
continuamente
Ocupa
poco
espacio
en
la
pantalla
Es
exacta
y
precisa
No se puede leer
de un vistazo
Necesita
identificadores
para información
estática
y
dinámica
Si los datos cambian
rápidamente o si las
relaciones entre los
datos
son
mas
importantes que su
valor exacto
Es
mas
representativa.
Permite
la
comparación
de
instancias
anómalas
Ocupa
gran
campo
en
la
pantalla .
No es tan exacta .
56
Mgr. Indira Camacho del Castillo
Materia: Ingeniería de Software
Ejemplo de manipulación
directa
Carrera de Sistemas&Informática
UMSS: Cochabamba-Bolivia
57
Mgr. Indira Camacho del Castillo
Materia: Ingeniería de Software
Ejemplo de selección de
menús
Carrera de Sistemas&Informática
UMSS: Cochabamba-Bolivia
58
Mgr. Indira Camacho del Castillo
Materia: Ingeniería de Software
Ejemplo de llenado de
formularios
Carrera de Sistemas&Informática
UMSS: Cochabamba-Bolivia
59
Mgr. Indira Camacho del Castillo
Materia: Ingeniería de Software
Ejemplo de lenguaje de
comandos
Carrera de Sistemas&Informática
UMSS: Cochabamba-Bolivia
60
Mgr. Indira Camacho del Castillo
Materia: Ingeniería de Software
Ejemplo de lenguaje natural
Carrera de Sistemas&Informática
UMSS: Cochabamba-Bolivia
61
Mgr. Indira Camacho del Castillo
Materia: Ingeniería de Software
La ayuda del sistema
Carrera de Sistemas&Informática
UMSS: Cochabamba-Bolivia
62
Mgr. Indira Camacho del Castillo
Materia: Ingeniería de Software
Diseño de la ayuda del sistema
 El sistema de ayuda es una parte del diseño general
de interfaz de usuario. Este cubre tres tareas:
1. Los mensajes producidos por el sistema en
respuesta a las acciones del usuario.
2. El sistema de ayuda incorporada al sistema.
3. La documentación suministrada con el sistema.
Carrera de Sistemas&Informática
UMSS: Cochabamba-Bolivia
63
Mgr. Indira Camacho del Castillo
Materia: Ingeniería de Software
Diseño de la ayuda del sistema
 Las ayuda debe estructurarse de tal forma de no
saturar con información al usuario
Carrera de Sistemas&Informática
UMSS: Cochabamba-Bolivia
64
Mgr. Indira Camacho del Castillo
Materia: Ingeniería de Software
Manual de usuario VS ayuda del sistema
 Manual de usuario: Este no toma parte del
diseño de la IU estos proveen información
mas detallada acerca del funcionamiento y se
estructuran de manera que sean utilizados
por cualquier usuario
 Ayuda del sistema: Forma parte del diseño
de IU ya que provee información acerca de
las acciones de los componentes de la IU.
“No deben ser lo mismo”
Carrera de Sistemas&Informática
UMSS: Cochabamba-Bolivia
65
Mgr. Indira Camacho del Castillo
Materia: Ingeniería de Software
Mensajes de error del sistema
Carrera de Sistemas&Informática
UMSS: Cochabamba-Bolivia
66
Mgr. Indira Camacho del Castillo
Materia: Ingeniería de Software
Mensajes de error del sistema
 Siempre deben de ser:


concisos
amables

consistentes

constructivos.

No deben de ser insultantes

ni irritantes(con sonidos molestos).
Carrera de Sistemas&Informática
UMSS: Cochabamba-Bolivia
67
Mgr. Indira Camacho del Castillo
Materia: Ingeniería de Software
Mensajes de error del sistema
 No deben de dar la impresión de acusación o de
negatividad al nivel de experiencia del usuario.
 Debe dar a entender que el “problema es del
sistema y no del usuario”.
Carrera de Sistemas&Informática
UMSS: Cochabamba-Bolivia
68
Mgr. Indira Camacho del Castillo
Materia: Ingeniería de Software
Factores de diseño en redacción
de mensajes de error
Contexto
Mensajes deben reflejar contexto actual del usuario. El sistema
debe ser consiente de lo que hace el usuario y generar
mensajes relacionados con actividad de u.
Experiencia
Cuanto más experiencia del usuario, mayor su molestia por
mensajes largos y “significativos”. En cambio los principiantes
tienen dificultades en comprender mensajes cortos y concisos .
Se debe proporcionar ambos tipos de mensajes.
Nivel de
habilidad
Mensajes deben adaptarse a las habilidades y experiencia de u.
Mensajes debe utilizar terminología de u.
Estilo
Cultura
Carrera de Sistemas&Informática
UMSS: Cochabamba-Bolivia
Mensajes positivos, en modo activo. No insultantes o tratar de
ser graciosos.
El diseñador de los mensajes debe estar familiarizado con la
cultura del país donde se vende el sistema. Un mensaje
adecuado para una cultura podría ser inaceptable en otra.
69
Mgr. Indira Camacho del Castillo
Materia: Ingeniería de Software
Error malo Vs. error bueno
Carrera de Sistemas&Informática
UMSS: Cochabamba-Bolivia
70
Mgr. Indira Camacho del Castillo
Materia: Ingeniería de Software
¿Que es lo primero que ve un
usuario?
Carrera de Sistemas&Informática
UMSS: Cochabamba-Bolivia
71
Mgr. Indira Camacho del Castillo
Materia: Ingeniería de Software
¿Es importante el diseño de IU?
Carrera de Sistemas&Informática
UMSS: Cochabamba-Bolivia
72
Mgr. Indira Camacho del Castillo
Materia: Ingeniería de Software
Síntesis
Especificación de
Requerimientos
Robusto
Mínimo
acoplamie
nto
Modular
1. La estructura de los datos
Diseño
Especificación
Diseño de la
Diseño de
Diseño de la
Diseño de
2.
La
arquitectura
del
software
Arquitectónico
Abstracta
Interface
componentes
estructura de datos
Algoritmos
Simpley
3. El detalle
procedimental
Buen
Legible =
nombra
Adaptablede la interfaz.
miento
Entendible
La
caracterización
Arquitectura 4.
del
Especificación
de
Especificación de
Especificación de
Especificación
Especificación de
sistema
Software
Bien
documentado
Cohesión
Carrera de Sistemas&Informática
UMSS: Cochabamba-Bolivia
la interface
componentes
estructura de datos
algoritmos
Mantenible =
Modificable
73
Mgr. Indira Camacho del Castillo
Materia: Ingeniería de Software