SlideShare una empresa de Scribd logo
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
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
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
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
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 ...).
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
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
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
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).
Michell Villegas
Extensión Mérida
MUCHAS GRACIAS
Santiago
Mariño

Más contenido relacionado

La actualidad más candente

Fundamentos de ingenieria del software (2)
Fundamentos de ingenieria del software (2)Fundamentos de ingenieria del software (2)
Fundamentos de ingenieria del software (2)
manuel alfredo chacon valero
 
Etapas del desarrollo de software
Etapas del desarrollo de softwareEtapas del desarrollo de software
Etapas del desarrollo de softwarexinithazangels
 
Ingeniería de software
Ingeniería de softwareIngeniería de software
Ingeniería de software
marianela0393
 
Desarrollo de software diapositiva
Desarrollo  de software diapositivaDesarrollo  de software diapositiva
Desarrollo de software diapositivaNorma Rodriguez
 
Diseño de software
Diseño de softwareDiseño de software
Diseño de software
Ramiro Estigarribia Canese
 
Proceso de diseño
Proceso de diseñoProceso de diseño
Proceso de diseño
Juan Pablo Bustos Thames
 
Métodos estructurados
Métodos estructuradosMétodos estructurados
Métodos estructurados
Andres Morales
 
Diseño Estructurado
Diseño EstructuradoDiseño Estructurado
Diseño Estructurado
Guillermo Chirinos
 
Ejemplo problema básico modelo cascada
Ejemplo  problema básico modelo cascadaEjemplo  problema básico modelo cascada
Ejemplo problema básico modelo cascadaJose Lema
 
Conceptos de diseño
Conceptos de diseñoConceptos de diseño
Conceptos de diseño
Juan Pablo Bustos Thames
 
Análisis y diseño de sistemas sesion 06 - fundamentos y capturas de requisitos
Análisis y diseño de sistemas   sesion 06 - fundamentos y capturas de requisitosAnálisis y diseño de sistemas   sesion 06 - fundamentos y capturas de requisitos
Análisis y diseño de sistemas sesion 06 - fundamentos y capturas de requisitos
GianfrancoEduardoBra
 
Conceptos de diseño de software
Conceptos de diseño de softwareConceptos de diseño de software
Conceptos de diseño de software
Jose Diaz Silva
 
Ingenieria de software
Ingenieria de softwareIngenieria de software
Ingenieria de software
mireya2022
 
Tm01 el modelado en el desarrollo de software
Tm01 el modelado en el desarrollo de softwareTm01 el modelado en el desarrollo de software
Tm01 el modelado en el desarrollo de softwareJulio Pari
 
Fundamentos de ingenieria de software
Fundamentos de ingenieria de softwareFundamentos de ingenieria de software
Fundamentos de ingenieria de softwareUTPL UTPL
 
Documentación del diseño
Documentación del diseñoDocumentación del diseño
Documentación del diseño
Juan Pablo Bustos Thames
 
Metodologia prototipado
Metodologia prototipadoMetodologia prototipado
Metodologia prototipado
ALDEN_HERRE
 
Ingeniería del-software
Ingeniería del-softwareIngeniería del-software
Ingeniería del-software
Andrea Marge
 
DiseñO Del Software E IngenieríA Del Software
DiseñO Del Software E IngenieríA Del SoftwareDiseñO Del Software E IngenieríA Del Software
DiseñO Del Software E IngenieríA Del Softwarelcastillo110
 

La actualidad más candente (20)

Fundamentos de ingenieria del software (2)
Fundamentos de ingenieria del software (2)Fundamentos de ingenieria del software (2)
Fundamentos de ingenieria del software (2)
 
Etapas del desarrollo de software
Etapas del desarrollo de softwareEtapas del desarrollo de software
Etapas del desarrollo de software
 
Ingeniería de software
Ingeniería de softwareIngeniería de software
Ingeniería de software
 
Desarrollo de software diapositiva
Desarrollo  de software diapositivaDesarrollo  de software diapositiva
Desarrollo de software diapositiva
 
Diseño de software
Diseño de softwareDiseño de software
Diseño de software
 
Proceso de diseño
Proceso de diseñoProceso de diseño
Proceso de diseño
 
Métodos estructurados
Métodos estructuradosMétodos estructurados
Métodos estructurados
 
Ingenieria de software
Ingenieria de softwareIngenieria de software
Ingenieria de software
 
Diseño Estructurado
Diseño EstructuradoDiseño Estructurado
Diseño Estructurado
 
Ejemplo problema básico modelo cascada
Ejemplo  problema básico modelo cascadaEjemplo  problema básico modelo cascada
Ejemplo problema básico modelo cascada
 
Conceptos de diseño
Conceptos de diseñoConceptos de diseño
Conceptos de diseño
 
Análisis y diseño de sistemas sesion 06 - fundamentos y capturas de requisitos
Análisis y diseño de sistemas   sesion 06 - fundamentos y capturas de requisitosAnálisis y diseño de sistemas   sesion 06 - fundamentos y capturas de requisitos
Análisis y diseño de sistemas sesion 06 - fundamentos y capturas de requisitos
 
Conceptos de diseño de software
Conceptos de diseño de softwareConceptos de diseño de software
Conceptos de diseño de software
 
Ingenieria de software
Ingenieria de softwareIngenieria de software
Ingenieria de software
 
Tm01 el modelado en el desarrollo de software
Tm01 el modelado en el desarrollo de softwareTm01 el modelado en el desarrollo de software
Tm01 el modelado en el desarrollo de software
 
Fundamentos de ingenieria de software
Fundamentos de ingenieria de softwareFundamentos de ingenieria de software
Fundamentos de ingenieria de software
 
Documentación del diseño
Documentación del diseñoDocumentación del diseño
Documentación del diseño
 
Metodologia prototipado
Metodologia prototipadoMetodologia prototipado
Metodologia prototipado
 
Ingeniería del-software
Ingeniería del-softwareIngeniería del-software
Ingeniería del-software
 
DiseñO Del Software E IngenieríA Del Software
DiseñO Del Software E IngenieríA Del SoftwareDiseñO Del Software E IngenieríA Del Software
DiseñO Del Software E IngenieríA Del Software
 

Similar a Fundamentos básicos para el diseño de software

Diseño de software
Diseño de softwareDiseño de software
Diseño de software
YorYiGuerrero1
 
Presentación Fundamentos Básicos del Diseño de Software Pedro Luces
Presentación Fundamentos Básicos del Diseño de Software Pedro LucesPresentación Fundamentos Básicos del Diseño de Software Pedro Luces
Presentación Fundamentos Básicos del Diseño de Software Pedro Luces
PedroLuces3
 
Fundamentos del diseño de software
Fundamentos del diseño de software Fundamentos del diseño de software
Fundamentos del diseño de software
AlessandreMndez
 
Análisis del Proyecto de Software
Análisis del Proyecto de SoftwareAnálisis del Proyecto de Software
Análisis del Proyecto de Software
Maricela Ramirez
 
Fundamentos de diseño de software
Fundamentos de diseño de softwareFundamentos de diseño de software
Fundamentos de diseño de software
Luis Jesus Curbata
 
Tecnicas.de.ingenieria.de.software
Tecnicas.de.ingenieria.de.softwareTecnicas.de.ingenieria.de.software
Tecnicas.de.ingenieria.de.software
juankexmisiodj
 
Adrian adrianza
Adrian adrianzaAdrian adrianza
Adrian adrianza
Adrian Adrianza
 
Fundamentos basicos del diseño de software
Fundamentos basicos del diseño de softwareFundamentos basicos del diseño de software
Fundamentos basicos del diseño de software
Jesús Molleda
 
Fundamentos básicos para el diseño de software
Fundamentos básicos para el diseño de softwareFundamentos básicos para el diseño de software
Fundamentos básicos para el diseño de software
luis javier perez
 
Unidad 1 Ingenieria de software
Unidad 1 Ingenieria de softwareUnidad 1 Ingenieria de software
Unidad 1 Ingenieria de software
Jahiro Bojorquez
 
Fundamentos para el diseño de un software
Fundamentos para el diseño de un softwareFundamentos para el diseño de un software
Fundamentos para el diseño de un software
ssalzar
 
Fases del ciclo de la vida de desarrollo
Fases del ciclo de la vida de desarrolloFases del ciclo de la vida de desarrollo
Fases del ciclo de la vida de desarrollo
Yip-yip
 
Introduccion a la Ingenieria en Sistemas de Informacion, Examen Dos, Guia & R...
Introduccion a la Ingenieria en Sistemas de Informacion, Examen Dos, Guia & R...Introduccion a la Ingenieria en Sistemas de Informacion, Examen Dos, Guia & R...
Introduccion a la Ingenieria en Sistemas de Informacion, Examen Dos, Guia & R...
Osver Fernandez V
 
Edwin alexande mata escobar
Edwin alexande mata escobarEdwin alexande mata escobar
Edwin alexande mata escobarEdwin Alexander
 
Mariajosehernandezcardenas 233101 9_agosto
Mariajosehernandezcardenas 233101 9_agostoMariajosehernandezcardenas 233101 9_agosto
Mariajosehernandezcardenas 233101 9_agosto
MariaJoshernandezcar
 
Pracicas de Ingenieria de Software
Pracicas de Ingenieria de SoftwarePracicas de Ingenieria de Software
Pracicas de Ingenieria de Softwareeeencalada
 
Modelos de Procesos de Software
Modelos de Procesos de SoftwareModelos de Procesos de Software
Modelos de Procesos de Software
Jiuseppe Flores
 
Etapas del diseño .pdf
Etapas del diseño .pdfEtapas del diseño .pdf
Etapas del diseño .pdf
JonathanSevilla10
 
Manual de introduccion de ingeniería-del-software, metodologias
Manual de introduccion de ingeniería-del-software, metodologiasManual de introduccion de ingeniería-del-software, metodologias
Manual de introduccion de ingeniería-del-software, metodologias
Dora Nelly Rios Vasques
 

Similar a Fundamentos básicos para el diseño de software (20)

Diseño de software
Diseño de softwareDiseño de software
Diseño de software
 
Presentación Fundamentos Básicos del Diseño de Software Pedro Luces
Presentación Fundamentos Básicos del Diseño de Software Pedro LucesPresentación Fundamentos Básicos del Diseño de Software Pedro Luces
Presentación Fundamentos Básicos del Diseño de Software Pedro Luces
 
Fundamentos del diseño de software
Fundamentos del diseño de software Fundamentos del diseño de software
Fundamentos del diseño de software
 
Análisis del Proyecto de Software
Análisis del Proyecto de SoftwareAnálisis del Proyecto de Software
Análisis del Proyecto de Software
 
Fundamentos de diseño de software
Fundamentos de diseño de softwareFundamentos de diseño de software
Fundamentos de diseño de software
 
Tecnicas.de.ingenieria.de.software
Tecnicas.de.ingenieria.de.softwareTecnicas.de.ingenieria.de.software
Tecnicas.de.ingenieria.de.software
 
Adrian adrianza
Adrian adrianzaAdrian adrianza
Adrian adrianza
 
Fundamentos basicos del diseño de software
Fundamentos basicos del diseño de softwareFundamentos basicos del diseño de software
Fundamentos basicos del diseño de software
 
Fundamentos básicos para el diseño de software
Fundamentos básicos para el diseño de softwareFundamentos básicos para el diseño de software
Fundamentos básicos para el diseño de software
 
Unidad 1 Ingenieria de software
Unidad 1 Ingenieria de softwareUnidad 1 Ingenieria de software
Unidad 1 Ingenieria de software
 
Fundamentos para el diseño de un software
Fundamentos para el diseño de un softwareFundamentos para el diseño de un software
Fundamentos para el diseño de un software
 
Fases del ciclo de la vida de desarrollo
Fases del ciclo de la vida de desarrolloFases del ciclo de la vida de desarrollo
Fases del ciclo de la vida de desarrollo
 
Introduccion a la Ingenieria en Sistemas de Informacion, Examen Dos, Guia & R...
Introduccion a la Ingenieria en Sistemas de Informacion, Examen Dos, Guia & R...Introduccion a la Ingenieria en Sistemas de Informacion, Examen Dos, Guia & R...
Introduccion a la Ingenieria en Sistemas de Informacion, Examen Dos, Guia & R...
 
Edwin alexande mata escobar
Edwin alexande mata escobarEdwin alexande mata escobar
Edwin alexande mata escobar
 
Mariajosehernandezcardenas 233101 9_agosto
Mariajosehernandezcardenas 233101 9_agostoMariajosehernandezcardenas 233101 9_agosto
Mariajosehernandezcardenas 233101 9_agosto
 
Pracicas de Ingenieria de Software
Pracicas de Ingenieria de SoftwarePracicas de Ingenieria de Software
Pracicas de Ingenieria de Software
 
Modelos de Procesos de Software
Modelos de Procesos de SoftwareModelos de Procesos de Software
Modelos de Procesos de Software
 
Ingenieria de software
Ingenieria de softwareIngenieria de software
Ingenieria de software
 
Etapas del diseño .pdf
Etapas del diseño .pdfEtapas del diseño .pdf
Etapas del diseño .pdf
 
Manual de introduccion de ingeniería-del-software, metodologias
Manual de introduccion de ingeniería-del-software, metodologiasManual de introduccion de ingeniería-del-software, metodologias
Manual de introduccion de ingeniería-del-software, metodologias
 

Último

A3QUIROZ,MANUEL- Operaciones Basicas- Construccion
A3QUIROZ,MANUEL- Operaciones Basicas- ConstruccionA3QUIROZ,MANUEL- Operaciones Basicas- Construccion
A3QUIROZ,MANUEL- Operaciones Basicas- Construccion
manuelalejandro238
 
Bash Script Programacion en la consola.pptx
Bash Script Programacion en la consola.pptxBash Script Programacion en la consola.pptx
Bash Script Programacion en la consola.pptx
SantosCatalinoOrozco
 
Dialnet-EnsenanzaDeLaModelacionMedianteEcuacionesDiferenci-9304821.pdf
Dialnet-EnsenanzaDeLaModelacionMedianteEcuacionesDiferenci-9304821.pdfDialnet-EnsenanzaDeLaModelacionMedianteEcuacionesDiferenci-9304821.pdf
Dialnet-EnsenanzaDeLaModelacionMedianteEcuacionesDiferenci-9304821.pdf
fernanroq11702
 
libro conabilidad financiera, 5ta edicion.pdf
libro conabilidad financiera, 5ta edicion.pdflibro conabilidad financiera, 5ta edicion.pdf
libro conabilidad financiera, 5ta edicion.pdf
MiriamAquino27
 
Medicina Peruana en el siglo XX y XXI- Julio Gabriel Pereda Sanchez.pptx
Medicina Peruana en el siglo XX y XXI- Julio Gabriel  Pereda Sanchez.pptxMedicina Peruana en el siglo XX y XXI- Julio Gabriel  Pereda Sanchez.pptx
Medicina Peruana en el siglo XX y XXI- Julio Gabriel Pereda Sanchez.pptx
gabrielperedasanchez
 
Desbalanceo Rotatorio cabeceo de flechas y elementos rotativos_GSV.pptx
Desbalanceo Rotatorio cabeceo de flechas y elementos rotativos_GSV.pptxDesbalanceo Rotatorio cabeceo de flechas y elementos rotativos_GSV.pptx
Desbalanceo Rotatorio cabeceo de flechas y elementos rotativos_GSV.pptx
ValGS2
 
Vehiculo para niños con paralisis cerebral
Vehiculo para niños con paralisis cerebralVehiculo para niños con paralisis cerebral
Vehiculo para niños con paralisis cerebral
everchanging2020
 
TR-514 (3) - BIS copia seguridad DOS COLUMNAS 2024 1.6.24 PREFERIDO.wbk.wbk S...
TR-514 (3) - BIS copia seguridad DOS COLUMNAS 2024 1.6.24 PREFERIDO.wbk.wbk S...TR-514 (3) - BIS copia seguridad DOS COLUMNAS 2024 1.6.24 PREFERIDO.wbk.wbk S...
TR-514 (3) - BIS copia seguridad DOS COLUMNAS 2024 1.6.24 PREFERIDO.wbk.wbk S...
FRANCISCOJUSTOSIERRA
 
HITO DE CONTROL N° 011-2024-OCI5344-SCC SAN PATRICIO.pdf
HITO DE CONTROL N° 011-2024-OCI5344-SCC SAN PATRICIO.pdfHITO DE CONTROL N° 011-2024-OCI5344-SCC SAN PATRICIO.pdf
HITO DE CONTROL N° 011-2024-OCI5344-SCC SAN PATRICIO.pdf
GROVER MORENO
 
Análisis de Sensibilidad clases de investigacion de operaciones
Análisis de Sensibilidad clases de investigacion de operacionesAnálisis de Sensibilidad clases de investigacion de operaciones
Análisis de Sensibilidad clases de investigacion de operaciones
SamuelHuapalla
 
1º Caso Practico Lubricacion Rodamiento Motor 10CV
1º Caso Practico Lubricacion Rodamiento Motor 10CV1º Caso Practico Lubricacion Rodamiento Motor 10CV
1º Caso Practico Lubricacion Rodamiento Motor 10CV
CarlosAroeira1
 
Plan de Desarrollo Urbano de la Municipalidad Provincial de Ilo
Plan de Desarrollo Urbano de la Municipalidad Provincial de IloPlan de Desarrollo Urbano de la Municipalidad Provincial de Ilo
Plan de Desarrollo Urbano de la Municipalidad Provincial de Ilo
AlbertoRiveraPrado
 
UNIVERSIDAD NACIONAL ALTIPLANO PUNO - FACULTAD DE INGENIERIA MECANICA ELECTRICA.
UNIVERSIDAD NACIONAL ALTIPLANO PUNO - FACULTAD DE INGENIERIA MECANICA ELECTRICA.UNIVERSIDAD NACIONAL ALTIPLANO PUNO - FACULTAD DE INGENIERIA MECANICA ELECTRICA.
UNIVERSIDAD NACIONAL ALTIPLANO PUNO - FACULTAD DE INGENIERIA MECANICA ELECTRICA.
HaroldKewinCanaza1
 
Hidrostatica_e_Hidrodinamica.pdggggggggf
Hidrostatica_e_Hidrodinamica.pdggggggggfHidrostatica_e_Hidrodinamica.pdggggggggf
Hidrostatica_e_Hidrodinamica.pdggggggggf
JavierAlejosM
 
CODIGO DE SEÑALES Y COLORES NTP399 - ANEXO 17 DS 024
CODIGO DE SEÑALES Y COLORES NTP399 - ANEXO 17 DS 024CODIGO DE SEÑALES Y COLORES NTP399 - ANEXO 17 DS 024
CODIGO DE SEÑALES Y COLORES NTP399 - ANEXO 17 DS 024
JuanChaparro49
 
Una solucion saturada contiene la cantidad máxima de un soluto que se disuel...
Una solucion saturada contiene la cantidad máxima de un  soluto que se disuel...Una solucion saturada contiene la cantidad máxima de un  soluto que se disuel...
Una solucion saturada contiene la cantidad máxima de un soluto que se disuel...
leonpool521
 
Joseph juran aportaciones al control de la calidad
Joseph juran aportaciones al control de la calidadJoseph juran aportaciones al control de la calidad
Joseph juran aportaciones al control de la calidad
KevinCabrera96
 
OPEN_PIT.pdf..------asasasasasasasasasasasas
OPEN_PIT.pdf..------asasasasasasasasasasasasOPEN_PIT.pdf..------asasasasasasasasasasasas
OPEN_PIT.pdf..------asasasasasasasasasasasas
Eder288265
 
Distribución Muestral de Diferencia de Medias
Distribución Muestral de Diferencia de MediasDistribución Muestral de Diferencia de Medias
Distribución Muestral de Diferencia de Medias
arielemelec005
 
Flujograma de gestión de pedidos de usuarios.
Flujograma de gestión de pedidos de usuarios.Flujograma de gestión de pedidos de usuarios.
Flujograma de gestión de pedidos de usuarios.
thatycameron2004
 

Último (20)

A3QUIROZ,MANUEL- Operaciones Basicas- Construccion
A3QUIROZ,MANUEL- Operaciones Basicas- ConstruccionA3QUIROZ,MANUEL- Operaciones Basicas- Construccion
A3QUIROZ,MANUEL- Operaciones Basicas- Construccion
 
Bash Script Programacion en la consola.pptx
Bash Script Programacion en la consola.pptxBash Script Programacion en la consola.pptx
Bash Script Programacion en la consola.pptx
 
Dialnet-EnsenanzaDeLaModelacionMedianteEcuacionesDiferenci-9304821.pdf
Dialnet-EnsenanzaDeLaModelacionMedianteEcuacionesDiferenci-9304821.pdfDialnet-EnsenanzaDeLaModelacionMedianteEcuacionesDiferenci-9304821.pdf
Dialnet-EnsenanzaDeLaModelacionMedianteEcuacionesDiferenci-9304821.pdf
 
libro conabilidad financiera, 5ta edicion.pdf
libro conabilidad financiera, 5ta edicion.pdflibro conabilidad financiera, 5ta edicion.pdf
libro conabilidad financiera, 5ta edicion.pdf
 
Medicina Peruana en el siglo XX y XXI- Julio Gabriel Pereda Sanchez.pptx
Medicina Peruana en el siglo XX y XXI- Julio Gabriel  Pereda Sanchez.pptxMedicina Peruana en el siglo XX y XXI- Julio Gabriel  Pereda Sanchez.pptx
Medicina Peruana en el siglo XX y XXI- Julio Gabriel Pereda Sanchez.pptx
 
Desbalanceo Rotatorio cabeceo de flechas y elementos rotativos_GSV.pptx
Desbalanceo Rotatorio cabeceo de flechas y elementos rotativos_GSV.pptxDesbalanceo Rotatorio cabeceo de flechas y elementos rotativos_GSV.pptx
Desbalanceo Rotatorio cabeceo de flechas y elementos rotativos_GSV.pptx
 
Vehiculo para niños con paralisis cerebral
Vehiculo para niños con paralisis cerebralVehiculo para niños con paralisis cerebral
Vehiculo para niños con paralisis cerebral
 
TR-514 (3) - BIS copia seguridad DOS COLUMNAS 2024 1.6.24 PREFERIDO.wbk.wbk S...
TR-514 (3) - BIS copia seguridad DOS COLUMNAS 2024 1.6.24 PREFERIDO.wbk.wbk S...TR-514 (3) - BIS copia seguridad DOS COLUMNAS 2024 1.6.24 PREFERIDO.wbk.wbk S...
TR-514 (3) - BIS copia seguridad DOS COLUMNAS 2024 1.6.24 PREFERIDO.wbk.wbk S...
 
HITO DE CONTROL N° 011-2024-OCI5344-SCC SAN PATRICIO.pdf
HITO DE CONTROL N° 011-2024-OCI5344-SCC SAN PATRICIO.pdfHITO DE CONTROL N° 011-2024-OCI5344-SCC SAN PATRICIO.pdf
HITO DE CONTROL N° 011-2024-OCI5344-SCC SAN PATRICIO.pdf
 
Análisis de Sensibilidad clases de investigacion de operaciones
Análisis de Sensibilidad clases de investigacion de operacionesAnálisis de Sensibilidad clases de investigacion de operaciones
Análisis de Sensibilidad clases de investigacion de operaciones
 
1º Caso Practico Lubricacion Rodamiento Motor 10CV
1º Caso Practico Lubricacion Rodamiento Motor 10CV1º Caso Practico Lubricacion Rodamiento Motor 10CV
1º Caso Practico Lubricacion Rodamiento Motor 10CV
 
Plan de Desarrollo Urbano de la Municipalidad Provincial de Ilo
Plan de Desarrollo Urbano de la Municipalidad Provincial de IloPlan de Desarrollo Urbano de la Municipalidad Provincial de Ilo
Plan de Desarrollo Urbano de la Municipalidad Provincial de Ilo
 
UNIVERSIDAD NACIONAL ALTIPLANO PUNO - FACULTAD DE INGENIERIA MECANICA ELECTRICA.
UNIVERSIDAD NACIONAL ALTIPLANO PUNO - FACULTAD DE INGENIERIA MECANICA ELECTRICA.UNIVERSIDAD NACIONAL ALTIPLANO PUNO - FACULTAD DE INGENIERIA MECANICA ELECTRICA.
UNIVERSIDAD NACIONAL ALTIPLANO PUNO - FACULTAD DE INGENIERIA MECANICA ELECTRICA.
 
Hidrostatica_e_Hidrodinamica.pdggggggggf
Hidrostatica_e_Hidrodinamica.pdggggggggfHidrostatica_e_Hidrodinamica.pdggggggggf
Hidrostatica_e_Hidrodinamica.pdggggggggf
 
CODIGO DE SEÑALES Y COLORES NTP399 - ANEXO 17 DS 024
CODIGO DE SEÑALES Y COLORES NTP399 - ANEXO 17 DS 024CODIGO DE SEÑALES Y COLORES NTP399 - ANEXO 17 DS 024
CODIGO DE SEÑALES Y COLORES NTP399 - ANEXO 17 DS 024
 
Una solucion saturada contiene la cantidad máxima de un soluto que se disuel...
Una solucion saturada contiene la cantidad máxima de un  soluto que se disuel...Una solucion saturada contiene la cantidad máxima de un  soluto que se disuel...
Una solucion saturada contiene la cantidad máxima de un soluto que se disuel...
 
Joseph juran aportaciones al control de la calidad
Joseph juran aportaciones al control de la calidadJoseph juran aportaciones al control de la calidad
Joseph juran aportaciones al control de la calidad
 
OPEN_PIT.pdf..------asasasasasasasasasasasas
OPEN_PIT.pdf..------asasasasasasasasasasasasOPEN_PIT.pdf..------asasasasasasasasasasasas
OPEN_PIT.pdf..------asasasasasasasasasasasas
 
Distribución Muestral de Diferencia de Medias
Distribución Muestral de Diferencia de MediasDistribución Muestral de Diferencia de Medias
Distribución Muestral de Diferencia de Medias
 
Flujograma de gestión de pedidos de usuarios.
Flujograma de gestión de pedidos de usuarios.Flujograma de gestión de pedidos de usuarios.
Flujograma de gestión de pedidos de usuarios.
 

Fundamentos básicos para el diseño de software

  • 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).
  • 10. Michell Villegas Extensión Mérida MUCHAS GRACIAS Santiago Mariño