Sei sulla pagina 1di 5

DESARROLLO DE SOFTWARE:

La Ingeniería del Software es una disciplina o área de la Informática o Ciencias de la Computación, que
ofrece métodos y técnicas para desarrollar y mantener software de calidad que resuelven problemas de
todo tipo. Hoy día es cada vez más frecuente la consideración de la Ingeniería del Software como una
nueva área de la ingeniería, y el ingeniero del software comienza a ser una profesión implantada en el
mundo laboral internacional, con derechos, deberes y responsabilidades que cumplir, junto a una, ya,
reconocida consideración social en el mundo empresarial y, por suerte, para esas personas con brillante
futuro.

La Ingeniería del Software trata con áreas muy diversas de la Informática y de las ciencias de la
computación, tales como construcción de compiladores, sistemas operativos o desarrollos de
Intranet/Internet, abordando todas las fases del ciclo de vida del desarrollo de cualquier tipo de
sistemas de información y aplicables a una infinidad de áreas tales como: negocios, investigación
científica, medicina, producción, logística, banca, control de tráfico, meteorología, el mundo del
derecho, la red de redes Internet, redes Intranet y Extranet, etc.

DESARROLLADOR DE SOFTWARE

La función del DESARROLLADOR DE SOFTWARE recae en un programador o una compañía comercial que
se dedica a uno o más aspectos del proceso de desarrollo de software. Se trata de un ámbito más amplio
de la programación algorítmica.

En informática, un desarrollador (al que con frecuencia también se conoce como analista-programador),
es un especialista en informática que es capaz de concebir y elaborar sistemas informáticos (paquetes
de software), así como de implementarlos y ponerlos a punto, utilizando uno o varios lenguajes de
programación.

Conforme pasa el tiempo, la separación entre el diseño de sistemas informáticos, el desarrollo de


software, y la programación, se van haciendo más claras y diferenciadas. En el mercado laboral suele
encontrarse una diferenciación entre programadores y desarrolladores, siendo estos últimos los que
diseñan la estructura o jerarquía de clases. Incluso esos desarrolladores se convierten en arquitectos de
sistemas informáticos, o sea, aquellos que diseñan la arquitectura a varios niveles o las interacciones
entre componentes de un proyecto de software grande.

El concepto de desarrollo de software incluye:

 Trabajo en equipo: los proyectos son en general una colaboración entre varios desarrolladores,
que tratan cada uno una parte específica del sistema que se desarrolla, y también de otros tipos
de colaboradores, como los comerciales (que definen con el cliente la finalidad y las necesidades
del producto), o como los diseñadores gráficos (que definen el aspecto de las pantallas y
cuestiones relativas a la ergonomía), etc.
 Concepción o diseño: a partir de un pliego de condiciones (user requirement specifications), se
definen las especificaciones técnicas (estructura de datos, comunicación entre módulos,
etcétera).
 Pruebas: sirven para detectar las disconformidades de trabajadores y clientes, y los errores.
 Mantenimiento: abarca la corrección de los errores después que comienza el uso comercial del
programa informático, así como las mejoras que se revelen como necesarias para hacer
evolucionar el producto.

Peculiaridades de la Ingeniería del Software

 El “producto” software.
 Mucho desarrollo, poca disciplina ingenieril.
 Necesidad de describir y documentar lo que se va a producir.
 Cambios frecuentes en el producto.

Problemas en el Desarrollo de Software

Problemas Soluciones
El programa no hace lo que se supone que debe Definir bien las especificaciones
hacer

El programa se cuelga Definir bien el diseño y las pruebas

Hace falta un 200% del tiempo planificado para Planificar bien


concluir el programa

Si el programador se va de la empresa... ¡Vaya! Definir bien la documentación


Hay que hacer un nuevo programa

CICLO DE DESARROLLO o VIDA DE UN SOFTWARE

En principio, el ciclo de vida de un proyecto software incluye todas las acciones que se realizan sobre él
desde que se especifican las características que debe tener, hasta que se mantiene en operación. A
veces (aunque no será éste nuestro caso) se incluyen en el ciclo de vida las modificaciones que pueden
realizarse al sistema para adaptarse a nuevas especificaciones.

Podría pensarse que el ciclo de vida de un programa no tiene por qué seguir un desarrollo "lineal",
entendiendo como tal una sucesión de etapas. En principio, las distintas actividades que se realizan son
bastante independientes, y pueden llevarse (hasta cierto punto) en paralelo. Por ejemplo, para empezar
a codificar hay que tener mínimamente claras las especificaciones que hay que cumplir. Pero (aunque no
es una buena decisión, como veremos más adelante), podría pensarse en comenzar la producción de
código mientras se completan las especificaciones, para poder irlo probando, por ejemplo. Más adelante
se harían las modificaciones necesarias.

Pero si el desarrollo de productos software ya es algo complejo en sí mismo (véase el capítulo sobre
Medidas o Métricas de la Complejidad del Software), aún lo complicaremos más si intentamos "hacerlo
todo a la vez", sin seguir una cuidadosa y detallada planificación. Y esto es precisamente lo que
pretenden los modelos del ciclo de vida del software: simplificar en lo posible la gestión del proceso de
desarrollo. La meta está en añadir la mínima complejidad que sea posible a la que de por sí ya implica el
software.
Desde el punto de vista del esquema HxIxO->IO, podríamos decir que los modelos del ciclo de vida son
un instrumento conceptual (I) que permite a la persona encargada (H) de gestionar un desarrollo de
software (el O será por tanto el propio proceso de desarrollo) tratar con un problema más sencillo (el IO
resultante).

Para ello, estos modelos dividen el proceso de desarrollo en unas cuantas etapas bien diferenciadas, y
definen los posibles caminos por los que se deben relacionar. Además intentan que estos caminos lleven
a un "progreso lineal", en el sentido de que antes de comenzar una etapa se haya concluido
exitosamente (con las especificaciones cumplidas) la anterior. Sin embargo, esto no es siempre posible,
y hay que recurrir a iteraciones (por ejemplo, entre el diseño y la codificación), que nos lleven mediante
aproximaciones sucesivas a cumplir con los objetivos de la mejor forma posible.

Desde el punto de vista jerárquico (véase el capítulo sobre las jerarquías) esta división en etapas puede
verse como una jerarquía multicapa de toma de decisiones. Así, cada una de las etapas (capa de
decisiones) termina cuando, tras haber hecho todas las elecciones necesarias, se han cumplido los
objetivos marcados, sentando las bases para la siguiente etapa. Al dividirse el problema en estas capas,
en cada momento del desarrollo nos enfrentamos con una complejidad menor (únicamente la debida a
cada capa, ya que las anteriores habrán sido satisfactoriamente resueltas).

1. IDENTIFICACIÓN DE PROBLEMAS

Es la observación honesta de lo que esta sucediendo en el negocio, ser capaz de ver si algún aspecto de
la aplicación de sistemas de informa puede ayudar para que el negocio alcance sus objetivos.

2. DETERMINACIÓN DE LOS REQUERIMIENTOS DE INFORMACIÓN.

Entre las herramientas utilizadas para definir los requerimientos de información en el negocio se
encuentra: el muestreo o investigación de los datos relevantes.

3. ANÁLISIS DE LAS NECESIDADES DEL SISTEMA

En este punto se prepara una propuesta de sistemas que sumariza lo que ha sido encontrado y
proporciona análisis costo/beneficio de las alternativas. Nuevamente, herramientas de técnicas
especiales (DFD, OBJETOS, UML, etc.). Ayudan para el analista haga las determinaciones de los
requerimientos.

4. DISEÑO DEL SISTEMA RECOMENDADO

Esta fase es la que garantiza el optimo funcionamiento del sistema ya su cronograma incluye el diseño
de archivos o base de datos (tamaño de los campos) que guardaran la mayor parte de los datos
necesarios para los tomadores de decisiones de la organización.

5. DESARROLLO Y DOCUMENTACIÓN DEL SOFTWARE


En esta fase el analista trabaja con los programadores para desarrollar cualquier software original que se
necesite. Y prepara el manual de funciones del software para nivel usuario y cliente

6. PRUEBA Y MANTENIMIENTO DEL SISTEMA.

Antes de ser usado el sistema de información debe ser probado. El mantenimiento del sistema
(características adicionales, cambios, tecnologías nuevas, etc…) y de su documentación (manuales)
comienza en esta fase.

7. IMPLEMENTACIÓN Y EVALUACIÓN DEL SISTEMA.

Esta fase es cuando el sistema de información pasa a producción e incluye el entrenamiento de los
usuarios.

DIFERENCIA DE UN PROGRAMADOR Y UN DESARROLADOR DE SOFTWARE

La Ingeniería de Software es una disciplina que lidia con el diseño, desarrollo, operación y
mantenimiento de software. La gran diferencia entre un Ingeniero de software y un Programador, es
que el Programador generalmente solamente se preocupa por depurar errores, implementar nuevas
funcionalidades, y darle mantenimiento general a la aplicación. El programador realmente no tienen
noción de presupuesto, planeación o requerimientos del proyecto.

Cuando un Programador (o Ingeniero) sin experiencia en las áreas descritas anteriormente decide tomar
el rol de Ingeniero de Software; generalmente los proyectos se entregar tarde, no cumple con todo los
requerimientos o se excede el presupuesto inicial del proyecto y el proyecto entra en una crisis del
software.

El trabajo de Ingeniero de Software es precisamente el de evitar la crisis del software.

Por ejemplo:

 Se encarga de recolectar los requerimientos.


 Analizar los requerimientos.
 Crear la especificación de la aplicación.
 Validar los requerimientos.

El proceso anterior se le conoce como Ingeniería de Requerimientos:

El resultado de la Ingeniería de Requerimientos es un conjunto de modelos de comportamiento,


modelos contextuales y modelos de procesos de negocio que el Ingeniero de Software analiza para
entender el problema, diseñar una solución y crear un plan de trabajo/calendario de hitos.

Los Ingenieros de Software típicamente tienen un plan que les permite controlar y monitorear el
progreso del proyecto. Esto permite a Ingenieros de Software entregar proyectos a tiempo, con el
presupuesto inicialmente acordado y que cumple los requerimientos iniciales.
Es hasta el final de la "cadena" donde entra el papel del programador: la implementación del proyecto
(programar).

El gran problema de la Ingeniería de software es que dado a que es un campo que relativamente apenas
emerge (o al menos no tiene cientos de años de existencia como, por ejemplo, administración de
negocios) muchos programadores se auto denominan "Ingenieros de Software" cuando realmente son
solamente programadores.

Potrebbero piacerti anche