SlideShare una empresa de Scribd logo
1 de 19
Descargar para leer sin conexión
República Bolivariana de Venezuela
Ministerio del poder popular para la educación
Instituto universitario politécnico “Santiago Mariño”
Extensión Cabimas
“Inteligencia artificial
Integrante
Jesús Molleda
C.I:29.519.469
Carrera: ING.SISTEMA “47
28-06- 2020
INTRODUCCIÓN
En el diseño de software, se lleva a cabo, en diferentes pasos para
obtener un producto que cumpla con las especificaciones deseadas,
ajustándose a los parámetros establecidos por los medidas de calidad y
garantía, además de establecer sus ciclos de mantenimiento y
afinaciones reglamentarias para asegurar su perfecto funcionamiento.
El objetivo de los diseñadores es producir un modelo o representación
de una entidad que será construida después. En cualquier proceso de
diseño existen dos fases importantes: la diversificación y la
convergencia. La diversificación es la adquisición de un repertorio de
alternativas, de un material primitivo de diseño: componentes,
soluciones de componentes y conocimiento, todo dentro de catálogos,
de libros de texto y en la mente.
En que consiste el diseño de Software
Para poder explicar los fundamentos básicos, primero hay que saber
que es el diseño del Software
El diseño de software es el proceso por el que un agente crea
una especificación de un artefacto de software, pensado para
cumplir unos objetivos, utilizando un conjunto de componentes
primitivos y sujeto a restricciones. El diseño de software se
puede referir a "toda la actividad en conceptualizar, enmarcar,
implementar, poner en funcionamiento y, finalmente, modificar
sistemas complejos" o "la actividad que sigue a la especificación
de requisitos y precede a la programación, como en un proceso
de ingeniería de software estilizado.
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.
Importancia del diseño de Software
Una fase muy importante en el ciclo de vida de un proyecto es el Diseño del Software. Se trata de
una etapa fundamental y en muchas ocasiones la más importante en el desarrollo de Software. Es
el momento en que los profesionales tienen que aportar sus conocimientos, experiencia y
creatividad para llegar a una solución que cumpla con los requerimientos funcionales y no
funcionales establecidos en la fase de la toma de requisitos.
El diseño del Software tiene un impacto directo sobre la capacidad del sistema para cumplir o no
el total de requerimientos establecidos. Un error de diseño en esta fase puede acarrear problemas
en todo el proyecto y provocar que este caiga en una espiral de continuos cambios y de rehacer
constantemente el trabajo.
Fundamentos basicos Para el diseño de Software
Una vez que se han establecido los requisitos del software, el diseño es la primera de tres actividades técnicas:
diseño, codificación y prueba. Cada actividad transforma la información de forma que al final se obtiene un
software validado. El diseño es técnicamente la parte central de la ingeniería del software. Durante el diseño se
desarrollan, revisan y se documentan los refinamientos progresivos de las estructuras de datos, de la estructura
del programa y de los detalles procedimentales. El diseño da como resultado
representaciones cuya calidad puede ser evaluada.
Los fundamentos del diseño ayudan al
desarrollador de software a responder a estas
preguntas:
• ¿Qué criterios puedo utilizar para dividir
el software en componentes individuales?
• ¿Cómo se separan los detalles de una
función o de la estructura de los datos de
la representación conceptual del software?
• ¿Existen criterios uniformes que definan
la calidad técnica de un
• diseño de software?
Fundamentos basicos para el diseño de Software
Los Fundamentos básicos del diseño de Software se dividen en:
ABSTRACCIÓN
REFINAMIENTO
MODULARIDAD
ARQUITECTURA DEL
SOFTWARE
JERARQUÍA DE
CONTROL
ESTRUCTURA DE
DATOS
PROCEDIMIENTOS
DEL SOFTWARE
OCULTAMIENTO DE
INFORMACIÓN
 ABSTRACCIÓN
Fundamentos basicos para el diseño de Software
Cuando se considera una solución modular para cualquier problema, pueden formularse varios niveles de abstracción.
En el nivel superior de abstracción se establece una solución en términos generales, en lenguaje natural. En los niveles
inferiores de abstracción se utiliza una orientación más procedimental. Por último, en el nivel más bajo de abstracción, se
establece una solución, de forma que pueda implementarse directamente.
Cada paso de los procesos de la ingeniería del software es un refinamiento del nivel de abstracción de la solución
software. Conforme nos movemos desde los preliminares hacia el diseño detallado, se reduce el nivel de abstracción.
Finalmente, el nivel más bajo de abstracción se alcanza cuando se genera el código fuente.
Conforme nos movemos por los diferentes niveles de abstracción,
trabajamos para crear abstracciones de datos y de procedimientos.
• Una abstracción de datos es un conjunto de datos que describen un
objeto, como puede ser el DNI de una persona, que está compuesta
por conjunto de partes de información, pero que nos podemos
referir a todos los datos mencionando el nombre de la abstracción
de datos.
• Una abstracción procedimental es una determinada secuencia de
instrucciones que tienen una función limitada y específica, como
puede ser “mover objeto”, que supone la secuencia de pasos “abrir
pinza”, “mover hasta posición de destino 1”, “cerrar pinza”, “mover
hasta posición 2”, “abrir pinza”, “mover hasta posición origen”,
“cerrar pinza”.
 REFINAMIENTO.
El refinamiento sucesivo es una primera estrategia de diseño
descendente propuesta por Niklaus Wirth. La arquitectura de un
programa se desarrolla en niveles sucesivos de refinamiento de los
detalles procedimentales. Se desarrolla una jerarquía descomponiendo
una función de forma sucesiva hasta que se llega a las sentencias del
lenguaje de programación.
Comenzamos con una declaración de la función
(o una descripción de la información) definida a
un nivel superior de abstracción. Es decir, la
declaración describe la función o la información
conceptualmente, pero no proporciona
información sobre el funcionamiento interno de
la función o sobre la estructura interna de la
información, sino que se va a realizando
sucesivamente, dando
cada vez más detalles.
Fundamentos basicos para el diseño de Software
 MODULARIDAD.
El software se divide en componentes con nombres y ubicaciones determinados, que se denominan módulos y que se
integran para satisfacer los requisitos del proveedor.
El software monolítico (es decir, un programa grande compuesto de un solo módulo) no puede ser estudiado fácilmente por
un lector, ya que el número de caminos de control, el número de variables y la complejidad global harían el código
prácticamente indescifrable.
Mátemáticamente, esto se explica de esta forma: Sea C(x)
una función que defina la complejidad de un problema x, y
E(x) una función que defina el esfuerzo de desarrollo de un
problema x.
Para dos problemas p1 y p2, si
C(p1) > C(p2)
se deduce que
E(p1) > E(p2)
Además, se cumple que
C(p1 + p2) > C(p1) + C(p2)
y que
E(p1 + p2) > E(p1) + E(p2)
Esto nos lleva a la conclusión divide y vencerás, por tanto la
modularidad del software facilita el desarrollo del mismo,
pero hasta un cierto límite, porque si llegáramos a dividir el
problema en infinitos módulos, los módulos tendrían una
complejidad y un esfuerzo mucho menor, pero crecería el
coste asociado a la creación de interfaces entre los módulos,
Fundamentos basicos para el diseño de Software
 ARQUITECTURA DEL SOFTWARE.
La arquitectura del software se refiere a dos características
importantes del software:
• La estructura jerárquica de los módulos del software
• La estructura de los datos
La arquitectura del software se obtiene mediante un proceso de partición, que relaciona los problemas del mundo real
(definidos en el análisis de requerimientos) con las soluciones software para resolver los problemas software.
Fundamentos basicos para el diseño de Software
 JERARQUÍA DE CONTROL.
se le conoce como estructura del programa, y
representa la organización jerárquica de los
módulos de un programa e implica una jerarquía
de control. La representación de jerarquía se suele
representar con diagramas de árbol, aunque
también se pueden utilizar otros tipos de
notaciones.
• Profundidad: Número de niveles de control
• Anchura: Amplitud global del control
• Grado de salida: Número de módulos que controla un
módulo
• Grado de entrada: Número de módulos que controlan a
un módulo
• Visibilidad: Conjunto de componentes del programa
que pueden ser invocados por un módulo (Herencia en
entornos de POO). Todos los objetos serían visibles para
el módulo
• Conectividad: Conjunto de componentes a los que se
invoca directamente o se utilizan sus datos. (La ejecución
de un módulo puede suponer la ejecución de otro
módulo)
Fundamentos basicos para el diseño de Software
 ESTRUCTURA DE DATOS.
La estructura de datos es una representación de la lógica que existe entre
los elementos individuales de información. Debido a que la estructura
de la información afectará de forma determinante al diseño
procedimiental, la estructura de datos es tan importante como la
estructura del programa en la representación de la arquitectura del
software.
La estructura de datos dicta la organización, los métodos de acceso, el
grado de asociatividad y las alternativas para el tratamiento de la
información. Las estructuras de datos clásicas son los elementos
escalares, los arrays, las listas y los árboles.
Fundamentos basicos para el diseño de Software
 PROCEDIMIENTOS DEL SOFTWARE.
La estructura del programa define la jerarquía de control,
independientemente de las decisiones y secuencias de procesamiento. El
procedimiento del software se centra en los detalles de procesamiento de
cada módulo individual.
El procedimiento debe proporcionar una
especificación precisa del procesamiento,
incluyendo la secuencia de sucesos, los puntos
concretos de decisiones, la repetición de
operaciones e incluso la
organización/estructura de los datos.
Como existe una relación entre la estructura y
el procedimiento, ya que el procesamiento de
un módulo puede suponer la llamada a otros
módulos. A esto se le conoce como
representación procedimental del software por
capas.
Fundamentos basicos para el diseño de Software
 OCULTAMIENTO DE INFORMACIÓN.
El concepto de modularidad nos lleva a esta pregunta: ¿cómo descomponer una solución de software
en el mejor conjunto de módulos? El principio de ocultamiento de la información sugiere que los
módulos deben especificarse de forma que la información (procedimientos y datos) contenida dentro
de un módulo sea inaccesible a otros módulos que no necesiten tal información.
Por tanto se trata de definir una serie de módulos independientes que se comuniquen sólo a través
de la información necesaria para realizar la función de software.
El uso de ocultamiento de información en el diseño facilitará las modificaciones, prueba y
mantenimiento del software, ya que como la mayoría de los datos y de los procedimientos están
ocultos a otras partes del software, será menos probable que los errores que se introduzcan durante
la modificación se propaguen a otros módulos del software.
Fundamentos basicos para el diseño de Software
Diseño Oriebtado a Objetos
El diseño orientado a objeto (DOO) Es una Fase de la Metodología Orientada a objetos para el
desarrollo de Software.
Su Uso induce a desarrolladores y programadores a pensar en términos de Objetos, en Vez de
procedimientos, cuando planifican el código.
Un objeto agrupa datos encapsulados y procedimientos para representar una entidad. La “interfaz del
Objeto”, esto es la forma de interactuar con el objeto, también se definen en esta etapa
Un programa orientado a objetos se caracteriza por la interacción de estos objetos.
GARANTÍAS DE CALIDAD DE SOFTWARE
Se define como concordancia con los requisitos
funcionales y de rendimiento explícitamente
establecidos, con los estándares de desarrollo
explícitamente documentados, y con las características
implícitas que se espera de todo software desarrollado
profesionalmente.
La garantía de calidad de software es una actividad de protección que se aplica a
lo largo de todo el proceso del software. La SQA engloba:
1. Un enfoque de gestión de calidad.
2. Tecnología de ingeniería del software efectiva (métodos y herramientas).
3. Revisiones técnicas formales que se aplican durante el proceso del software.
4. Una estrategia de prueba multi-‐escalada.
5. El control de la documentación del software y de los cambios realizados.
6. Un procedimiento que asegure un ajuste a los estándares de desarrollo
delsoftware (cuando sea posible).
7. Mecanismos de medición y de generación de informes.
TÉCNICAS DE PRUEBAS DE SOFTWARE
1) Prueba Unitaria: La prueba unitaria se aplica
en el elemento más pequeño de un sistema, cada
componente es testeado para asegurar que
funciona correctamente. Normalmente desarrolla
una única función cohesiva. La función de la
prueba unitaria es de analizar cada pequeña
parte y testear que funciona correctamente.
2) Prueba de Integración: La prueba de
integración es una extensión lógica de las
pruebas unitarias. Dos unidades que ya han
sido testeadas y combinadas en un
componente y su interface son testeadas
entre ellas.
3) Las pruebas funcionales: se basan en
asegurarse de que todas las características
funcionen de cabo a rabo. Por ejemplo, testear
que las características de un usuario se actualicen
cuando el usuario clicka en el botón de guardar.
Las pruebas funcionales testean una pequeña
parte de la funcionalidad del sistema entera. Se
aplica para verificar que las aplicaciones y
funcionalidades del software actúan
correctamente acorde a un diseño específico. Las
pruebas funcionales son elementos cruciales
para asegurar la calidad del producto software y
confirmar que actúa acorde a sus funciones tal
y como el usuario espera.
4) Pruebas de rendimiento: Y la última es la
prueba de rendimiento. En el desarrollo
desoftware, la prueba de rendimiento es una
práctica de test que determina la actuación
de un sistema en términos de respuesta y
estabilidad en una carga de trabajo en
particular. También puede servir para
investigar, medir, validar o verificar otros
atributos de calidad del sistema, como la
escalabilidad, seguridad y uso de recursos.
Las pruebas de rendimiento construye unos
estándares de actuación en la
implementación, diseño y arquitectura de un
sistema.
MANTENIMIENTO DE SOFTWARE
El mantenimiento preventivo de software es el proceso por el
cual se mejora y optimiza el software que se ha instalado, este
mantenimiento se realiza para la prevención de posibles
problemas que puedan llegar a surgir a medida que se utiliza el
computador.
La principal razón por la que se realiza este mantenimiento, en
estos días es el análisis en busca de virus, ya que estos; los “Virus”
son programas nocivos para el computador, ya que
causan una inestabilidad en el sistema, bajas en el rendimiento del
computador, pérdida de productividad, cortes en los sistemas y
probables errores en el mismo, tales que no se pueden corregir de
manera simple, sino mediante de una formateada
CONCLUSIÓN
El diseño de Software, suelen tomarse en cuenta muchos factoreres, tales como
sus objetivos funcionales, los parámetros a elegir y los recursos con los que se
deben interactuar dentro del entorno de desarrollo. También nos permitirá
tener una visión general antes de lanzarse a la codificación y construcción.
El diseño del Software tiene un impacto directo sobre la capacidad del sistema
para cumplir o no el total de requerimientos establecidos. Un error de diseño en
esta fase puede acarrear problemas en todo el proyecto y provocar que este
caiga en una espiral de continuos cambios y de rehacer constantemente el
trabajo. A raíz de esto es que se deben realizar diversas pruebas para
comprobar si el Software desarrollado cumple con los estándares de calidad y
garantía, además de establecer una conclusión mas firme y saber si cumplirá
con su objetivo de manera optima o necesitaría mas complementos y
desarrollo.
Dentro de las diversas pueba de software, se aprecia que son utilizadas, de
manera que los resultados sean contundentes y claros, ya sea de comprobar
datos, hasta realizar una prueba de estrés a todo en conjunto para saber si se
podrá con la tension exigida dentro del campo real donde sera aplicado como
solucion

Más contenido relacionado

La actualidad más candente

Fundamentos del diseño y Garantías de Calidad del Software
Fundamentos del diseño y Garantías de Calidad del SoftwareFundamentos del diseño y Garantías de Calidad del Software
Fundamentos del diseño y Garantías de Calidad del SoftwareRichard J. Nuñez
 
Fundamentos del diseno software
Fundamentos del diseno softwareFundamentos del diseno software
Fundamentos del diseno softwareclaudiocaizales
 
presentacion_edisleynissilva
presentacion_edisleynissilvapresentacion_edisleynissilva
presentacion_edisleynissilvaeddysilva18
 
FUNDAMENTO DEL DISEÑO DE SOFTWARE
FUNDAMENTO DEL DISEÑO DE SOFTWAREFUNDAMENTO DEL DISEÑO DE SOFTWARE
FUNDAMENTO DEL DISEÑO DE SOFTWAREEstebanOrtegon
 
Desarrollo de Software Orienta a Objetos
Desarrollo de Software Orienta a ObjetosDesarrollo de Software Orienta a Objetos
Desarrollo de Software Orienta a ObjetosDat@center S.A
 
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
 
Fundamentos de desarrollo de sistemas
Fundamentos de desarrollo de sistemasFundamentos de desarrollo de sistemas
Fundamentos de desarrollo de sistemasflaco_mendez
 
4. Diseño e Implementación de Software
4. Diseño e Implementación de Software4. Diseño e Implementación de Software
4. Diseño e Implementación de SoftwareMario A Moreno Rocha
 
Diseno Software
Diseno SoftwareDiseno Software
Diseno Softwarealfmuny
 
Atributos de calidad en el desarrollo de software
Atributos de calidad en el desarrollo de software Atributos de calidad en el desarrollo de software
Atributos de calidad en el desarrollo de software Joan Manuel Zabala
 
Fundamento del Diseño de Software
Fundamento del Diseño de SoftwareFundamento del Diseño de Software
Fundamento del Diseño de SoftwareGlamisleidys Chourio
 
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
 
¿Qué es la arquitectura de software?
¿Qué es la arquitectura de software?¿Qué es la arquitectura de software?
¿Qué es la arquitectura de software?Israel Rey
 
Ingeniería de software II - Parte 2
Ingeniería de software II - Parte 2Ingeniería de software II - Parte 2
Ingeniería de software II - Parte 2Marta Silvia Tabares
 
Clase no. 1 unidad no. iii introduccion al analisis y diseño estructurado d...
Clase no. 1 unidad no. iii  introduccion al analisis y diseño estructurado  d...Clase no. 1 unidad no. iii  introduccion al analisis y diseño estructurado  d...
Clase no. 1 unidad no. iii introduccion al analisis y diseño estructurado d...negroues
 

La actualidad más candente (20)

Adrian adrianza
Adrian adrianzaAdrian adrianza
Adrian adrianza
 
Fundamentos del diseño y Garantías de Calidad del Software
Fundamentos del diseño y Garantías de Calidad del SoftwareFundamentos del diseño y Garantías de Calidad del Software
Fundamentos del diseño y Garantías de Calidad del Software
 
Unidad 4
Unidad 4Unidad 4
Unidad 4
 
Fundamentos del diseno software
Fundamentos del diseno softwareFundamentos del diseno software
Fundamentos del diseno software
 
presentacion_edisleynissilva
presentacion_edisleynissilvapresentacion_edisleynissilva
presentacion_edisleynissilva
 
FUNDAMENTO DEL DISEÑO DE SOFTWARE
FUNDAMENTO DEL DISEÑO DE SOFTWAREFUNDAMENTO DEL DISEÑO DE SOFTWARE
FUNDAMENTO DEL DISEÑO DE SOFTWARE
 
Proceso de diseño
Proceso de diseñoProceso de diseño
Proceso de diseño
 
Desarrollo de Software Orienta a Objetos
Desarrollo de Software Orienta a ObjetosDesarrollo de Software Orienta a Objetos
Desarrollo de Software Orienta a Objetos
 
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
 
Fundamentos de desarrollo de sistemas
Fundamentos de desarrollo de sistemasFundamentos de desarrollo de sistemas
Fundamentos de desarrollo de sistemas
 
4. Diseño e Implementación de Software
4. Diseño e Implementación de Software4. Diseño e Implementación de Software
4. Diseño e Implementación de Software
 
Diseno Software
Diseno SoftwareDiseno Software
Diseno Software
 
Atributos de calidad en el desarrollo de software
Atributos de calidad en el desarrollo de software Atributos de calidad en el desarrollo de software
Atributos de calidad en el desarrollo de software
 
Fundamento del Diseño de Software
Fundamento del Diseño de SoftwareFundamento del Diseño de Software
Fundamento del Diseño de Software
 
Fundamentos del diseño de software
Fundamentos del diseño de software Fundamentos del diseño de software
Fundamentos del diseño de software
 
¿Qué es la arquitectura de software?
¿Qué es la arquitectura de software?¿Qué es la arquitectura de software?
¿Qué es la arquitectura de software?
 
Ingeniería de software II - Parte 2
Ingeniería de software II - Parte 2Ingeniería de software II - Parte 2
Ingeniería de software II - Parte 2
 
Ingenieria en Software
Ingenieria en SoftwareIngenieria en Software
Ingenieria en Software
 
Clase no. 1 unidad no. iii introduccion al analisis y diseño estructurado d...
Clase no. 1 unidad no. iii  introduccion al analisis y diseño estructurado  d...Clase no. 1 unidad no. iii  introduccion al analisis y diseño estructurado  d...
Clase no. 1 unidad no. iii introduccion al analisis y diseño estructurado d...
 
Guillermo cárdenas
Guillermo cárdenasGuillermo cárdenas
Guillermo cárdenas
 

Similar a Fundamentos basicos 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 SoftwareMaricela Ramirez
 
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 LucesPedroLuces3
 
Tecnicas.de.ingenieria.de.software
Tecnicas.de.ingenieria.de.softwareTecnicas.de.ingenieria.de.software
Tecnicas.de.ingenieria.de.softwarejuankexmisiodj
 
Diseño estructurado
Diseño estructuradoDiseño estructurado
Diseño estructuradoDascorp
 
Diseño del software
Diseño del softwareDiseño del software
Diseño del softwaregenesisptc_
 
Edwin alexande mata escobar
Edwin alexande mata escobarEdwin alexande mata escobar
Edwin alexande mata escobarEdwin Alexander
 
Vinculación diseño-ódigo
Vinculación diseño-ódigoVinculación diseño-ódigo
Vinculación diseño-ódigoJu Pe
 
Vinculación diseño-código
Vinculación diseño-códigoVinculación diseño-código
Vinculación diseño-códigoJu Pe
 
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 softwaressalzar
 
Fundamentos, Garantías y Técnicas en el diseño de software
Fundamentos, Garantías y Técnicas en el diseño de softwareFundamentos, Garantías y Técnicas en el diseño de software
Fundamentos, Garantías y Técnicas en el diseño de softwareGerardo Valera
 
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 softwaremichellvillegas3
 
Ra semana 13 2
Ra semana 13 2Ra semana 13 2
Ra semana 13 2victdiazm
 
Apuntes ing-sof-unidad-4-1-2015
Apuntes ing-sof-unidad-4-1-2015Apuntes ing-sof-unidad-4-1-2015
Apuntes ing-sof-unidad-4-1-2015Lucero Mtz
 
Riverodanna_presentacion
Riverodanna_presentacionRiverodanna_presentacion
Riverodanna_presentacionDannaRivero
 

Similar a Fundamentos basicos del diseño de software (20)

Análisis del Proyecto de Software
Análisis del Proyecto de SoftwareAnálisis del Proyecto de Software
Análisis del Proyecto 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
 
Tecnicas.de.ingenieria.de.software
Tecnicas.de.ingenieria.de.softwareTecnicas.de.ingenieria.de.software
Tecnicas.de.ingenieria.de.software
 
Diseño estructurado
Diseño estructuradoDiseño estructurado
Diseño estructurado
 
Software exposicion
Software exposicionSoftware exposicion
Software exposicion
 
Diseño del software
Diseño del softwareDiseño del software
Diseño del software
 
Juan velasquez
Juan velasquezJuan velasquez
Juan velasquez
 
Edwin alexande mata escobar
Edwin alexande mata escobarEdwin alexande mata escobar
Edwin alexande mata escobar
 
Vinculación diseño-ódigo
Vinculación diseño-ódigoVinculación diseño-ódigo
Vinculación diseño-ódigo
 
Vinculación diseño-código
Vinculación diseño-códigoVinculación diseño-código
Vinculación diseño-código
 
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
 
Presentacion
PresentacionPresentacion
Presentacion
 
Fundamentos, Garantías y Técnicas en el diseño de software
Fundamentos, Garantías y Técnicas en el diseño de softwareFundamentos, Garantías y Técnicas en el diseño de software
Fundamentos, Garantías y Técnicas en el 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
 
Inf 162
Inf 162Inf 162
Inf 162
 
Ra semana 13 2
Ra semana 13 2Ra semana 13 2
Ra semana 13 2
 
ingenieriadesoftware1
ingenieriadesoftware1ingenieriadesoftware1
ingenieriadesoftware1
 
Apuntes ing-sof-unidad-4-1-2015
Apuntes ing-sof-unidad-4-1-2015Apuntes ing-sof-unidad-4-1-2015
Apuntes ing-sof-unidad-4-1-2015
 
Capitulo2
Capitulo2Capitulo2
Capitulo2
 
Riverodanna_presentacion
Riverodanna_presentacionRiverodanna_presentacion
Riverodanna_presentacion
 

Último

International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofJuancarlosHuertasNio1
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...AlanCedillo9
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...JaquelineJuarez15
 

Último (20)

International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sof
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
 

Fundamentos basicos del diseño de software

  • 1. República Bolivariana de Venezuela Ministerio del poder popular para la educación Instituto universitario politécnico “Santiago Mariño” Extensión Cabimas “Inteligencia artificial Integrante Jesús Molleda C.I:29.519.469 Carrera: ING.SISTEMA “47 28-06- 2020
  • 2. INTRODUCCIÓN En el diseño de software, se lleva a cabo, en diferentes pasos para obtener un producto que cumpla con las especificaciones deseadas, ajustándose a los parámetros establecidos por los medidas de calidad y garantía, además de establecer sus ciclos de mantenimiento y afinaciones reglamentarias para asegurar su perfecto funcionamiento. El objetivo de los diseñadores es producir un modelo o representación de una entidad que será construida después. En cualquier proceso de diseño existen dos fases importantes: la diversificación y la convergencia. La diversificación es la adquisición de un repertorio de alternativas, de un material primitivo de diseño: componentes, soluciones de componentes y conocimiento, todo dentro de catálogos, de libros de texto y en la mente.
  • 3. En que consiste el diseño de Software Para poder explicar los fundamentos básicos, primero hay que saber que es el diseño del Software El diseño de software es el proceso por el que un agente crea una especificación de un artefacto de software, pensado para cumplir unos objetivos, utilizando un conjunto de componentes primitivos y sujeto a restricciones. El diseño de software se puede referir a "toda la actividad en conceptualizar, enmarcar, implementar, poner en funcionamiento y, finalmente, modificar sistemas complejos" o "la actividad que sigue a la especificación de requisitos y precede a la programación, como en un proceso de ingeniería de software estilizado. 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.
  • 4. Importancia del diseño de Software Una fase muy importante en el ciclo de vida de un proyecto es el Diseño del Software. Se trata de una etapa fundamental y en muchas ocasiones la más importante en el desarrollo de Software. Es el momento en que los profesionales tienen que aportar sus conocimientos, experiencia y creatividad para llegar a una solución que cumpla con los requerimientos funcionales y no funcionales establecidos en la fase de la toma de requisitos. El diseño del Software tiene un impacto directo sobre la capacidad del sistema para cumplir o no el total de requerimientos establecidos. Un error de diseño en esta fase puede acarrear problemas en todo el proyecto y provocar que este caiga en una espiral de continuos cambios y de rehacer constantemente el trabajo.
  • 5. Fundamentos basicos Para el diseño de Software Una vez que se han establecido los requisitos del software, el diseño es la primera de tres actividades técnicas: diseño, codificación y prueba. Cada actividad transforma la información de forma que al final se obtiene un software validado. El diseño es técnicamente la parte central de la ingeniería del software. Durante el diseño se desarrollan, revisan y se documentan los refinamientos progresivos de las estructuras de datos, de la estructura del programa y de los detalles procedimentales. El diseño da como resultado representaciones cuya calidad puede ser evaluada. Los fundamentos del diseño ayudan al desarrollador de software a responder a estas preguntas: • ¿Qué criterios puedo utilizar para dividir el software en componentes individuales? • ¿Cómo se separan los detalles de una función o de la estructura de los datos de la representación conceptual del software? • ¿Existen criterios uniformes que definan la calidad técnica de un • diseño de software?
  • 6. Fundamentos basicos para el diseño de Software Los Fundamentos básicos del diseño de Software se dividen en: ABSTRACCIÓN REFINAMIENTO MODULARIDAD ARQUITECTURA DEL SOFTWARE JERARQUÍA DE CONTROL ESTRUCTURA DE DATOS PROCEDIMIENTOS DEL SOFTWARE OCULTAMIENTO DE INFORMACIÓN
  • 7.  ABSTRACCIÓN Fundamentos basicos para el diseño de Software Cuando se considera una solución modular para cualquier problema, pueden formularse varios niveles de abstracción. En el nivel superior de abstracción se establece una solución en términos generales, en lenguaje natural. En los niveles inferiores de abstracción se utiliza una orientación más procedimental. Por último, en el nivel más bajo de abstracción, se establece una solución, de forma que pueda implementarse directamente. Cada paso de los procesos de la ingeniería del software es un refinamiento del nivel de abstracción de la solución software. Conforme nos movemos desde los preliminares hacia el diseño detallado, se reduce el nivel de abstracción. Finalmente, el nivel más bajo de abstracción se alcanza cuando se genera el código fuente. Conforme nos movemos por los diferentes niveles de abstracción, trabajamos para crear abstracciones de datos y de procedimientos. • Una abstracción de datos es un conjunto de datos que describen un objeto, como puede ser el DNI de una persona, que está compuesta por conjunto de partes de información, pero que nos podemos referir a todos los datos mencionando el nombre de la abstracción de datos. • Una abstracción procedimental es una determinada secuencia de instrucciones que tienen una función limitada y específica, como puede ser “mover objeto”, que supone la secuencia de pasos “abrir pinza”, “mover hasta posición de destino 1”, “cerrar pinza”, “mover hasta posición 2”, “abrir pinza”, “mover hasta posición origen”, “cerrar pinza”.
  • 8.  REFINAMIENTO. El refinamiento sucesivo es una primera estrategia de diseño descendente propuesta por Niklaus Wirth. La arquitectura de un programa se desarrolla en niveles sucesivos de refinamiento de los detalles procedimentales. Se desarrolla una jerarquía descomponiendo una función de forma sucesiva hasta que se llega a las sentencias del lenguaje de programación. Comenzamos con una declaración de la función (o una descripción de la información) definida a un nivel superior de abstracción. Es decir, la declaración describe la función o la información conceptualmente, pero no proporciona información sobre el funcionamiento interno de la función o sobre la estructura interna de la información, sino que se va a realizando sucesivamente, dando cada vez más detalles. Fundamentos basicos para el diseño de Software
  • 9.  MODULARIDAD. El software se divide en componentes con nombres y ubicaciones determinados, que se denominan módulos y que se integran para satisfacer los requisitos del proveedor. El software monolítico (es decir, un programa grande compuesto de un solo módulo) no puede ser estudiado fácilmente por un lector, ya que el número de caminos de control, el número de variables y la complejidad global harían el código prácticamente indescifrable. Mátemáticamente, esto se explica de esta forma: Sea C(x) una función que defina la complejidad de un problema x, y E(x) una función que defina el esfuerzo de desarrollo de un problema x. Para dos problemas p1 y p2, si C(p1) > C(p2) se deduce que E(p1) > E(p2) Además, se cumple que C(p1 + p2) > C(p1) + C(p2) y que E(p1 + p2) > E(p1) + E(p2) Esto nos lleva a la conclusión divide y vencerás, por tanto la modularidad del software facilita el desarrollo del mismo, pero hasta un cierto límite, porque si llegáramos a dividir el problema en infinitos módulos, los módulos tendrían una complejidad y un esfuerzo mucho menor, pero crecería el coste asociado a la creación de interfaces entre los módulos, Fundamentos basicos para el diseño de Software
  • 10.  ARQUITECTURA DEL SOFTWARE. La arquitectura del software se refiere a dos características importantes del software: • La estructura jerárquica de los módulos del software • La estructura de los datos La arquitectura del software se obtiene mediante un proceso de partición, que relaciona los problemas del mundo real (definidos en el análisis de requerimientos) con las soluciones software para resolver los problemas software. Fundamentos basicos para el diseño de Software
  • 11.  JERARQUÍA DE CONTROL. se le conoce como estructura del programa, y representa la organización jerárquica de los módulos de un programa e implica una jerarquía de control. La representación de jerarquía se suele representar con diagramas de árbol, aunque también se pueden utilizar otros tipos de notaciones. • Profundidad: Número de niveles de control • Anchura: Amplitud global del control • Grado de salida: Número de módulos que controla un módulo • Grado de entrada: Número de módulos que controlan a un módulo • Visibilidad: Conjunto de componentes del programa que pueden ser invocados por un módulo (Herencia en entornos de POO). Todos los objetos serían visibles para el módulo • Conectividad: Conjunto de componentes a los que se invoca directamente o se utilizan sus datos. (La ejecución de un módulo puede suponer la ejecución de otro módulo) Fundamentos basicos para el diseño de Software
  • 12.  ESTRUCTURA DE DATOS. La estructura de datos es una representación de la lógica que existe entre los elementos individuales de información. Debido a que la estructura de la información afectará de forma determinante al diseño procedimiental, la estructura de datos es tan importante como la estructura del programa en la representación de la arquitectura del software. La estructura de datos dicta la organización, los métodos de acceso, el grado de asociatividad y las alternativas para el tratamiento de la información. Las estructuras de datos clásicas son los elementos escalares, los arrays, las listas y los árboles. Fundamentos basicos para el diseño de Software
  • 13.  PROCEDIMIENTOS DEL SOFTWARE. La estructura del programa define la jerarquía de control, independientemente de las decisiones y secuencias de procesamiento. El procedimiento del software se centra en los detalles de procesamiento de cada módulo individual. El procedimiento debe proporcionar una especificación precisa del procesamiento, incluyendo la secuencia de sucesos, los puntos concretos de decisiones, la repetición de operaciones e incluso la organización/estructura de los datos. Como existe una relación entre la estructura y el procedimiento, ya que el procesamiento de un módulo puede suponer la llamada a otros módulos. A esto se le conoce como representación procedimental del software por capas. Fundamentos basicos para el diseño de Software
  • 14.  OCULTAMIENTO DE INFORMACIÓN. El concepto de modularidad nos lleva a esta pregunta: ¿cómo descomponer una solución de software en el mejor conjunto de módulos? El principio de ocultamiento de la información sugiere que los módulos deben especificarse de forma que la información (procedimientos y datos) contenida dentro de un módulo sea inaccesible a otros módulos que no necesiten tal información. Por tanto se trata de definir una serie de módulos independientes que se comuniquen sólo a través de la información necesaria para realizar la función de software. El uso de ocultamiento de información en el diseño facilitará las modificaciones, prueba y mantenimiento del software, ya que como la mayoría de los datos y de los procedimientos están ocultos a otras partes del software, será menos probable que los errores que se introduzcan durante la modificación se propaguen a otros módulos del software. Fundamentos basicos para el diseño de Software
  • 15. Diseño Oriebtado a Objetos El diseño orientado a objeto (DOO) Es una Fase de la Metodología Orientada a objetos para el desarrollo de Software. Su Uso induce a desarrolladores y programadores a pensar en términos de Objetos, en Vez de procedimientos, cuando planifican el código. Un objeto agrupa datos encapsulados y procedimientos para representar una entidad. La “interfaz del Objeto”, esto es la forma de interactuar con el objeto, también se definen en esta etapa Un programa orientado a objetos se caracteriza por la interacción de estos objetos.
  • 16. GARANTÍAS DE CALIDAD DE SOFTWARE Se define como concordancia con los requisitos funcionales y de rendimiento explícitamente establecidos, con los estándares de desarrollo explícitamente documentados, y con las características implícitas que se espera de todo software desarrollado profesionalmente. La garantía de calidad de software es una actividad de protección que se aplica a lo largo de todo el proceso del software. La SQA engloba: 1. Un enfoque de gestión de calidad. 2. Tecnología de ingeniería del software efectiva (métodos y herramientas). 3. Revisiones técnicas formales que se aplican durante el proceso del software. 4. Una estrategia de prueba multi-‐escalada. 5. El control de la documentación del software y de los cambios realizados. 6. Un procedimiento que asegure un ajuste a los estándares de desarrollo delsoftware (cuando sea posible). 7. Mecanismos de medición y de generación de informes.
  • 17. TÉCNICAS DE PRUEBAS DE SOFTWARE 1) Prueba Unitaria: La prueba unitaria se aplica en el elemento más pequeño de un sistema, cada componente es testeado para asegurar que funciona correctamente. Normalmente desarrolla una única función cohesiva. La función de la prueba unitaria es de analizar cada pequeña parte y testear que funciona correctamente. 2) Prueba de Integración: La prueba de integración es una extensión lógica de las pruebas unitarias. Dos unidades que ya han sido testeadas y combinadas en un componente y su interface son testeadas entre ellas. 3) Las pruebas funcionales: se basan en asegurarse de que todas las características funcionen de cabo a rabo. Por ejemplo, testear que las características de un usuario se actualicen cuando el usuario clicka en el botón de guardar. Las pruebas funcionales testean una pequeña parte de la funcionalidad del sistema entera. Se aplica para verificar que las aplicaciones y funcionalidades del software actúan correctamente acorde a un diseño específico. Las pruebas funcionales son elementos cruciales para asegurar la calidad del producto software y confirmar que actúa acorde a sus funciones tal y como el usuario espera. 4) Pruebas de rendimiento: Y la última es la prueba de rendimiento. En el desarrollo desoftware, la prueba de rendimiento es una práctica de test que determina la actuación de un sistema en términos de respuesta y estabilidad en una carga de trabajo en particular. También puede servir para investigar, medir, validar o verificar otros atributos de calidad del sistema, como la escalabilidad, seguridad y uso de recursos. Las pruebas de rendimiento construye unos estándares de actuación en la implementación, diseño y arquitectura de un sistema.
  • 18. MANTENIMIENTO DE SOFTWARE El mantenimiento preventivo de software es el proceso por el cual se mejora y optimiza el software que se ha instalado, este mantenimiento se realiza para la prevención de posibles problemas que puedan llegar a surgir a medida que se utiliza el computador. La principal razón por la que se realiza este mantenimiento, en estos días es el análisis en busca de virus, ya que estos; los “Virus” son programas nocivos para el computador, ya que causan una inestabilidad en el sistema, bajas en el rendimiento del computador, pérdida de productividad, cortes en los sistemas y probables errores en el mismo, tales que no se pueden corregir de manera simple, sino mediante de una formateada
  • 19. CONCLUSIÓN El diseño de Software, suelen tomarse en cuenta muchos factoreres, tales como sus objetivos funcionales, los parámetros a elegir y los recursos con los que se deben interactuar dentro del entorno de desarrollo. También nos permitirá tener una visión general antes de lanzarse a la codificación y construcción. El diseño del Software tiene un impacto directo sobre la capacidad del sistema para cumplir o no el total de requerimientos establecidos. Un error de diseño en esta fase puede acarrear problemas en todo el proyecto y provocar que este caiga en una espiral de continuos cambios y de rehacer constantemente el trabajo. A raíz de esto es que se deben realizar diversas pruebas para comprobar si el Software desarrollado cumple con los estándares de calidad y garantía, además de establecer una conclusión mas firme y saber si cumplirá con su objetivo de manera optima o necesitaría mas complementos y desarrollo. Dentro de las diversas pueba de software, se aprecia que son utilizadas, de manera que los resultados sean contundentes y claros, ya sea de comprobar datos, hasta realizar una prueba de estrés a todo en conjunto para saber si se podrá con la tension exigida dentro del campo real donde sera aplicado como solucion