instrucciones (programas de cómputo) que cuando se ejecutan proporcionan las características,
función y desempeño buscados
estructuras de datos que permiten que los programas manipulen en forma adecuada la información,
información descriptiva tanto en papel como en formas virtuales que describen la operación y uso
de los programas.
El software se desarrolla o modifica con intelecto; no se manufactura en el sentido clásico
Nota:
Las dos actividades requieren la
construcción de un “producto”, pero los enfoques son distintos
El software no se “desgasta”.
Nota:
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)
el software no es susceptible
a los problemas ambientales a pesar de esto cabe recalcar que el software no se
desgasta pero si se deteriora ya que este sufrirá cambios.
3. Aunque la industria se mueve hacia la construcción basada en componentes, la mayor parte del
software se construye para un uso individualizado.
Nota:
Para el hardware volver a usar ciertos componentes como como tornillos y
circuitos integrados es totalmente natural en el proceso de ingeniería, en
cambio el software debe diseñarse e implementarse de modo que pueda volverse a
usar en muchos programas diferentes.
¿QUE ES? Esta formada por procesos, un conjunto de métodos y un arreglo de herramientas que permiten
elaborar software de alta calidad.
¿PORQUE ES IMPORTANTE? Porque esta presente en comercio, cultura y actividades cotidianas.
¿CUALES SON LOS PASOS? *Proceso ágil y adaptable para obtener un resultado de alta calidad *satisfacer las
necesidades de los usuarios.
¿Producto final? PROGRAMADOR: conjunto de programas, contenido y otros productos que constituyen el
software. USUARIO: información resultante que de algún modo hace mejor el mundo en el que vive.
NATURALEZA DEL SOFTWARE
el software es un transformador de información —produce, administra, adquiere, modifica,
despliega o transmite información
Dominios de aplicación del software
Nota:
Existen 7 categorías de software que
plantean retos continuos a los ingenieros de software
• Software de sistemas:
Nota:
Conjunto de programas escritos para dar servicio a otros programas,
determinado software de sistemas que procesa estructuras de información compleja
pero determinista, se caracteriza por gran interacción con el hardware de la
computadora.
• Software de aplicación:
Nota:
Programas aislados que resuelven una necesidad especifica de
negocios, son programas o aplicaciones que facilitan en mundo de los negocios por
ejemplo procesamiento de transacciones en punto de venta, control de procesos
de manufactura en tiempo real.
• Software de ingeniería y
ciencias:
Nota:
Es caracterizado por algoritmos (devoradores de números) aplicaciones
que van desde la astronomía a la vulcanología. Sin embargo las aplicaciones
modernas estan abandonando los algoritmos numéricos convencionales.
• Software incrustado:
Nota:
Reside dentro de un producto o sistemas y se usa para implementar y
controlar características y funciones para el usuario y para el sistema en sí, El software incrustado ejecuta
funciones limitadas y particulares (por ejemplo, control del tablero de un
horno de microondas).
• Software de línea de
productos:
Nota:
Proporciona una capacidad específica para uso de muchos consumidores
por ejemplo control de inventario de productos, procesamiento de texto hojas de
cálculo, graficas por computadora etc.
• Aplicaciones web:
Nota:
Son mas que un conjunto de hipertexto vinculados que
presentan información con uso de texto y gráficas limitadas, sin embargo las
webapps están evolucionando hacia ambientes de computo sofisticado ya que
contienen bases de datos y aplicaciones de negocios
• Software de inteligencia
artificial:
Nota:
Usa algoritmos no numéricos para resolver problemas complejos las
aplicaciones incluyen robotica, sistemas expertos, reconocimiento de patrone,
redes neuronales artificiales, demostración de teoremas o juegos.
• Computación en un mundo
abierto:
Nota:
El reto para los ingenieros de software será desarrollar software de
sistemas y aplicación que permita a dispositivos móviles, computadoras
personales y sistemas empresariales comunicarse a través de redes enormes.
• Construcción de
redes:
Nota:
El desafío para los ingenieros de software es hacer arquitecturas
sencillas (por ejemplo, planeación financiera personal y aplicaciones
sofisticadas que proporcionen un beneficio a mercados objetivo de usuarios
finales en todo el mundo).
• Fuente
abierta:
Nota:
tendencia
creciente que da como resultado la distribución de código fuente para
aplicaciones de sistemas (por ejemplo, sistemas operativos, bases de datos y
ambientes de desarrollo) de modo que mucha gente pueda contribuir a su
desarrollo.
Software
heredado
Son programas muy antiguos existen características que lo representan por ejemplo mala calidad,
código confuso, documentación mala e inexistente etc.
Nota:
Conforme va pasando el tiempo será frecuente que los sistemas de
software evolucione 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.
LA NATURALEZA ÚNICA DE LAS WEBAPPS
(entre 1990 y 1995) los sitios web consistían en poco más que un conjunto de archivos de hipertexto
vinculados que presentaban la información con el empleo de texto y gráficas limitadas.
Nota:
Con el
pasar del tiempo los ingenieros de la web brindaron la capacidad de computo
junto con contenido de información, En la actualidad, las webapps se han
convertido en herramientas sofisticadas de cómputo que no sólo proporcionan
funciones aisladas al usuario final, sino que también se han integrado con
bases de datos corporativas y aplicaciones de negocios.
La gran mayoría de webapps presenta los siguientes atributos:
• Uso intensivo de
redes.
• Concurrencia.
• Carga
impredecible.
• Rendimiento.
• Disponibilidad.
• Orientadas a los
datos.
• Contenido
sensible.
• Evolución
continua.
• Inmediatez.
• Seguridad.
• Estética
EL PROCESO DEL SOFTWARE
Es un conjunto de actividades, acciones y tareas que se ejecutan cuando va a
crearse un producto de trabajo.
Actividad
Acción
Tarea
es un enfoque adaptable que permite que las personas que hacen el trabajo busquen y elijan el conjunto
apropiado de acciones y tareas para el trabajo
Estructura del proceso
Establece el fundamento para el proceso completo de la ingenieria de software
consta de cinco actividades Estructurales
Comunicación
Planeación
Modelado
Construcción
Despliegue
Se usan durante el desarrollo de
programas pequeños y sencillos.
Se complementan con actividades sombrillas
Seguimiento y control del proyecto de
software
Administración del riesgo
Aseguramiento de calidad del software
Revisiones técnicas
Medición
Administración de la congiguración del software
Administración de la reutilización
Preparación y producción del producto del trabajo
LA PRÁCTICA DE LA INGENIERÍA DE SOFTWARE
La esencia de la practica de la ingeniería de software
Entender el problema
Planear la solución
Ejecutar el plan
Examinar la exactitud del resultado
Principios generales
David Hooker propuso siete principios que se centran
en la practica de la ingeniería de software como un
todo