Está en la página 1de 4

Caractersticas para el desarrollo

de software
Para poder comprender lo que es el software (y consecuentemente la Ingeniera del Software), es importante examinar las
caractersticas del software que lo diferencian de otras cosas que los hombres pueden construir.
El software es un elemento del sistema que es lgico, en lugar de fsico. Por lo tanto el software tiene unas caractersticas
considerablemente distintas a las del hardware:
1.

El software se desarrolla, no se fabrica en un sentido clsico. Aunque


existen similitudes entre el desarrollo del software y la construccin del hardware,
ambas actividades son fundamentalmente diferentes. En ambas actividades la buena
calidad se adquiere mediante un buen diseo, pero la fase de construccin del
hardware puede introducir problemas de calidad que no existen (o son fcilmente
corregibles) en el software. Ambas actividades dependen de las personas, pero la
relacin entre las personas dedicadas y el trabajo realizado es completamente
diferente para el software. Ambas actividades requieren de la construccin de un
producto, pero los mtodos son diferentes.
Los costes del software se encuentran en la ingeniera. Esto significa que los proyectos de software no se
pueden gestionar como si fueran proyectos de fabricacin.

2.

El software no se estropea. El software no es susceptible a los males del entorno


que hacen que el hardware se estropee. Otro aspecto de ese deterioro ilustra la
diferencia entre el hardware y el software. Cuando un componente se estropea, se
sustituye por una pieza de repuesto. No hay pieza de repuesto para el software. Cada
fallo en el software indica un error en el diseo o en el proceso mediante el que se
tradujo el diseo a cdigo maquina ejecutable. Por tanto, el mantenimiento del
software tiene una complejidad considerablemente mayor que la del mantenimiento
del hardware.

3.

La mayora del software se construye a medida, en vez de ensamblar


componentes existentes. No existen catlogos de componentes de software. Se
puede comprar software ya desarrollado, pero solo como una unidad completa, no
como componentes que pueden reensamblarse en nuevos programas. Importante
para un componente de software de alta calidad. El componente debera disearse

es la aplicacin de un enfoque sistemtico, disciplinado y cuantificable al desarrollo, operacin y


mantenimiento de software, y el estudio de estos enfoques, es decir, la aplicacin de la ingeniera al
software. Es la aplicacin de la ingeniera al software, ya que integra matemticas, ciencias de la computacin
y prcticas cuyos orgenes se encuentran en la ingeniera.

Se pueden citar otras definiciones enunciadas por prestigiosos autores:

Ingeniera de software es el estudio de los principios y metodologas para el desarrollo y


mantenimiento de sistemas software (Zelkovitz, 1978)

Ingeniera de software es la aplicacin prctica del conocimiento cientfico al diseo y construccin


de programas de computadora y a la documentacin asociada requerida para desarrollar, operar y
mantenerlos. Se conoce tambin como desarrollo de software o produccin de software (Bohem,
1976).

Ingeniera de software trata del establecimiento de los principios y mtodos de la ingeniera a fin de
obtener software de modo rentable, que sea fiable y trabaje en mquinas reales (Bauer, 1972)

Metodologa:
]Un objetivo de dcadas ha sido el encontrar procesos y metodologas, que sean sistemticas, predecibles y
repetibles, a fin de mejorar la productividad en el desarrollo y la calidad del producto software.
Etapas del proceso:
]La ingeniera de software requiere llevar a cabo numerosas tareas agrupadas en etapas, al conjunto de estas
etapas se le denomina ciclo de vida. Las etapas comunes a casi todos los modelos de ciclo de vida son las
siguientes:
Anlisis de requisitos:
]Extraer los requisitos de un producto de software es la primera etapa para crearlo. Mientras que los clientes
piensan que ellos saben lo que el software tiene que hacer, se requiere habilidad y experiencia para reconocer
requisitos incompletos, ambiguos o contradictorios. El resultado del anlisis de requisitos con el cliente se
plasma en el documento ERS, Especificacin de Requisitos del Sistema, cuya estructura puede venir definida
por varios estndares, tales como CMMI. Asimismo, se define un diagrama de Entidad/Relacin, en el que se
plasman las principales entidades que participarn en el desarrollo del software.
La captura, anlisis y especificacin de requisitos (incluso pruebas de ellos), es una parte crucial; de esta
etapa depende en gran medida el logro de los objetivos finales. Se han ideado modelos y diversos procesos
de trabajo para estos fines. Aunque an no est formalizada, ya se habla de la Ingeniera de requisitos.
La IEEE Std. 830-1998 normaliza la creacin de las especificaciones de requisitos de software (Software
Requirements Specification).
No siempre en la etapa de "anlisis de requisitos" las distintas metodologas de desarrollo llevan asociado un
estudio de viabilidad y/o estimacin de costes. El ms conocido de los modelos de estimacin de coste del
software es el modelo COCOMO
Especificacin:
La especificacin de requisitos describe el comportamiento esperado en el software una vez desarrollado.
Gran parte del xito de un proyecto de software radicar en la identificacin de las necesidades del negocio
(definidas por la alta direccin), as como la interaccin con los usuarios funcionales para la recoleccin,
clasificacin, identificacin, priorizacin y especificacin de los requisitos del software.
Entre las tcnicas utilizadas para la especificacin de requisitos se encuentran:

Caso de uso,

Historias de usuario,

Siendo los primeros ms rigurosas y formales, los segundas ms giles e informales.


Arquitectura:
]La integracin de infraestructura, desarrollo de aplicaciones, bases de datos y herramientas gerenciales,
requieren de capacidad y liderazgo para poder ser conceptualizados y proyectados a futuro, solucionando los
problemas de hoy. El rol en el cual se delegan todas estas actividades es el del Arquitecto.
El arquitecto de software es la persona que aade valor a los procesos de negocios gracias a su valioso
aporte de soluciones tecnolgicas.
La arquitectura de sistemas en general, es una actividad de planeacin, ya sea a nivel de infraestructura de
red y hardware, o de software.
La arquitectura de software consiste en el diseo de componentes de una aplicacin (entidades del negocio),
generalmente utilizando patrones de arquitectura. El diseo arquitectnico debe permitir visualizar la
interaccin entre las entidades del negocio y adems poder ser validado, por ejemplo por medio de diagramas
de secuencia. Un diseo arquitectnico describe en general el cmo se construir una aplicacin de software.
Para ello se documenta utilizando diagramas, por ejemplo:

Diagramas de clases

Diagramas de base de datos

Diagrama de despliegue

Diagrama de secuencia

Siendo los dos primeros los mnimos necesarios para describir la arquitectura de un proyecto que iniciar a
ser codificado. Depende del alcance del proyecto, complejidad y necesidades, el arquitecto elige qu
diagramas elaborar.
Las herramientas para el diseo y modelado de software se denominan CASE, (Computer Aided Software
Engineering) entre las cuales se encuentran:

Enterprise Architect

Microsoft Visio for Enterprise Architects

Programacin:
Reducir un diseo a cdigo puede ser la parte ms obvia del trabajo de ingeniera de software, pero no
necesariamente es la que demanda mayor trabajo y ni la ms complicada. La complejidad y la duracin de
esta etapa est ntimamente relacionada al o a los lenguajes de programacin utilizados, as como al diseo
previamente realizado.
Prueba:
Consiste en comprobar que el software realice correctamente las tareas indicadas en la especificacin del
problema. Una tcnica de prueba es probar por separado cada mdulo del software, y luego probarlo de
forma integral, para as llegar al objetivo. Se considera una buena prctica el que las pruebas sean efectuadas
por alguien distinto al desarrollador que la program, idealmente un rea de pruebas; sin perjuicio de lo

anterior el programador debe hacer sus propias pruebas. En general hay dos grandes formas de organizar un
rea de pruebas, la primera es que est compuesta por personal inexperto y que desconozca el tema de
pruebas, de esta forma se evala que la documentacin entregada sea de calidad, que los procesos descritos
son tan claros que cualquiera puede entenderlos y el software hace las cosas tal y como estn descritas. El
segundo enfoque es tener un rea de pruebas conformada por programadores con experiencia, personas que
saben sin mayores indicaciones en qu condiciones puede fallar una aplicacin y que pueden poner atencin
en detalles que personal inexperto no considerara.
Documentacin:
Todo lo concerniente a la documentacin del propio desarrollo del software y de la gestin del proyecto,
pasando por modelaciones (UML),diagramas de casos de uso, pruebas, manuales de usuario, manuales
tcnicos, etc; todo con el propsito de eventuales correcciones, usabilidad, mantenimiento futuro y
ampliaciones al sistema.
Mantenimiento:
Fase dedicada a mantener y mejorar el software para corregir errores descubiertos e incorporar nuevos
requisitos. Esto puede llevar ms tiempo incluso que el desarrollo del software inicial. Alrededor de 2/3 del
tiempo de ciclo de vida de un proyecto4 est dedicado a su mantenimiento. Una pequea parte de este
trabajo consiste eliminar errores (bugs); siendo que la mayor parte reside en extender el sistema para
incorporarle nuevas funcionalidades y hacer frente a su evolucin.

También podría gustarte