You are on page 1of 6

Ingeniera del Software

DEFINICIN DE SOFTWARE
Parte lgica de la informtica: Est constituida por tres elementos
Instrucciones ejecutables
Estructura de datos
Documentos
Durante las tres primeras dcadas de la informtica, lo principal era el desarrollo del hardware
Hoy el principal desafo es mejorar la calidad (y reducir el costo) de las soluciones que se
implementan con el software.
Durante los primeros aos:
El hardware era de propsito general
El software se diseaba a medida para cada
aplicacin, y tena una distribucin relativamente
pequea
El diseo era un proceso implcito, y la
documentacin normalmente no exista.

Primeros Aos

1950

1960

Segunda Era

Tercera Era

1970

1980

Cuarta Era

1990

2000

La segunda era:
Se extienden desde la mitad de la dcada de los 60 hasta finales de los 70.
Multiprogramacin y sistemas multiusuarios
Sistemas de tiempo real:
Bases de Datos: almacenamiento en lnea
Establecimiento del software como producto: Los programas se distribuan para miles de
usuarios. (Crisis del Software: dificultad en el mantenimiento)
Tercera era:
Comenz a mediados de los 70 y continu ms all de una dcada
Sistemas distribuidos: Las redes de rea local y de rea global, las comunicaciones digitales.
Incorporacin de inteligencia: uso de microprocesadores y computadoras personales,
Hardware de bajo costo: El hardware de las PC se ha convertido rpidamente en un producto
estndar, mientras que el software que se suministra con ese hardware es lo que marca la
diferencia, las ventas de PCs se estabilizaron hacia mitades de los 80 y las ventas de productos
software continuaron creciendo.
Cuarta era
Sistemas personales potentes

Arquitecturas informticas descentralizadas

Expansin de Internet

La industria del software como cuna de la economa del mundo.

Tecnologas orientadas a objetos

Evolucin de la inteligencia del software: Los sistemas expertos y los sistemas de


inteligencia artificial

El software se desarrolla, no se fabrica


El software no se estropea. Pero se deteriora!
INGENIERA DEL SOFTWARE
Es el establecimiento y uso de principios de ingeniera robustos, orientados a obtener
software econmico que sea fiable y funcione de manera eficiente sobre
maquinas reales.
Bauer
La ingeniera del software surge de la ingeniera de sistemas y la ingeniera de hardware.
Abarca un conjunto de tres elementos clave:
Mtodos: indican cmo construir tcnicamente el software
planificacin y estimacin de proyectos,

Anlisis de requisitos del sistema y del software

diseo de estructura de datos, arquitectura de programas y procedimientos


algortmicos,

codificacin,

prueba y mantenimiento.

Herramientas: Suministran un soporte automtico o semiautomtico para los mtodos.


Cuando se integran las herramientas se conoce como CASE (computer assisted system
engineering o ingeniera de sistemas asistida por computadoras).
Procedimientos: Son los que unen los mtodos y las herramientas. Definen la secuencia en
que se aplican los mtodos, los controles, cambios, etc
Los cimientos estn orientados hacia la calidad.
La ingeniera de software est compuesta por una serie de pasos que abarcan los mtodos,
herramientas y procedimientos antes mencionados, que se denominan paradigmas de la
ingeniera del software.
Este paradigma se elige de acuerdo a la naturaleza del proyecto y de la aplicacin, de los mtodos
y herramientas a usar y los controles y entregas requeridos.
PARADIGMA DEL CICLO DE VIDA CLSICO
Ingeniera del Sistema Anlisis, Diseo,
Codificacin, Prueba y Mantenimiento
Ingeniera y anlisis de sistema: debido
a que el software es una parte de un
sistema
mayor,
se
comienza
estableciendo los requisitos de todos
los elementos del sistema, y luego
asignando
al
software,
algn
subconjunto de estos requisitos. es muy importante cuando el software debe interrelacionarse
con hardware, personas y bases de datos.
Anlisis de requisitos de software: Se debe comprender el mbito de la informacin del software,
as como la funcin, el rendimiento y las interfaces requeridas.
Diseo: Se enfoca sobre cuatro aspectos del software
La estructura de datos

La arquitectura del software

Detalle procedimental

Caracterizacin de la interfaz

Codificacin: Se transforma el diseo en cdigo mquina, empleando un lenguaje determinado


de programacin.
Prueba: Se realiza luego de la generacin del cdigo se centra en la lgica interna del software
y en las funciones externas
Mantenimiento: Es la etapa posterior a la distribucin del software. Puede ocurrir por diversos
motivos: Por ejemplo Errores ; el software debe adaptarse a cambios de su entorno etc.
Cuestionamientos Importantes Para Este Paradigma:
Raramente el desarrollo de software es estrictamente secuencial
Es difcil para el cliente establecer todos los requisitos del software inicialmente
El cliente debe tener paciencia hasta las etapas finales cuando el cliente puede ver una versin
operativa
PARADIGMA: DESARROLLO PROTOTIPADO DEL SOFTWARE
El modelo tomar una de las tres formas siguientes:
1. Un prototipo en papel o un modelo basado
en PC que describa la interaccin Hombremquina,
2. Un prototipo que implemente algunos
subconjuntos de la funcin requerida del
programa deseado
3. Un programa existente que ejecute parte o
toda la funcin deseada que tengan
caractersticas que deban ser mejoradas
La construccin de prototipos comienza
con una primera recoleccin de
requisitos, definiendo objetivos globales, identificando requisitos conocidos
Luego se realiza un diseo rpido, enfocndose sobre aspectos visibles del software
Mtodos de entrada, formatos de salida, etc.)
Construccin de un prototipo, que es evaluado por el cliente/usuario. Idealmente el
prototipo sirve como mecanismo para identificar requisitos del software
Tambin en este paradigma existen cuestionamientos importantes:
El cliente: Solicite muchas mejoras a realizar, incorporando nuevos requisitos, y prolongando el
tiempo del proyecto.
El tcnico de desarrollo: Con el fin de obtener un prototipo que funcione rpidamente puede hacer
uso de herramientas no adecuadas, para luego familiarizarse con ellas
MODELOS EVOLUTIVOS
PARADIGMA: MODELO EN ESPIRAL
Este modelo ha sido creado para cubrir las mejores
caractersticas
de
los
dos
paradigmas
anteriores. Define cuatro actividades principales:
1. Planificacin:
2. Anlisis de riesgos
3. Ingeniera: Desarrollo del producto de
siguiente nivel.
4. Evaluacin del cliente
Con cada iteracin alrededor de la espiral,
comenzando del centro hacia afuera, se construyen sucesivas versiones del software, cada vez
ms completas.

Durante la primera vuelta se definen los objetivos, las alternativas y las restricciones, y se
identifican y analizan riesgos. Si el anlisis de riesgos indica que hay incertidumbre en los
requisitos, se puede usar la creacin de prototipos en el cuadrante de ingeniera
El cliente evala el trabajo de ingeniera y sugiere modificaciones
En cada bucle alrededor de la espiral, la culminacin del anlisis de riesgo, resulta en una
decisin de seguir o no seguir. Si los riesgos son demasiado altos, se puede dar por finalizado
el proyecto.
Cada vuelta en el espiral requiere ingeniera, que se puede llevar a cabo mediante el enfoque
de ciclo de vida clsico o de la creacin de prototipos.
1. Utiliza un enfoque evolutivo para la ingeniera de software
2. Utiliza la creacin de prototipos como medio de reduccin del riesgo
3. Mantiene el enfoque sistemtico correspondiente a los del ciclo de vida clsico,
4. Demanda una consideracin directa de los riesgos tcnicos en todas las etapas del
proyecto, y si se aplica adecuadamente, debe reducir los riesgos antes que se transformen
en problemas.
CARACTERSTICAS DEL SOFTWARE
1. Es lgico, en lugar de fsico, por lo que tiene
caractersticas distintas a la del hardware:
2. El software se desarrolla, no se construye en
un sentido clsico
3. Los costos del software se encuentran en la
ingeniera, por lo que los proyectos de software
no se pueden gestionar como si fuesen
proyectos de fabricacin.
4. El software no se estropea, sino que se
deteriora.
(La proporcin de fallos en funcin del tiempo del
hardware frecuentemente se denomina curva de baera)
5. El software no es susceptible a males del entorno
6. Durante su vida, el software sufre cambios
(mantenimiento). Conforme se hacen los cambios,
es bastante probable que se introduzcan nuevos
defectos, haciendo que la curva de fallos tenga
picos
7. La mayora del software se construye a medida,
en vez de ensamblar componentes existentes.
APLICACIONES DEL SOFTWARE
Posibilidades de aplicacin:
1) Software de sistemas: conjunto de programas que han sido escritos para servir a otros
programas. Se caracteriza por:
Una fuerte interaccin con el hardware de computadoras
1. Una gran utilidad por Mltiples usuarios
2. Operacin concurrente que requiere una aplicacin
3. Una Comparticin de recursos y gestin de procesos
4. Unas Estructuras de datos complejas
5. Mltiples interfaces externas.
Ejemplos: compiladores, editores, componentes de sistemas operativos.
2) Software de tiempo real: es aquel software que mide, analiza, controla sucesos del mundo real
conforme ocurren.

Incluyen: un componente de adquisicin de datos que recolecta y da formato a la informacin


recibida del entorno externo, un componente de anlisis que transforma la informacin, un
componente de control de salida que responde al entorno, un componente de monitorizacin
que coordina todos los dems componentes, el tiempo de respuesta es un factor crtico.
3) Software de gestin: El procesamiento de informacin comercial constituye la mayor de las
reas de aplicacin del software
Ej. Procesamiento de transacciones en punto de venta, Datawarehouse.
4) Software de ingeniera y cientfico: Esta caracterizado por los algoritmos de manejo de
nmeros.
5) Software empotrado: Son programas que residen en memoria de solo lectura, y se utilizan
para controlar productos y sistemas de los mercados industriales y de consumo
(Ej. Control de las teclas del microondas)
6) Software de computadoras personales: Abarcan el procesamiento de textos, hojas de clculos,
grficos por computadora, gestin de base de datos, aplicaciones financieras, de negocio y
personales.
7) Software de inteligencia artificial: Algoritmos no numricos para resolver problemas
complejos,
(Ej. Redes neuronales: simula la estructura de proceso del cerebro)
CRISIS DEL SOFTWARE
Los problemas no se limitan al software que no funciona correctamente, sino a aquellos
problemas asociados a cmo desarrollar software, como mantener el volumen cada vez
mayor de software existente y como poder esperar mantenernos al corriente de la demanda
existente de software
Problemas: Los problemas que afligen al desarrollo de software
1. La planificacin y estimacin de costos imprecisos
2. La productividad de la comunidad del software no corresponde con la demanda de sus
servicios
3. La calidad del software no llega a ser a veces ni siquiera aceptable.
Otras dificultades del software:
Falta de tiempo para recoger datos sobre el proceso de desarrollo de software

Insatisfaccin del cliente

La calidad del software


El software existente puede ser muy difcil de mantener
Causas de la crisis de software
Se mide por la calidad de una sola entidad, en vez de medirse la calidad por los componentes
fsicos que se ensamblan, el desarrollo de software presenta un gran desafo intelectual, y sus
fallas, por ende son causadas por fallas humanas.
MITOS DEL SOFTWARE
Se consideran a estos mitos por lo que son: actitudes errneas que han causado serios
problemas, tanto a los gestores como a los tcnicos.
Mitos de gestin
Mito: Existen libros llenos de estndares y procedimientos para construir software.
Realidad: La pregunta debera ser si es que se usa y si estn completos, las respuestas a esta
pregunta es NO.

Mito: Mi gente dispone de las herramientas de desarrollo de software ms avanzadas; les


compramos las computadoras ms modernas.
Realidad: Se necesita mucho ms que tecnologa hardware
Mito: Si fallamos en la planificacin, podemos agregar ms programadores y adelantar el tiempo
perdido.
Realidad: Si se aade ms gente al proyecto, se lo retrasa ms
Mitos del cliente
Mito: Una declaracin general de los objetivos es suficiente para comenzar a escribir los
programas; podemos dar los detalles ms adelante.
Realidad: Una mala definicin inicial es causa de muchos problemas
Mito: Los requisitos del proyecto cambian continuamente, pero los cambios pueden
acomodarse fcilmente, ya que el software es flexible.
Realidad: El impacto del cambio vara segn el momento en que se introduzca.
Mito de los desarrolladores
Mito: Una vez que escribimos el programa y hacemos que funcione, nuestro trabajo ha
terminado.
Realidad: Entre el 50% y el 70% de todo el esfuerzo se realizar despus de que se le haya
entregado
Mito: Hasta que no tengo el programa ejecutndose, realmente no tengo forma de
comprobar su calidad.
Realidad: Se puede aplicar la revisin tcnica formal (RTF).
Mito: Lo nico que se entrega al terminar el proyecto es el programa funcionando.
Realidad: Un programa es solo una parte. La documentacin es la base de un buen desarrollo y
proporciona guas para la tarea de mantenimiento del software.
CALIDAD DEL SOFTWARE Y FACTORES QUE LA AFECTAN
El objetivo primordial de la ingeniera de software es producir un sistema, aplicacin o
producto de alta calidad.
La calidad de un sistema, aplicacin o producto es tan buena como los requisitos que describen el
problema, el diseo que modela la solucin, el cdigo que conduce a un programa ejecutable y
las pruebas que ejercitan el software para detectar errores. Un buen ingeniero utiliza
mediciones que evalan la calidad del anlisis y los modelos de diseo, el cdigo fuente y
los casos de prueba que se han creado al aplicar la ingeniera de software.
Factores que afectan la calidad
1. Operacin del producto (utilizndolo):

Correccin

Fiabilidad (es la probabilidad de que ese sistema funcione)

Usabilidad (facilidad de manejo)

Integridad (habilidad del software para resistir ataques)

Eficiencia

2. Revisin del producto (cambindolo)

Facilidad de mantenimiento

Flexibilidad

Facilidad de prueba

3. Transicin del producto (modificndolo para que funcione en un entorno diferente)

Portabilidad

Reusabilidad (capacidad de reutilizacin)

Interoperabilidad

You might also like