Ir al contenido principal

INGENIERIA DE DISEÑO

Abarca un conjunto de principios, conceptos y practicas que conducen al desarrollo de un sistema o producto de alta calidad.
en palabras de Mitch Kapor creador de Lotus 1-2-3 el diseño es el lugar una persona puede pararse entre dos mundos en el de la tecnologia y de la gente e intenta unirlos.

El diseño crea una representacion o un modelo de software pero a diferencia del analisis el diseño proporciona detalles de la estructura de datos, las arquitecturas, las interfaces  y los componentes de software que son necesarios para implementar un sistema. una de las razones por lo cual es importante se basa en que permite crear un modelo el cual es capaz de evaluarse en cuanto a calidad y mejorar antes de generar algun codigo.

La meta de la ingenieria del diseño es generar un modelo de representacion que muestre firmeza, comodidad y placer.

Aun hoy en dia las distintas metodologias de diseño de software carecen de profundidad, flexibilidad y naturaleza cuantitativa .

DISEÑO EN EL CONSTXTO DE LA INGENIERIA DE SOFTWARE

El diseño se encuentra en el nucleo de la ingenieria de software y se aplica de manera independiente al modelo de desarrollo de software que se aplique.

la tarea de diseño produce un diseño de datos-clase, un diseño arquitectonico, un diseño de interfaz, y un diseño de componentes.

la transision entre el analisis al diseño deberia ser de la siguiente forma

el diseño de datos-clase transforma los modelos de analisisy clases en clase de diseño y las estructuras y las estructuras de datos que se requieren para implementar el software. el diseño arquitectonico define la relacion entre los elementos estructurales mas importantes del software los estilos arquitectonicos y patrones de diseño que pueden usarse para satisfacer los requisitos definidos del sistema y las restricciones que afectan  la manera en que se pueden implementar los patrones arquitectonicos. El diseño de la interfaz define como el software se comunicara con otros sistemas o usuarios. El diseño a nivel  de componentes  transforma  los elementos estructurales  de la arquitectura del software en una descripcion procedimental de los componentes de este.

La importancia del diseño del software puede describirse en una sola palabra "calidad"

PROCESO Y CALIDAD DEL DISEÑO

El proceso de diseño es iterativo y en el los requisitos se traducen a un plano, al principio este plano presenta una vision holistica con un grado alto de abstraccion a medida que pasan las iteraciones la abstraccion disminuye.

existen tres caracteristicas que pueden seguir como guia .

1. el diseño debe contener todos los requisitos explicitos y ajustarse a los requisitos implicitos
2. el diseño debe ser una guia legible y comprensible para quienes generan codigo, realizan pruebas y generan mantenimiento del software.
3. el diseño debe proporcionar una imagen completa del software.

las directrices de calidad podrians ser las siguientes

1.  un diseño debe presentar una estructura arquitectonica , que se haya creado mediante patrones de diseño reconocibles,la integren componentes que exhiban buenas  caracteristicas de diseño y pueda implementarse de manera evolutiva.
2. un diseño debe ser modular
3. debe contener distintas representaciones de los datos ,arquitectura,interfaces y componentes.
4. estructuras de datos que sean apropiadas  para  las clases que habran de implementarse y que procedan de patrones de diseño reconocibles.
5. componentes que presenten caracteristicas funcionales independientes
6.reducir la complejidad de las conexiones entre los componentes y el ambiente externo.
7. debe obtenerse por medio de un metodo  repetible  que se base  en la informacion  obtenida durante el analisis de requisitos de software.
8. debe representarse por medio de una notacion que comunique de manera eficaz  su significado.

Atributos de calidad

la funcionalidad
la facilidad de uso
la confiabilidad
el desempeño
la soportabilidad

dependiendo del proyecto que se este desarrollando puede sobresalir alguno de los atributos de software.

conceptos de diseño

Abstraccion  en un alto grado de abstraccion la solucion es mas general en grados de menor abstraccion la solucion es mas detallada

Arquitectura de software. la estructura general del software y las formas en que la estructura proporciona una integridad conceptual del sistema, el diseño arquitectonico puede representarse por medio de  los modelos estructurales, los modelos de marco de trabajo, los modelos dinamicos, los modelos de proceso los modelos funcionales.

Patrones de diseño,  el patron de diseño es una semilla de conocimiento la cual tiene un nombre y transporta la escencia de una solucion probada a un problema recurrente dentro de cierto contexto en medio de intereses de competencia.

La modularidad. el poder dividir el todo de un proyecto de software en componentes con nombres independientes y que es posible abordar de forma individual.

a continuacion se muestra una grafica en la que se indica  el costo del esfuerzo a partir de la cantida de modulos.


Ocultacion de informacion. los datos y procedimientos de cada modulo no deben de estar disponibles para otros que no lo necesiten.

Independencia funcional. indica que se debe  evitar la interaccion execiva con otros modulos.


CLASES DE DISEÑO
 las clases de analisis difieren a las clases de diseño en que las primeras deben tener un grado de abstraccion relativamente alto y conforme evoluciona a las clase de diseño estas deben definir a detalle el diseño para permitir su implementacion. producir un conjunto de clases de diseño que que implementen una infraestructura de software para soportar el negocio.
se suguieren 5 tipos de clases

- Clases de interfaz de usuario
-Clases de dominio de negocio
-Clases de procesos
-Clases persistentes
-Clases de Sistema

las cuatro caracteristicas definidas de una clase bien formadas pueden ser.

Completa y suficiente
primitivismo
cohesion alta
Acoplamiento bajo

MODELO DE DISEÑO

puede representarse en dos dimensiones distintas  la dimension del proceso indica, la evolucion del modelo de diseño conforme se ejecutan las tareas del diseño como parte del proceso de software la dimension abstraccion representa el grado de detalle  a medida que  cada elemento del modelo del analisis se transforma en un equivalente del diseño y despues se redefina de manera iterativa.

a continuacio una grafica  que presenta las dimensiones del modelo de diseño

 


el modelo arquitectonico se deriva del dominio de aplicacion, del modelo de analisis  y de los estilos  y patrones disponibles es la vision general del software .

DISEÑO DE SOFTWARE BASADO EN PATRONES

Las disciplinas maduras de ingenieria de software utilizan miles de patrones de diseño

existen distinto tipos de patrones por ejemplo

patrones arquitectonicos
patrones de diseño
idiomas o patrones de codigo

MARCOS DE TRABJO

El marco de trabajo no es un patron arquitectonico sino une esqueleto con una coleccion de puntos de conexion que le permiten adaptarse a un dominio de un problema especifico de un problema en especifico.
los marcos de trabajo se aplican sin cambios
La fase de diseño al igual que el analisis muchas veces despreciada es de vital importancia para la construccion un software de calidad que pueda tener exito y satisfacer las necesidades del cliente.

Comentarios

Entradas populares de este blog

DISEÑO AL NIVEL DE COMPONENTES

El diseño a nivel de componentes se presenta a menudo despues que se ha terminado la primera iteracion del diseño arquitectonico. y  el objetivo de esta fase es traducir el diseño en software operaciona. El diseño a nivel de componentes define las estructuras de datos, los algoritmos, las caracteristicas de la interfaz  y los mecanismos de comunicacion asignados a cada componente de software. esta fase permite revisar si los detalles de diseño son correctos y consistentes con las representaciones iniciales de diseño ¿QUE ES UN COMPONENTE? Es un bloque de construccion modular par el software de computo. una parte modular desplegable y reemplazable de un sistema que encapsula implementacion y expone un conjunto de interfaces. desde el punto de vista orientado a objetos un componente es un conjunto de clases ques se interrelacionan entre si. en el contexto convencional de ingenieria de software  un componente es un elemento funcional que incorpora  la logica del procesamiento y

ESTRATEGIAS DE PRUEBAS DE SOFTWARE

La estrategia de pruebas de software proporciona un mapa que describe los pasos que se daran como parte de la prueba indica cuando se planea y cuando se daran dichos pasos ademas cuanto tiempo, esfuerzo y recursos consumiran. un software se prueba para descubrir los errores cometidos, si se realiza sin ningun plan seguramente se desperdiciara tiempo, se dedicara un esfuerzo innecesario y lo que es peor puede que no se detecten los errores. Las pruebas se deben planificar con anticipacion y realizarlas de manera sistematica por lo que es importante tener una plantilla existen diferentes y en general tienen los siguientes pasos. 1. Revisiones tecnicas formales y efectivas 2. Se inicia a nivel de componentes y se trabaja hacia afuera hacia la integracion del sistema 3. Diferentes tecnicas en diferentes momentos 4. las pruebas las dirige el desarrollador 5. la prueba y la depuracion son actividades diferentes, pero la segunda debe incluirse en cualquier estrategia de pruebas. l

AGE OF EMPIRES ERROR INICIALIZAR DIRECT 3D

Instale age of empires 3 pero no me corria me salia un mensaje de error al inicializar posibles causas direct 3d y otras que no me acuerdo la solucion luego de buscar: abrir el archivo mis documentos\my games\Age of empires 3\users\NewProfile.xml en block de notas setting name="optiongrfxres">etting Name="optiongrfxres">1280 x 720 colocar los parametros en la configuarcion que tiene el ordenador en mi caso es wide screen 1280 X 720 Setting Name="optionrefreshrate">75 esta configuracion se mira en inicio > panel de control > apariencia y temas >pantalla lengeta configuarcion > boton opciones avanzadas lengueta adaptador > boton listar modos alli colocas el modo que queres y lo pones en el archivo newProfile.xml