Ingenieria de software. (mitos, leyendas y factores)

2,195 views
2,018 views

Published on

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.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,195
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
26
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Ingenieria de software. (mitos, leyendas y factores)

  1. 1. 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. 2. 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. 3. 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. 4. 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.”

×