Resumen de Ingeniera de Software


Anuncios


Para empezar entendamos a qu se refiere el concepto de Ingeniera de software. El trmino consta de dos palabras, software e ingeniera.

Software es mucho ms que un cdigo de programa. Un programa es un cdigo ejecutable, usado para propsitos computacionales. El Software se considera una coleccin de cdigos ejecutables de programacin, associada a las bibliotecas y a la documentacin. El Software, cuando se ha hecho para cubrir requisitos especficos se llama producto software.

Ingeniera Por otro lado, trata de desarrollar productos, utilizando mtodos y principios cientficos bien definidos.

Ingeniera del Software

La ingeniera de Software es una rama de la ingeniera asociada al desarrollo del producto software que usa mtodos, principios y procedimientos cientficos. El resultado de la Ingeniera de software es un producto software eficiente y de confianza.

Definiciones

El IEEE (Instituto de Ingeniera Elctrica y Electrnica) define la Ingeniera de software como:

(1) La aplicacin de una aproximacin sistemtica, disciplinada y cuantificable, al desarrollo, las operaciones y al mantenimiento del software; Esto es bsicamente la aplicacin de la Ingeniera al software.

(2) El estudio de la aproximacin, tal y como se ha mencionado anteriormente.

Fritz Bauer, un informtico terico alemn, define Ingeniera de software como:

La ingeniera de Software es el establecimiento y uso de los principios de la Ingeniera de sonido con tal de obtener software fiable y eficiante en mquinas reales de forma econmica.

Evolucin del Software

El proceso de desarrollo de un producto software usando principios y mtodos de Ingeniera de software, se denomina Evolucin del Software. Esto incluye el desarrollo inicial del software, mantenimiento y actualizaciones, hasta que el producto deseado finalmente es desarrollado, lo que satisface los requerimientos esperados.

Evolucin de Software

La evolucin empieza con un proceso de recogida de requisitos. Luego los desarrolladores crean un prototipo inicial del software y se muestra a los consumidores para tener un feedback en un etapa temprana del desarrollo del producto de software. Los consumidores sugieren cambios, los cuales irn mejorando con actualizaciones y tareas de mantenimiento de manera progresiva. Este proceso cambia el software original hasta llegar al producto deseado.

Incluso despus de que el consumidor tenga el software en sus manos, el avance de la tecnologa y los cambios de requisitos fuerzan al producto software a cambiar en acorde a estos. Volver a cerar software des de cero, e ir cumpliendo uno por uno los requisitos no es viable. La nica solucin viable y econmica es actualizar el software ya existente para que se adecue satisfactoriamente con los requisitos ms recientes.

Leyes de evolucin del software

Lehman formul leyes para la evolucin del software. Dividi el software en 3 categoras distintas:

  • 'S-type' ('static-type', tipo esttico) - Es un tipo de software, que funciona estrictamente segn se ha definido especificaciones y soluciones. La solucin y el mtodo mediante el cual se consigue, se deben entender de immediate antes de empezar a codificar. El software 's-type' est menos sujeto a cambios, de ah que sea el ms simple de todos. Por ejemplo, el programa de calculadora, para computacin matemtica.
  • 'P-type' ('practical-type', tipo prctico) - This is a software with a collection of procedures. This is defined by exactly what procedures can do. In this software, the specifications can be described but the solution is not obvious instantly. For example, gaming software.
  • 'E-type' ('embedded-type', tipo embebido o empotrado) - This software works closely as the requirement of real-world environment. This software has a high degree of evolution as there are various changes in laws, taxes etc. in the real world situations. For example, Online trading software.

Evolucin del software 'E-Type'

Lehman dict 8 leyes de evolucin del software 'E-Type' -

  • Cambio continuo - Los sistemas de software 'E-type' deben adaptarse de forma progresiva a los cambios del mundo real, de no ser as se volver progresivamente menos til.

  • Complejidad creciente- A medida que el sistema software 'E-type' evoluciona, sus complejidades tienden a incrementar a menos que se trabaje en ello con el fin de mantenerlas o reducirlas.

  • Conservaci de la familiaridad - La familiaridad con el software o con el conocimiento sobre cmo y por qu fue desarrolado de una manera en concreto, etc. debe ser retenido a cualquier coste, con tal de poder implementar cambios en el sistema.

  • Crecimiento continuado- Para que un sistema 'E-type' intente resolver problemas de negocios, su magnitud para implementar camvios crece en acorde con los cambios de estilo de vida del negocio.

  • Decremento de la calidad - Los sistemas software 'E-type' reducen su calidad a menos que se mantengan de forma rigurosa o se adapten a los cambios operativos del entorno.

  • Sistemas de retroalimentacin- Los sistemas software 'E-type' son sistemas de retroalimentacin multi-loop y multi-nivel, deben ser considerados como tal con el fin de ser modificados o mejorados con xito.

  • Autorregulacin- Los procesos de evolucin del sistema 'E-type', se regulan a s mismos con la distribucin del producto y las medidas del proceso de una manera casi normal.

  • Estabilidad organizacional - La tasa media de actividad efectiva global en un sistema evolutivo de 'E-type', no varia en toda la vida del producto.

Paradigmas de Software

Los paradigmas de Software son mtodos y pasos, que se llevan a cabo mientras el software se disea. Hay muchos mtodos que se han propuesto y que funcionan hoy en da, pero necesitamos ver donde se ubican estos paradigmas en el marco de la Ingeniera de software. Estos se pueden combinar en varias categoras, en las que cada uno de ellos contiene a la otra:

Evolucin de Software

El paradigma de programacin es una parte del paradigma de diseo de Software y ms adelante tambin se considera parte del paradigma de desarrollo de Software.

Paradigma del desarrollo Software

Este paradigma es conocido como paradigma de ingeniera de software, en el que todos los conceptos de ingeniera pertenecientes al desarrollo de software son implementados. Incluye varias investigaciones y recogida de requisitos lo que ayuda a la construccin del producto software. Consiste de

  • Recogida de requisitos
  • Diseo de Software
  • Programacin

Paradigma de diseo de Software

Este paradigma forma parte del desarrollo software e incluye

  • Diseo
  • Mantenimiento
  • Programacin

Paradigma de programacin

Este paradigma se relaciona de estrechamente a aspectos de programacin en el desarrollo de software. Esto incluye

  • Codificacin
  • Pruebas
  • Integracin

Necesidad de la Ingeniera de Software

La necesidad de la Ingeniera de software viene de la alta tasa de cambio en los requisitos y en el entorno en que trabaja el software.

  • Software de gran tamao- Es ms fcil construir una pared que construir una casa, de la misma manera, a medida que el software aumenta su tamao, la ingeniera debe entrar para darle un proceso cientfico.

  • Escalabilidad- Si el proceso software no estuviera basado en conceptos cientficos y de ingeniera, sera ms fcil volver a crear nuevo software que escalar uno ya existente.

  • Costes- A medida que la industria del hardware ha mostrado sus capacidades y grandes fabricaciones, ha bajado el precio del hardware electrnico e informtico. Pero el coste del software sigue siendo alto si el proceso no se ha adaptado a los nuevos avances.

  • Naturaleza dinmica - La naturaleza del software, creciente y adaptable, depende en gran medida del entorno en el que el consumidor trabaje. Si la naturaleza del software siempre cambia, se necesitar mejorar el ya existente. Aqu es donde la ingeniera de software juega un gran papel.

  • Gestin de calidad- Los mejores procesos de desarrollo de software producen productos mejores y de calidad.

Carctersticas de un buen software

Un producto software puede ser juzgado segn lo que ofrece y la manera en que se puede usar.El software debe satisfacer en los siguientes aspectos:

  • Operacional
  • Transicional
  • Mantenimiento

Un software que se ha creado con buena ingeniera, debe tener los siguientes rasgos:

Operacional

Esto nos cuenta lo bien que funciona el software en operaciones. Se puede medir en base a:

  • Presupuesto
  • Usabilidad
  • Eficiencia
  • Exactitud
  • Funcionalidad
  • Dependabilidad
  • Seguridad informtica
  • Seguridad

Transicional

Este aspecto es importante cuando el software se mueve de una plataforma a la otra:

  • Portabilidad
  • Interoperabilidad
  • Reutilizacin
  • Adaptabilidad

Maintenimiento

Estos aspectos resumen la capacidad que tiene el software para mantenerse en entornos contantemente cambiantes:

  • Modularidad
  • Sostenibilidad
  • Flexibilidad
  • Escalabilidad

En resumen, La Ingeniera de Software es una rama de las ciencias de la computacin, que usa conceptos de Ingeniera bien definidos requeridos para producir productos software eficientes, duraderos, escalable, y asequibles a tiempo.