7 jun 2012

INGENIERIA DE SOFTWARE


Muchas personas asocian el término software con los programas de computadora. Sin embargo, prefiero una definición más amplia donde el software no son sólo programas, sino todos los documentos asociados, la configuración y el manejo de datos que se necesitan para hacer que estos programas operen de manera correcta.
Por lo general, un sistema de software consiste en diversos programas , archivos de configuración que se utilizan para ejecutar estos programas, un sistema de documentación que describe la estructura y el diseño del sistema, la documentación para el usuario que explica cómo o utilizar el sistema y sitios web que permitan a los usuarios descargar algún tipo de actualizacion e información acerca de un nuevo producto.
La ingeniería del software no sólo comprende los procesos técnicos del desarrollo de software,sino también maneja actividades tales como la gestión de proyectos de software y el desarrollo de herramientas, métodos y  apoyos para  la producción de software.
La ingeniería del software es una disciplina de la ingeniería que comprende todos los aspectos de la producción de software desde las etapas iniciales de la especificación del sistema, hasta el mantenimiento y la utilizacion adecuada después de que se utiliza.
Un sistema inicial se desarrolla rápidamente a partir de especificaciones muy abstractas y caracteristica especificas que el cliente desea  para producir un sistema que satisfaga las necesidades del usuario.
Para la ingeniería de software asi mismo y si el desarrollador lo requiere para la elaboracion de un sistema, puede hacer uso de algunas herramientas para que desarrollar y sea una manera mas eficiente al diseñar.
 Desde la aparicion de las herramientas  CASE se ha generado un desarrollo optimo y eficaz para las ingeniería de software esto comprende una gran cantidad de tipos de programas que se utilizan para ayudar a las actividades del proceso del software, como el análisis de requerimientos, cálculo de costos, implementación de parte del código,, compilación automática, documentación o detección de errores , el modelado de sistemas, la depuración y las pruebas.
 Las herramientas CASE tienen algunos puntos débiles , que van desde la confiabilidad en los métodos estructurados hasta su alcance limitado, los cuales amenazan sus grandes beneficios . Muchas herramientas CASE están construidas teniendo como base metodologías del análisis estructurado y del ciclo de vida de desarrollo de sistemas. Todo de esto es de gran importancia para el desarrollo y la ingenieríade software ya que nos permite concluir que las herramientas CASEhan venido para ser una herramienta optima en el desempeño y funcionalidad del sistema.

GESTION DE CODIGO


La gestión de sistemas funciona para planificar, organizar, supervisar y buscar técnicas para el desarrollo  de proyectos de software. Su principal objetivo es tener un producto de alta calidad. La gestión de código funciona más que nada en la creación de una pagina web y/o sistema de información.
En el caso de la página web, esto puede ser un trabajo un poco complicado y dedicado si no disponemos de las herramientas necesarias.
En la antigüedad las herramientas eran básicamente editores que permitían generar una página, que fueron evolucionando para incorporar y administrar la estructura de la página web y otras funcionalidades, pero en general más que nada estaban orientadas más a la creación que al mantenimiento. Para esto fueron creados los sistemas de gestión de código o contenido y se trata de herramientas que permiten crear y mantener una página web con facilidad, encargándose de los trabajos más laboriosos y facilitar al administrador una mejor gestión de la página.
Los gestores de código proporcionan un ambiente que posibilita la actualización, mantenimiento y gestión de la página web con la colaboración de múltiples usuarios. En cualquier entorno virtual ésta es una característica importante, que además puede ayudar a crear una comunidad relacionada que participe más de forma conjunta.
Teniendo en cuenta el ahorro que supone la utilización de estas herramientas su precio no es muy elevado y aparte hay sitios donde se puede descargar y tener una licencia gratis.
Para poder selección un gestor de código hay que tener claro cual es o son los objetivos que se quieren alcanzar pero para esto hay herramientas de código abierto que permiten construir gestores y elegir el espacio virtual o el entorno para generar el gestor y a su vez la pagina web.
Pero hay empresas que consideran el código fuente un recurso más que tienen que mantener en propiedad, y que no permiten que otras personas tengan acceso. Por otra parte tenemos el código fuente abierto, desarrollados por individuos o empresas que permiten el acceso libre y la modificación del código fuente.
La disponibilidad del código fuente facilita que se hagan personalizaciones del gestor, correcciones de errores y desarrollo de nuevas funciones. Todo esto y con las nuevas correcciones se puede lograr y crear un nuevo producto para competir y mejorar la creación de los sistemas y paginas web. (http://es.wikipedia.org/wiki/Gestion_de_proyectos)
Todas estas herramientas y gestores son de gran utilidad y beneficio para la creación de ambientes virtuales, así poco a poco se están logrando avances tecnológicos y aplicaciones cada vez más útiles y productivas, con ayuda de la programación y de herramientas de desarrollo es así como se lograran aplicaciones más eficaces.

ADMINISTRACION DE SISTEMAS


Todo sistema requiere en su elaboración de una serie de pruebas y características que debe cumplir antes de poder y dejar que el usuario tome conocimiento de él y poder tenerlo y usarlo para sus propósitos, lo ideal es realizarle una serie de pruebas y una adecuada administración para su desarrollo.
Las pruebas de software son como una etapa más del proceso de desarrollo de software, su objetivo es certificar que el software cumpla con los requisitos solicitados y eliminar los posibles errores que este pudiera tener.
En un principio la mayoría de  empresas de desarrollo no contaban con una etapa de pruebas muy eficaz y con margen de errores, en la actualidad las pruebas del software  se han convertido en una de las etapas más importantes del ciclo de vida del desarrollo de software y esto causo el origen de diversas metodologías.

En la actualidad las pruebas de software se hacen más complicadas ya que hay diversas herramientas con que se realiza una prueba de software como las de metodologías de desarrollo, lenguajes de programación, sistemas operativos, protocolos, hardware etc.
Debido a esta complejidad actualmente se cuentan con una gran cantidad de software diseñado únicamente para la etapa de pruebas
Luego de terminar las etapas de análisis, diseño y desarrollo se inicia la etapa de pruebas, en esta etapa lo mas recomendable es que el software se mantenga aislado o separado del ambiente de desarrollo para que no afecte el sistema que se esté desarrollando y tener un mejor control y administración de pruebas sobre posibles anomalías y no interfiera con el ciclo de desarrollo del sistema.
El administrador de pruebas tiene la misión y responsabilidad de que los objetivos de las pruebas tengan éxito. Todo esto involucra eficacia, calidad y un desarrollo óptimo de las pruebas, administración de recursos y solución de problemas que impidan el logro de las pruebas.

Para poder asignar un administrador de pruebas, este personaje debe contar con una serie de requisitos y habilidades para poder generar un desempeño inmejorable para el desarrollo de las pruebas. Como por ejemplo:
Conocimiento general de todos los aspectos de la ingeniería de Software.
Amplia experiencia en una gran variedad de pruebas, técnicas y herramientas.
Planeación y Administración de habilidades.
Experiencia en programación o administración en equipos de programación.
Negociar con el propósito y los resultados que pueden arrojar las pruebas.
Asegurarse del correcta planeación y administración de los recursos para las pruebas.
Evaluación del progreso y la efectividad de las pruebas.


ADMINISTRACION DE BASE DE DATOS


Las bases de datos son una parte muy importante en la empresa ya sea una pequeña y simple o una compleja y grande. Toda la información de la empresa esta clasificada y ordenada en la base de datos.
Una base de datos se construya a partir del software para generar aplicaciones y diseño para introducir datos y ayudar a la empresa en la toma de decisiones, a la vez un programa para desarrollar aplicaciones se empieza desde los  lo cual un campo es la unidad más pequeña de datos almacenados
A su vez un conjunto de campos almacenados y relacionados  forman un  registro.
Y a su vez forma un conjunto de registros almacenados en la memoria forman un archivo.
Algunas características de las Bases de Datos:
Los datos pueden compartirse
Es posible reducir la redundancia
Es posible evitar la inconsistencia
Es posible brindar un manejo de transacciones
Es posible mantener la integridad
Es posible hacer cumplir la seguridad
Es posible equilibrar los requerimientos en conflicto
Todas estas características son indispensables en una base de datos.
Una base de datos debe de administrarla una persona especializada en el manejo de datos  el administrador de base de datos (DBA)  tendrá la responsabilidad central sobre los datos dentro de la empresa. Ya que los datos son uno de los recursos más valiosos de la empresa, es indispensable que exista una persona que los entienda junto con las necesidades de la empresa con respecto a esos datos, a un nivel de administración superior.
 Es labor del administrador decidir en primer lugar que datos deben ser almacenados en la base de datos y establecer reglas y políticas para mantener y manejar esos datos una vez almacenados.
Al tener la completa jurisdicción sobre la base de datos, el DBA puede asegurar que el único medio de acceso a la base de datos sea a través de los canales adecuados y por lo tanto puede definir las reglas o restricciones de seguridad que serán verificadas siempre que se intente acceder a los datos sensibles. Es posible establecer diferentes restricciones para cada tipo de acceso para cada parte de la información de la base de datos. El DBA también es responsable de asegurar que el sistema opere con el rendimiento adecuado y de proporcionar una variedad de otros servicios técnicos.
Es así como se DBA trabaja con las bases de datos para poder lograr un control optimo en la realización de proyectos y asegurar la integridad de los datos para su seguridad interna.