1. REPÚBLICA BOLIVARIANA DE VENEZUELA
MINISTERIO PARA EL PODER POPULAR PARA LA
EDUCACIÓN
INSTITUTO UNIVERSITARIO POLITÉCNICO
"SANTIAGO MARIÑO"
SEDE BARCELONA
Alumna:
Nathaly Rivas
CI. 20.695.25
2. INTRODUCCION
la ingeniería del software es un conjunto de conceptos fundamentales de diseño
de software, aunque el grado de interés en cada concepto ha variado con los
años, han pasado la prueba del tiempo ofreciendo cada uno al ingeniero de
software fundamentos sobre el cual pueden aplicarse métodos de diseño más
elaborados.
El diseño de Software juega un papel importante en el desarrollo de software lo
cual permite al ingeniero de software producir varios modelos del sistema o
producto de que se va a construir el mismo que forman una especie de plan de
la solución de la aplicación. Estos modelos puede evaluarse en relación con su
calidad y mejorarse antes de generar código, de realizar pruebas y de que los
usuarios finales se vean involucrados a gran escala. El diseño es el sitio en el
que se establece la calidad del software.
3. Fundamento del Diseño de Software
-El diseño de software, al igual que los métodos de diseño de todas las ingenierías,
cambian continuamente al aparecer nuevos métodos, mejores análisis y ampliar los
conocimientos.
1-ABSTRACCION
2-REFINAMIENTO
3-MODULARIDAD
4-ARQUITECTURA
DEL SOFTWARE
5-JERARQUIA DE
CONTROL
6-ESTRUCTURA
DE DATOS
4. ABSTRACCION
Cuando se diseña un nuevo
sistema software es
importante identificar los
elementos significativos de
los que consta y abstraer la
utilidad específica de cada
uno, incluso más allá del
sistema software para
el que se está diseñando.
Durante el proceso de diseño se
debe aplicar el concepto de
abstracción en todos los niveles de
diseño.
Por ejemplo, para el sistema de
control de acceso del tema anterior
tenemos:
En un primer nivel: aparecen abstracciones
tales como Tarjeta, Mensajes, Órdenes, etc.
En un segundo nivel: aparecen nuevas abstracciones como
Clave, Control de Puerta, Comprobar
Clave, etc. a los cuales se aplicaran los mismos criterios.
5. REFINAMIENTO
- 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.
- El proceso de refinamiento se puede dar por
concluido cuando todas las acciones y
expresiones
quedan refinadas en función de otras acciones
o expresiones o bien en función de las
instrucciones
básicas del lenguaje empleado.
6. 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.
El software monolítico (es decir, un programa grande compuesto de un solo
módulo) no puede ser estudiado fácilmente, 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. Podemos citar como ventajas de utilizar un diseño
modular las siguientes:
-
Claridad: siempre
es más fácil
entender y
manejar cada una
de las partes de un
sistema que tratar
de entenderlo
como un todo
compacto.
- Reducción de
Costos: resulta más
barato desarrollar,
depurar,
documentar,
probar y mantener
un sistema
modular que otro
que no lo es,
excepto si el
número de
módulos crece
innecesariamente.
-
Reutilización: si los
módulos se diseñan
teniendo en cuenta
otras posibles
aplicaciones
resultara inmediata
su reutilización.
7. 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
8. JERARQUIA DE CONTROL
También 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
-Profundidad: Número de niveles
de control.
-Anchura: Máximo número de
módulos en un nivel de control.
-Fan-out: Número de módulos que
son controlados directamente por
otro módulo.
-Fan-in: Número de módulos que
controlan directamente a un
módulo.
-Visibilidad: Conjunto de módulos
que pueden invocarse o usar sus
datos por un módulo.
-Conectividad: Conjunto de
módulos que son invocados o
usados sus datos por un módulo.
9. 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 procedimental, 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, las listas y los
arboles
-Muestra las alternativas de
organización, métodos de acceso,
capacidad de asociación y
procesamiento de la información.