martes, 16 de junio de 2015

Ingeniería de Software




En la actualidad la utilización de la tecnología del software marca una pauta diferenciadora entre las empresas en sus procesos de calidad, es por eso imperante para los profesionales que comprendan las características únicas del software y el enfoque usado para desarrollar y mantener el software.
Este artículo les dará una visión de que es el software y cuáles son los objetivos y elementos de la Ingeniería de Software, además abordaremos los conceptos del Ciclo de Vida del software y metodologías actuales.

¿Qué es el Software?
Importante diferenciador en el negocio y que corresponden a los programas y documentación asociada tal como requisitos, modelos de diseño y manuales de usuario.

Tipos de Software de acuerdo a objetivos Comerciales
Por lo general los Ingenieros de Software no parten de cero para la implementación del software, sino que corresponde a la reutilización del software existente, refinado con la mejor calidad.
Para que un software satisfaga las necesidades de los usuarios, debe cumplir con las siguientes características básicas:

Mantenibilidad (capacidad de poder mantenerse): el software debe evolucionar para cumplir con las necesidades de cambio, en las empresas los negocios son cambiantes, ya sea por regulaciones de ley, estrategias comerciales, nuevas directrices de la gerencia, etc. se debe contar con un producto que madure.

Fiabilidad: el software deber ser digno de confianza. Lo que significa que la integridad de los datos que presenta en consultas, reportes o cualquier otro medio de salida cuenta con total veracidad en la información.




Eficiencia: el software no debe hacer un uso derrochador de los recursos del sistema. Este es un punto de suma importancia debido a que por lo general en los servidores conviven varias aplicaciones que compartían recursos de memoria y de almacenamiento en disco duro, lo que nos indica que si una aplicación empieza en determinado momento a consumir demasiados recursos de memoria, terminará afectando el resto de aplicaciones instaladas en el servidor.


Aceptabilidad: el software debe ser aceptado por los usuarios para los que se diseñó. Esto significa que ha de ser entendible, usable y compatible con otros sistemas.

Componentes del Software
El software está compuesto por tres componentes:
Programas: Entregan la funcionalidad y rendimiento deseado o esperado por los usuarios, y que corresponden a las instrucciones escritas en lenguajes específicos que los computadores puedan interpretar y ejecutar.
Datos: Cuando el programa se coloca en marcha requiere unos datos iniciales para operar correctamente, de igual forma cuando se realizan las pruebas en el área de calidad, se necesitan datos, estos datos son contemplados cuando se diseña el programa, datos en la base de datos o archivos en ubicaciones específicas.
Documentos: Este componente cuenta con la descripción de todas las opciones del sistema, explicando los flujos de procesos que tiene la aplicación, que datos se necesitan para que una operación se realice correctamente, dado que en los programas existen opciones dependientes de otras.

El software se desarrolla
El software es un producto que se desarrolla bajo necesidades puntuales y aunque la ingeniería de software fomenta la reutilización de componentes, es muy poco probable de que un software sea igual a otro, pues no se diseña como los componentes de hardware de un computador, sino por las necesidades imperantes de los usuarios que cambian en la medida que cambia el negocio.
Para construir un producto de software es necesario entender cuál es la necesidad real de los usuarios y cuáles serían las ventajas de hacerlo y el impacto para el negocio de no hacerlo, luego de esto seleccionar el lenguaje y tecnología más apropiada para diseñarlo, por ejemplo para sistemas de aplicaciones Web, se pueden realizar en lenguaje PHP, ASP.NET, JAVA etc. y que motor de bases de datos utilizar es el de mayor ganancia teniendo en cuenta licencias, capacidad de almacenamiento y rendimiento se puede seleccionar bases de datos como PostgresSQ, Mysql , Sql Server, Oracle, etc.

Cambios en el software
A medida que surgen cambios en el negocio, la manera de realizar una negociación, puede impactar significativamente las aplicaciones de la empresa, por eso es muy importante mantener un registro de los mantenimientos que se van realizando, actualizaciones de consultas, reportes u opciones, sin que estos cambios afecten el normal funcionamiento de las demás opciones publicadas.
El software se construye a la medida
La construcción del software se da por incrementos en las opciones de acuerdo a los requerimientos específicos del cliente, y aquí es importante anotar que en la medida en que se pueda reutilizar componentes debe hacerse, valiéndonos de patrones de diseño y aplicación de las características de la programación orientada a objetos.
En mi experiencia he visto en negocios donde cuentan con programas a la medida para controlar sus operaciones con clientes con perfiles específicos, sin embargo una práctica poco útil que he visto es crear nuevos ambientes y bases de datos para clientes nuevos que ingresan a la operación , esto implica un alto costo en disco y mantenimiento,  que fácilmente puede ser solucionado por medio de las bondades de la PROGRAMACIÓN ORIENTADA A OBJETOS, aplicando la herencia y el polimorfismo, que nos enseñan a pasar propiedades a otros objetos y generar nuevos comportamientos dentro de la misma aplicación sin afectar los demás objetos.


No hay comentarios:

Publicar un comentario