DISEÑO DE SOFWARE

[Escriba el subtítulo del documento]


24/04/2014


WWW.WIKIPEDIA.COM Página 1


INDICE
La actividad de diseño y sus objetivos.
Descomposición y modularidad
Diseño funcional/orientado al proceso
Diseño orientado a objetos.
Diseño desde abajo; apoyo para la reutilización
Estrategias de implementación
Tópicos de implementación
. Mejoría en el desempeño
Depuración
Prevención de problemas
Manejo de anomalías









WWW.WIKIPEDIA.COM Página 2

INTRODUCCION
Se ha vuelto ineludible analizar las relaciones existentes entre las tecnologías informáticas y el
campo educativo, con el objetivo de aprovechar el potencial de las primeras dentro del proceso de
enseñanza-aprendizaje. Día a día se cuenta con mayores y mejores herramientas
computacionales, que se colocan al servicio del hombre con el objetivo de facilitar sus actividades
diarias tanto en el ámbito laboral como en el personal. El rol de muchos profesores está
cambiando, del modelo tradicional de ser un presentador de información de forma secuencial a un
administrador, y facilitador del aprendizaje. La mayor parte del tiempo que anteriormente se
dedicaba a la preparación y corrección, ahora está dedicándose al desarrollo de recursos
educativos y de entrenamiento, que incluyen Materiales Educativos Computarizados. El término
Material Educativo Computarizado se refiere a los programas en computador con los cuales los
aprendices interactúan cuando están siendo enseñados o evaluados a través de un computador.














WWW.WIKIPEDIA.COM Página 3


DISEÑOS DE SOFWARE : El diseño de Software juega un papel importante en
el desarrollo de software lo cual permite al ingeniero de software producir
varios modelos del sistema o producto de que se va a construir el mismo que
forman una especie de plan de la solución de la aplicación.

ACTIVIDADES DEL DISEÑO DE SOFWARE: El diseño del software comprende
dos actividades intermedias entre la fase de requisitos y la construcción:
1.- Diseño de la arquitectura del software
2.-Descripcion de la arquitectura general, identificación de sus componentes y su
organización y relaciones en el sistema
3.- Diseño detallado del software
4.- Definicion y estructura de los componentes y datos
5.- Definicion de los interface
6.- Elaboracion de las estimaciones de tiempo y tamaño
Descomposición Modularidad del software

El diseño modular propone dividir el sistema en partes diferenciadas y definir sus
interfaces.
Sus ventajas: claridad, reducción de costos y reutilización

Los pasos a seguir son:
1. Identificar los módulos
2. Describir cada módulo
3. Describir las relaciones entre módulos

WWW.WIKIPEDIA.COM Página 4


Una descomposición modular debe poseer ciertas cualidades mínimas para que se
pueda considerar suficiente validad.

1. Independencia funcional
2. Acoplamiento
3. Cohesión
4. Comprensibilidad
5. Adaptabilidad



a) Independencia funcional
Cada módulo debe realizar una función concreta o un conjunto de funciones
afines. Es recomendable reducir las relaciones entre módulos al mínimo.
Para medir la independencia funcional hay dos criterios: acoplamiento y cohesión.

b) Acoplamiento
El acoplamiento es una medida de la interconexión entre módulos en la estructura
del programa. Podemos graduara en un amplio espectro, pero por lo general se
tiende a que el acoplamiento sea lo menor posible, esto es a reducir las
interconexiones entre los distintos módulos en que se estructure nuestra
aplicación. El grado de acoplamiento mide la interrelación entre dos módulos,
según el tipo de conexión y la complejidad de la interface:

Fuerte
 Por contenido, cuando desde un módulo se puede cambiar datos locales
de otro.

WWW.WIKIPEDIA.COM Página 5

 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.
 Por etiqueta, en intercambio de datos se realiza mediante una referencia
a la estructura completa de datos (vector, pila, árbol, grafo,…)
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.

c) Cohesión
Un módulo coherente ejecuta una tarea sencilla en un procedimiento de sw y
requiere poca interacción con procedimientos que se ejecutan en otras partes de un
programa. Podemos decir que un módulo coherente es aquel que intenta realizar
solamente una cosa.
Para que n° de módulos no sea demasiado elevado y complique el diseño se tratan
de agrupar elementos afines y relacionados en un mismo módulo.

ALTA
 Cohesión abstraccional, se logra cuando se diseña el módulo como tipo
abstracto de datos o como una clase de objetos
 Cohesión funcional, el módulo realiza una función concreta y específica

MEDIA
 Cohesión secuencial, los elementos del módulo trabajan de forma
secuencial

WWW.WIKIPEDIA.COM Página 6

 Cohesión de comunicación, elementos que operan con el mismo
conjunto de datos de entrada o de salida
 Cohesión temporal, se agrupan elementos que se ejecutan en el mismo
momento. Ej. Arrancar o parar dispositivos

BAJA
 Cohesión lógica, se agrupan elementos que realizan funciones similares.
 Cohesión coincidental, es la peor y se produce cuando los elementos de
un módulo no guardan relación alguna

DISEÑO ORIENTADO A PROCESOS

El Diseño Estructurado es el proceso de definición de la arquitectura software:
componentes, módulos, interfaces, procedimientos de prueba y datos de un
sistema, que se crean para satisfacer unos requisitos previamente especificados.

En el diseño estructurado orientado al flujo de datos, partimos de la representación
del flujo de la información obtenida en la fase de análisis, donde la información
puede representarse como un flujo continuo que sufre una serie de
transformaciones conforme va de la entrada a la salida.

DISEÑO ORIENTADO A OBJETOS

Es un enfoque de la ingeniería de software que modela un sistema como un grupo
de objetos que interactúan entre sí. Este enfoque representa un dominio absoluto
en términos de conceptos compuestos por verbos y sustantivos, clasificados de
acuerdo a su dependencia funcional. En este método de análisis y diseño se crea un
conjunto de modelos utilizando una notación acordada como, por ejemplo, el
lenguaje unificado de modelado (UML). ADOO aplica técnicas de modelado de

WWW.WIKIPEDIA.COM Página 7

objetos para analizar los requerimientos para un contexto - por ejemplo, un sistema
de negocio, un conjunto de módulos de software - y para diseñar una solución
para mejorar los procesos involucrados

ESTRATEGIAS DE IMPLEMENTACION

Las soluciones de negocios sumadas a una estrategia de implementación tienen
como objetivo ayudar a nuestros clientes a conseguir mayor éxito empresarial. No
solo brindamos tecnología de alta performance, sumamos también tácticas para
lograr la colaboración inter empresarial deseada.

DEPURACION DE SOFWARE
es el proceso de identificar y corregir errores de programación. En inglés se le
conoce como debugging, es que se asemeja a la eliminación de bichos (bugs), manera
en que se conoce informalmente a los errores de programación.

DETENCION DE PROBLEMAS
Efecto de un programa orientado a prevenir dificultades en el desarrollo de la
alfabetización, diseñado y aplicado de manera grupal en alumnos de primer grado
de primaria de estrato sociocultural bajo. Participaron 30 alumnos inscritos en
escuelas primarias públicas, asignados de manera aleatoria a tres grupos de
investigación.

MENEJO DE ANOMALIAS
La importancia del manejo de anomalías por parte de los artefactos

WWW.WIKIPEDIA.COM Página 8

de software y el impacto que aquéllas provocan en el desarrollo de los mismos
es ampliamente reconocida. El ingeniero de software no sólo debe esforzarse
por lograr la máxima confiabilidad del sistema en condiciones de uso normal,
sino también tratar de proteger la aplicación de los inconvenientes que surgen
del uso de la misma bajo condiciones adversas










CONCLUSION
El proceso de ingeniería de software ha tomado un lugar muy importante hoy en
día en las prioridades de las organizaciones dedicadas al desarrollo y
mantenimiento del software mediante el uso académico de herramientas CASE.
Trabajo a Futuro

WWW.WIKIPEDIA.COM Página 9

El trabajo a futuro que la creación de herramientas para otras fases del ciclo de
vida del desarrollo del software. Idealmente estas herramientas se deberían de
construir de acuerdo al orden del desarrollo del software, es decir, análisis, diseño,
codificación, documentación, pruebas y mantenimiento.