Ingenieria de software. (mitos, leyendas y factores)
Click here to load reader
-
Upload
marcos-omar-cruz-ortrega -
Category
Technology
-
view
1.514 -
download
1
description
Transcript of Ingenieria de software. (mitos, leyendas y factores)
1
Ingeniería del software, mitos, realidades y
factores que influyen en su buena calidad
Por: Marcos Omar Cruz Ortega
Durante los primeros años de la programación, esta no era más que una
obra de arte digital para la que no existía metodología ni planificación alguna, la
programación de software se desarrollaba a medida de cada necesidad y en
consecuencia, tenía muy poca difusión
Todo comenzó por allá de 1960, este fue el año en que se es establecido el
software como producto y en consecuencia como alguna clase de buitres
empezaron a aparecer empresas dedicadas a su desarrollo y distribución masiva.
Tratando de entender los orígenes de la ingeniería de software quien por
cierto debemos el término a Feliz Baver, ya que él fue quien utilizo por primera vez
este término en la primera conferencia sobre desarrollo de software, esto en
Alemania en 1968. La ingeniería de software es una disciplina que nos ofrece
métodos o técnicas para desarrollar y mantener software de calidad que resuelven
problemas de todo tipo.
Los programadores de hoy deben de estar consientes de muchas cosas
importantes antes de desarrollar algún software. Por ejemplo, a pesar de que
pueda existir alguna similitud entre desarrollo y manufactura, en el mundo del
software es un tanto diferente, un software de calidad dependerá del diseño del
mismo y jamás se medirá su calidad por la producción en serie como suelen
manejarse en una empresa que fabrica autos.
2
Otra cosa a tener en cuenta es que un software es inmune a los males
ambientales que desgasten el hardware. Por lo tanto la curva de tasas de fallas
para el software debería tener la forma de la “curva idealizada”. Los defectos sin
descubrir causan tasas de fallas altas en las primeras etapas de vida de un
programa. Sin embargo, los errores se corrigen y la curva se aplana: por lo que
podemos decir que el software no se desgasta, pero si se deteriora. A pesar de
que la industria tiene una tendencia hacia la construcción por componentes, la
mayoría del software aun se construye a la medida. Un componente de software
se debe diseñar e implementar de forma que puede utilizarse en muchos
programas diferentes, lo que puede permitir al ingeniero de software crear nuevas
aplicaciones nuevas a partir de partes reutilizables.
Los mitos del software o creencias acerca del mismo y de los procesos
empleados para construirlo se pueden rastrear hasta los primeros días de la
computación. En la actualidad se piensa que los gestores con responsabilidad
sobre el software, como los gestores en la mayoría de las disciplinas, están
normalmente bajo la presión de cumplir las propuestas, hacer que no se retrase el
proyecto y mejorar la calidad. Un gestor de software se agarra frecuentemente a
un mito del software. Pero lo cierto es que no podemos decir que si se falla en la
planificación, se puede añadir más programadores y adelantar el tiempo perdido,
ya que esto puede resultar contraproducente.
Para nuestra desgracia como programadores hay muchos casos en que el
cliente cree en los mitos que existen sobre el software, debido a que los gestores y
desarrolladores hacen muy poco para corregir la mala información. Los mitos
conducen a que el cliente se cree una falsa expectativa y, finalmente, quede
insatisfecho con el desarrollador del software, problema que generalmente no
depende del programador en sí, si no de la mala petición del usuario, el
programador debe someterse como vulgarmente se dice “al cliente lo que pida”
sin embargo debe de opinar cuando lo crea pertinente, proponer e innovar siempre
que sea necesario y cerciorar hasta las más pequeña de las dudas antes de
empezar a desarrollar la aplicación, ya que si los requisitos del proyecto cambian
3
continuamente, los cambios no pueden acomodarse tan fácilmente, ya que el
software no es flexible al antojo.
Los mitos en los que aun creen muchos desarrolladores se han ido
fomentando durante 50 años de cultura informática. Durante los primeros días del
desarrollo del software, la programación se veía como un arte. Las viejas formas y
actitudes tardan en morir. Otro de los mitos de la programación, es decir que una
vez que escribimos el programa y hacemos que funcione, nuestro trabajo ha
terminado cuando es en esta fase en donde en realidad hemos empezado.
Los métodos de la ingeniería de software indican cómo construir
técnicamente el software. Los métodos abarcan una gran gama de tareas que
incluyen análisis de requisitos, diseño, construcción de programas, pruebas y
mantenimiento. Cada desarrollador usa distintos procesos para construir un
software, estos pueden ser no eficientes o exitosos o también pueden cambiar a
diario, pero existe un proceso.
WATTS HUMPHREY dice que para cambiar un proceso inefectivo se tiene
que pasar por cuatro fases y estas requieren capacitación e instrumentación. PSP
resalto la medida personal al profesional de la planeación, también hace
responsables al profesional de la planeación del proyecto y la calidad de todos los
productos.
Existen 5 actividades de marco de trabajo que no podemos ignorar
planeación, diseño de alto nivel, revisión del diseño de alto nivel, desarrollo,
análisis de resultados
La calidad del software desarrollado, así como la productividad del
programador son factores de difícil, pero no imposible, medida. Existen una serie
de factores que influyen en la calidad y productividad, podemos mencionar entre
estos factores, la capacidad individual en este fáctor intervienen la competencia
del individuo y su familiaridad con el área de la aplicación. La comunicación entre
los miembros del equipo es un factor importante también, ya que el trabajo en la
4
mayor parte de las ocasiones no es individual y debe integrarse con el que ha sido
desarrollado por otros miembros del equipo. Otra cosa que podemos mencionar es
la complejidad del producto. Este factor depende del tipo de aplicación a
desarrollar y es de difícil estimación, ya que muchas veces hasta la fase de
desarrollo no es posible comprender en toda su perspectiva las complicaciones
que conlleva su realización. La utilización de una notación adecuada es de gran
importancia para facilitar la comunicación entre las partes involucradas en donde
podemos incluir al usuario. El empleo de métodos sistemáticos. Es importante que
se empleen técnicas que sean de amplio consenso y bien conocidas por los
integrantes del equipo de desarrollo de la aplicación. También es fundamental que
estas técnicas se empleen de manera sistemática sobre todas las aplicaciones de
características semejantes con objeto de facilitar el análisis de coste y tiempo, y
también para poder observar la trayectoria profesional de los miembros del equipo.
Como en el resto de las actividades industriales, en el desarrollo de
software, también es importante realizar una buena planificación del trabajo y una
buena asignación de recursos a los distintos miembros del equipo. Una mala
planificación termina con una mala aplicación o una aplicación terminada a
destiempo (disgusto del peticionario), lo cual supone un fracaso. Varios fracasos
consecutivos de este mismo estilo suponen la ruina para la mayor parte de las
empresas del sector, debido a la competencia existente.
“La ingeniería de software es una tecnología multicapa, cualquier enfoque
de ingeniería debe apoyarse sobre un compromiso de organización de calidad. El
fundamento de la ingeniería de software es la capa del proceso. El proceso de la
ingeniería de software es la unión que mantiene juntas las capas de tecnología y
que permiten un desarrollo racional y oportuno de la ingeniería de software. El
proceso define un marco de trabajo para un conjunto de áreas clave de proceso
que se deben establecer para la entrega de la tecnología de la ingeniería de
software.”