Fundamentos Básicos para el Diseño de Software || Yeferson Montaño
1. República Bolivariana de Venezuela
Ministerio del Poder Popular para la Educación Universitaria
Instituto Universitario Politécnico "Santiago Mariño"
Extensión Puerto Ordaz
Escuela 47: Ingeniería de sistemas.
Sistemas II
Ciudad Guayana, Junio 2021
Bachiller: Yeferson Montaño
C.I: 28.374.888
2. El diseño de un software consiste en la definición y formulación de la estructura que
tendrá el software, cumpliendo con unos respectivos criterios que serán desarrollados a
detalle para así permitir su realización física. Un buen diseñado de software permite crear a
profundidad los software para así abarcar cada uno de los contexto o ámbitos en donde el
software será utilizado y ejecutado.
A continuación se mostrarán los fundamentos básicos para la
creación de software, tales como: Abstracción, Refinamientos,
Modularidad, Arquitectura, Jerarquía de Control, Estructura de Datos,
Procedimientos, y Ocultamiento de Información.
3. Se refiere a la extracción en esencia de la información de un concepto o
fenómeno. En diseño de software se utilizan niveles o grados de
abstracción para realizar una solución modular a cualquier problema.
• Nivel Superior: Solución en términos generales.
• Nivel Medio: Solución con más tecnicismo.
• Nivel Inferior: Solución mediante código fuente.
Al ir realizando estos niveles de abstracción, se
trabaja con abstracciones de datos y de
procedimientos.
• Abstracción de datos: Consiste en el conjunto de datos que describen un
objeto.
• Abstracción de procedimientos: Consiste en el conjunto de pasos o secuencias
que permiten realizar una función o acción determinada.
4. Luego de haber realizado la abstracción de los datos, se prosigue a realizar un
refinamiento de dichos datos. Refinamiento consiste en expresar a mínimo detalle
todas las funciones y acciones para lograr que la estructura de la solución que se
plantea pueda ser empleado en código fuente, y en consecuencia, la creación del
software.
5. Este fundamento consiste en la aclaración y reducción de costos, en donde
aplica el método “Divide y Vencerás” permitiendo crear el software de forma
modular y designando a personas encargadas en cada uno de los módulos y que a
su vez trabajen de manera simultánea. Es relevante destacar que este fundamento
es solo para el diseño de la solución, no de la etapa de codificación ni de la
determinación del lenguaje de programación.
6. La arquitectura expresa la forma en como están repartidos o delimitados los
problemas individualmente, a lo que se conoce como partición, con relación a las
posibles soluciones que puede ofrecer el sistema de software. Se pueden usar
vistas como las de casos de uso, vista de diseño, vista de procesos, etc..
Podemos encontrar 2 características fundamentales tanto
para la arquitectura del software como para el diseño en
general del software:
ESTRUCTURA DE
DATOS
JERARQUÍA DE
CONTROL
7. La jerarquía de control es mayormente conocida como la estructura general del
programa, ésta representa de manera jerárquica los módulos del software lo cual
implica una jerarquía de control.
Usualmente esta jerarquía se presenta mediante los diagramas de
árbol, aunque se pueden usar cualquier otro diagrama.
8. Este fundamento representa la lógica que existe entre los elementos
individuales de la información, es decir, que expresa la manera en como se
accederá a la información, ya sea mediante pilas, colas, listas, árboles, etc. Y a su
vez asume o dicta la manera en como estará organizada la información, los
métodos de acceso, el grado de asociatividad, etc.
9. Es la especificación de los procesamientos que realiza el software, es el que se
encarga de explicar y/o detallar los procesamiento de cada modulo del software,
las secuencias, los puntos de decisión, y hasta la estructura de los datos. Este es
el fundamento que se encarga de detallar los pasos que se realizan de modulo en
modulo.
10. La ocultación de información implica la resolución o minimización de los datos
de los módulos, esto permite que al momento de realizar alguna modificación,
prueba o mantenimiento sea mucho mas fácil ,ya que la probabilidad de error será
menor debido a que se han omitido u ocultado datos que no son necesarios en
ese momento para la ejecución de la solución mediante el software.
11. El conocimiento de los fundamentos básicos del diseño de un software
permite obtener el mejor producto final posible, lo cual permite expresar de
manera conceptual los fundamentos o requerimientos que debe de cumplir
y se deben de aplicar al programa.
El diseño de software estará en constante evolución ya que aparecerán mejores
métodos para su desarrollo, es por eso que el constante conocimiento y adaptación
a las nuevas herramientas o fundamentos permitirán crear un mejor software que
pueda cumplir con los requisitos del cliente.
12. “El principio de la sabiduría de un programador está en reconocer la diferencia
entre obtener un programa que funcione y uno que funcione correctamente”
- Michael A. Jackson