Ivonne Mesa Bautista
CAPITULO I: SOFTWARE E INGENIERIA DEL SOFTWARE
El software se forma con las instrucciones (programas) que al ejecutarse se proporcionan las características, funciones y el grado de desempeño deseados, así como también por las estructuras de datos que permiten que los programas manipulen la información de manera adecuada, los documentos que describen la operación y el uso de programas también forman el software.
El software de computadora es el producto resultante del software que construyen los ingenieros de software y que mantienen a largo plazo, incluye los programas que se ejecutan dentro de una computadora, se inicia por alguna necesidad de negocios: la necesidad de corregir un defecto en una aplicación existente, el imperativo de adaptar un sistema heredado aun ambiente de negocios cambiante.
Actualmente el software de computadora es la tecnología individual más importante en el ámbito mundial ya que afecta de manera muy cercana todos los aspectos de nuestra vida y se ha vuelto omnipresente en todos lados como por ejemplo en el comercio, la cultura y las actividades cotidianas; dicho software esta construido que cualquier otro producto con éxito, mediante la aplicación de un proceso que conduce al resultado de alta calidad capaz de satisfacer las necesidades de la gente que lo usara (enfoque de ingeniería de software); dicho resultado esta formado por los programas, contenido (datos) y los documentos que constituyen el software (punto de vista del ingeniero de software), mientras que para el usuario el producto que obtiene es la información resultante que de alguna manera mejora el mundo del usuario.
El software es un elemento lógico del sistema y tiene características diferentes a la del hardware:
El software se desarrolla, no se manufactura: su alta calidad se alcanza por medio del buen diseño, requiere de la construcción de un producto, los costos de l software se concentra en la ingeniería, significa que los proyectos de software no se pueden manejar como si fueran proyectos de manufactura.
El software no se desgasta pero se deteriora: el software es inmune a los males ambientales que desgastan el hardware.
La mayor parte del software aun se construye a medida del software: un componente de software se debe diseñar e implementar de forma que pueda utilizarse en muchos programas diferentes. Los componentes reutilizables modernos encapsulan tanto los datos como el proceso que se aplica a estos, lo que permite al ingeniero de software crear aplicaciones nuevas a partir de pares reutilizables.
Existen siete categorías del software que son las siguientes y continuamente presentan retos para los ingenieros de software:
Software de sistemas: es una colección de programas escritos para servir a otros programas. Algunos programas de sistemas procesan estructuras de información complejas, pero determinadas; mientras que algunas otras procesan datos intermediarios.
Software de aplicación: consiste en programas independientes que resuelven una necesidad de negocios específica. Las aplicaciones procesan datos empresariales o técnicos de forma que facilitan las operaciones d negocios o la toma de decisiones técnica o de gestión.
Software científico y de ingeniería: se caracteriza por algoritmos devoradores de números.
Software emportado: reside dentro de la memoria de solo lectura del sistema y con el se implementan y controlan características y funciones para el usuario final y el sistema mismo.
Software de línea de productos: diseñado para proporcionar una capacidad específica y la utilización de muchos clientes.
Aplicaciones basadas en Web: engloban un aspecto amplio de aplicaciones, son un poco mas que un conjunto de hipertexto.
Software de inteligencia artificial: utiliza algoritmos no numéricos en la resolución de problemas complejos que es imposible abordar por medio de un análisis directo.
Los sistemas de software heredado fueron desarrollados hace tiempo, y esta caracterizado por su longevidad y el ser critico para los negocios, aun que cuenta con la desventaja de poca calidad, puesto que algunas veces los diseños son imposibles de extender, su código es complicado, documentación escasa o inexistente; los sistemas heredados evolucionan por una o mas de las siguientes razones:
★ El software debe adaptarse para satisfacer las necesidades de los nuevos ambientes.
★ Debe mejorarse para implementar los nuevos requerimientos de los negocios.
★ Debe extenderse para hacerlo operable con sistemas y bases de datos modernos.
★ Debe rediseñarse para hacerlo viable dentro de un ambiente de red,
El software evoluciona a través del tiempo sin importar su dominio de aplicación tamaño o complejidad el cambio (con frecuencia llamado mantenimiento de software) conduce este proceso y se presenta cuando se corrigen errores.