Equipo 1 Fundamentos De Programacion

BITACORA DEL EQUIPO 1

Tuesday, October 17, 2006

viSion mas profunda al diSeño

Las etapas del proceso son seis: Modelado del Negocio, Modelado de Requisitos, Modelado del Análisis, Modelado del Diseño, Implementación y Validación.


En la primera etapa del Modelado del Negocio identifican los procesos del negocio, se definen los casos de uso del negocio, se identifican los roles (diagrama de roles) y se modelan los flujos de tareas asociado a cada proceso de negocio, mediante escenarios y diagramas de procesos que muestran la interacción entre roles para conseguir el objetivo. Dado la pequeña magnitud de la aplicación a construir, no ha sido necesario realizar el Modelado del Negocio para esta práctica.


En la segunda etapa, por la que comenzamos directamente, se define el Modelado de Requisitos mediante los Casos de Uso (CdU) y el Modelo Conceptual.


Un CdU es creado para cada actividad que es soportada por el sistema, y proporciona un buen nivel de granuralidad para el desarrollo posterior. En ellos se describen principalmente los pasos que va a seguir la interacción con el sistema que el CdU representa.


En las etapas de Modelado del Análisis y Diseño se define para cada CdU un diagrama de secuencia del sistema, que muestra los eventos que un actor genera durante la interacción con el sistema. Cada evento da origen a una operación del sistema. Los contratos describen los efectos de cada una de las operaciones; suponen pues, una descripción más detallada sobre el comportamiento del sistema en términos de cambios de estado a los objetos del Modelo Conceptual tras la ejecución de una actividad con el sistema. Es por esto que la parte principal de un contrato sean las Pre y sobre todo, las Post condiciones, en las que se indican los objetos o asociaciones creadas o eliminadas, así como la modificación de atributos.


Se ha organizado el documento de manera que cada CdU se engloba en un apartado, en el que se muestra la siguiente información:

La especificación textual del CdU, siguiendo la plantilla recomendada por Larman para la descripción de CdU. Cualquier suposición al margen del enunciado original de la práctica se incluirá antes de cada especificación.

Diagrama de secuencia del sistema para ese CdU, en el que, como ya hemos comentado, se muestra los eventos que el actor genera al interactuar con el sistema para ejecutar ese CdU.

Los contratos de cada una de las operaciones que aparecen en el diagrama de secuencia, junto con sus correspondientes diagramas de colaboracion. Para todos ellos se ha intentado aplicar lo máximo posible los patrones GRASP, logrando así un mejor diseño.


Finalmente se realiza la etapa de generación de Código e Implementación. En este Proyecto sólo realizamos la generación de Código de forma automática, pero no se lleva a cabo ninguna implementación concreta, ni por tanto, el proceso de Validación.

Author: Antonio Montoya López

Diagrama de Interaccion

Representacion Grafica de Clases

La representación de una clase cualquiera en un diagrama de UML lleva una estructura determinada, llevando en la parte de arriba, el nombre de la clase siempre con la primera letra mayúscula.
En la parte de abajo se agregan todos los atributos o datos de la clase, siempre con letras minuscula, y tambien se puede escribir al lado de cada atributo el tipo de datos que se debera utilizar en el programa, para mayor facilidad de identificación.
Por ultimo, en la parte inferior, se agreagan los métodos de la clae, en minusculas y con dos parentesis al final para identificar que son procesos.
El diagrama de clases que representamos para nuestra problemática es el siguiente:Author: Antonio Montoya López

2.6 Introduccion al diseño de la solucion

El diseño de la solución llama al equipo de trabajo a planter multiples soluciones posibles a la problemática, para analizarlas y determinar cual es la mejor opción, partiendo de eso, se procede a desarrollar a diseñarla y representarla, en esta caso, usando UML.

Definición de la problemática:

Un videoclub se encuentra en un estado en el que es dificil atender a los clientes, ya que se los atiende de forma lenta, y tambien es dificil llevar un control de todas las peliculas que tienen y que van en aumento.
Es decir, el negocio se encuentra en una rápida expansión, y requiere de cambios estructurales para poder resolver su problema.

En base a la problematica del videoclub propuesta por nuestro equipo, definimos las siguientes posibles soluciones:

1.- CONTRATACION Y CAPACITACION
DE EMPLEADOS.

3.- CLASIFICAR Y ETIQUETAR LOS
PRODUCTOS EN VENTA.

3.- CREACION DE UN SISTEMA
DE INFORMACION
.


JUSTIFICACION DE LA DECISION DE DISEÑO

De las tres posibles soluciones propuestas, determinamos que la más efectiva seria la creacion de un sistema de información, a continuacion planteamos nuestras razones:


•Creación de un sistema de información
•Mayor eficiencia en el manejo del inventario de los productos (Base de datos)
•Procesos automatizados
•Actualización
•Control en las reservas
•Mayor rapidez al momento de atender al cliente

Autor: Antonio Montoya López y Gerardo Aguilar

2.3 El UML como una herramienta de modelado de objetos

El Lenguaje de Modelamiento Unificado (UML - Unified Modeling Language)
es un lenguaje gráfico para visualizar, especificar y documentar cada una de las partes que comprende el desarrollo de software. UML entrega una forma de modelar cosas conceptuales como lo son procesos de negocio y funciones de sistema, además de cosas concretas como lo son escribir clases en un lenguaje determinado, esquemas de base de datos y componentes de software reusables.

En UML existen de forma general dos tipos de diagramas:

  1. Diagramas estáticos (estos diagramas le interesan al cliente)
  2. Diagramas dinámicos (son de mayor utilidad al desarrollador del sistema)



UML representa la información de un sistema en forma gráfica y pretende ser un estándar mundial de modelado.










Es importante especificar detalles importantes sobre UML:

  • NO es una metodología .- debido a que no esta determinado como una serie de pasos a seguir o un reglamento definido.
  • NO es un lenguaje, es mas bien una herramienta de modelado.- en UML no se ve codigo de programación, sino que es más general, eh ahi su flexibilidad y practicidad.
  • Las representaciones en UML deben ser "simples", pero "potentes" o expresivas, es decir, que lo representado en diagramas UML debe ser entendible para el cliente, y ademas potente porque debe contener información importante que pueda convencerlo y asi poder desarrollar un proyecto.















aquello que se presente debe convencer al cliente



Autor: Gerardo Aguilar Hernández

2.2 El Modelo como resultado de la abstracción.

Cuando abstraemos algo, se sabe que ese algo se vuelve menos complejo y que se forma una imagen general del mismo. Cada persona puede tener una imagen abstracta diferente a las demás acerca del mismo objeto. Un modelo tambiés es sinónimo de un conjunto de características, es como una plantilla o un patrón. El modelo nos puede servir para desarrollar o crear algo de forma precisa y estándar.
Se puede decir que todo lo visto como abstracto puede llegar a servir como un modelo determinado.


un ejemplo de modelo puede ser un molde para hacer galletas


Ahora bien, un modelo en programación sirve para lo mismo, el modelo nos sirve para englobar la estructura de un sistema de información, todos sus componentes y elementos funcionales. la ventaja principal y el uso práctico de los modelos es el poder mostrar al cliente que pidio el sistema de información un "demo", que es una muestra o una demostración del sistema en su estructura y funcionalidad, esto es importante para que el cliente vea el avance del trabajo y evalue si lo que se esta desarrollando realmente cumple con sus espectativas o si le es útil, de tal manera que si el cliente queda convencido, el equipo de desarrollo del software sigue adelante con una idea más clara para afinar los detalles del mismo, incluso en ocasiones al cliente le agrada tanto el demo del software, que prefiere quedarse con el y trabajar con el que esperar a que lo terminen o afinen los detalles, puesto que en ese momento le es completamente funcional.




pero si el cliente no queda convencido con el demo, pueden pasar dos cosas, o el equipo desarrollador trata de arreglar aquello que esta mal, realizando un análisis nuevamente para aclarar los puntos en los que cometio el error, lo cual tomaria mas tiempo y dinero, o simplemente el cliente cancela el pedido y busca a otro equipo de desarrolladores de software, que pueda desarrollar un sistema que cumpla con sus necesidades al cien porciento. E aquí la importancia de los modelos, por lo que se deben tener muy en cuenta.
















aceptacion del proyecto



ó















rechazo del proyecto




a continuación algunos pequeños ejemplos de modelos en el mundo real:


1.- la receta para preparar un pastel.

2.- los planos de una casa.

3.- el boceto de un vestido hecho por un diseñador.

4.- un formato para elaborar un examen.
5.- el organigrama de una empresa.


Autor: Gerardo Aguilar Hernández

2.4.2 IDENTIFICAR FUNCIONES DEL SISTEMA.

Consiste en describir por escrito a nivel técnico los procedimientos relacionados con el programa y su modo de uso. También se debe documentar el programa para que sea más entendible.




















EJEMPLO:
En el problema planteado del video club, se escogio la solución de sistema de información, deacuerdo con esto el sistema de información se debe acoplar a las necesidades del negocio, en este caso El VidoClub pues es la solución que abarca con todas las expectativas que necesita dicho video club incluyendo el control de inventario, los contactos con los proveedores y clientes, la agilización de los procesos y la oportunidad de actualizar todos los datos de manera fácil y eficiente, estas son las funciones minímas que debe llevar acabo el sistema de informaicón para que cumpla con el objetivo deseado, pues implementando la tecnología en este tipo de problemática da a conocer que es posible realizar un sistema en cualquier lugar que necesite un sistema computarizado.

Autora: Celia Rubí Náfate Velázquez.

2.4.1 ANALIZAR EL ENUNCIADO.
El análisis comienza con la definición de una problematica generada por clientes y, posiblemente, por los desarrolladores.
EJEMPLO:
En la problematica del video club ya tenemos definida la problematica.... en resumen es un negocio que se esta creciendo y tiene la necesidad de tener un mejor control de los todos los datos, para esto se busco la mejor solución que es un sistema de información, se determinaran los elementos a representar en diagramas para ilustrar mejor el desrrollo y la solución.
Clases y métodos identificados
Clases:
Cliente
Película
Proveedor
Pago

Procesos: altas, bajas, consultas, modificar datos, recargos, cobro, renta y venta, pedidos, cancelación.
ING. SITEMAS COMPUTACIONALES
FUNDAMENTOS DE PROGRAMACIÓN
EQUIPO 1
CELIA RUBI NÁFATE VELÁZQUEZ.


2.4 PLANTEAMIENTO DEL PROBLEMA.
En el planteamiento del problema es donde el programador debe entender comprender y analizar, el problema que se le presenta al cliente, el programador despues de analizar el problema debe encontrale una solución que sea factible.
Acontinuación se muestra un ejemplo del planteamiento de un problema.
EJEMPLO:
En un video club detectamos un problema en su forma de organización y en su inventario, pues es muy difícil manejar datos en hojas de papel y se hace demasiado lenta la consulta de las películas, una consulta tan sencilla necesita un determinado lapso de tiempo; a esto le sumamos que no se cuenta con el suficiente personal para agilizar cualquier operación que se requiera en determinado momento. Estos factores contribuyen a la atención lenta del cliente o socio en el momento del cobro, dificultad de comunicación con el proveedor, durante el proceso de renta o de compra de una película, los registros de los socios se lleva de forma manual. Se determino que el negocio se encuentra en expansión recibiendo mayor demanda y mayor cantidad de clientes, por tanto estará sujeto a futuras modificaciones en su control y a cambios estructurales específicos.
ING. SITEMAS COMPUTACIONALES
FUNDAMENTOS DE PROGRAMACIÓN
EQUIPO 1
CELIA RUBI NÁFATE VELÁZQUEZ.

2.5.1.1 Descubrir objetos en el dominio del problema

En la problematica que planteamos descubrimos los siguientes objetos:
  • cliente
  • pelicula
  • proveedor

los cuales son las principales bases para la elaboracion del desarrollo de nuestro sistema pues estos objetos nos otorgaran los datos necesarios para realizar nuestras tablas y diagramas necesarios en el analisis del planteamiento de una solucion de dicha problematica.

2.5.1.3 identificar metodos en los objetos

La identificacion de métodos se puede realizar a partir del planteamiento de la problemática, considerando las funciones necesarias que deben tener cada una de las clases y objetos.

Por ejemplo y basada en la problematica que considero nuestro equipo que fue la del videoclub
Del objeto cliente podemos decir que sus métodos son:
  • altas
  • bajas
  • consulta
  • modificar datos


objeto: pelicula

métodos:

  • altas
  • recargo
  • apartado
  • renta
  • venta
  • pedido
  • bajas
  • modificar datos


objeto: proveedor

métodos:

  • altas
  • bajas
  • consulta
  • pedidos
  • modificar datos

2.5.1.2 Identificar atributos en los objetos.

En la problematica del video club localizamos las siguientes clases:
  • cliente
  • pelicula
  • proveedor

Por ejemplo de la clase cliente se desprenden los siguientes objetos:

  • nombre: EZEQUIEL PEÑALOZA CUNDAPI
  • pelicula: EL SEÑOR DE LOS ANILLOS AV10
  • direccion: 3pte sur entra 4 y 5 sur colonia centro #518a
  • telefono: 61 14 5 87
  • clave: tpf101286
  • estado: sin deudas

clase: pelicula

  • nombre: EL SEÑOR DE LOS ANILLOS
  • fecha de entrega: 18 DE OCTUBRE
  • fecha de expedicion: 16 DE OCTUBRE
  • clave: AV10
  • clasificacion:AVENTURAS
  • estante: V2
  • precio: $30
  • existencia: 30

clase: proveedor

  • nombre: VIDEOMAX
  • clave: VD78
  • telefono: 61 58 96 1
  • email: WWW.VIDEOMAX.COM
  • direccion: 5 norte entre 12 y 13 pte. no 1018b

2.5.1 Analisis

En esta fase se pretende hacer un analisis detallado de los objetos que se encontraran en la problematica, tambien se identifican con claridad los objetos y sus atributos, asi como tambien los metodos que serian los procesos que realiza cada clase pues es el papel que juega cada objeto en la elaboracion del sistema. Mad que nada es saber dicha problematica para disernir lo que necesitamos para elaborar un buen sistema e implementarlo con eficacia y seguridad, satisfaciendo las necesidades del lugar que necesito este tipo de tecnologia. Pues se busca mayor calidad en el desarrollo de mas y mejojres softwares para sistematizar un establecimiento de x venta.

2.1 Definicion de clases, atributos, métodos y objetos

OBJETOS:

un objeto como ya se dijo en la unidad anterior se puede considerar como una cosa o entidad nominal, que tiene como caracteristicas;

.-atributos (que ahora llamaremos tambien datos)

.-Métodos (anteriormente conocidos como comportamiento)



un objeto puede ser cualquier cosa que nos rodea en el mundo real, una silla, un cuaderno, una fruta, un ave, el monitor en el que se encuentra visualizando estas palabras en este momento, etc.
Ahora, tambien podemos considerar como objetos a ciertos elementos abstractos en programación, que son aquellos pertenecientes a una clase, y que conservan sus mismas caracteristicas, pero ya no se considerará como algo tangible, si no mas bien como algo mas abstracto y orientado a la programación.



ATRIBUTOS:


Los atributos son características que describen a determinado objeto, como puede ser su nombre, edad, sexo, tamaño, forma, color, altura, etc.
En este momento los atributos también podran ser llamados "Datos" de los objetos, involucrandonos un poco más con lo referente a la terminologia de un sistema de información.

Considerando por ejemplo el objeto ave, puede tener los siguientes "atributos": alas, plumas, pico, patas, entre otros.

Los atributos son elementos importantes en el campo de la programación, ya que seran determinados de forma más especifica, y de acuerdo al analisis del contexto o ambiente de donde se extraigan los objetos, determinando los atributos que nos serán útilies en determinado momento, y no dejando nada de forma ambigua o indeterminada.


METODOS:

los métodos, anteriomente tratados como comportamiento, son las cosas que un objeto puede hacer, como estudiar, correr, hablar, trabajar, etc.

.- objeto: Ave .- metodos: volar, correr, comer, brincar.

bueno este ejemplo es enfoncado al mundo real, pero si queremos enfocarnos en el ambiente de la programación, un ejemplo sería:

.- objeto: cliente .- metodos: dar de alta, dar de baja, modificar datos, consulta de datos.

En este caso, son las acciones que podemos realizar sobre determinado objeto, viendolo de manera funcional en un sistema de información.
Los métodos también se definen según lo analizado en la problemática, es decir, según las necesidades presentadas, se agregaran los metodos que se van a utilizar para cada objeto o clase según el fin de dicho objeto o clase.


CLASES:

Una clase es una clasificación o categorización de objetos con características semejantes y que tienen un objetivo en común.

Un ejemplo de una clase es la clase "Aves", dentro de ella se encuentran todos los objetos (en este caso seres vivos) que cumplen con las caracteristicas que definen a un ave como plumas, alas, pico, etc, esos objetos serian por ejemplo, aguila, gallina, avestruz, pato etc.




Cabe mencionar que una clase también puede derivarse en subclases, considerando la primera como "superclase" o "clase madre", asi por ejemplo siguiendo con lo anterior la superclase seria "Aves" y las posibles subclases serian "Aves de rapiña" y "Aves cazadoras", siendo cada subclase más especifica en cuanto a las caracteristicas que deben cumplir los elementos que las conformarian.




Unidad 2 Tecnicas Básicas de modelado de Objetos

Introducción:

El contenido de esta unidad esta enfocado principalmente en todo el proceso que involucra la
resolucion de un problema concreto, desde el planteamiento de la problematica, cualquiera que sea,
hasta el modelado de la solución a través de diagramas de UML.

Primeramente se retomaran algunos conceptos ya conocidos como objetos, métodos y atributos y luego se procedera a explicar de que se trata un modelo y que es el UML.

Seguidamente se comenzara con una problematica, en el caso de nuestro equipo, elegimos un problema en particular el cual servira como ejemplo para explicar los demás puntos.

Autor: Gerardo Aguilar Hernández