Descargar como doc, pdf o txt
Descargar como doc, pdf o txt
Está en la página 1de 6

República Bolivariana de Venezuela

Ministerio del poder popular para la educación Ciencia y tecnología


Universidad Nacional Experimental de la Gran Caracas
Programa Nacional de Formación en Informática
Trayecto 2-1 Sección 10121
Materia Ingeniera del Software

Diseño en Ingeniería del


Software

Profesor:

Vladimir Peña Estudiante:

Brian Álvarez

27.294.398

Caracas, 4 de noviembre del 2019


¿Que es diseño de Software?
El diseño de software es el proceso de visionado y definición de soluciones software a uno o
más conjuntos de problemas. Uno de los componentes principales del diseño de software es el
análisis de requisitos del software (ARS, del inglés SRA). Se trata de una parte del proceso de
desarrollo de software que enumera especificaciones empleadas en ingeniería de software. Si
el software está "automatizado" o centrado en el usuario, el diseño de software puede implicar
también el diseño de experiencia de usuario que utiliza un storyboard o guion gráfico para
ayudar determinar esas especificaciones. Si el software es completamente automatizado (es
decir, sin usuario o interfaz de usuario), un diseño de software puede ser tan sencillo como un
diagrama de flujo o un texto describiendo una secuencia planeada de acontecimientos.
También hay métodos semiestándares como el Lenguaje Unificado de Modelado (UML) y
conceptos fundamentales de modelado. En cualquier caso, normalmente alguna
documentación del plan resulta como producto del diseño. Además, un diseño de software
puede ser independiente de la plataforma o específico de la plataforma, dependiendo de la
disponibilidad de la tecnología utilizada para el diseño.

Mencione y explique la tarea de diseño que producen los métodos de diseño

El diseño tiene que exhibir uniformidad e integración. Un diseño es uniforme si resulta


plenamente coherente. Para conseguir esto, las reglas de estilo y formato han de ser definidas
para el equipo de diseño antes de que comience el trabajo de diseño. Un diseño está integrado
si se ha tomado la molestia en definir interfaces entre componentes de diseño.

El diseño tendría que ser estructurado para adaptarse al cambio. Los conceptos de diseño
que se exponen en la próxima sección, habilitan al diseño para conseguir este principio.

El proceso de diseño no tendría que sufrir "visión de túnel." Un buen diseñador tendría que
considerar enfoques alternativos, juzgando cada uno basándose en los requisitos del problema,
en los recursos disponibles para hacer el trabajo.

El diseño tendría que ser rastreable por el modelo de análisis. Ya que un único elemento del
modelo de diseño a menudo puede remontarse a múltiples requisitos, es necesario tener un
medio para observar cómo los requisitos han sido satisfechos por el modelo de diseño.

El diseño no es codificación, la codificación no es diseño. Incluso cuándo los diseños


detallados de procesos están creados para componentes del programa, el nivel de abstracción
del modelo de diseño es más alto que el del código fuente. Las únicas decisiones de diseño del
nivel de codificación tendrían que referirse a pequeños detalles de implementación para
habilitar la codificación del diseño de procesos.

El diseño tendría que ser revisado para minimizar los errores conceptuales (semánticos). A
veces hay una tendencia a centrarse en minucias cuándo se revisa el diseño. El equipo de
diseño tendría que asegurarse de que los elementos conceptuales importantes del diseño
(omisiones, ambigüedad, incongruencias) han sido tratados antes de preocuparse por la
sintaxis del modelo de diseño.
¿Cuáles son los criterios técnicos para un buen diseño?

Funcionalidad
Este punto determina la razón de ser de un diseño. Debe responder las siguientes preguntas:
¿Puede este hacer lo que debe hacer? Funcionalidad no es sinónimo de escasez.

Confiabilidad
Cabe preguntarse en este punto si el producto diseñado puede repetirse sin dificultad.
¿Funcionará correctamente en el medio para el que está diseñado?

Usabilidad
Esta pregunta es de lo más común: ¿Puede el público al que está dirigido este diseño comenzar
a usarlo?

Competencia
Aquí debe determinarse si el producto diseñado puede hacer que sus usuarios mejoren su
condiciones y son capaces de crecer con este objeto.

Creatividad
En el proceso de creación de un diseño o producto debes preguntarte ¿cómo puede esto ser
mejor, es estético, soluciona los problemas de la gente?

¿Por qué se dice que el diseño de software es tanto un modelo como un proceso?
Se le denomina Proceso porque es una estructura aplicada al desarrollo de un producto
de software. Hay varios modelos a seguir para el establecimiento de un proceso para el
desarrollo de software, cada uno de los cuales describe un enfoque diferente para diferentes
actividades que tienen lugar durante el proceso. Algunos autores consideran un modelo de
ciclo de vida un término más general que un determinado proceso para el desarrollo de
software. Por ejemplo, hay varios procesos de desarrollo de software específicos que se ajustan
a un modelo de ciclo de vida de espiral. De igual manera se le dice modelo porque Los modelos
de desarrollo de software son una representación abstracta de una manera en particular.
Realmente no representa cómo se debe desarrollar el software, sino de un enfoque común.
Puede ser modificado y adaptado de acuerdo a las necesidades del software en proceso de
desarrollo. 1Hay varios modelos para perfilar el proceso de desarrollo, cada uno de las cuales
cuenta con pros y contras. El proyecto debería escoger el más apropiado para sus necesidades.
En ocasiones puede que una combinación de varios modelados sean apropiado.

Desarrolle y explique el concepto de Abstracción, refinamiento, Moduladidad,


Arquitectura de software, Jerarquia de control, división estructural, estructura de
datos, Procedimiento de software, ocultamiento de información

1. Abstracción - la abstracción es el proceso o resultado de la generalización reduciendo


el contenido de información de un concepto o un fenómeno observable, típicamente
para retener información única que es pertinente para un propósito particular. Es el
acto de Representar características esenciales sin incluir los detalles de fondo o
explicaciones.
2. Refinamiento - es el proceso de elaboración. Una jerarquía se desarrolla
descomponiendo una declaración macroscópica de función de un modo sensato hasta
que se logre obtener declaraciones del lenguaje de programación. En cada paso, una o
varias instrucciones de un programa dado se descomponen en instrucciones más
detalladas. La abstracción y El Refinamiento son conceptos complementarios .
3. Modularidad - La arquitectura de software está dividida en componentes llamados
módulos.
4. Arquitectura de software - se refiere a la estructura global del software y las maneras
en que esa estructura proporciona integridad conceptual al sistema. Una buena
arquitectura de software amortizará la inversión en cuanto al resultado deseado del
proyecto, p. ej. en el rendimiento, la calidad, el programa y el coste.
5. Jerarquía de control - Un estructura de programa que representa la organización de
un componente e implica una jerarquía de control.
6. Estructural Partitioning - La estructura de programa puede ser dividida horizontal y
verticalmente. Las particiones horizontales definen ramas separadas de jerarquía
modular para cada función importante. Las particiones verticales sugiere que el
control y el trabajo tendrían que ser distribuidos de arriba a abajo en la estructura de
programa.
7. Estructura de datos - es una representación de la relación lógica entre los elementos
individuales de los datos.
8. Procedimiento de software - centra en el procesamiento de cada módulo
individualmente.
9. Ocultar Información- los módulos tendrían que ser especificados y diseñados de modo
que la información contenida dentro de un módulo es inaccesible a otros módulos,
que no tienen ninguna necesidad de conocer esa información.

Defina según diseño modular ¿Qué es Independencia Funcional, Cohesión,


Acoplamiento
Independencia funcional Diseñar el Software de manera que cada módulo trate una sub
función de requisitos y tenga una interfaz sencilla cuando se observa desde otras partes de la
estructura del programa, Los módulos independientes dos más fáciles de mantener y probar
porque se limitan los efectos secundarios originados por modificaciones de diseño/Código;
porque se reduce la propagación de errores y porque es posible utilizar módulos usables.
Cohesión: Los niveles moderados de cohesión están relativamente cerca unos de otros en la
escala de independencia modular. Cuando los elementos de procesamiento de un módulo
están relacionados, y deben ejecutarse en un orden específico se le dice cohesión
procedimental, Cuando todos los elementos de un procesamiento se centran en un área de
una estructura de datos, se le llama cohesión de comunicación
Acoplamiento: El acoplamiento es una medida de interconexión entre módulos dentro de una
estructura de software. El acoplamiento depende de la complejidad de interconexión entre los
módulos, el punto donde se realiza una entrada o referencia a un módulo, y los datos que
pasan a través dela interfaz
Mencione y explique las Heurísticas para manipular la estructura de un programa
Para la informática, la heurística consiste en encontrar o construir algoritmos con buena
velocidad para ser ejecutados. Ejemplos claros de la definición proporcionada son los juegos
informáticos, o programas que detectan si un correo electrónico es un spam o no o en el caso
de los antivirus si cumplen con idoneidad su cometido.

 Principios heurístico, establece sugerencias para encontrar la solución idónea al


problema.
 Reglas heurística, señalan los medios para resolver el problema.
 Estrategias heurísticas, son aquellas que permiten organizar los materiales o recursos
compilados que contribuyen a la búsqueda de la solución del problema.

Defina modelo de diseño


La meta del diseño es crear un modelo de software que implemente todos los requisitos del
cliente de manera correcta y complazca a aquéllos que lo usen. El proceso de diseño avanza de
una visión general del software a una visión más estrecha que define el detalle requerido para
implementar un sistema. El proceso de diseño comienza con un enfoque en la arquitectura. Un
sistema orientado a objetos está compuesto de objetos que interactúan, los cuales mantienen
ellos mismos su estado local y proveen operaciones sobre su estado. La representación del
estado es privada y no se puede acceder a ella directamente desde fuera del objeto. El proceso
de diseño de objetos comprende el diseño de clases de objetos y las relaciones entre estas
clases. El diseño orientado a objetos comprende el desarrollo de un modelo orientado a
objetos de un sistema de software para implementar los requerimientos identificados.
Es importante señalar que un diseño orientado a objetos no necesariamente se tiene que
implementar mediante un lenguaje orientado a objetos. Sin embargo, es más natural hacerlo
de esta manera. Esto es debido a que los lenguajes orientados a objetos tienen un apoyo
directo a los conceptos del análisis orientado a objetos (encapsulamiento, generalización,
polimorfismo).
Sin embargo, se puede traducir cualquier concepto o mecanismo orientado a objetos a otros
existentes en los lenguajes no orientados a objetos. El problema con este tipo de lenguajes es
su conveniencia, mantenimiento y protección contra errores. Un lenguaje orientado a objetos
hace que la escritura, mantenimiento y extensión de los programas sea más fácil y segura.
Defina documentación de diseño
Un documento de diseño de software detalla cómo los requisitos de software deben ser
implementados, así como también proporciona a los programadores un modelo a seguir. Una
vez que el documento de diseño de software es aprobado por las partes involucradas, se
convierte en la base para limitar los cambios en el alcance de un proyecto. Un documento de
diseño de software ayuda a determinar si se han abordado todos los requisitos necesarios.
Además, proporciona un foro para discutir los elementos de diseño que no están alineados con
un requerimiento, para determinar si el elemento de diseño es necesario Un documento de
diseño del software proporciona al equipo de desarrollo de software una orientación general
sobre la arquitectura del proyecto de software. El documento debe ser tan detallado como sea
posible, a fin de mantener el equipo de desarrollo de software centrado y alineado. Un
documento de diseño del software detalla la arquitectura del sistema. Durante el desarrollo y
la revisión del documento de diseño del software, la arquitectura del sistema final deberá tener
las deficiencias, defectos y/o inconsistencias resueltos. Un documento de diseño de software
sirve como un manual de capacitación para los nuevos miembros del proyecto. Además, un
documento de diseño de software puede ser utilizado como un manual de capacitación
durante toda la vida del sistema.

También podría gustarte