Está en la página 1de 6

Sistema de Información I

UNIDAD III
Software – Ingeniería del Software

Universidad Católica de Santiago del Estero - DASS


SOFTWARE
El software es un programa de cómputo que cuando se ejecutan proporcionan las
características, función y desempeño buscados.

PRODUCTOS DE SOFTWARE

Software = Producto

 Productos Genéricos: se gastan más.


 Productos hechos a medida: requiere mayor esfuerzo.

CARACTERISTICAS DEL SOFTWARE

 El software se desarrolla o modifica con intelecto; no se manufactura en el sentido


clásico.
Aunque hay algunas similitudes entre el desarrollo de software y la fabricación de hardware,
las dos actividades son diferentes en lo fundamental. Los costos del software se concentran en
la ingeniería. Esto significa que los proyectos de software no pueden administrarse como si
fueran proyectos de manufactura.
 El software no se “desgasta”.
La figura 1.1 ilustra la tasa de falla del hardware como función del tiempo. La relación, que es
frecuente llamar “curva de tina”, indica que el hardware presenta una tasa de fallas
relativamente elevada en una etapa temprana de su vida (fallas que con frecuencia son
atribuibles a defectos de diseño o manufactura); los defectos se corrigen y la tasa de fallas se
abate a un nivel estable (muy bajo, por fortuna) durante cierto tiempo.

El software no es susceptible a los problemas ambientales que hacen que el hardware se


desgaste. Por tanto, en teoría, la curva de la tasa de fallas adopta la forma de la “curva
idealizada” que se aprecia en la figura 1.2. Los defectos ocultos ocasionarán tasas elevadas de
fallas al comienzo de la vida de un programa. Sin embargo, éstas se corrigen y la curva se
aplana, como se indica. Aun así, la implicación está clara: el software no se desgasta, ¡pero sí
se deteriora!
 Aunque la industria se mueve hacia la construcción basada en componentes, la mayor
parte del software se construye para un uso individualizado.
A medida que evoluciona una disciplina de ingeniería, se crea un conjunto de componentes
estandarizados para el diseño. Los componentes reutilizables han sido creados para que el
ingeniero pueda concentrarse en los elementos verdaderamente innovadores de un diseño. En
el mundo del hardware, volver a usar componentes es una parte natural del proceso de
ingeniería. En el del software, es algo que apenas ha empezado a hacerse a gran escala.

CATEGORIAS DEL SOFTWARE

1 - Software de sistemas: conjunto de programas escritos para dar servicio a otros programas.
(Por ejemplo, compiladores, editores y herramientas para administrar archivos).
2 - Software de aplicación: programas aislados que resuelven una necesidad específica de
Negocios. Las aplicaciones en esta área procesan datos comerciales o técnicos en una
forma que facilita las operaciones de negocios o la toma de decisiones administrativas o
técnicas.
3 - Software de ingeniería y ciencias: se ha caracterizado por algoritmos “devoradores de
números”. Las aplicaciones van de la astronomía a la vulcanología, del análisis de tensiones
en automóviles a la dinámica orbital del transbordador espacial, y de la biología molecular
a la manufactura automatizada.
4 - Software incrustado: reside dentro de un producto o sistema y se usa para implementar y
controlar características y funciones para el usuario final y para el sistema en sí.
5 - Software de línea de productos: es diseñado para proporcionar una capacidad específica
para uso de muchos consumidores diferentes. Se centra en algún mercado limitado y
particular (por ejemplo, control del inventario de productos) o se dirige a mercados masivos de
consumidores (procesamiento de textos, hojas de cálculo y aplicaciones para finanzas
personales o de negocios).
6 - Aplicaciones web: llamadas “webapps”, esta categoría de software centrado en redes
agrupa una amplia gama de aplicaciones. En su forma más sencilla, las webapps son poco más
que un conjunto de archivos de hipertexto vinculados que presentan información con uso de
texto y gráficas limitadas.
7 - Software de inteligencia artificial: hace uso de algoritmos no numéricos para resolver
problemas complejos que no son fáciles de tratar computacionalmente o con el análisis
directo. Las aplicaciones en esta área incluyen robótica, sistemas expertos, reconocimiento de
patrones (imagen y voz), redes neurales artificiales, demostración de teoremas y juegos.

CARCTERISTCAS DE LOS PRODUCTOS DEL SOFTWARE

1 – Mantenibles: debe ser que el software evolucione y que siga cumpliendo con sus
especificaciones.
2 – Confiabilidad: el software no debe causar daños físicos o económicos en el caso de fallos.
3 – Eficiencia: el software no debe desperdiciar los recursos del sistema.
4 – Utilización Adecuada: el software debe contar con una interfaz de usuario adecuada y su
documentación.

SOFTWARE HEREDADO

Fueron desarrollados hace varias décadas y han sido modificados de manera continua para
que satisfagan los cambios en los requerimientos de los negocios y plataformas de
computación de manera continua para que satisfagan los cambios en los requerimientos de los
negocios y plataformas de computación. Sin embargo, conforme pase el tiempo será frecuente
que los sistemas de software evolucionen por una o varias de las siguientes razones:
• El software debe adaptarse para que cumpla las necesidades de los nuevos ambientes del
cómputo y de la tecnología.
• El software debe ser mejorado para implementar nuevos requerimientos del negocio.
• El software debe ampliarse para que sea operable con otros sistemas o bases de datos
modernos.
• La arquitectura del software debe rediseñarse para hacerla viable dentro de un ambiente de
redes.

COSTOS DEL SOFTWARE

Los costos del software es a menudo más caro que una PC. Cuesta más mantener el software
que desarrollarlo. Para sistemas con una larga vida, este costo se multiplica.

CAUSAS DE LA CRISIS DEL DESARROLLO DEL SOFTWARE

La crisis del software abarca los problemas asociados con cómo desarrollar el software, como
mantener un volumen creciente de software existente y cómo podemos satisfacer la demanda
creciente del software. Las causas son, la complejidad que supone la tarea de programar, y los
cambios a los que se tiene que ver sometido un programa para ser continuamente adaptado a
las necesidades de los usuarios.

MITOS DEL SOFTWARE

La mayoría de profesionales de la ingeniería de software reconocen los mitos como lo que


son: actitudes equivocadas que han ocasionado serios problemas a los administradores y a los
trabajadores por igual. Sin embargo, las actitudes y hábitos antiguos son difíciles de modificar,
y persisten algunos remanentes de los mitos del software.

INGENIERIA DEL SOFTWARE

Es una disciplina que ofrece métodos y técnicas para desarrollar y mantener un


software de alta calidad y que sean capaces de resolver problemas de todo tipo. La
ingeniería de software es una tecnología con varias capas (Estratos de la ingeniería del
software).

Cualquier enfoque de ingeniería debe basarse en un compromiso organizacional con la


calidad. La administración total de la calidad y otras filosofías similares alimentan al desarrollo
de enfoques cada vez más eficaces de la ingeniería de software. El fundamento en el que se
apoya la ingeniería de software es el compromiso con la calidad.
El proceso de ingeniería de software es el aglutinante que une las capas de la tecnología y
permite el desarrollo racional y oportuno del software de cómputo. El proceso define una
estructura que debe establecerse para la obtención eficaz de tecnología de ingeniería de
software.
Los métodos de la ingeniería de software proporcionan la experiencia técnica para elaborar
software. Incluyen un conjunto amplio de tareas, como comunicación, análisis de los
requerimientos, construcción del programa, pruebas y apoyo. Los métodos se basan en un
conjunto de principios fundamentales que gobiernan cada área de la tecnología e incluyen
actividades de modelación y otras técnicas descriptivas.
Las herramientas de la ingeniería de software proporcionan un apoyo automatizado o
semiautomatizado para el proceso y los métodos. Cuando se integran las herramientas de
modo que la información creada por una pueda ser utilizada por otra, queda establecido un
sistema llamado ingeniería de software asistido por computadora que apoya el desarrollo de
software.

PROCESO DEL SOFTWARE

Un proceso es un conjunto de actividades, acciones y tareas que se ejecutan cuando va a


crearse algún producto del trabajo. Una actividad busca lograr un objetivo amplio (por
ejemplo, comunicación con los participantes) y se desarrolla sin importar el dominio de la
aplicación, tamaño del proyecto o grado de rigor con el que se usará la ingeniería de software.
Una acción (diseño de la arquitectura) es un conjunto de tareas que producen un producto
importante del trabajo (por ejemplo, un modelo del diseño de la arquitectura). Una tarea se
centra en un objetivo pequeño pero bien definido (por ejemplo, realizar una prueba unitaria)
Que produce un resultado tangible. Es un enfoque adaptable que permite que las personas
que hacen el trabajo (el equipo de software) busquen y elijan el conjunto apropiado de
acciones y tareas para el trabajo. Se busca siempre entregar el software en forma oportuna y
con calidad suficiente para satisfacer a quienes patrocinaron su creación y a aquellos que lo
usarán.
El aspecto importante en el Proceso del Software es el flujo del proceso, que describe la
manera en que están organizadas las actividades estructurales y las acciones y tareas que
ocurren dentro de cada una con respecto de la secuencia y el tiempo. Un flujo de proceso
lineal ejecuta cada una de las cinco actividades estructurales en secuencia, comenzando por la
comunicación y terminando con el despliegue. Un flujo de proceso iterativo repite una o más
de las actividades antes de pasar a la siguiente. Un flujo de proceso evolutivo realiza las
actividades en forma “circular”. A través de las cinco actividades, cada circuito lleva a una
versión más completa del software. Un flujo de proceso paralelo ejecuta una o más actividades
en paralelo con otras (por ejemplo, el modelado de un aspecto del software tal vez se ejecute
en paralelo con la construcción de otro aspecto del software).
ACTIVIDADES.

Una estructura de proceso general para la ingeniería de software consta de cinco actividades:

1 -Comunicación. Antes de que comience cualquier trabajo técnico, tiene importancia crítica
comunicarse y colaborar con el cliente (y con otros participantes). Se busca entender los
objetivos de los participantes respecto del proyecto, y reunir los requerimientos que ayuden a
definir las características y funciones del software.
2 - Planeación. La actividad de planeación crea un “mapa” que guía al equipo mientras viaja.
El mapa —llamado plan del proyecto de software— define el trabajo de ingeniería de software
al describir las tareas técnicas por realizar, los riesgos probables, los recursos que se requieren,
los productos del trabajo que se obtendrán y una programación de las actividades.
3 - Modelado. Un ingeniero de software crea modelos a fin de entender mejor los
requerimientos del software y el diseño que los satisfará.
4 - Construcción. Esta actividad combina la generación de código (ya sea manual o
automatizada) y las pruebas que se requieren para descubrir errores en éste.
5 - Despliegue. El software (como entidad completa o como un incremento parcialmente
terminado) se entrega al consumidor que lo evalúa y que le da retroalimentación, misma que
se basa en dicha evaluación.

VENTAJAS DE USAR UN PROCESO DE DESARROLLO DE SOFTWARE.

 Un proyecto sin estructura es un proceso inmanejable, no puede ser planificado, ni


estimado y mucho menos alcanzar un compromiso de costes o tiempos.
 Nos proporciona un esquema que sirva como base para planificar, organizar, asignar
personal y dirigir las actividades de la construcción de software.

PARTICIPANTES EN EL DESARROLLO DEL SOFTWARE.

CLIENTE: Persona a quien va dirigido el resultado del proyecto, generalmente ellos presentan
un problema que requiere solución.
DESARROLLADORES: deben convertir la especificación del sistema en código fuente
ejecutable utilizando uno o más lenguajes de programación, así como herramientas de
software de apoyo a la programación.
GERENTE O DIRECTOR DEL PROYECTO: Persona responsable del proyecto. Encargado de la
dirección del proyecto, su planificación y el control de todos los costos, recursos, programas y
de la satisfacción del cliente.
USUARIOS: es aquella persona que utilizará el producto o servicio resultado del proyecto,
aunque no participe en la ejecución del proyecto, en su contratación, y algunas veces incluso ni
en la definición.

EL ANALISTA

El analista es alguien que es responsable de entender las necesidades del cliente, y


asegurarse de que la solución que está siendo desarrollada se ajusta a esas necesidades. Las
actividades típicas de un analista incluyen la obtención de requisitos, reuniones con clientes y
la redacción de especificaciones funcionales. Incluso si un proyecto es demasiado pequeño
para escribir un verdadero documento de especificación, la comprensión de las necesidades
del cliente es un trabajo importante, dado que a menudo el éxito de un proyecto de desarrollo
depende de qué tan cerca está la solución desarrollada de las expectativas del cliente.

También podría gustarte