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

Nombre:
Maria Fernanda Moreno
Sergio Becerra