sábado, 21 de agosto de 2010

Parte 1 - Conceptos generales

A continuacion se presentan un curso de formación de programacion en java para moviles, si bien se basa en java me, en el curso de formación tambien se adentra dentro del mundo de la calidad y estandarización para tener un estandar en el desarrollo, tambien se omite la parte del uml puesto que se pueden documentar en muchos lugares con esa información.

1) Conceptos generales.

  • Estándares. Son normas y protocolos internacionales que deben cumplir productos de cualquier índole para su distribución y consumo por el cliente final.

  • Calidad. Herramienta básica para una propiedad inherente de cualquier cosa que permite que esta sea comparada con cualquier otra de su misma especie.

  • Normas. Es un documento, establecido por consenso y aprobado por un organismo reconocido (nacional o internacional), que proporciona para un uso común y repetido, una serie de reglas, directrices o características para las actividades de calidad o sus resultados, con el fin de conseguir un grado óptimo de orden en el contexto de la calidad.

  • Metodología. Forma de organización y trabajo en equipo, como puede ser XP, Scrum, RUP.
2) Objetivos a cumplir en el desarrollo.

  • Reutilización de código o artefactos, al encapsular distintos componentes se pueden reutilizar en posteriores desarrollos, agilizando el tiempo de desarrollo y de mantenimiento.

  • Rapidez en el desarrollo, el uso de librerías base y métodos que maximicen la productividad y tiempos de respuesta. 

  • Calidad, el tener inspecciones así como normas asegura el desarrollo en base a un estándar lo que facilita el mantenimiento y la comprensión del sistema aun que hallan diferentes programadores.

  • Los anteriores puntos se alcanzan con las siguientes herramientas.

  • Uso de estándares de codificación (notaciones, documentación del código, herramientas a usar).

  • Uso de refactorización, y el uso de librerías. En una clase no puede haber código repetido, se debe buscar la refactorización, si es usado en más de una clase o bien más de un proyecto se encapsula en una librería.

  • Desarrollo en capas desacopladas.

  • El uso de inspecciones se refiere al echo de verificar periódicamente que se cumpla con los estándares no se hace un testing el cual se hace al fin de un modulo sino se busca que el producto cumpla con los estándares de programación, se busca mantener separado la inspección del testing para que no impacte al desarrollo al trabajar en parejas se busca que las inspecciones y los testing sean entre los elementos de los equipos, obviamente al hacer un testing se hace una inspección rápida pero ya con la certeza de que el código cumple un estándar.

  • Uso de documentos y checklist usados en todo el proceso para ir validando el proceso de desarrollo y testing.

  • Un modelo en espiral es mas dinámico y cambiante que uno en cascada, en cada ciclo se hace una retroalimentación y cambio principalmente en la parte de diseño de la aplicación y la interfaz de usuario, lo que se busca es el producto final sea lo que necesita el cliente para automatizar sus procesos además de cumplir con los lineamientos de usabilidad.

  • Los objetivos fundamentales son: la aplicación debe dar el resultado esperado por el cliente y debe de funcionar sin errores. 
3) Objetivos a cumplir hacia el cliente, ¿Qué espera un cliente?

  • Como empresa de desarrollo de software el objetivo es automatizar procesos y evitar duplicidad de tareas, por ejemplo automatizar una nomina, y evitar que el trabajador y el contador lleven cuenta de lo mismo, agilizando el proceso y descargando de funciones que no corresponden a diferente personal. 

  • Cumplir con los constraints (requerimientos) especificados del cliente, mismos que deben estar por escrito, los cambios deben ser notificados y aprobados para poder ser ejecutados.
4) Proceso de desarrollo por versión.

  • Análisis: obtención del domino de los procesos de los clientes a través de entrevistas, reuniones, cuestionarios (usando formatos para recavar información), así como definir requerimientos y especificaciones, si un cliente pide un elefante rosa en su sistema, debe llevar ese requisito, ni mas ni menos. 

  • Diseño: Diseño y modelado del sistema con UML.

  • Programación: En base a un diseño se procede a programar el sistema.

  • Implementación: Una vez que se ha revisado que no tenga errores y cumpla con los requisitos, se procede a implementar, capacitar y revisar que el sistema funcione y sea usado en la empresa.

  • Mantenimiento: Es la fase en la cual se da mantenimiento a posibles Bugs y adecuaciones de los clientes.
5) Generalizando.
  • La idea de la estandarización es análoga a la ISO 9000.
  • La idea básica de la ISO es que en un macroproceso tienes mini procesos y que estos deben tener conexión entre si y si todo el macroproceso funciona siempre de la misma manera sin desviación, obtienes siempre el mismo resultado.
  • Las normas más importantes en el software son:
  • CMMI.
  • ISO.
  • Moprosoft (norma mexicana).

6) Análisis y diseño. 
  • La documentación minima para tener un sistema es el diagrama de la base de datos, e nuestro caso usamos siempre como herramienta el Erwin data modeler, por su capacidad de exportar en diferentes motores los esquemas diseñados. 
  • Los diagramas UML para tener una documentación minima y práctica son los siguientes (Usando la herramienta Enterprise Architect):
  • Diagrama de casos de uso.
  • Diagrama de clases.
  • Diagrama de estados.

7) Otras herramientas hacia el cliente.

Cuestionarios sobre el negocio hacia el cliente para conocer a gran nivel como es su proceso de negocio, no estamos modelando simplemente conocer como es su proceso del cliente.

¿Cuantos vendedores tiene?
¿Los vendedores manejan rutas?
¿Manejan listas de precios?
¿Maneja un almacen mobil?
¿Cuantos productos manejan?
¿Formas de pago que manejan (Efectivo, Crédito Cheque u otro)?

No hay comentarios:

Publicar un comentario