Aprende a diseñar un nuevo proyecto!!!

Saludos colegas de esta comunidad

En este apartado pretendo desarrollar un pequeño proyecto mediante la tecnologia java, y siguiendo los puntos de desarrollo de software dirigiendo este proyecto para todos aquellos que somos novatos, esperando contar tambien con la colaboracion de los miembros expertos con sus opiniones y sugerencias aqui mismo ademas de plantear algunas preguntas pondre el codigo fuente de los programas para que opinemos si es la manera correcta de hacerlo o sugerir una manera eficiente esto nos ayudara a determinar la forma correcta de hacer las cosas...bien manos a la obra..

El proyecto trata de lo siguiente:

-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*-ANALISIS-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*

Se pretende desarrollar un sistema que permita la gestion de una empresa que se dedica al mantenimiento de equipo de computo el cual se ingresa al taller mediante una orden de servicio que lleva los datos tanto del cliente como del equipo que se pretende reparar (o revisar) este proceso lleva los siguientes pasos:

1-ORDEN DE SERVICIO
1.1.- El equipo es revisado por un tecnico
1.2.- Se ingresa al taller solamente si el dueño requiere repararlo (diciendole un costo aproximado) o sino se sabe la falla
1.3.- Se hace una orden de servicio tomando los datos (se daran mas detalles sobre la marcha)
1.4.- Cuando el equipo ingreso y un tecnico lo va a reparar PROCESA LA ORDEN, y se imprime un tiket de proceso
1.6.- Una vez que se termino de reparar el equipo, se FINALIZA LA ORDEN, y se imprime una hoja del tecnico (se daran mas detalles sobre la marcha).
1.7.- Cuando el equipo esta listo se le notifica al cliente y cuando la viene a recojer se ENTREGA LA ORDEN y se imprime un recibo
Nota.. todo debe de quedar almacenado para estadisticas y revisiones

2-BITACORA DE ACTIVIDADES
2.1.-En esta bitacora se registran las actividades importantes que estan por realizar (asignadas a cada miembro de la empresa) tambien se registran las llamadas de los clientes pidiendo informes sobre su equipo o sobre algun accesorio en especial.
2.2.-Cuando la bitacora es revisada por el administrador, este reparte las tareas asignandolas a un miembro de la empresa, asi como tambien ordenandolas por prioridad, URGENTE, IMPORTANTE, PENDIENTE,
2.3.-Cuando la actividad es revisada por quien la tiene a cargo y la realiza, le asigna el estado de FINALIZADA y a su vez ingresa las conclusiones u observaciones de dicha actividad.
Nota.. todo debe de quedar almacenado para estadisticas y revisiones

estos serian los puntos mas importantes por ahora del proyecto, ademas de que tambien contendra las opciones de registro de usuarios (con su categoria ejemplo, administrador, tecnico, programador, ventas, etc) y tambien el registro de los clientes sin embargo esas no los pongo como puntos ya que no necesitan de mucho analisis y en caso de que si, ya hay muchos ejemplos de ello(seria redundante poner un analisis sobre clientes y empleados, aunque si pondre el codigo correspondiente a dichos modulos).

conviene aclarar que este proyecto ya lo diseñe utilizando visual basic 6.0 y SQL Server 7 por lo que no es una tarea ni nada por el estilo, solo tiene propositos meramente educativos y de reafirmación de conocimientos

Bueno podriamos tomar la parte de arriba como el analisis (muy escaso pero eso ya depende de cada quien y de la calidad que se le desee dar al proyecto en este caso nos efocaremos mas al codigo.. )

Ahora bien para hacer interezante este asunto y mas colaborativo que les parece que quien guste opinar sobre como desarrollar este proyecto hay opciones puede ser un Applet, pagina web mediante JSP o una aplicacion JAVA de escritorio, cabe mencionar que el sistema debe funcionar en red Local y remotamente.. yo tengo mi solucion la cual tambien podre mas adelante... grecias por su participacion..

Comentarios

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

Interezado

Creo que es interesante la propuesta yo prefiero que se a una aplicacion de escritorio ya que se me hace un poco facil, pero igual si es una aplicacion web para aprender algo nuevo, de entrada creo que el analisis de requerimientos ya esta, yo continuaria por identificar las clases y las relaciones entre estas bueno voy a dijerir lo que hay.
Saludos...

Imagen de ezamudio

Buen punto: GUI

Por la naturaleza del sistema es muy importante pensar muy bien qué GUI es mejor, si algo web simple o una RIA o de plano algo con Swing o SWT, o algo en JavaME para algunas partes, etc...

Por ejemplo la bitácora de actividades tiene dos partes: registrar las llamadas (debe ser una GUI muy ágil para poder meter la info mientras se está en el teléfono) y revisar las actividades (que incluso podria ser web para que alguien revise actividades desde fuera de la oficina).

La orden de servicio debe ser también algo fácil de usar y muy orientado a que la captura de datos sea rápida, usando casi puro teclado por ejemplo, para que los técnicos se enfoquen realmente a su trabajo y no sea una distracción que les quite mucho tiempo estar registrando cosas (si se los haces difícil terminan por no usarlo).

Imagen de jali

interesante

Buena tarea...
a mi me gustaria que fuera algo web.
Estaria mas chido que se planera algo asi como la SCJD... hacer un proyecto con la documentacion y todo lo que esa certificacion exige. Y pues apoyarnos entre varios.
Seria como un apoyo extra o no? :P
Y mi nieve... ps de limon y con chamoy! ja.
Buen aporte!

Imagen de Shadonwk

sip, de echo la bitacora

sip, de echo la bitacora pienso dividirla en dos partes en una poner los estatus de los pendientes atrazados procesados, (URGENTE, IMPORTANTE, PENDIENTE), es decir que ya se asignaron a una persona en especifico y con una prioridad. y en la otra parte subdividirla en dos una para mostrar los pendientes generados al dia que aun no se asignan a la persona y no se les ha dado su prioridad (esta tarea la hace por su puesto el administrador) y en la parte de abajo el formulario necesario para la captura de las llamadas que contiene los datos: quien llamo, empresa, asunto, y quien recibio la llamada (generalmente la recibe una secretaria) cabe aclarar que la fecha y hora se almacenan automaticamente tomando los actuales de la pc.. de esta manera quedarian 3 divisiones jeje.. los demas apartados estaba pensando hacerlos en ventanas separadas llamados desde un menu llamemoslo (modulo clientes, modulo empleados, modulo orden de servicio y los que salgan) aclaro que los tencnicos no hacen la orden de servicio ellos solo diagnostican y dicen si es necesario que se quede el equipo la secretario pide los datos y llena la orden esto evita que ellos piedan mas tiempo del necesario.. bien yo estaba pensando en hace el sistema via web por medio de PAGINAS JSP de esta manera se podra acceder en cualquie pc ya sea local (si se conoce la ip) remotamente.., solo que segun he leido ya no es muy eficiente hacer JSP por aquello de que ya van a quedar obsoletos.. ahora un aplet seria una buena opcion???

Imagen de ezamudio

applet?

Los applets son más obsoletos que los JSP... usa JSF o Tapestry o algo similar, no uses JSP simples. A lo que se refieren con que JSP es obsoleto es que usar la tecnología de JSP puro ya es algo obsoleto porque hay muchos frameworks para ayudarte con desarrollo web. Struts, JSF, Tapestry, Spring MVC, Spring Web, etc.

Imagen de jali

applet no

Que ondas... ps no te recomiendo usar applets. Son mas obsoletos que las jsps puras.
Yo te recomendaria usar tapestry. Lo he empezado a utilizar y esta bastante chidin.

Imagen de jiturbide

"Diseñar" Pero que tipo de diseño?

En el titulo del post se menciona "Diseñar", pero veo que se estan centrando unicamente en el diseño no funcional: tecnologia, frameworks para la vista, etc.

La fase de diseño contempla Diseño Funcional (la propuesta de como lograr la funcionalidad requrida) y Diseño No Funcional (El soporte tecnologico para la funcionalidad) y este diseño solo se comienza al terminar con el Analisis de Requerimientos y este a su vez se desprende de la Obtencion de Requerimientos que ya lo tienes en el listado que colocaste en el post inicial.

Por lo anterior, se va a describir el Diseño Funcional o solo el No Funcional?

Si post esta dirigido para los desarrolladores novatos, como mencionas, no seria bueno que se llevaran la impresion que diseñar es empezar a elegir tecnologia que mas le gusta a uno, empezar a tirar codigo y corregir sobre la marcha. Este es el problema con muchos de nuestros jefes que quieren implementar un requerimiento con un lenguaje orientado a objetos como java sin haber hecho el analisis y diseño orientado a objetos correspondiente.

Mi aportacion es:

Hay muchas metodologias para el desarrollo de una aplicacion. Pero una en especial sencilla y util es la que Sun Microsystems describe en sus cursos:

1. Vision de Negocio
2. Obtencion de Requerimientos
3. Analisis de Requrimientos
4. Diseño Funcional
5. Diseño No Funcional o Arquitectura
6. Implementacion
7. Pruebas
8. Despliegue

En base a esta metodologia para poder realizar el punto 5 que estan discutiendo necesitan primero lo siguiente
Entradas:
* Documento de Casos de Uso (Este se obtiene en el Analisis)
* Diagrama de Clases (Este se obtiene en el Analisis)
* Diagrama de Comunicacion de cada caso de Uso (Este se obtiene con el Diseño Funcional)
* Listado de Requerimientos No Funcionales (En la Obtencion de Requerimientos)

Salidas (Al menos):
* Diagrama de Componentes
* Diagrama de Deployment
* Diagrama de Capas y Filas (Aqui especificas que tecnologia vas a usar en cada capa y por cada producto)

Esto se menciona en esta metodologia, pero hay mas: RUP, MSF, Scrum, en cualquiera primero se desglosa la funcionalidad paso por paso y despues le pones la tecnologia del sabor que quieras.

Una recomendacion: Elijan 1 caso de uso para desarrollarlo de principio a fin y cuando lo terminen vayan por el siguiente.

Saludos