Nombre:
Maria Fernanda Moreno
Sergio Becerra
INGENIERÍA DE SOFTWARE
CADA FASE PUEDE INTRODUCIR ERRORES
Problemas mal planteados
Especificación incorrecta
Diseño inadecuado
Implementacion errónea
CONSTRUCCIÓN DE SOFTWARE
La dificultad depende del tamaño
Los errores son muy costosos de corregir
Inspeccionar frecuentemente la obra
Establecer y respetar una temporizacion
Elegir materiales
Planificar minuciosamente
POR QUE ESTÁN DIFÍCIL EL DESARROLLO DE SOFTWARE?
Imposibilidad de utilizar aproximaciones
Gran diferencia entre la teoría y la practica
Formalismos inadecuados
Problemas grandes, complejos y muy variados
ATRIBUTOS DE UN BUEN SOFTWARE
USABILIDAD
Interfaz y documentación apropiados.
Facil de utilizar por los usuarios
EFICIENCIA
Uso adecuado de recursos del sistema: Memoria, ciclos de procesamiento.
CONFIABILIDAD
Proteccion
No causa daños físicos ni económicos en caso de fallo
Seguridad
Mecanismos para garantizar la integridad del software y los datos.
Fiabilidad
Buen funcionamiento
MANTENIBILIDAD
Facil de evolucionar y corregir
MODELO DE SOFTWARE Y HARDWARE
El propósito de los modelos
Para dirigir la implementan:
-Particularidad del software: El modelo se convierte en la implementacion.
Permitir la detección de errores y omisiones durante el diseño.
Facilitar la comunicación de ideas sobre un problema o sobre su solución.
Permitir la investigación y comparación de soluciones alternativas.
Ayudarnos a entender un problema complejo mediante análisis y simulación.
Algunas características deseables de un modelo:
No muy caro de construir
Predictivo
Preciso
Comprensible
Abstracto
El uso de modelos es tan antiguo como la ingeniería.
Perspectiva escéptica sobre modelos de software
QUE ES UN PROCESO
DE DESARROLLO DE SOFTWARE?
RESTRICCIONES
Sobre las actividades, los artefactos, las herramientas.
CONSIDERACIÓN
De personal y de su organizacion
De herramientas y equipo
PUEDE INCLUIR:
Un modelo de ciclo de vida
define: los deliverables,
artefactos y productos
de cada fase.
proporciona criterios para
determinar cuando una fase
de desarrollo termino.
divide el desarrollo en fases
y percibe las actividades que
se deben realizar en cada fase.
Conjunto de actividades,
métodos y practicas utilizadas
en la producción y evaluación
de software.
PARA QUE LA
ING. DE SOFTWARE
Comunicación
Con el equipo de trabajo
Documentación
Con el cliente/usuario
es primordial.
*Entender los requisitos
del cliente.
RESPUESTA A LA
CRISIS DEL SOFTWARE
El termino se popularizo a
finales de los 60. Para darle
solucion a los problemas.
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?
Deseo de beneficiar
la experiencia previa.
Necesidad de planificar
para el mantenimiento y
la evolución.
QUE NO ES LA
ING. DE SOFTWARE?
*La ciencia de las computadoras
*La ingeniería de sistemas
MODELO DE CAPACIDAD DE MADUREZ DEL PSw
NIVELES DEL MODELO
OPTIMIZADO
*Usa tecnologías avanzadas para mejorar el
PSw haciendo sobrealimentar cuantitativa.
*Incluye caracteristicas del nivel 4
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
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
REPETIBLE
*Define procesos para controlar el coste, planificación y funcionalidad.
*Tiene en cuenta aspectos exitosos de anteriores.
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
Obtenido de estudio de diferentes empresas
productoras de software en todo el mundo.
Modelo propuesto por el SEI-estandar
EL DESARROLLO INDISCIPLINADO CONDUCE A ERRORES
En un ecosistema contaminado
Las enfermedades se propagan
El coste del error depende del proyecto
Un proyecto desarrollado de forma indisciplinada tiene muchas posibilidades de fracasar
FASES DE DESARROLLO DE UN PROYECTO
CLIENTE
PROBLEMA
ESPECIFICACIÓN
DISEÑO
PRODUCTO
CRISIS DEL SOFTWARE
DEFICIENCIAS
Carencia de documentos
Escasa portabilidad
Falta de adaptabilidad
Mantenimiento problematico
Ineficiencia
Costo excesivo
Falta de fiabilidad
Retraso de entrega
PROCESO DE SOFTWARE
EVOLUCION Y MANTENIMIENTO
Corrección de errores no detectados
Respuesta a cambios del negocio
VALIDACIÓN DE SOFTWARE
Comprobar que cumple con los requisitos del cliente.
IMPLEMENTACION
Articulación de los programas con:
Otras utilidades(bibliotecas)
Gestores de BD
Codificaron de programas
MARCO GENERAL
Evaluación y mantenimiento Especificación
Las restricciones de operacion
Describe funcionalidad del software
Tareas/Actividades
Validación de Software
Implementaacion/Desarrollo
Especificaciones
Independiente de su complejidad y tamaño
Define las tareas necesarias para producir software.
QUE ES UN CICLO DE VIDA DE SOFTWARE?
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).
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.
El periodo de tiempo que comienza cuando se concibe un software y concluye cuando el producto ya no esta disponible para su uso.
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.
DEFINICIÓN SEGÚN AUTORES
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.
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.
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.
QUE ES UN SISTEMA DE SOFTWARE
TIPOS DE SOFTWARE
SEGÚN SU APLICACIÓN
Software de inteligencia artificial
Hace uso de algoritmos heuristicos
para resolver problemas complejos
Software basado en Web
Software de apoyo a la
utilizacion de internet
De gestión en Internet
Software de oficina y gestión personal
Procesamiento de textos
Hojas de calculo
Gráficos por computadora
juegos
Software empotrado
Usado para controlar productos
electricos y electronicos
Ejecuta funciones limitadas y precisas
Software de Ingeniería y científico
Maneja algoritmos matematicos
aplicado a:
*astronomía
*cálculos
*fabricación automática
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 tiempo real
Gestiona el control de sucesos
del mundo real:
*Adquisición de datos
*Control de salida
*monitorizacion
Software de sistemas
Programas que sirven a otro
programas
Fuerte interaccion con el hardware
de la pc
Alta utilizacion
COMO PRODUCTO
Personalizado
El cliente controla los requisitos
Ordenados por un cliente particular a un contratista de software.
Genérico
Los requisitos los controla la factoría del software.
hechos por una organización para propósitos generales y que se venden al publico.
Web para actualizar
Sistemas de documentación
Archivos de configuración
Programas independientes para PC