Este documento describe los fundamentos básicos para el diseño de software. Explica que el diseño de software permite a los ingenieros crear modelos de la solución y evaluar cuál cumple mejor con los requisitos. También destaca la importancia del diseño, ya que un mal diseño puede causar problemas a lo largo del proyecto. Finalmente, presenta diferentes estrategias, técnicas y principios clave para el diseño de software, como la modularidad, documentación, uso de patrones de diseño y calidad.
Se establece un recorrido por elementos fundamentales del diseño de software. Elementos como la funcionalidad, la facilidad de uso, la soportabilidad, entre otras.El refinamiento, la refabricación y las diversas clases de diseño pueden se encontradas en este documento.
El diseño es definido como tanto “El proceso de definir la arquitectura, la componentes, interfaces, y las otras características de un sistema o componente” como “El resultado de [eso] se procesa.” Visto como un proceso, el diseño de software es la actividad de ciclo de vida de ingeniería de software en la que los requerimientos de software son analizados para causar una descripción de la estructura interna del software que servirá como base para su construcción. Más precisamente, un diseño de software (el resultado) debe describir la arquitectura de software – es decir cómo el software está en estado de descomposición y organizado en los componentes – y las interfaces entre esos componentes. También debe describir los componentes en un nivel del detalle que permiten su construcción.
El diseño de software tiene un papel importante en el desarrollo de software, ya que permite que ingenieros de software produzcan modelos distintos que moldean una clase de plano de la solución a ser implementado. Podemos analizar y valorar a estos modelos para determinar cuál de estos permitirá o no, cumplir con una gama de requerimientos.
Se establece un recorrido por elementos fundamentales del diseño de software. Elementos como la funcionalidad, la facilidad de uso, la soportabilidad, entre otras.El refinamiento, la refabricación y las diversas clases de diseño pueden se encontradas en este documento.
El diseño es definido como tanto “El proceso de definir la arquitectura, la componentes, interfaces, y las otras características de un sistema o componente” como “El resultado de [eso] se procesa.” Visto como un proceso, el diseño de software es la actividad de ciclo de vida de ingeniería de software en la que los requerimientos de software son analizados para causar una descripción de la estructura interna del software que servirá como base para su construcción. Más precisamente, un diseño de software (el resultado) debe describir la arquitectura de software – es decir cómo el software está en estado de descomposición y organizado en los componentes – y las interfaces entre esos componentes. También debe describir los componentes en un nivel del detalle que permiten su construcción.
El diseño de software tiene un papel importante en el desarrollo de software, ya que permite que ingenieros de software produzcan modelos distintos que moldean una clase de plano de la solución a ser implementado. Podemos analizar y valorar a estos modelos para determinar cuál de estos permitirá o no, cumplir con una gama de requerimientos.
libro conabilidad financiera, 5ta edicion.pdfMiriamAquino27
LIBRO DE CONTABILIDAD FINANCIERA, ESTE TE AYUDARA PARA EL AVANCE DE TU CARRERA EN LA CONTABILIDAD FINANCIERA.
SI ERES INGENIERO EN GESTION ESTE LIBRO TE AYUDARA A COMPRENDER MEJOR EL FUNCIONAMIENTO DE LA CONTABLIDAD FINANCIERA, EN AREAS ADMINISTRATIVAS ENLA CARREARA DE INGENERIA EN GESTION EMPRESARIAL, ESTE LIBRO FUE UTILIZADO PARA ALUMNOS DE SEGUNDO SEMESTRE
1º Caso Practico Lubricacion Rodamiento Motor 10CVCarlosAroeira1
Caso pratico análise analise de vibrações em rolamento de HVAC para resolver problema de lubrificação apresentado durante a 1ª reuniao do Vibration Institute em Lisboa em 24 de maio de 2024
1. FUNDAMENTOS
BÁSICOS PARA
EL DISEÑO DE
SOFTWARE
REPUBLICA BOLIVARIANA DE VENEZUELA
MINISTERIO DEL PODER POPULAR PARA LA EDUCACIÓN
INSTITUTO UNIVERSITARIO POLITÉCNICO “SANTIAGO MARIÑO”
EXTENSIÓN MÉRIDA
POR:
MICHELL ANDREINA VILLEGAS BARRIOS
2. 1.- Diseño de
Software
El diseño de software juega un papel
importante en el desarrollo de software
porque permite a los ingenieros de
software crear diferentes modelos que
forman una especie de plano de la
solución a implementar. Podemos
analizar y evaluar estos modelos para
determinar cuál de ellos permite o no un
conjunto de requisitos.
El diseño se define en [IEEE610.12-90] como "el
proceso de definir la arquitectura, los componentes,
las interfaces y otras características de un sistema o
componente" y "el resultado [del cual] se trata". Visto
como un proceso, El diseño de software es la
actividad del ciclo de vida de la ingeniería de software,
donde se analizan los requisitos de software para
crear una descripción de la estructura interna del
software que sirve como base para su construcción.
Más precisamente, un diseño de software (el
resultado) debe describir el software arquitectura, es
decir cómo el software se encuentra en estado de
descomposición y está organizado en componentes e
interfaces entre estos componentes, también debe
describir los componentes con suficiente detalle para
permitirle construirlos.
1
3. 2.- IMPORTANCIA
DEL DISEÑO DEL
SOFTWARE
El diseño del software tiene una influencia
directa en la capacidad del sistema para cumplir
con los requisitos especificados en su conjunto o
no. Un defecto de diseño en este punto puede
crear problemas a lo largo del proyecto y llevarlo a
una espiral de cambio continuo y reelaboración
constante del trabajo.
Una fase muy importante en el
ciclo de vida de un proyecto es el
diseño de software.
Es una fase fundamental, y en muchos casos la
más importante, en el desarrollo de software. Este
es el momento en el que los profesionales deben
aportar sus conocimientos, experiencia y
creatividad para encontrar una solución que
cumpla con los requisitos funcionales y no
funcionales definidos en la fase de creación de
requisitos.
2
4. C
2.1 Comprender los requisitos:
D
Si tuviéramos que resumir la
importancia del diseño de
software en una palabra,
sería "calidad".
Documentación:
Es importante poder transmitir el diseño a otras personas
involucradas en el desarrollo. La documentación se realiza a
través de varias vistas de nivel superior e inferior. Estas
vistas suelen contener gráficos e información para
comprimirlos.
Modularidad:
El diseño debe ser modular y dividido en estructuras que
realicen ciertas funciones. Esto facilita su reutilización.
Además, esto debe hacerse de tal manera que los
cambios y extensiones de funcionalidad sean posibles
sin afectar a los demás.
Para que la tarea de diseño sea satisfactoria, existen
algunas técnicas que podemos (y muchas de ellas
debemos) seguir:
Patrón de diseño:
No deberíamos estar inventando algo que ya se ha
inventado. Para hacer esto, necesitamos conocer y
aplicar patrones de diseño. Estas son soluciones (ya
probadas y documentadas) para problemas de
desarrollo conocidos.
Calidad:
La calidad del diseño debe evaluarse cuando se crea, no
cuando se completa.
Necesitamos tener claros todos los requisitos que afectan al diseño del software. Estos pueden o no ser funcionales, pero deben
estar completamente definidos, comprendidos y documentados. Casi todos los problemas futuros comienzan con requisitos poco
claros. Estos deben ser 100% claros e inequívocos.
P
M
D
Diseños ágiles:
No es necesario definir todo el diseño al principio.
Puede partir de un diseño general y crearlo a medida
que evoluciona para que se adapte a los cambios y
desarrollos. Existen riesgos asociados con la
separación completa del diseño y la codificación, y
siempre es mejor contar con profesionales que puedan
diseñar y codificar.
3
5. Según el Sr. A. Jackson (1975), "El principio de sabiduría para un ingeniero de
software es ver la diferencia entre cómo funciona un programa y cómo funciona
correctamente".
El diseño de la arquitectura del software es una fase muy importante del ciclo
de vida del software. Es imperativo que realice esta tarea con extrema
precaución, ya que un error en esta fase de desarrollo puede forzar todo un
proyecto y sumergirse en una espiral de cambio constante.
Hay algunas reglas que podríamos considerar al diseñar la arquitectura del
sistema.
3.- Principios
basados en el
diseño de
características
de calidad
4
Al desarrollar software, asegúrese de que todo el software haga lo que debe hacer, no lo que no hace.
Parece obvio, pero no lo es.
Al considerar dónde ubicar cada método de software que implementa algunas de las funciones
requeridas, intente agrupar los métodos que están relacionados con la funcionalidad. Intente evitar
funciones duplicadas, solo por diferencias menores. Si tiene que hacerlo, hágalo de la manera más
inteligente y mantenga la duplicación de código al mínimo. Utilice clases de soporte o métodos de
soporte con la mayor frecuencia posible y conviértalos en estáticos, lo que reducirá los costos y
optimizará los recursos del sistema.
La funcionalidad expuesta debe satisfacer las necesidades del usuario. El código reutilizable no debe
cubrir el 100% de los casos. Al menos el 10% de los casos son tan extraños que nunca pensaste en ello.
Haga una búsqueda exhaustiva y encontrará el 80% de los casos que se aplican a usted. No mires lo
que está fuera del negocio. Estos casos hacen las cosas de manera diferente y tienen un alcance
diferente. Examina implícitamente tu negocio. También hay mucha información sobre esto en su
negocio y necesita encontrarla. Si no puede encontrarlo, significa que es posible que no necesite esta
función para que sea reutilizable. Solo hazlo de forma aplicativa.
No utilice tecnología intrusiva en su código. Si es así, explique por qué hizo esto.
3.1- Funcionalidad - Cada software
debe facilitarle la vida al usuario,
aquí debe aplicarse la regla 80-20
(al menos el 80% del tiempo ...).
6. Cada pieza de software debe estar
organizada de manera que cada
pieza de código se pueda
encontrar fácilmente y estructurar
fácilmente para que se pueda
agregar una nueva pieza.
3.2.- Organización - 3.3.- Trazabilidad -
Cada software debe registrar sus
acciones en detalle,
preferiblemente en diferentes
niveles de detalle. El uso de
bibliotecas de registros facilita su
trabajo.
ningún software puede revelar sus
debilidades de seguridad. B.
Inyección de código, modificación
de permisos no autorizados,
denegación de servicios del
sistema, etc.
El software portátil es mucho
mejor que el software que debe
instalar. Copiar archivos en una
ubicación es mucho más fácil que
pasar por un proceso de
instalación.
Todo el software debe ser
reutilizable tanto como sea
posible (si no es aplicable) y
reutilizar otros componentes tan a
menudo como sea posible.
3.4.- Seguridad -
3.5.- Portabilidad - 3.6.- Reutilización - 3.7.- Cuándo no
reutilizar -
No se recomienda la reutilización
es la falta de comprensión de
cómo escribir correctamente
código reutilizable. Normalmente,
el código en cuestión solo se ha
escrito una o dos veces.
5
7. 3.8.- Extensibilidad -
Todo el software debe ser lo más extensible posible; H. tener
tantas publicaciones como sea posible para agregar más
funcionalidad.
3.9.- Buenas prácticas de
extensibilidad -
Una regla de oro de la extensibilidad sería interconectar la
funcionalidad de siempre, y si desea que el usuario lo lleve
consigo para traer los objetos creados a su biblioteca, use el
modelo de fábrica y permita que el usuario registre sus propios
tipos. Esto le permite reemplazar el código detrás de la
superficie como mejor le parezca sin que el usuario tenga que
tener cuidado, y también le permite ingresar sus propios tipos.
3.10.- Orden y estructura -
A medida que desarrolle la estructura de su proyecto, sepárelo
lógicamente y no físicamente. Piensa en alguien que no conoce
el proyecto y necesita un archivo específico cuando no lo
encuentra, la estructura no sigue ninguna lógica en particular.
6
8. Aquí los requisitos se implementan en una
representación del software en dos pasos:
4 ESTRATEGIAS DE
DISEÑO DE
SOFTWARE
Diseño preliminar: es
la transformación de
requisitos en la
arquitectura de datos
y software.
Diseño detallado: se
ocupa del refinamiento y
la representación
arquitectónica que
conlleva una estructura
de datos refinada y
representaciones
algorítmicas del
software.
7
9. El software portátil es mucho mejor que el
software que debe instalar. Copiar archivos en una
ubicación es mucho más fácil que pasar por un
proceso de instalación.
Se centra en los detalles de procesamiento de cada
módulo. Debe dar una especificación precisa del
tratamiento, incluida la secuencia de eventos,
puntos de decisión específicos. Debe incluir
referencias a todos los submódulos del módulo que
está describiendo.
4.1 Estructura de datos 4.2 Proceso de software
4.3 Ocultamiento de la información
Capacidad que obtienen los módulos de transmitir información contenida en ellas pero solamente información necesaria. Implica que
hay que definir un conjunto de módulos independientes, que se comuniquen con los otros mediante la información que sea necesaria
para realizar la función del software.
8
Diagramas de actividad
Diagramas de interacción
Diagramas de flujo de datos
Algunas descripciones
conductuales (vista dinámica)
Módulo secuenciales
Módulos incrementales.
Módulo paralelo
tipos de módulos
Diagramas de clase y objeto
Diagramas de componentes
Cartas de estructuras o
Diagrama de Estructura
Algunas descripciones
estructurales (vista estática).