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