El diseño de software es el proceso de visionado y definición de soluciones software a uno o más conjuntos de problemas. 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á "semiautomatizado" 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 guión gráfico para ayudar determinar esas especificaciones.
Diseño del Software y el Diseño Orientado aObjetos
1. Diseño del Software y el Diseño Orientado a
Objetos
Integrante
Alexander Sanchez 22.956.799
SAIAMateria: Sistemas 2
2. Diseño de software
Se define como:
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 es el proceso de
visionado y definición de soluciones software a
uno o más conjuntos de problemas. 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á "semiautomatizado" 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 guión
gráfico para ayudar determinar esas
especificaciones.
2
3. 3
Abstracción
•Proceso o resultado de la generalización reduciendo el
contenido de información de un concepto o un
fenómeno observable
Refinamiento
• proceso de elaboración. Una jerarquía se desarrolla
descomponiendo una declaración macroscópica de
función de un modo sensato hasta que se logre obtener
declaraciones del lenguaje de programación.
Modularidad
• La arquitectura de software
está dividida en componentes
llamados módulos.
Arquitectura
• se refiere a la estructura global del
software y las maneras en que esa
estructura proporciona integridad
conceptual al sistema.
Diseño
4. 4
Jerarquía de
control
•Un estructura de programa que representa la
organización de un componente e implica una
jerarquía de control.
Estructural
Partitioning
• La estructura de programa puede ser dividida horizontal
y verticalmente. Las particiones horizontales definen
ramas separadas de jerarquía modular para cada
función importante
Estructura de
datos
• es una representación de la
relación lógica entre los
elementos individuales de los
datos
Procedimiento
de software
• centra en el procesamiento de cada
módulo individualmente.
Diseño
5. Lenguaje de modelado
Un lenguaje de modelado es cualquier lenguaje artificial que
puede usarse para expresar información, conocimiento o sistemas
en una estructura que está definida por un conjunto consistente
de reglas.
• Architecture description language (ADL) es un lenguaje que se
usa para describir y representar la arquitectura de software
de un sistema de software.
• Business Process Modeling Notation (BPMN) es un ejemplo de
Lenguaje de modelado.
• EXPRESS and EXPRESS-G (ISO 10303-11) es lenguaje de
modelado estándar internacional de propósito general.
• LePUS3 es un lenguaje de diseño de descripciones orientado a
objetos y un lenguaje de especificación formal que sirve sobre
todo para modelar grandes programas orientados a objetos
(Java, C++, C#) y patrones de diseño.
• Entre otros…
1
6. Diseño orientado a
objetos
Se define como:
El término "orientación por objeto" significa
que organizaremos el software como una
colección de objetos discretos que incorporan
tanto estructuras de datos como
procedimientos. Esto contrasta con la
programación convencional, en la cual las
estructura de datos y el comportamiento
están solo aproximadamente conectados.
El desarrollo orientado por objetos es una
nueva forma de pensar acerca del software
basado sobre abstracciones que existen en el
mundo real. En este contexto, el desarrollo es
referido a la primera parte del ciclo de vida del
software: análisis, diseño e implantación.
6
7. “
Un objeto es una entidad física o
abstracta que tiene un comportamiento
antes ciertos estímulos, tanto externos
como de otros objetos específicos que
se encuentran dentro del sistema.
7
Objeto
8. Análisis y diseño
orientado a objetos
Enfoque de la ingeniería de software que modela un sistema como un
grupo de objetos que interactúan entre sí. Este enfoque representa un
domino absoluto en términos de conceptos compuestos por verbos y
sustantivos, clasificados de acuerdo a su dependencia funcional. Todo
sistema de información requiere de artefactos o componentes (clases)
para llevar a cabo tareas, es de gran importancia dentro de la
ingeniería de software tener un buen "análisis y diseño" para un mejor
desarrollo, que conlleva a que tan "escalable" sea un sistema de
información.
8
9. Características principales
del Diseño Orientado a
Objetos
◇ Los objetos son abstracciones del mundo real o
entidades del sistema que se administran entre ellas
mismas
◇ Los objetos son independientes y encapsulan el
estado y la representación de información
◇ La funcionalidad del sistema se expresa en términos
de servicios de los objetos
◇ Las áreas de datos compartidas son eliminadas. Los
objetos se comunican mediante paso de parámetros
◇ Los objetos pueden estar distribuidos y pueden
ejecutarse en forma secuencial o en paralelo
9
10. Diseño Orientado a
Objetos
Ventajas
◇ Fácil de mantener, los objetos
representan entidades auto-
contenidas
◇ Los objetos son componentes
reutilizables
◇ Para algunos sistemas, puede
haber un mapeo obvio entre las
entidades del mundo real y los
objetos del sistema
10
Fases:
El DOO consta de
◇ Diseño de la Estructura de Objetos
(DEO)
◇ Diseño del Comportamiento de
Objetos (DCO)
11. Clase
Es la implantación de
un tipo de objeto.
Especifica la
estructura de datos y
métodos operativos
permitidos para cada
objeto. entes
reactivos basados en
modelo
Conceptos básicos
Polimorfismo
Se aplica a una
operación que
adopta varias formas
de implantación, de
acuerdo al objeto.
Operación
Proceso que se
puede solicitar
como unidad
(tipo de servicio
solicitado)
11
Método
Herencia de
clase
Reutilización
Se toma el código
existente y se
adapta a la
circunstancia.
Permiten que se
adapten las clases.
12. Herencia de clase
Es una implantación de la generalización, donde las propiedades de un
tipo se aplican a sus subtipos. Hace que la estructura de datos y
operaciones sean disponibles para su reutilización por las subclases.
La herencia de las operaciones de una superclase permite que las
clases compartan el código y la herencia de estructura de datos permite
la reutilización de la estructura.
12
13. Herencia Múltiple
◇ Una clase puede heredar estructuras de datos y operaciones de
más de una superclase.
◇ Selección del Método
○ Cuando se envía solicitud a un objeto, el software
selecciona los métodos a usar. El método no se
almacena en el objeto. Se asocia con la clase. La
herencia permite que una clase reutilice
características de superclases.
13
14. Polimorfismo
Se aplica a una operación que adopta varias formas de implantación,
de acuerdo al objeto. Puede hacer una solicitud de una operación sin
conocer el método que debe ser llamado. Esos detalles quedan ocultos
para el usuario.
14