Ingenieria de software. (mitos, leyendas y factores)

4

Click here to load reader

description

Un punto de vista sobre la Ingeniería de software, vista desde el sector productivo, una loca pero verdadera jungla de competencia en donde la clave para el éxito podría estar oculta en el abito de cuidar la calidad por sobre la cantidad de desarrollo.

Transcript of Ingenieria de software. (mitos, leyendas y factores)

Page 1: 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.

Page 2: Ingenieria de software. (mitos, leyendas y factores)

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

Page 3: Ingenieria de software. (mitos, leyendas y factores)

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

Page 4: Ingenieria de software. (mitos, leyendas y factores)

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.”