INGENIERÍA DE SOFTWARE
QUE ES UN SISTEMA DE SOFTWARE
Programas independientes para PC
Archivos de configuración
Sistemas de documentación
Web para actualizar
TIPOS DE SOFTWARE
COMO PRODUCTO
Genérico
hechos por una organización para propósitos generales y que se venden al publico.
Los requisitos los controla la factoría del software.
Personalizado
Ordenados por un cliente particular a un contratista de software.
El cliente controla los requisitos
SEGÚN SU APLICACIÓN
Software de sistemas
Programas que sirven a otro
programas
Fuerte interaccion con el hardware
de la pc
Alta utilizacion
Software de tiempo real
Gestiona el control de sucesos
del mundo real:
*Adquisición de datos
*Control de salida
*monitorizacion
Software de gestión
Procesa información de negocios SIG
Apoya la gestión y la toma de decisiones
Puede acceder a múltiples BD
Software de Ingeniería y científico
Maneja algoritmos matematicos
aplicado a:
*astronomía
*cálculos
*fabricación automática
Software empotrado
Usado para controlar productos
electricos y electronicos
Ejecuta funciones limitadas y precisas
Software de oficina y gestión personal
Procesamiento de textos
Hojas de calculo
Gráficos por computadora
juegos
Software basado en Web
Software de apoyo a la
utilizacion de internet
De gestión en Internet
Software de inteligencia artificial
Hace uso de algoritmos heuristicos
para resolver problemas complejos
DEFINICIÓN SEGÚN AUTORES
F.L Bauer
El establecimiento y uso
de principios de ingeniería
robustos, orientados a obtener
económicamente software que sea fiables
y funcionen eficientemente en maquinas reales.
SEI
Ing. es la aplicación de sistema de conocimiento científico en la creación y construcción de soluciones, que satisfacen una buena relación efectividad/precio, de problemas prácticos al servicio de la humanidad. La ing. de software es la forma de Ing. que aplica los principios de las ciencias de la computación y las matemáticas en la obtención de la solución de problemas del software que satisfacen una buena relación efectiva/precio.
R. Fairley
La disciplina tecnológica y de gestión que concierne a la producción y el mantenimiento sistemático de productos de software desarrollados y modificados dentro de unos plazos estipulados y costes estimados.
QUE ES LA ING. DE SOFTWARE?
Aplicaron de un enfoque sistemático
disciplinado y cuantifica ble del desarrollo, la operación y el mantenimiento del software.
QUE ES UN CICLO DE VIDA DE SOFTWARE?
El periodo de tiempo que comienza cuando se concibe un software y concluye cuando el producto ya no esta disponible para su uso.
El ciclo de vida del software tipicamente incluye una fase de requisitos, una fase de diseño, una fase de pruebas, una fase de instalación y aceptación, una fase de operación y mantenimiento,y en algunos casos una fase de retirada.
Un modelo de ciclo de vida es una abstracción particular que representa un ciclo de vida de software. Un modelo de ciclo de vida se denomina con frecuencia un ciclo de vida de desarrollo software (SDLC, siglas inglesas).
PROCESO DE SOFTWARE
MARCO GENERAL
Define las tareas necesarias para producir software.
Independiente de su complejidad y tamaño
Tareas/Actividades
Especificaciones
Implementaacion/Desarrollo
Validación de Software
Evaluación y mantenimiento Especificación
Describe funcionalidad del software
Las restricciones de operacion
IMPLEMENTACION
Codificaron de programas
Articulación de los programas con:
Gestores de BD
Otras utilidades(bibliotecas)
VALIDACIÓN DE SOFTWARE
Comprobar que cumple con los requisitos del cliente.
EVOLUCION Y MANTENIMIENTO
Respuesta a cambios del negocio
Corrección de errores no detectados
CRISIS DEL SOFTWARE
DEFICIENCIAS
Retraso de entrega
Falta de fiabilidad
Costo excesivo
Ineficiencia
Mantenimiento problematico
Falta de adaptabilidad
Escasa portabilidad
Carencia de documentos
FASES DE DESARROLLO DE UN PROYECTO
CLIENTE
PROBLEMA
ESPECIFICACIÓN
DISEÑO
IMPLEMENTACION
PRODUCTO
EL DESARROLLO INDISCIPLINADO CONDUCE A ERRORES
Un proyecto desarrollado de forma indisciplinada tiene muchas posibilidades de fracasar
El coste del error depende del proyecto
En un ecosistema contaminado
Las enfermedades se propagan
MODELO DE CAPACIDAD DE MADUREZ DEL PSw
Modelo propuesto por el SEI-estandar
Obtenido de estudio de diferentes empresas
productoras de software en todo el mundo.
NIVELES DEL MODELO
INICIAL
*Se define un proceso general según el caso
*Puede ser aleatorio o caótico
*Define pocos procesos particulares
*El éxito depende del esfuerzo individual
REPETIBLE
*Define procesos para controlar el coste, planificación y funcionalidad.
*Tiene en cuenta aspectos exitosos de anteriores.
DEFINIDO
*Documenta actividades de gestión y de ingeniería.
*Define estándares para toda la organización y los integra al proceso del software.
*Todo proyecto usa una versión de proceso documentado y aprobado.
*Incluye características del nivel 2
GESTIONADO
*Recopila métricas del PSw y de calidad
*Utiliza medidas para controlar cuantitativa mente el producto Sw y el PSw.
*Incluye las características del nivel 3
OPTIMIZADO
*Usa tecnologías avanzadas para mejorar el
PSw haciendo sobrealimentar cuantitativa.
*Incluye caracteristicas del nivel 4
QUE NO ES LA
ING. DE SOFTWARE?
*La ciencia de las computadoras
*La ingeniería de sistemas
PARA QUE LA
ING. DE SOFTWARE
Deseo de beneficiar
la experiencia previa.
Necesidad de planificar
para el mantenimiento y
la evolución.
Necesidad de estimar
dinero, tiempo y esfuerzos
Se basa principalmente
en el modelado del proyecto
actual y su comparación con
modelos anteriores.
¿Queremos el trabajo?
¿Como lo queremos?
= ¿Cuanto cobramos?
RESPUESTA A LA
CRISIS DEL SOFTWARE
El termino se popularizo a
finales de los 60. Para darle
solucion a los problemas.
Comunicación
Con el cliente/usuario
es primordial.
*Entender los requisitos
del cliente.
Con el equipo de trabajo
Documentación
QUE ES UN PROCESO
DE DESARROLLO DE SOFTWARE?
Conjunto de actividades,
métodos y practicas utilizadas
en la producción y evaluación
de software.
PUEDE INCLUIR:
Un modelo de ciclo de vida
divide el desarrollo en fases
y percibe las actividades que
se deben realizar en cada fase.
proporciona criterios para
determinar cuando una fase
de desarrollo termino.
define: los deliverables,
artefactos y productos
de cada fase.
CONSIDERACIÓN
De herramientas y equipo
De personal y de su organizacion
RESTRICCIONES
Sobre las actividades, los artefactos, las herramientas.
MODELO DE SOFTWARE Y HARDWARE
Perspectiva escéptica sobre modelos de software
El uso de modelos es tan antiguo como la ingeniería.
Algunas características deseables de un modelo:
Abstracto
Comprensible
Preciso
Predictivo
No muy caro de construir
El propósito de los modelos
Ayudarnos a entender un problema complejo mediante análisis y simulación.
Permitir la investigación y comparación de soluciones alternativas.
Facilitar la comunicación de ideas sobre un problema o sobre su solución.
Permitir la detección de errores y omisiones durante el diseño.
Para dirigir la implementan:
-Particularidad del software: El modelo se convierte en la implementacion.
ATRIBUTOS DE UN BUEN SOFTWARE
MANTENIBILIDAD
Facil de evolucionar y corregir
CONFIABILIDAD
Fiabilidad
Buen funcionamiento
Seguridad
Mecanismos para garantizar la integridad del software y los datos.
Proteccion
No causa daños físicos ni económicos en caso de fallo
EFICIENCIA
Uso adecuado de recursos del sistema: Memoria, ciclos de procesamiento.
USABILIDAD
Facil de utilizar por los usuarios
Interfaz y documentación apropiados.
POR QUE ESTÁN DIFÍCIL EL DESARROLLO DE SOFTWARE?
Problemas grandes, complejos y muy variados
Formalismos inadecuados
Gran diferencia entre la teoría y la practica
Imposibilidad de utilizar aproximaciones
CONSTRUCCIÓN DE SOFTWARE
Planificar minuciosamente
Elegir materiales
Establecer y respetar una temporizacion
Inspeccionar frecuentemente la obra
Los errores son muy costosos de corregir
La dificultad depende del tamaño
CADA FASE PUEDE INTRODUCIR ERRORES
Problemas mal planteados
Especificación incorrecta
Diseño inadecuado
Implementacion errónea