ANALISIS Y DISEÑO DE
SISTEMAS
TRABAJO N° 1
PROFESOR: YAROS PEREZ
REALIZADO POR: ING.
MIGUEL ALVAREZ
ANÁLISIS Y DISEÑO
ESTRUCTURADO Y ORIENTADO A OBJETOS
Introducción
Para comenzar este trabajo será interesante definir algunos
terminos básicos que sirvan como punto de partida al ahondar en el tema de
estas dos metodologías.
Metodología: Conjunto de
procedimientos, técnicas, herramientas y un soporte documental que ayuda a los
desarrolladores
a realizar nuevo software. Una metodología puede seguir uno o varios modelos de ciclo de vida, es decir, el
ciclo de vida indica qué es lo que hay que obtener a lo largo del desarrollo
del proyecto pero no cómo hacerlo. La metodología indica cómo hay que obtener
los distintos productos parciales y finales.
Tarea: Actividades
elementales en que se dividen los procesos.
Procedimiento: Definición de la
forma de ejecutar la tarea.
Técnica: Herramienta utilizada
para aplicar un procedimiento. Se pueden utilizar una o varias.
Herramienta: Para realizar una
técnica, podemos apoyarnos en las herramientas software que automatizan su
aplicación
Producto: Resultado de cada
etapa
Diseño Estructurado
Permite al analista conocer un sistema o proceso (actividad) en
una forma lógica y manejable al mismo tiempo que proporciona la base para
asegurar que no se omite ningún detalle pertinente".
El objetivo que persigue el análisis estructurado es organizar las tareas
asociadas con la determinación de requerimientos para obtener la comprensión
completa y exacta de una situación dada.
Componentes:
Símbolos gráficos: sirven para
identificar y describir los componentes de un sistema y las relaciones entre
estos.
Diccionarios de datos: Descripciones
de todos los datos utilizados en el sistema pueden ser manual o automatizado.
Descripciones de procesos y
procedimientos: emplean técnicas y lenguajes que permiten describir
actividades del sistema.
Reglas: Estándares par describir
y documentar el sistema en forma correcta y completa.
Análisis de flujo de
datos:
Estudia el empleo de los datos en cada actividad, documenta los hallazgos con
diagramas de flujo de datos.
Herramientas:
Diagrama de flujo de datos: son la
herramienta mas importante y la base en donde se desarrolla otros componentes.
Diccionario de datos: contienen las
características lógicas de los lugares donde se almacenan los datos del
sistema, incluyendo nombre, alias, descripción, contenido y organización.
Diagrama de
estructuras de datos: este es una descripción de la relación entre entidades
(personas, lugares, eventos y objetos) y el conjunto de información relacionado
con la entidad.
Gráfica de estructura:
es la
herramienta del diseño que muestra con símbolos la relación entre los módulos
de procesamiento y el software de la comp.
Diseño Orientado a
Objeto
El análisis orientado a objeto es un método de
análisis que examina los requisitos desde la perspectiva de las clases y los
objetos encontrados en el vocabulario del dominio del problema. Para el
desarrollo de software orientado a objetos no basta usar un lenguaje orientado
a objetos. También se necesitará realizar un análisis y diseño orientado a
objetos.
El modelamiento visual es la clave para realizar
el análisis OO. Desde los inicios del desarrollo de software OO han existido
diferentes metodologías para hacer esto del modelamiento, pero sin lugar a
duda, el Lenguaje de Modelamiento Unificado (UML) puso fin a la guerra de
metodologías. Según los mismos
diseñadores del lenguaje UML, éste tiene como fin modelar cualquier tipo de
sistemas (no solamente de software) usando los conceptos de la orientación a
objetos. Y además, este lenguaje debe ser entendible para los humanos y
máquinas.
Actualmente en la industria del desarrollo de
software tenemos al UML como un estándar para el modelamiento de sistemas OO.
Fue la empresa Racional que creó estas definiciones y especificaciones del
estándar UML, y lo abrió al mercado. La misma empresa creó uno de los programas
más conocidos hoy en día para este fin; el Racional Rose, pero también existen
otros programas como el Poseidon que trae licencias del tipo community edition
que permiten su uso libremente.
El UML consta de todos los elementos y
diagramas que permiten modelar los sistemas en base al paradigma orientado a
objetos. Los modelos orientados a objetos cuando se construyen en forma
correcta, son fáciles de comunicar, cambiar, expandir, validar y verificar.
Este modelamiento en UML es flexible al cambio y permite crear componentes
plenamente reutilizables.
Para entender este modelo vamos a revisar 4 conceptos básicos:
Objetos: Un objeto del mundo
real es cualquier cosa que vemos a nuestro alrededor. Por ejemplo, para leer
este 1er trabajo de la asignatura lo hacemos a través del monitor y una
computadora, ambos son objetos, al igual que nuestro teléfono celular, un árbol
o un carro. Adicionalmente, todo objeto del mundo real tiene 2 componentes,
características y comportamiento. Hablando en terminos tecnicos, un objeto es
una unidad de código compuesto de variables y métodos relacionados.
Clases: La clase es un modelo
que define las variables y métodos comunes a todos los objetos de cierta clase.
También se puede decir que una clase es una plantilla genérica para un conjunto
de objetos de similares características.
Herencia: La herencia
básicamente consiste en que una clase puede heredar sus variables y métodos a
varias subclases (la clase que hereda es llamada superclase o clase padre).
Esto significa que una subclase, aparte de los atributos y métodos propios,
tiene incorporados los atributos y métodos heredados de la superclase. De esta
manera se crea una jerarquía de herencia.
Envío de mensajes: Es el medio empleado para
que un objeto interactúe con otro, y en teminos un poco mas tecnicos, los
mensajes son invocaciones o llamados a los métodos de los objetos.
Caracteristicas:
Abstracción: Consiste en captar las características esenciales de un
objeto, así como su comportamiento. En los lenguajes de programación orientada
a objetos, el concepto de Clase es la representación y el mecanismo por el cual
se gestionan las abstracciones.
Encapsulamiento: Consiste en unir en la clase las
características y comportamientos, esto es, las variables y métodos. Es tener
todo esto es una sola entidad. En los lenguajes estructurados esto era
imposible. El encapsulamiento se logra gracias a la abstracción y el
ocultamiento. Las clases son como cajas negras donde sólo se conoce el comportamiento
pero no los detalles internos.
Ocultamiento: Es la capacidad de ocultar los detalles internos del
comportamiento de una Clase y exponer sólo los detalles que sean necesarios
para el resto del sistema.
DIFERENCIAS ENTRE LAS
METODOLOGIAS
DESARROLLO ESTRUCTURADO
Programación estructurada, diseño estructurado, análisis estructurado, especificaciones
funcionales: gráficas y particionadas
Mínimamente
redundantes, orientadas a procesos, orientadas a
datos, jerárquicas y no Jerárquicas.
Se concreta en especificar lo que se
requiere que haga el sistema o la aplicacion y no se establece como se
cumpliran los requerimientos o la forma en que se implantará la aplicacion.
Las herramientas que utilizan para el
analisis son diagramas de flujos de datos, entidad/relación, diccionario de datos,
transición de estados, entre otros.
Está orientado hacia las
funciones y se concentran en los procesos que transforman los datos.
DESARROLLO OO
La esencia del desarrollo orientado a
objetos, es la identificación y organización de conceptos del dominio de la
aplicación y no
tanto de su representación final en un
lenguaje de programación.
Se examinan los requisitos desde la
prespectiva de las clases y los objetos encontrados en el vocabulario del
dominio del problema.
Dependiendo de las metodologias, pueden
emplear diferentes herramientas, entre las más comunes el modelaje de objetos, estados,
objetos/estado, entre otros.
Esta orientado hacia los datos y resta importancia a los procedimientos y al modelado
del negocio y datos.
CASO PRACTICO
Almacenes Miguel es una empresa
Venezolana que se dedica a la distribución de productos con excelencia en
precio, calidad y variedad para clientes que compran volumen, ofreciendoles
ventajas y oportunidades para crecer. Abrimos nuestras puertas al público en
Marzo de 2006 y como objetivos perseguimos ser para nuestros clientes target,
la fuente más segura de productos, dandoles la oportunidad de competir en sus respectivos
mercados. Para nuestros Proveedores, los distribuidores de sus productos al mas
bajo costo posible en el máximo número de puntos de venta.
En este negocio se trabaja con una
amplia gama de productos en las áreas de alimentos y no
alimentos, por lo cual, una visita a la tienda soluciona todas las
necesidades de compra de nuestros clientes. Además de contar con productos de
marca de marca propia y marcas exclusivas al mejor precio. Siendo un
autoservicio mayorista nos dirigimos a pequeños que medianos comerciantes:
detallistas, hotelería, colegios, abastos, restaurantes, instituciones públicas
y privadas en general y a consumidores finales que compren volumen y ahora con
este site pueden realizar operaciones en línea en la comodidad del hogar o desde sus oficinas.
Nuestros clientes son registrados en
sistema solicitandoseles el número de cédula o rif, nombre, dirección,
telefonos, email y una vez registrados podrán realizar compras on-line en
efectivo (deposito bancario), tarjeta de débito, cheque conformable que
entregará al recibir la mercancia o tarjeta de
crédito.
El cliente luego de realizar una compra
on-line recibirá en formato PDF una factura que contiene detalladamente
artículos, precios, descuentos, impuestos y datos personales del cliente.
Clases:
Para este caso practico podemos
trabajar con las clases CLIENTES, PRODUCTOS, AREAS, FORMAS DE PAGO Y FACTURAS,
donde por ejemplo, cada instancia de la clase FACTURA es un objeto FACTURA, es
decir, cada vez que se realiza una factura, se crea un elemento de la clase con
sus atributos correspondientes y comportamiento determinado.
Atributos:
Cada objeto instanciado en una clase de
este caso practico tiene predefinidos una serie de atributos o caracteristicos
propios de la clase, por lo cual para diferenciar un objeto de otro los valores
o dominios difieren uno de otros. Entonces por ejemplo, si tenemos dos objetos
instanciados en la clase AREA, uno podría tener Cod_area = 1 y Nombre_a = ‘LIMPIEZA’
y otro podria ser Cod_area = 2 y Nombre_a = ‘ELECTRONICOS’, por lo tanto, los
dos objetos tienen los mismos atributos (propios de la clase) pero difieren en
el valor asignado a cada uno de ellos.
CLASE |
Atributos |
Tipo |
CLIENTES |
Cod_cliente Identif_c nombre_c
dirección_c telefonos_c Email_c |
Numerico Alfanumerico Alfanumerico Alfanumerico Alfanumerico Alfanumerico |
PRODUCTOS |
Cod_producto Nombre_p Cod_Area Marca_p Precio_p Tipo_iva_p Info_adicional_p |
Numerico Alfanumerico Numerico Alfanumerico Numerico Numerico Alfanumerico |
AREAS |
Cod_area Nombre_a |
Numerico Alfanumerico |
FORMAS DE PAGO |
Cod_tipo_pago Nombre_t |
Numerico Alfanumerico |
FACTURAS |
Codigo_factura Fecha_f Cod_cliente Cod_producto Cantidad Descuento_f Subtotal_f Total_f Cod_tipo_pago |
Numerico Fecha Numerico Numerico Numerico Numerico Numerico Numerico Numerico |
Metodos:
Además de las propiedades que pueden tener
(y de hecho tienen) los objetos de cada clase, tambien tienen un comportamiento
determinado, es decir, que acciones pueden ser efectuadas sobre tales objetos,
esto podríamos compararlos con las funciones o procedimientos de la metodología
estructurada, solo que en OO se pueden definir dentro de la misma clase.
Entonces, como un ejemplo tenemos que un objeto de la clase CLIENTE con sus
respectivos atributos realiza una compra, entonces se hace un llamado (envio de
mensaje) al metodo COMPRAR, que envuelve el hecho de realizar una factura con
productos que van a salir de inventario, impresión de un documento, etc.
Entonces, nuestras clase CLIENTE podría
verse asi:
CLASE |
Atributos |
Tipo |
CLIENTES |
Cod_cliente Identif_c nombre_c
dirección_c telefonos_c Email_c |
Numerico Alfanumerico Alfanumerico Alfanumerico Alfanumerico Alfanumerico |
|
Metodos |
Tipo |
|
comprar |
Numerico |
|
registrar |
Numerico |
Entonces el metodo COMPRAR devuelve como
resultado el número de la transacción (factura) y el método registrar consiste
en agregar un nuevo cliente al sistema, donde el resultado de tal registro podría
ser un número unico de afiliación (cod_cliente).
Infografía
En este site de
internet se expone que la programación
estructurada nace para que los programas
fueran más fáciles de manejar ya que el problema era la complejidad de los
mismos cuando se trataban de resolver quedaban con fallas ocultas. A raíz de
ello se llevo la programación estructurada a el análisis
y diseño.
El enfoque de la metodología
estructurada son los procesos
sus entradas y salidas, ofreciendo que los programas sean menos complejos. http://monografias.com/trabajos10/anali/anali.shtml
El término de Programación Orientada a
Objetos indica más una forma de diseñoy una metodología de desarrollo de
software que un lenguaje de programación,ya que en realidad se puede aplicar el
Diseño Orientado a Objetos (En inglésabreviado OOD, Object Oriented Design), a
cualquier tipo de lenguaje deprogramación.
http://www.ilustrados.com/publicaciones/EpyuVuuAlEAFjVSJEI.php
El Lenguaje Unificado de Modelaje (Unified
Modeling Language UML) es el lenguaje por excelencia en la industria para
especificar, visualizar, contruir y documentar los artefactos de sistemas de
información. Simplifica el proceso complejo de desarrollo de software creando
un “blueprint” para construcción.
http://www-306.ibm.com/software/rational/uml/
La mayoría de los lenguajes de
programación modernos son orientados a objetos ( abreviado
OO ) o en su defecto se aproximan mucho a éstos permitiendo algunas de sus
características como es el caso de PHP.
La programación OO principalmente hace
uso de clases, objetos, relaciones, instancias, propiedades y métodos
http://www.webestilo.com/php/articulo.phtml?art=27
A medida que las computadoras son empleadas cada vez más por personas que
no son especialistas en computación el rostro del desarrollo de sistemas de
información adquiere una nueva magnitud. Los usuarios emprenden ya el
desarrollo de algunos sistemas que ellos emplean.
Éstas situaciones están representadas
por tres distintos enfoques al desarrollo de sistemas de información basados en
computadora
http://html.rincondelvago.com/analisis-y-diseno-de-sistemas-de-informacion.html