[go: up one dir, main page]

0% encontró este documento útil (0 votos)
79 vistas19 páginas

IS 14-15 21a U2 Tarea 12 Cardenas Bahena TR

El documento presenta información sobre el diseño de software para la asignatura de Ingeniería de Software. Explica que el diseño de software es el proceso de planificación de una solución de software y define los tipos de diseño como diseño arquitectónico y diseño detallado. También describe los pasos generales para llevar a cabo el diseño de software y las salidas típicas de la fase de diseño como diseño de datos, diseño arquitectónico, diseño de interfaz y diseño procedimental.

Cargado por

Tom Bahena
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
79 vistas19 páginas

IS 14-15 21a U2 Tarea 12 Cardenas Bahena TR

El documento presenta información sobre el diseño de software para la asignatura de Ingeniería de Software. Explica que el diseño de software es el proceso de planificación de una solución de software y define los tipos de diseño como diseño arquitectónico y diseño detallado. También describe los pasos generales para llevar a cabo el diseño de software y las salidas típicas de la fase de diseño como diseño de datos, diseño arquitectónico, diseño de interfaz y diseño procedimental.

Cargado por

Tom Bahena
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 19

ESCUELA: Instituto Tecnológico de Acapulco

CARRERA: Ingeniería en Sistemas Computacionales (ISC)

MATERIA: Ingeniería de Software

TEMA: 2

TAREA 1: 2.1 Diseño de procesos propuestos.


2.1.1 Herramientas CASE para diseño.
TAREA 2: 2.2 Diseño arquitectónico

NOMBRE: CÁRDENAS BAHENA TOMÁS RAFAEL


NO. DE CONTROL: 18320822
HORARIO: 14:00 – 15:00 HRS.
FECHA DE ENTREGA: 12 de Abril del 2021
CICLO ESCOLAR: Febrero – Junio 2021
Página |1

ÍNDICE

Índice
Tarea 1. .................................................................................................................................................... 2
¿Qué es el diseño en la ingeniería de software? ...........................................................3
Tipos de diseño. (Diseño arquitectónico y diseño detallado) ...................................3
¿Qué pasos se deben considerar para llevar a cabo el diseño de software? .....5
Generalmente la fase de diseño produce un diseño de datos, un diseño
arquitectónico, un diseño interfaz, y un diseño procedimental ..............................6
Herramientas CASE para diseño ...........................................................................................7
Bibliografía Tarea 1 ..................................................................................................................10
Tarea 2. .................................................................................................................................................. 12
Diseño arquitectónico ............................................................................................................12
Bibliografía Tarea 2 ..................................................................................................................17
Bibliografía General .......................................................................................................................... 18
Página |2

INSTITUTO TECNOLÓGICO DE ACAPULCO


INGENIERÍA EN SISTEMAS COMPUTACIONALES

INGENIERÍA DE SOFTWARE

Tarea 1.
2.1 Diseño de procesos propuestos.
2.1.1 Herramientas CASE para diseño.

1) ¿Qué es el diseño en la ingeniería de software?


2) Tipos de diseño.
3) ¿Qué pasos se deben considerar para llevar a cabo el
diseño de software?
4) Herramientas CASE para diseño

Alumno: Cárdenas Bahena Tomás Rafael


No. de Control: 18320822
Horario de 13:00 a 14:00 hrs.
Fecha de entrega: 22 / Marzo / 2021
Periodo escolar FEBRERO – JUNIO /2021
Página |3

¿Qué es el diseño en la ingeniería de software?

Diseño de software es el proceso de diseño para la planificación de una solución


de software. Este proceso es, por regla general, necesaria para que los
programadores puedan manejar la complejidad que la mayoría de los programas
informáticos poseen y para disminuir el riesgo de desarrollos erróneos.
Se define como el proceso de definición de la arquitectura, componentes,
interfaces y otras características de un sistema o componente que resulta de este
proceso. 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. Estos modelos pueden evaluarse en relación
con su calidad y mejorarse antes de generar código, de realizar pruebas y de que
los usuarios finales se vean involucrados a gran escala. El diseño es el sitio en el
que se establece la calidad del software.
-Ian Sommerville Software Engineering, 9ª edición 2011

Tipos de diseño. (Diseño arquitectónico y diseño detallado)


Página |4

La figura 2.5 es un modelo abstracto de este proceso, que ilustra las entradas al
proceso de diseño, las actividades del proceso y los documentos generados como
salidas de este proceso. El diagrama sugiere que las etapas del proceso de diseño
son secuenciales. De hecho, las actividades de proceso de diseño están
vinculadas.
La figura 2.5 muestra cuatro actividades que podrían formar parte del proceso de
diseño para sistemas de información:
1) Diseño arquitectónico, aquí se identifica la estructura global del sistema, los
principales componentes (llamados en ocasiones subsistemas o módulos),
sus relaciones y cómo se distribuyen.
2) Diseño de interfaz, en éste se definen las interfaces entre los componentes
de sistemas. Esta especificación de interfaz no tiene que presentar
ambigüedades. Con una interfaz precisa, es factible usar un componente sin
que otros tengan que saber cómo se implementó. Una vez que se acuerdan
las especificaciones de interfaz, los componentes se diseñan y se desarrollan
de manera concurrente.
3) Diseño de componentes, en él se toma cada componente del sistema y se
diseña cómo funcionará. Esto puede ser un simple dato de la funcionalidad
que se espera implementar, y al programador se le deja el diseño específico.
Como alternativa, habría una lista de cambios a realizar sobre un componente
que se reutiliza o sobre un modelo de diseño detallado. El modelo de diseño
sirve para generar en automático una implementación.
4) Diseño de base de datos, donde se diseñan las estructuras del sistema de
datos y cómo se representarán en una base de datos. De nuevo, el trabajo
aquí depende de si una base de datos se reutilizará o se creará una nueva.
-Ian Sommerville Software Engineering, 9ª edición 2011
Página |5

¿Qué pasos se deben considerar para llevar a cabo el diseño de software?

Se lo define como el proceso de aplicar ciertas técnicas y principios con el


propósito de definir un dispositivo, un proceso o un Sistema, con suficientes
detalles como para permitir su interpretación y realización física. La etapa del
Diseño del Software encierra cinco etapas:
1) Trasforma el modelo de dominio de la información, creado durante el
análisis, en las estructuras de datos necesarios para implementar el
Software.
2) El diseño de los datos.- Define la relación entre cada uno de los elementos
estructurales del programa.
3) El Diseño Arquitectónico.- Describe como se comunica el Software consigo
mismo, con los sistemas que operan junto con él y con los operadores y
usuarios que lo emplean.
4) El Diseño de la Interfaz.
5) El Diseño de procedimientos.

El Diseño del software transforma elementos estructurales de la arquitectura del


programa. La importancia del Diseño del Software se puede definir en una sola
palabra Calidad, dentro del diseño es donde se fomenta la calidad del Proyecto.
El Diseño es la única manera de materializar con precisión los requerimientos del
cliente.
El proceso de Diseño es un conjunto de pasos repetitivos que permiten al
diseñador describir todos los aspectos del Sistema a construir. A lo largo del
diseño se evalúa la calidad del desarrollo del proyecto con un conjunto de
revisiones técnicas:
1) El diseño debe implementar todos los requisitos explícitos contenidos en el
modelo de análisis y debe acumular todos los requisitos implícitos que
desea el cliente. Debe ser una guía que puedan leer y entender los que
construyan el código y los que prueban y mantienen el Software.
2) El Diseño debe proporcionar una completa idea de lo que es el Software,
enfocando los dominios de datos, funcional y comportamiento desde el
punto de vista de la Implementación. Para evaluar la calidad de una
presentación del diseño, se deben establecer criterios técnicos para un buen
diseño como son:
Página |6

 Un diseño debe presentar una organización jerárquica que haga un


uso inteligente del control entre los componentes del software.
 El diseño debe ser modular, es decir, se debe hacer una partición
lógica del Software en elementos que realicen funciones y
subfunciones específicas.
 Un diseño debe contener abstracciones de datos y procedimientos.
 Debe producir módulos que presenten características de
funcionamiento independiente.
 Debe conducir a interfaces que reduzcan la complejidad de las
conexiones entre los módulos y el entorno exterior.
 Debe producir un diseño usando un método que pudiera repetirse
según la información obtenida durante el análisis de requisitos de
Software.
Estos criterios no se consiguen por casualidad. El proceso de Diseño del Software
exige buena calidad a través de la aplicación de principios fundamentales de
Diseño, Metodología sistemática y una revisión exhaustiva. Cuando se va a
diseñar un Sistema de Computadoras se debe tener presente que el proceso de
un diseño incluye, concebir y planear algo en la mente, así como hacer un dibujo
o modelo o croquis.
-Ian Sommerville Software Engineering, 9ª edición 2011

Generalmente la fase de diseño produce un diseño de datos, un diseño


arquitectónico, un diseño interfaz, y un diseño procedimental
Página |7

La mayoría del software tiene interfaz junto con otros sistemas de software. En
ellos se incluyen sistema operativo, base de datos, middleware y otros sistemas
de aplicación. Éstos constituyen la “plataforma de software”, es decir, el entorno
donde se ejecutará el software.
La información sobre esta plataforma es una entrada esencial al proceso de
diseño, así que los diseñadores tienen que decidir la mejor forma de integrarla con
el entorno de software. La especificación de requerimientos es una descripción de
la funcionalidad que debe brindar el software, en conjunción con sus
requerimientos de rendimiento y confiabilidad. Si el sistema debe procesar datos
existentes, entonces en la especificación de la plataforma se incluirá la descripción
de tales datos; de otro modo, la descripción de los datos será una entrada al
proceso de diseño, de manera que se defina la organización del sistema de datos.
1) Diseño arquitectónico, aquí se identifica la estructura global del sistema, los
principales componentes (llamados en ocasiones subsistemas o módulos),
sus relaciones y cómo se distribuyen.
2) Diseño de interfaz, en éste se definen las interfaces entre los componentes
de sistemas. Esta especificación de interfaz no tiene que presentar
ambigüedades. Con una interfaz precisa, es factible usar un componente sin
que otros tengan que saber cómo se implementó. Una vez que se acuerdan
las especificaciones de interfaz, los componentes se diseñan y se desarrollan
de manera concurrente.
3) Diseño de componentes, en él se toma cada componente del sistema y se
diseña cómo funcionará. Esto puede ser un simple dato de la funcionalidad
que se espera implementar, y al programador se le deja el diseño específico.
Como alternativa, habría una lista de cambios a realizar sobre un componente
que se reutiliza o sobre un modelo de diseño detallado. El modelo de diseño
sirve para generar en automático una implementación.
4) Diseño de base de datos, donde se diseñan las estructuras del sistema de
datos y cómo se representarán en una base de datos. De nuevo, el trabajo
aquí depende de si una base de datos se reutilizará o se creará una nueva.

Herramientas CASE para diseño


Página |8

JDeveloper, entorno de desarrollo integrado desarrollado por Oracle


Corporation para los lenguajes Java, HTML, XML, SQL, PL/SQL,
Javascript, PHP, Oracle ADF, UML y otros. Era un software propietario
pero gratuito desde 2005.
 Es un entorno gratis, aunque previamente se debe suscribir
para poder descargarlo.
 Netamente desarrollado para Java.
 Posee diagrama de clases (UML).
 Funciona en los siguientes sistemas operativos: Windows, Linux, Mac OSX.
 Mejora de productividad: wizards para generar código repetitivo,
arquitectura de aplicaciones preestablecidas, etc
 ADF: Desarrollo de formularios web WYSIWYG, basado en composición de
layouts.
 Weblogic: buena integración si es este el Servidor que utilizas, en tiempo de
desarrollo, y para aprovechar todas sus capacidades de servidor JEE

Visual Paradigm Visual Paradigm es una herramienta CASE: Ingeniería de


Software Asistida por Computación. La misma propicia un conjunto de ayudas para
el desarrollo de programas informáticos, desde la planificación, pasando por el
análisis y el diseño, hasta la generación del código fuente de los
programas y la documentación.
Se caracteriza por:
 Disponibilidad en múltiples plataformas (Windows, Linux).
 Diseño centrado en casos de uso y enfocado al negocio que generan un
software de mayor calidad.
 Uso de un lenguaje estándar común a todo el equipo de desarrollo que
facilita la comunicación.
 Capacidades de ingeniería directa e inversa.
 Modelo y código que permanece sincronizado en todo el ciclo de desarrollo
 Disponibilidad de múltiples versiones, condiferentes especificaciones.
 Licencia: gratuita y comercial.
 Soporta aplicaciones Web.
Enterprise Architect es una herramienta comprensible de diseño y análisis UML,
cubriendo el desarrollo de software desde el paso de los requerimientos a través
de las etapas del análisis, modelos de diseño, pruebas y mantenimiento. EA es
Página |9

una herramienta multi-usuario, basada en Windows, diseñada para


ayudar a construir software robusto y fácil de mantener. Ofrece salida
de documentación flexible y de alta calidad.
 Enterprise Architect provee trazabilidad completa desde el
análisis de requerimientos hasta los artefactos de análisis y diseño, a través
de la implementación y el despliegue
 EA le ayuda a administrar la complejidad con herramientas para rastrear las
dependencias, soporte para modelos muy grandes, control de versiones con
proveedores CVS o SCC, Líneas Base por cada punto del tiempo, la utilidad
de comparar (diff) para seguir los cambios del modelo, interfaz intuitiva y de
alto rendimiento con vista de proyecto como un "explorador".

EasyCASE, herramienta que permite automatizar las fases de análisis y diseño


dentro del desarrollo de una aplicación, para poder crear las aplicaciones
eficazmente, desde procesamiento de transacciones a la aplicación de bases de
datos de cliente/servidor, así como sistemas de tiempo real.
 Permite generar esquemas de base de datos e ingeniería
reversa
 Permite capturar los detalles de diseño de un sistema y comunicar las ideas
gráficamente, para que sean fáciles de ver y entender.
 Para un diseño legítimo y modelado de datos, procesos y eventos, permite
crear y mantener diagramas de flujo de datos, diagramas de entidad-
relación, mapas de estructura y más.
 Posee herramientas de corrección avanzadas que permiten revisiones
generales.
 Permite re-usar diagramas o partes de diagramas para economizar el diseño
de un proyecto.
 Soporta una gama amplia de metodologías estructuradas, permitiendo
escoger los métodos más apropiados para realizar las tareas.

Rational Rose Enterprise Edition. Es una herramienta CASE (Computer – Arded


Software Engineering), traducido al español como Ingeniería Asistida por
Computadora, desarrollada por Rational Corporation basada en el Lenguaje
P á g i n a | 10

Unificado de Modelación (UML), que permite crear los diagramas que se van
generando durante el proceso de Ingeniería en el Desarrollo del Software.
Entre las características principales de Rational se pueden destacar:
 Admite como notaciones: UML, OMT y Booch.
 Permite desarrollo multiusuario.
 Genera documentación del sistema.
 Disponible en múltiples plataformas.

Bibliografía Tarea 1

 Ian Sommerville Software Engineering, 5ª edición 1996


P á g i n a | 11

 https://www.ecured.cu/Rational_Rose_Enterprise_Edition
 https://www.ecured.cu/Enterprise_Architect
 https://www.ecured.cu/Visual_Paradigm
 https://www.ecured.cu/JDeveloper
P á g i n a | 12

INSTITUTO TECNOLÓGICO DE ACAPULCO


INGENIERÍA EN SISTEMAS COMPUTACIONALES

INGENIERÍA DE SOFTWARE

Tarea 2.
2.2 Diseño arquitectónico

1) Investigue el tema 2.2 diseño arquitectónico

Alumno: Cárdenas Bahena Tomás Rafael


No. de Control: 18320822
Horario de 13:00 a 14:00 hrs.
Fecha de entrega: 26 / Marzo / 2021
Periodo escolar FEBRERO – JUNIO /2021

Diseño arquitectónico
P á g i n a | 13

El diseño arquitectónico nos permite definir cómo debe organizarse un sistema y


cómo tiene que diseñarse la estructura global de esté. Es el enlace entre el diseño
y la ingeniería de requerimientos, que identifica los principales componentes
estructurales en un sistema y la relación entre ellos. La salida del proceso de
diseño arquitectónico consiste en un modelo arquitectónico que describe la forma
en que se organiza el sistema como un conjunto de componentes en
comunicación.
La arquitectura de software se diseña en dos niveles de abstracción:
1) La arquitectura en pequeño se interesa por la arquitectura de programas
individuales.
2) La arquitectura en grande se interesa por la arquitectura de sistemas
empresariales complejos que incluyen otros sistemas, programas y
componentes de programa. Tales sistemas empresariales se distribuyen a
través de diferentes computadoras, que diferentes compañías administran
y poseen
Bass y sus colaboradores (2003) analizan tres ventajas de diseñar y documentar
de manera explícita la arquitectura de software:
1) Comunicación con los participantes: La arquitectura es una presentación
de alto nivel de sistema, que puede usarse como un enfoque para la
discusión de un amplio número de participantes.
2) Análisis del sistema: En una etapa temprana en el desarrollo del sistema,
aclarar la arquitectura del sistema requiere cierto análisis. Las decisiones
de diseño arquitectónico tienen un efecto profundo sobre si el sistema
puede o no cubrir requerimientos críticos como rendimiento, fiabilidad y
mantenibilidad.
3) Reutilización a gran escala: Un modelo de una arquitectura de sistema es
una descripción corta y manejable de cómo se organiza un sistema y cómo
interoperan sus componentes. Por lo general, la arquitectura del sistema
es la misma para sistemas con requerimientos similares y, por lo tanto,
puede soportar reutilización de software a gran escala.

Bass, L., Clements, P. y Kazman, R. (2003). Software Architecture in Practice, 2a ed. Boston: Addison-
Wesley.

Decisiones en el diseño arquitectónico


P á g i n a | 14

Durante el proceso de diseño arquitectónico, los arquitectos del sistema deben


tomar algunas decisiones estructurales que afectarán profundamente el sistema y
su proceso de desarrollo. Con base en su conocimiento y experiencia, deben
considerar las siguientes preguntas fundamentales sobre el sistema:
1. ¿Existe alguna arquitectura de aplicación genérica que actúe como plantilla
para el sistema que se está diseñando?
2. ¿Cómo se distribuirá el sistema a través de algunos núcleos o
procesadores?
3. ¿Qué patrones o estilos arquitectónicos pueden usarse?
4. ¿Cuál será el enfoque fundamental usado para estructurar el sistema?
5. ¿Cómo los componentes estructurales en el sistema se separarán en
subcomponentes?
6. ¿Qué estrategia se usará para controlar la operación de los componentes
en el sistema?
7. ¿Cuál organización arquitectónica es mejor para entregar los requerimientos
no funcionales del sistema?
8. ¿Cómo se documentará la arquitectura del sistema?
La arquitectura de un sistema de software puede basarse en un patrón o un estilo
arquitectónico particular. Un patrón arquitectónico es una descripción de una
organización del sistema (Garlan y Shaw, 1993), tal como una organización
cliente-servidor o una arquitectura por capas. Los patrones arquitectónicos captan
la esencia de una arquitectura que se usó en diferentes sistemas de software.
Debido a la estrecha relación entre los requerimientos no funcionales y la
arquitectura de software, el estilo y la estructura arquitectónicos particulares que
se elijan para un sistema dependerán de los requerimientos de sistema no
funcionales:
1) Rendimiento: Si el rendimiento en un requerimiento crítico, la arquitectura
debe diseñarse para localizar operaciones críticas dentro de un pequeño
número de componentes, con todos estos componentes desplegados en la
misma computadora en vez de distribuirlos por la red. Esto significaría usar
algunos componentes relativamente grandes, en vez de pequeños
componentes de grano fino, lo cual reduce el número de comunicaciones
entre componentes. También puede considerar organizaciones del sistema
en tiempo de operación que permitan a éste ser replicable y ejecutable en
diferentes procesadores.
P á g i n a | 15

2) Seguridad: Si la seguridad es un requerimiento crítico, será necesario usar


una estructura en capas para la arquitectura, con los activos más críticos
protegidos en las capas más internas, y con un alto nivel de validación de
seguridad aplicado a dichas capas.
3) Protección: Si la protección es un requerimiento crítico, la arquitectura debe
diseñarse de modo que las operaciones relacionadas con la protección se
ubiquen en algún componente individual o en un pequeño número de
componentes. Esto reduce los costos y problemas de validación de la
protección, y hace posible ofrecer sistemas de protección relacionados que,
en caso de falla, desactiven con seguridad el sistema.
4) Disponibilidad: Si la disponibilidad es un requerimiento crítico, la
arquitectura tiene que diseñarse para incluir componentes redundantes de
manera que sea posible sustituir y actualizar componentes sin detener el
sistema.
5) Mantenibilidad: Si la mantenibilidad es un requerimiento crítico, la
arquitectura de sistema debe diseñarse usando componentes auto-
contenidos de grano fino que pueden cambiarse con facilidad. Los
productores de datos tienen que separarse de los consumidores y hay que
evitar compartir las estructuras de datos.

Ejemplo
Arquitectura cliente-servidor
El patrón de repositorio se interesa por la estructura estática de un sistema sin
mostrar su organización en tiempo de operación. El siguiente ejemplo ilustra una
organización en tiempo de operación, de uso muy común para sistemas
distribuidos.
Un sistema que sigue el patrón cliente-servidor se organiza como un conjunto de
servicios y servidores asociados, y de clientes que acceden y san los servicios.
Los principales componentes de este modelo son:
1) Un conjunto de servidores que ofrecen servicios a otros componentes.
Ejemplos de éstos incluyen servidores de impresión; servidores de archivo
que brindan servicios de administración de archivos, y un servidor
compilador, que proporciona servicios de compilación de lenguaje de
programación.
P á g i n a | 16

2. Un conjunto de clientes que solicitan los servicios que ofrecen los


servidores. Habrá usualmente varias instancias de un programa cliente que
se ejecuten de manera concurrente en diferentes computadoras.
3. Una red que permite a los clientes acceder a dichos servicios. La mayoría
de los sistemas cliente-servidor se implementan como sistemas distribuidos,
conectados mediante protocolos de Internet.

La ventaja más importante del modelo cliente-servidor consiste en que es una


arquitectura distribuida. Éste puede usarse de manera efectiva en sistemas en red
con distintos procesadores distribuidos. Es fácil agregar un nuevo servidor e
integrarlo al resto del sistema, o bien, actualizar de manera clara servidores sin
afectar otras partes del sistema.
P á g i n a | 17

Bibliografía Tarea 2

 http://upiicsa.tecnologia-
educativa.com.mx/docs/u2/s3/DISENO%20ARQUITECTONICO.pdf
P á g i n a | 18

Bibliografía General

Tarea 1
 Ian Sommerville Software Engineering, 5ª edición 1996
 https://www.ecured.cu/Rational_Rose_Enterprise_Edition
 https://www.ecured.cu/Enterprise_Architect
 https://www.ecured.cu/Visual_Paradigm
 https://www.ecured.cu/JDeveloper

Tarea 2
 http://upiicsa.tecnologia-
educativa.com.mx/docs/u2/s3/DISENO%20ARQUITECTONICO.pdf

También podría gustarte