sábado, 5 de noviembre de 2011

Bases teóricas y tecnológicas

Ingeniería de Software.

Es el área del conocimiento que se encarga de estudiar todos los aspectos que alcanzan al desarrollo de sistemas informáticos, entre ellos: ciclo de vida, análisis de requisitos, diseño, documentación, pruebas, calidad, seguridad, análisis de costos, etc.

Requerimientos.

“La obtención de los requerimientos correctos es un proceso difícil. Consiste en la interacción cuidadosa con quienes tienen intereses en la aplicación”. Para desarrollar un software, generalmente en las primeras iteraciones se debe tener claridad en las funcionalidades que va ha ofrecer, que utilidades va a brindar a la comunidad de usuarios. La etapa de requerimientos consiste en capturar con los implicados del software que necesidades (procesos deficientes) de la compañía o entorno determinado va a cubrir, que debe hacer el sistema (requerimientos funcionales), cómo lo debe hacer (requerimientos no funcionales), que riesgos y que restricciones existen. Esta etapa suele realizarse con entrevistas directas entre el analista y el implicado del sistema (dueño del negocio, empleado del negocio, etc.),

Análisis y Diseño.

Las actividades a desarrollar en estas etapas dependen de la metodología de desarrollo de software que se utilice. En el libro Análisis y Diseño de Sistemas de Kendall y Kendall, dice que: “El análisis y diseño de sistemas sirve para analizar, diseñar y fomentar mejoras en la operación de la empresa, lo cual puede realizarse mediante el uso de sistemas de información computarizados”.

El análisis consiste en analizar los requerimientos obtenidos en la etapa anterior mediante la elaboración de unos artefactos que permiten especificar la funcionalidad y la arquitectura del sistema, algunas metodologías utilizan los diagramas de modelado que ofrece UML (Unified Modeling Language) como los casos de uso, los diagramas de clases, entre otros. El diseño consiste en retocar o refinar los artefactos hechos en el análisis, es decir, llevar a un nivel superior (aumentar el detalle) la arquitectura, de forma que los requerimientos estén expresados en términos cercanos a la implementación. Algunas veces en la etapa de diseño se corrigen errores que vienen desde la etapa de requerimientos.

Implementación.

Esta consiste en transformar los resultados del diseño en realidad (producto de software), en esta etapa se escoge un lenguaje de programación y se comienza a escribir las instrucciones necesarias para que el sistema realice las tareas que se han identificado en las etapas anteriores.

Pruebas.

Las pruebas consisten en realizar una serie de “ataques” al sistema. Después de desarrollar una aplicación o módulo de programación se debe validar cada una de las posibles situaciones que ocurran entre el usuario y el software. Las pruebas muestran la presencia de los defectos del sistema; los coloca al descubierto.

Lenguajes de programación, sistemas gestores de bases de datos y servidores Web.

Java.

“Surgió en 1991 cuando un grupo de ingenieros de Sun Microsystems trataron de diseñar un nuevo lenguaje de programación destinado a electrodomésticos. Java, como lenguaje de programación para computadores, se introdujo a finales de 1995. Al programaren Java no se parte de cero. Cualquier aplicación que se desarrolle 'cuelga' (o se apoya, según como se quiera ver) en un gran número de clases preexistentes.

Algunas de ellas las ha podido hacer el propio usuario, otras pueden ser comerciales, pero siempre hay un número muy importante de clases que forman parte del propio lenguaje (el API o Application Programming Interface de Java)”. La compañía Sun describe el lenguaje Java como “simple, orientado a objetos, distribuido, interpretado, robusto, seguro, de arquitectura neutra, potable, de altas prestaciones, multitarea y dinámico”.

Hypertext Preprocessor (PHP). PHP

Es un lenguaje de programación usado generalmente para la creación de sitios web. El nombre es el acrónimo de PHP: Hypertext Preprocessor (en sus comienzos PHP Tools, o, Personal Home Page Tools). PHP es una tecnología Web del lado del servidor, que funciona embebida (es decir, incrustada) dentro del código HTML de una página, dándole mayor dinamismo a la misma. Su sintaxis es heredada de C/Java. Esta tecnología inició como un pasatiempo de Rasmus Lerdorf perohoy en día, gracias a ser libre (Open Source), cuenta con miles de adeptos y actualizaciones muy constantes. Muchas empresas se han fijado en el potencial de PHP, y han dado su apoyo a esta, como es el caso de Zend, uno de los principales contribuyentes para el lanzamiento de la versión 4 (motor zend) y 5 (motor zend2) del lenguaje.

Python.

Es un lenguaje de programación creado por Guido van Rossum aprincipios de los anos 90 cuyo nombre esta inspirado en el grupo de cómicos ingleses “Monty Python”. Es un lenguaje similar a Perl, pero con una sintaxis muy limpia y que favorece un código legible. Se trata de un lenguaje interpretado o de script, con tipiado dinámico, fuertemente tipiado, multiplataforma y orientado a objetos”.

PostgreSQL.

Es un potente sistema de base de datos objeto-relacional libre (opensource), basado en el proyecto POSTGRES de la universidad de Berkeley. Funciona entodos los sistemas operativos importantes, incluyendo Linux, Unix, Solaris, y Windows. Incluye la mayoría de los tipos de datos SQL92 y SQL99. También soporta almacenamiento de objetos grandes binarios, incluyendo gráficos, sonidos, o vídeos. Tiene interfaces de programación nativos para C/C++, Java, Perl, Python, Ruby, Tcl, ODBC, entre otros, y documentación completa. PostgreSQL tiene características sofisticadas tales como control de concurrencia de Multi-Versión, puntos de recuperación a un momento dado, backups en línea, un sofisticado analizador/optimizador de consultas. Soporta juegos e caracteres internacionales, codificación de caracteres multibyte, y está preparado para ordenar localmente, casos sensitivos (mayúsculas y minúsculas), y formateo. Es altamente escalable tanto en la cantidad de datos que puede manejar, como en el número de usuarios concurrentes que puede aceptar. Hay sistemas activos de PostgreSQL en ambientes de producción que manejan 4 Terabytes de datos.

MySQL.

Es un sistema de gestión de base de datos relacionales, licenciado bajo GPL de GNU. Su diseño multihilo le permite soportar gran número de transacciones de forma eficiente. MySQL es probablemente el gestor más utilizado en ámbito del software libre, debido a su facilidad de uso e integración con lenguajes de programación como PHP y Java.

UML (Unified Modeling Language).

Lenguaje unificado de modelado es un conjunto de notaciones y diagramas estándar para modelar sistemas orientados a objetos. Se puede utilizar para modelar distintos tipos de sistemas. UML ofrece los siguientes diagramas:

diagrama de casos de uso, diagrama de secuencia, diagrama de colaboración, diagrama de estado, diagrama de actividades, diagrama de clases, diagrama de objetos, diagrama de componentes y diagrama de implementación, entre otros, Actualmente UML se encuentra en su versión 2. Fue creado Grade Booch, James Rumbaugh, e Ivar Jacobson.

No hay comentarios:

Publicar un comentario en la entrada