enfoques de desarrollo de sw
Post on 24-Jul-2015
77 Views
Preview:
TRANSCRIPT
ENFOQUE
ESTRUCTURADO
INTEGRANTES:
• MARTICORENA GARCÍA, MIGUEL
• HUANAY YUPANQUI, JONATHAN
• JESUS AVELLANEDA, WALTER
DEFINICIÓN
El modelado de procesos, así como su nombre lo indica, tiene 2
aspectos que lo definen: el modelado y los procesos.
Frecuentemente, los sistemas, conjuntos de procesos y
subprocesos integrados en una organización.
Un modelo es una representación de una realidad compleja.
Modelar es desarrollar una descripción lo más exacta posible de
un sistema y de las actividades llevadas a cabo en él.
EJEMPLO:
La reingeniería de procesos de negocios, la cual se encarga
del rediseño de los procesos de negocios de las
organizaciones con el fin de hacerlos más eficientes.
2: MODELADO DEL FLUJO DE
LA INFORMACIÓN
DESCRIPCIÓN
REPRESENTACIÓN
Es la manera en que se representa la forma en que los datos
cambian conforme se mueven a través del sistema.
Las transformaciones que se aplican a los datos
son funciones que debe realizar un programa.
3: ANÁLISIS DEL SISTEMA
El Análisis se refiere al “extremo inicial” de un
proyecto de desarrollo de sistemas, durante el
tiempo en que los requisitos del usuario son
definidos y documentados.
ANÁLISIS DE REQUISITOS.
El análisis de requisitos es el proceso de
estudio de las necesidades de los usuarios
para llegar a una definición de los
requisitos del sistema de hardware o de
software; así como su estudio y
refinamiento.
DOMINIO DE LA
INFORMACIÓN El software se construye para procesar
datos, para transformarlos es decir, para aceptar datos de entrada, manipularlos y producir información de salida. Pero el software también procesa acontecimientos, que controlan al sistema y no es más que un dato binario, tal como un sensor que envía al software una señal de alarma.
Por tanto, los datos ( números, caracteres, imágenes, sonidos, etc. ) y el control ( acontecimientos ) son parte del dominio de la información.
DOMINIO DE LA
INFORMACIÓN
1. CONTENIDO DE LA INFORMACIÓN
2. FLUJO DE LA INFORMACIÓN
3. ESTRUCTURA DE LA
INFORMACIÓN
ESTRUCTURA DEL MODELO
DE ANÁLISIS El modelo de análisis debe cumplir tres
objetivos primarios:
1: Describe lo que requiere el cliente
2: Establecer una base para la creación de
un diseño de software
3: Definir un conjunto de requisitos que
puedan validarse una vez construido el
software
MODELO DE DATOS
Es un esquema teórico de un sistema o realidad
compleja que se elabora para facilitar su
comprensión y estudio.
Es una representación de los aspectos esenciales
de una realidad compleja de acuerdo a un
criterio
Todo modelo es necesariamente una
simplificación de la realidad
OBJETOS, ATRIBUTOS, RELACIONES
Las entidades son los objetos principales
sobre los que se debe recoger información y
generalmente denotan personas, lugares,
cosas o eventos de interés. Las entidades
aparecen reflejadas en el enunciado
habitualmente como nombres. Gráficamente
se simbolizan con un rectángulo.
Los atributos
Se utilizan para detallar las entidades asignándoles
propiedades descriptivas tales como nombre, color
y peso. No solo es posible especificar atributos en
las entidades sino también en las relaciones.
Las entidades
Pueden clasificarse por la fuerza de sus atributos
identificadores, es decir, por su dependencia o no
dependencia respecto a otras entidades.
Las relaciones
Representan asociaciones en el mundo real
entre una o más entidades. Las relaciones se
caracterizan por su nombre, el grado (número
de entidades que participan en la relación), el
tipo de cardinalidad (número máximo de
ejemplares de una entidad asociados a una
combinación de ejemplares de las otras
entidades de la relación, que pueden ser 1 ó N).
Gráficamente las relaciones se simbolizan con
un rombo.
DIAGRAMA ENTIDAD
RELACIÓN
En este modelo se presenta la vista unificada de los datos, centrándose en la estructura lógica y abstracta de los datos, como representación del mundo real, con independencia de consideraciones del mundo físico.
Un modelo Entidad-Relación tiene los siguientes elementos:
ENTIDAD es “una persona, lugar, cosa, concepto, suceso, real o abstracto de interés para la empresa”. Es aquel objeto acerca del cual queremos almacenar información en la base de datos.
INTERRELACIÓN se define como la asociación o correspondencia entre entidades.
ATRIBUTOS
MODELO FUNCIONAL Y
FLUJO DE LA INFORMACIÓN
•El modelo funcional describe los
comportamientos y operaciones de los objetos.
•El modelo funcional muestra la dependencia de
datos en el sistema.
•El modelo funcional consiste de múltiples
diagramas de flujo de datos.
EL DIAGRAMA de flujo de datos ( DFD )
es una técnica gráfica que representa el
flujo de la información y las
transformaciones que se aplican a los datos
al moverse desde la entrada a la salida.
La notación básica para construir DFD’s es
la siguiente:
Un rectángulo representa a un elemento del sistema ( por ejemplo un hardware, una persona, un programa ) o un sistema que produce o recibe información que es transformada por el software.
Un circulo representa un proceso o transformación que se aplica a los datos y los cambia de alguna forma.
La flecha representa a un elemento o una
colección de elementos de datos.
Representa información almacenada y que
utiliza el software.
MODELADO DE COMPORTAMIENTO
El diagrama de transición de estados
DTE representa el comportamiento
de un sistema que muestra los
estados y los sucesos que hacen que
el sistema cambie de estado.
Un estado es un modo observable
de comportamiento, por ejemplo
monitoreando, comprobando,
calculando, etc.
DICCIONARIO DE DATOS
Un Diccionario de Datos es una lista con
todos los detalles y descripciones de los
elementos incluidos en los Diagramas de
Flujo de Datos que describen al sistema.
EL DICCIONARIO DE DATOS
DEBE CONTENER:
1. Descripción de los almacenamientos de datos
2. Descripción de los procesos
3. Descripción de las estructuras de datos
4. Descripción de los elementos de datos
5. Descripción de los flujos de datos
ABSTRACCION
Definición:
◦ La representación de las características
esenciales de algo sin incluir
antecedentes o detalles irrelevantes
[Graham, 1994]
ABSTRACCION Ventajas:
◦ Define y refuerza las restricciones de acceso
◦ Facilita el mantenimiento y la evolución de los sistemas
software
◦ Reduce los efectos laterales
◦ Limita el impacto global de las decisiones de diseño locales
◦ Favorece la encapsulación, uno de los elementos de un buen
diseño
◦ Descripción de una función de un programa en el nivel de
detalle adecuado
◦ Cada paso en el proceso del software es un refinamiento del
nivel de abstracción de la solución software (abstracciones
funcionales y abstracciones de datos)
◦ Refinamiento y modularidad son conceptos cercanos al
concepto de abstracción
REFINAMIENTO
Similitud con el procedimiento de partición y
refinamiento del análisis de requisitos
◦ La diferencia está en el nivel de detalle, no en el enfoque
El refinamiento es un procedimiento de elaboración
◦ Función descrita a un nivel conceptual
◦ Refinamientos sucesivos que incorporan más detalles
Gestiona la complejidad dividiendo problemas grandes en
problemas pequeños
◦ Permite que personas diferentes puedan trabajar con cada parte
◦ Permite la especialización de los ingenieros del software
◦ Las partes se pueden remplazar o cambiar sin tener que
remplazar o cambiar de forma generalizada el resto de las partes
MODULARIDAD
Propiedad de un sistema que ha sido
descompuesto en un conjunto de
módulos coherentes e independientes
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.
MODULARIDAD
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,
ARQUITECTURA DEL
SOFTWARE
La arquitectura del software alude a la
“estructura global del SW y a las formas en
que la estructura proporciona la integridad
conceptual de un sistema”
La arquitectura del SW es la estructura
jerárquica de los componentes del
programa (módulos), la manera en que los
componentes interactúan y la estructura de
datos que van a utilizar los componentes.
JERARQUÍA DE CONTROL
La jerarquía de control, denominada
también “estructura del programa”,
representa la organización de los
componentes del programa (módulos) e
implica una jerarquía de control.
No representa los aspectos
procedimentales del software, ni se puede
aplicar necesariamente a todos los estilos
arquitectónicos.
PARTICIÓN ESTRUCTURAL La estructura de un programa debe partirse horizontal y
verticalmente
La partición horizontal define ramas separadas de la
jerarquía modular para cada función principal del programa
◦ Módulos de control
◦ Enfoque entrada/proceso/salida
Beneficios de la partición horizontal
◦ Proporciona software más fácil de probar
◦ Lleva a un software más fácil de mantener
◦ Propaga menos efectos secundarios
◦ Proporciona software más fácil de ampliar
Puntos en contra de la partición horizontal
◦ Aumenta la comunicación entre módulos, pudiendo
complicar el control global del flujo del programa
PARTICIÓN ESTRUCTURAL
Partición vertical o descomposición en factores
(factoring)
La partición vertical expresa que el control, toma
de decisiones, y el trabajo se distribuyan de forma
descendente en la arquitectura del programa
Los módulos de nivel superior deben realizar
funciones de control y poco trabajo de
procesamiento
Los módulos que residen en la parte baja de la
arquitectura deben de ser los que realicen las
tareas de entrada, cálculo y salida
ESTRUCTURA DE DATOS
La estructura de datos e una representación de la
relación lógica entre elementos individuales de
datos .
Como la estructura de la información afectara
invariablemente al diseño procedimental final, la
estructura de datos es tan importante como la
estructura de programa para la representación de
la arquitectura de software
PROCEDIMIENTO (DEL
SOFTWARE) La estructura del programa define la
jerarquía de control sin tener en
consideración la secuencia de proceso y de
decisiones.
El procedimiento debe proporcionar una
especificación precisa de procesamiento,
incluyendo la secuencia de sucesos , los
puntos de decisión exactos, las operaciones
repetitivas e incluso la estructura ,
organizándole datos.
OCULTAMIENTO DE LA
INFORMACIÓN
El ocultamiento de la información es un buen
medio para conseguir abstracción
Restricciones de acceso
◦ Detalle procedimental dentro del módulo
◦ Estructura de datos local empleada por el módulo
El diseñador de cada módulo debe seleccionar
un subconjunto de las propiedades del módulo
como información oficial del módulo, para
ponerlas a disposición de los autores de
módulos o de módulos clientes
OCULTAMIENTO DE LA
INFORMACIÓN
Las decisiones de diseño sujetas a
cambio deben ocultarse detrás de
interfaces abstractas
◦ Las aplicaciones software han de comunicarse
únicamente a través de interfaces bien definidas
◦ La interfaz de un módulo debe revelar lo menos
posible de su funcionamiento interno
◦ Intercambio de módulos mientras que se
mantengan intactas las interfaces
◦ Ventajas a la hora de hacer cambios
Ocultación significa que se puede
conseguir una modularidad efectiva
definiendo un conjunto de módulos
independientes que se comunican
intercambiando la información
necesaria para realizar la función
software
COHESION
La cohesión hace referencia a
la forma en que
agrupamos unidades de
software
(módulos, subrutinas) en una
unidad mayor.
Por ejemplo: la forma en la
que agrupamos funciones en
una librería.
ACOPLAMIENTO
El acoplamiento informático indica el nivel de
dependencia entre las unidades de software de un sistema
informático, es decir, el grado en que una unidad puede
funcionar sin recurrir a otras; dos funciones son
absolutamente independientes entre sí (el nivel más bajo de
acoplamiento) cuando una puede hacer su trabajo
completamente sin recurrir a la otra. En este caso se dice
que ambas están desacopladas.
Ejemplo:
Dos métodos completamente
desacoplados, es decir ninguno
necesita del otro para realizar
su tarea.
int metodo1(int a, int b)
{
return a * b;
}
int metodo2(int a, int b)
{
return a + b;
}
DISEÑO DE DATOS El diseño de datos consiste en
descubrir y la definir
completamente de los procesos y
características de los datos de la
aplicación. El diseño de datos es un
proceso de perfeccionamiento
gradual que abarca desde la
cuestión más elemental, "¿Qué
datos requiere la aplicación?", hasta
los procesos y estructuras de
datos precisos que proporcionan
dichos datos. Si el diseño de datos
es bueno, el acceso a los datos de
la aplicación será rápido y fácil de
mantener, y podrá aceptar sin
problemas las futuras mejoras de
los datos.
DISEÑO DE ARQUITECTURA
Define la relación entre los principales elementos estructurales del programa. Se obtiene a partir del modelo de análisis y de la interacción de subsistemas definidos dentro del modelo de análisis.
La arquitectura de software nos proporciona una visión global del sistema a construir.
Marca decisiones de diseño tempranas y proporciona el mecanismo para evaluar los beneficios de las estructuras de sistema alternativas.
FLUJO DE TRANSFORMACION La información debe introducirse y obtenerse
del software en forma de mundo exterior, la información entra en el sistema a lo largo de caminos que transforman los datos externos a un formato interno. Estos caminos se identifican como flujo de entrada.
La información entrante se pasa a través de un centro de transformación y empieza a moverse a lo largo de caminos que ahora conducen hacia fuera del software. Los datos que se mueven a lo largo de este camino se denominan flujo de salida.
FLUJO DE TRANSACCION
El flujo de transacción se caracteriza por
datos que se mueven a lo largo de un camino de entrada que convierte la información del mundo exterior en una transacción.
La transacción se evalúa y, basándose en ese valor, se inicia el flujo a lo largo de uno de muchos caminos de acción. El centro de flujo de información del que parten muchos de los caminos de acción se denomina centro de transacción.
DISEÑO DE INTERFAZ
Describe como se comunica el
software consigo mismo, con los
sistemas que operan con él y con los
operadores que lo emplean. Los
diagramas de flujo de datos y control
proporcionan la información necesaria
para el diseño de la interfaz.
DISEÑO PROCEDIMENTAL
Transforma elementos estructurales de la
arquitectura del programa en una
descripción procedimental de los
componentes del software. Se obtiene a
partir de la especificación del proceso, la
especificación del control y el diagrama de
transición de estados
OBJETO Un objeto es aquello que tiene estado
(propiedades más valores), comportamiento (acciones y reacciones a mensajes) e identidad (propiedad que lo distingue de los demás objetos).
Conjunto de objetos (Clase).
Ejemplo: la clase Humanos, puede tener dos subclases Hombres y Mujeres. Luego como objetos podríamos poner hombre1, hombre2, que pertenecen a la clase Hombres y mujer1, mujer2 pertenecientes a la clase Mujeres.
CLASE
Conjunto de objetos que comparten una
estructura y comportamiento en común
Plantilla o prototipo para crear objetos de
ese tipo, la cual contiene las características
y acciones comunes del objeto
Ejemplo:
La clase Humanos,
puede tener dos
subclases Hombres
y Mujeres.
ATRIBUTOS Es una especificación que define una
propiedad de un objeto diferenciándolo así de los otros objetos.
Describen la clase o el objeto de alguna manera, la cual esta definida por un dominio(conjunto de valores específicos).
Ejemplo: A la colección de entidades Alumnos, con el siguiente conjunto de atributos en común, (id, nombre, edad, semestre),
MÉTODOS
Un método son las operaciones asociadas a
un objeto.
Por ejemplo, la casa puede estar cerrada o
abierta (siendo "estado De La Puerta" un
atributo con posibles valores "abierta" o
"cerrada"), y posee un método "abrir
Puerta" o "cerrar Puerta“
Son las funciones o acciones del objeto en
caso de la persona, los métodos son,
caminar, hablar, reír, pensar, gritar.
MENSAJES
Los mensajes son el medio a través del cual interactúan los objetos.
Los mensajes y los métodos son dos caras de la misma moneda Los Metodos Son Los Procedimientos Invocados Cuando Un Objeto Recibe Un Mensaje ( Greg Voss)
Tres partes que componen un mensaje:
1. El objeto al cual se manda el mensaje (Tu Bicicleta).
2. El método o función miembro que debe ejecutar (Cambiar De Marcha).
3. Los parámetros que necesita ese método (Marcha)
ENCAPSULAMIENTO
Es empaquetar o proteger las variables de
un objeto con la protección de sus
métodos.
Es guardar atributos y funcionalidades de
una clase. No se puede acceder a los datos
desde fuera de la clase teniendo acceso a
ello solo los métodos que se encuentren
dentro de la clase, dividiéndola en
interfaces e implementación
HERENCIA
La herencia es la capacidad que tiene una
clase de derivar las propiedades y métodos
de otra, adoptando sus atributos y métodos
de la clase padre o primaria.
Pero además pueden introducir
características particulares propias que las
diferencian.
POLIMORFISMO
Clases diferentes que tienen métodos o
atributos denominados de forma idéntica,
pero que se comportan de manera distinta,
pueden compartir el mismo nombre, al
llamarlos por ese nombre se utilizará el
comportamiento correspondiente al objeto
que se esté usando
CLASE ABSTRACTA
Utilizado para conservar o mantener una
cierta característica o interfaz en común.
Representan los escalones más elevados de
algunas jerarquías de clases y solo sirven
para derivar otras clases, en las que se van
implementando detalles y concreciones
METACLASE Y SUBCLASE
MetaClase
Es una clase cuyas instancias son clases.
En otras palabras, como los objetos son
instancias de una clase, las clases son
instancias de una meta clase.
METACLASE Y SUBCLASE
Subclase
Una subclase hereda ciertas
características de las clases padres (e
incluso pueden redefinirse o agregarse
nuevas características de la clase
superior también)
GENERALIZACIÓN
Permite una estructuración jerárquica
de las clases que comparten
estructuras o comportamientos
Consiste en crear clases genéricas
llamadas súper clases o clases padre,
con los elementos comunes a un
conjunto de subclases.
CDLibro
Libro
FormatoSuscripcion
AGREGACIÓN
La agregación es un tipo especial de relación
en el que se modela una semántica del tipo
“tiene” o “es parte de”, en la que una
entidad represente una entidad de mayor
tamaño (el “todo”), compuesta de entidades
más pequeñas (las “partes”)
COMPOSICIÓN
La agregación es enteramente conceptual y
lo único que hace es distinguir un “todo” de
una “parte”
La composición representa una pertenencia
fuerte y una existencia coincidente entre el
“todo” y la “parte”
ESTADOS DE UN OBJETO
Se refiere al conjunto de los valores
de sus atributos en un instante de
tiempo dado, la apariencia que el
objeto presenta al usuario, y depende
del valor que tenga sus propiedades.
Los objetos interactúan unos con
otros y como consecuencia de esas
interacciones cambian de estado.
EVENTOS
Los eventos producen cambios en el
estado de un objeto.
Los eventos sirven como indicadores de los
instantes en que ocurren los cambios de
estado.
Todos los objetos se relacionan con el
mundo que los rodea, esto significa que
ningún objeto está aislado y siempre recibe
el influjo de otros objetos.
OPERACIONES
Definen el comportamiento de un objeto.
Las operaciones definen el comportamiento de un objeto y cambian, de alguna manera, los atributos de dicho objeto.
1. Operaciones de manipulación
2. Operaciones de estado
3. Operaciones que monitorizan
ANÁLISIS DEL SISTEMA
El objetivo del análisis orientado a objetos es
desarrollar una serie de modelos que
describan el software de computadora al
trabajar para satisfacer un conjunto de
requisitos definidos por el cliente.
Es un método de análisis que examina los
requisitos desde la perspectiva de las clases y
objetos que se encuentran en el vocabulario
del dominio del problema.
ANÁLISIS DEL DOMINIO El análisis del dominio del software es la
identificación, análisis y especificación de requisitos
comunes de un dominio de aplicación específico,
normalmente para su reutilización en múltiples
proyectos dentro del mismo dominio de
aplicación.
COMPONENTES DE ANALISIS
Los componentes estáticos son estructurales
por naturaleza, e indican características que
se mantienen durante toda la vida operativa
de una aplicación.
Los componentes dinámicos se centran en el
control, y son sensibles al tiempo y al
tratamiento de sucesos.
COMPORTAMIENTO DE OBJETOS
1. La inteligencia del sistema debe distribuirse de
manera igualitaria.
2. Cada responsabilidad debe establecerse lo más
general posible.
3. La información y el comportamiento asociado a
ella, debe encontrarse dentro de la misma clase.
4. La información sobre un elemento debe estar
localizada dentro de una clase, no distribuida a
través de varias clases.
5. Compartir responsabilidades entre clases
relacionadas cuando sea apropiado.
DISEÑO DE SISTEMAS
Diseño orientado a objetos es una fase de la
metodología orientada a objetos para el desarrollo
de Software.
El diseño orientado a objetos transforma el
modelo de análisis creado usando análisis
orientado a objetos , en un modelo de diseño que
sirve como anteproyecto para la construcción de
software teniendo el uso de capaz.
1. Diseño de responsabilidades
2. Diseño de mensajes
3. Diseño de clases y objetos
4. Diseño de subsistemas
DISEÑO DE SISTEMAS La capa de responsabilidades
Estructuras de datos y el diseño algorítmico para todo los
atributos y operaciones.
La capa del subsistema
Representación de los subsistemas que le permiten al
software (requisitos e infraestructura técnica que lo
soportara)
La capa de clases y Objetos
Jerarquías de clase que permiten crear el sistema usando
generalizaciones y especializaciones mejor definidas.
La capa de mensajes
Detalles que le permiten a cada objeto comunicarse con sus
colaboradores. Esta capa establece las interfaces externas e
internas para el sistema.
PROCESOS DEL DISEÑO
DE SISTEMA Se siguen los siguientes pasos:
Partición del modelo de análisis en subsistemas.
Identificar la concurrencia dictada por el problema.
Asignar subsistemas a procesadores y tareas.
Desarrollar un diseño para la interfaz de usuario.
Elegir una estrategia básica para implementar la
administración (gestión) de datos.
Identificar recursos globales y los mecanismos de control
requeridos para su acceso.
Diseñar un mecanismo de control apropiado para el
sistema, incluyendo administración de tareas.
Considerar cómo deben manejarse las condiciones de
frontera.
top related