domingo, 9 de octubre de 2011

Creación de software

El proceso de creación de software tiene varias etapas:

ANALISIS DEL SISTEMA: Se estudia el sistema problema, en busca de casos comunes, casos especiales, y casos relevantes, sobre el desarrollo de las acciones dentro del sistema, este puede ser, un inventario, registro y clasificación de las respuestas en un encuesta, solicitud de información, entre muchos otros.  Un caso común en casi todos los sistemas principales que tienen como factor, clientes, es que los datos de estos son información importante para la empresa.

Una vez todos estos casos y datos, han sido analizados y clasificados, se  procede a darle solución, por medio del DISEÑO DEL SISTEMA.
El análisis y el diseño del sistema propuesto, suelen ir fuertemente ligadas, por que de un mal análisis, el diseño puede presentar muchas fallas.

En el diseño, hay herramientas y métodos como UML
http://es.wikipedia.org/wiki/Lenguaje_Unificado_de_Modelado



Además que aprendas a utilizar casos de uso, esto es una descripción de los procesos y requerimientos del sistema, en lenguaje coloquial, de modo que el ingeniero y el cliente se puedan entender, y puedan realizar cambios, te dejo el enlace sobre casos de uso

http://es.wikipedia.org/wiki/Caso_de_uso

los casos de uso, generalmente representa los proceso, e interacciones que hay entre actores, y los resultados de estas interacciones.

Otra parte importante del diseño de software, son las bases de datos, donde se irá a guardar la información relevante e importante para el desarrollo de los procesos, hay varios métodos para diseñar una base de datos, entre los cuales hay, modelo entidad relación

http://es.wikipedia.org/wiki/Modelo_entidad-relaci%C3%B3n

Modelo relacional, en el cual se utiliza el proceso de normalización de la base de datos, el cual define reglas, para garantizar la integridad de información y eliminar la redundancia de esta, con base en funciones relacionales.
http://es.wikipedia.org/wiki/Modelo_relacional
http://es.wikipedia.org/wiki/Normalizaci%C3%B3n_de_una_base_de_datos

Y hay varias herramientas que te pueden permitir, llevar a cabo tareas de diseños avanzadas como:
http://es.wikipedia.org/wiki/Diagrama_de_Flujo_de_Datos

El paradigma de programación modular (es lo que hace que existan los dll en windows), es lo que define tareas repetitivas, las que se codifican en fragmentos de código externos, para ser reutilizados, o ejecutados cuando sea necesario:
http://es.wikipedia.org/wiki/Programaci%C3%B3n_modular

Aparte de esto, debes tener en cuenta si un sistema puede ser determinístico (determinista) o no determinístico.  Un sistema determinístico, es un sistema en el cual puedes predecir los estados del sistema, como por ejemplo, el proceso para hacer pan, sabes que primero se mezclan los ingredientes, luego se le da forma a la masa, después se meten al horno, y vuelve e inicia. Este es un sistema determinístico, y una solución para este, puede darse en el paradigma de programación estructurada
http://es.wikipedia.org/wiki/Programaci%C3%B3n_estructurada

En el caso que el sistema no sea determinístico, o sea, incluye el factor azar en sus procesos, como un televisor, por que los únicos dos estados previsibles son prendido y apagado, pero no se puede predecir en que momento, además, un televisor encendido, puede estar en cualquiera canal
Para diseñar un sistema no determinístico, se puede utilizar la POO, o programación orientada a objetos:
http://es.wikipedia.org/wiki/Dise%C3%B1o_orientado_a_objetos
http://es.wikipedia.org/wiki/Programaci%C3%B3n_orientada_a_objetos

También hay muchas herramientas que te pueden ayudar en este proceso, y a dejar mejor definido el diseño del sistema, entre estos encuentras patrones de programación, como Grasp y GoF
http://es.wikipedia.org/wiki/Patr%C3%B3n_de_dise%C3%B1o

Otro patrón, altamente difundido es el MVC (modelo, vista, controlador)
http://es.wikipedia.org/wiki/Modelo_Vista_Controlador

Una alternativa al mvc es la arquitectura de 3 capas
http://es.wikipedia.org/wiki/Programaci%C3%B3n_por_capas
http://www.slideshare.net/Decimo/arquitectura-3-capas

te recomiendo este libro, que es muy completo, se llama: UML y Patrones de Craig Larman
http://www.webfecto.com/2010/05/05/uml-y-patrones-craig-larman/

Por último y no menos importante, se debe escoger lo que puede ser el mejor diseño para la GUI (interfaz gráfica de usuario) del programa, ya que se debe tener en cuenta aspectos básicos que hacen entendible al usuario final, o mejor dicho, que hacen intuitivo para el usuario final, el uso del software
http://es.wikipedia.org/wiki/Interfaz_gr%C3%A1fica_de_usuario
http://es.wikipedia.org/wiki/Interfaz_de_usuario
http://www.monografias.com/trabajos6/inus/inus.shtml

Una vez pasado todo lo anterior, es decir, la etapa de análisis y diseño del sistema, se procede con las etapas de programación, etapa de pruebas, implementación y otras, que al tiro no me acuerdo, pero recuerda que el proceso de creación de software, aunque define unas pautas, se apoya demasiado en paradigmas, patrones y el lenguaje de modelado unificado (UML).

Averigua sobe los roles en la creación de software, como cuales son las funciones del analista y cuales las del diseñador, pero esto, para proyectos grandes

No hay comentarios:

Publicar un comentario