Documentos de Académico
Documentos de Profesional
Documentos de Cultura
INGENIERIA DE SISTEMAS
INGENIERIA SOFTWARE
CONCEPTO BASICO
SESION 01
ING. IVAN PEREZ FARFAN
IPEREZF@UCVLIMA.EDU.PE
IVANPEREZF@HOTMAIL.COM
PRUEBA DE ENTRADA
CONCEPTOS BASICOS
Ingeniera
Conjunto de conocimientos y tcnicas
cientficas
software
Elemento lgico del sistema
Problema
Conjunto de hechos o
circunstancias que dificultan la
consecucin de algn fin
Qu es Ingeniera de Software?
Es una disciplina o rea de la informtica
o ciencia de la computacin, que ofrece
conocimientos, tcnicas y mtodos para
desarrollar y mantener software de
calidad que resuelva problemas de todo
tipo.
Qu es Software de Calidad?
Software concordante con:
Los requisitos funcionales del cliente
Los
estndares
de
desarrollo
reconocidos en la industria de software
mundial.
MTODOS
PROCESO
UN ENFOQUE DE
CALIDAD
Herramientas y Mtodos
Las herramientas de la ingeniera del
software
proporcionan
un
enfoque
automtico o semi-automtico para el
proceso y para los mtodos.
Los mtodos de la ingeniera del software
indican cmo construir tcnicamente el
software.
Proceso de Software
Marco de trabajo de las tareas que se
requieren para construir software de alta
calidad.
Define el enfoque que se aplica cuando
el software es tratado por la ingeniera
Proceso de Software
Conjunto de etapas con la
intencin de lograr un objetivo:
Calidad en Ingeniera de
Software
Software son los programas de computador, los
procedimientos y documentacin asociada y los datos
relativos a la operacin del sistema informtico
IEEE Std.610 [IEEE, 1990]
Calidad de Software:
Grado con el que un sistema, componente o proceso
cumple:
Los requisitos especificados
Las necesidades o expectativas del cliente o usuario
(R.S.Pressman, 1993)
Calidad en Ingeniera de
Software - Terminologa
Gestin de la calidad de software (Software Quality
Management)
Aspecto de la funcin general de la gestin que
determina y aplica la poltica de calidad.
Aseguramiento de la Calidad de Software (Quality
Assurance):
Conjunto de actividades planificadas y sistemticas
necesarias para aportar la confianza en que el producto
va a satisfacer los requisitos dados de calidad.
Control de la Calidad del Software (Quality Control):
Tcnicas y actividades de carcter operativo, utilizadas
para satisfacer los requisitos relativos a la calidad,
centradas en mantener bajo control un proceso y
eliminar las causas de defectos en las diferentes fases
del ciclo de vida.
Calidad en Ingeniera de
Software - Terminologa
Verificacin y Validacin del Software:
Verificacin:
Conjunto de actividades para comprobar si un
producto software est tcnicamente bien construido,
si funciona.
Validacin:
Conjunto de actividades, para comprobar si el
software construido satisface los requerimientos del
usuario.
Evidentemente slo tiene objeto validar el
producto que ya est verificado
mbitos de la gestin de la
calidad
mbitos de actuacin:
Nivel de empresa / organizacin: consiste en la
creacin de una estructura organizativa apropiada
para fomentar el trabajo por la calidad de todas las
personas y departamentos de la empresa.
Nivel de proyecto: en cada proyecto de desarrollo
se deben aplicar las directrices de calidad fijadas a
nivel de la organizacin. Para ello es imprescindible
la adaptacin de las mismas a las condiciones de
cada proyecto.
Documentacin del
Sistema de Calidad
Proyecto 1
Proyecto 2
Plan de Calidad
Adaptado
Plan de Calidad
del Proyecto
Proyecto 3
Plan de Calidad
Adaptado
Condiciones
especiales del
Proyecto
Normas y exigencias
del cliente
10
11
Sin Calidad
Con Calidad
12
CLIENTE
Patrocina el desarrollo
del sistema
$$$,
necesidades
DESARROLLADOR
USUARIO
Obligacin
contractual
Usa el
sistema
Necesidades
Construye
el
sistema
Sistema de software
Analista
Diseador
Programador
Implementacin del
programa
Prueba Unitaria
Tester
Prueba de Integracin
Prueba del Sistema
Liberacin del Sistema
Capacitador
Anlisis y Definicin de
Requerimientos
Mantenimiento
13
Ing.Software y de Sistemas
El Software como componente de un sistema:
Hardware
Software
Personas
Sistema
Lmite
Interaccin con el exterior
Componentes y sus relaciones
Cambios y
Tendencias
Tecnologa de Objetos
Problemas con
Modelo en Cascada
CAMBIOS EN
INGENIERIA DE
Desktop computing
SOFTWARE
Inversin de relacin
de costo entre HW y SW
Interfaces
Grficas
Tiempo para
salir al mercado
Interconexin
en Redes
14
Cambios y
Tendencias
Nociones Fundamentales:
Abstraccin
Mtodos y Notaciones para Anlisis y Diseo
Prototipacin
Arquitectura del Software
Proceso de Software
Reuso
Mediciones
Herramientas y Ambientes Integrados
Abstraccin
es una decripcin del problema a cierto nivel de
generalizacin que permite concentrarnos en los
aspectos esenciales del problema sin
preocuparnos de detalles.
Identificar clases de objetos que permiten
agrupar elementos
Formar jerarquas
15
Prototipos
Construir una pequea versin de un
sistema para
ayudar al usuario y al cliente a identificar los
requerimientos clave
demostrar la factibilidad de un diseo o
enfoque
16
Arquitectura
La arquitectura de un sistema lo describe
en trminos de un conjunto de unidades
arquitectnicas y de cmo esas unidades
se relacionan entre s
Existen distintos estilos arquitectnicos y
distintos enfoques para identificar las
unidades arquitectnicas
Proceso
Proceso de desarrollar software
(organizacin y disciplina en las
actividades)
contribuir a la calidad del software y a la
velocidad con la que se desarrolla
17
Desarrollo
Proceso- especificidad
Controlado
Aplicaciones para
toda la
empresa o divisin
Aplicaciones
Departamentales
Mono-usuario,
Desarrollo
Rpido
herramientas para
PC de escritorio
Mision -critica
Multi -usuario
Multi -plataforma
2- 3-capas
Visin/Alcance limitados
Riesgo bajo/medio
mono/ multi -plataforma
1-2-capas
Paquetes/desarrollo
minimo
Bajo costo/bajo
riesgo
plataforma nica
de aplicaciones
Reuso
Sacar partido de los elementos comunes
entre aplicaciones reutilizando elementos
de desarrollos previos
Componentes Reusables como bienes de
activo del negocio
18
Mediciones
Cuantificando dnde estamos y lo que
podemos, describimos nuestras acciones
y sus resultados en un lenguaje
matemtico comn que nos permite
evaluar nuestro progreso.
Herramientas y Ambientes
Integrados
Utilizar herramientas para mejorar el
desarrollo de software, ayudan en:
anlisis y diseo
registrar el avance
depurar programas
probar programas
19
Modelo de Proceso de
Software
20
Modelos Incrementales
Construccin
de prototipos
Modelos Evolutivos
Espiral
Modelo Especializado
Desarrollo
Concurrente
El Proceso Unificado
Desarrollo Basado
en Componentes
Mtodos Formales
Software Orientado a Aspectos
Modelo
Comunicacin
Planeacin
Modelado
Construccin
Despliegue
Cascada
Entrega 1
Entrega 2
Plan Rpido
C
Comunicacin
Desarrollo
Modelado
Diseo Rpido
Construccin
del Prototipo
P
C
M
P
C
M
Ent.3
Ent N
MODELO S INCREMENTALES
MODELO DE
CONSTRUCCION
DE PROTOTIPOS
21
Ninguno
Planeacin
Bajo
Desarrollo
Comunicacin
En Espera
de Cambio
Modelado
Inicio
En
Revisin
En
Modificacin
Despliegue
Construccin
En Lnea
Modelo Espiral
Realizado
Modelo Concurrente
Sobre Metodologas
Es necesario establecer un
enfoque disciplinado y
sistemtico para desarrollar
un proyecto de software.
22
Definiciones de Metodologa
Conjunto de filosofas, fases,
procedimientos, reglas, tcnicas,
herramientas, documentacin y
aspectos de formacin para los
desarrolladores de sistemas de
informacin. - Maddison 1983
23
Definiciones de Metodologa
Conjunto de procedimientos,
tcnicas, herramientas y un
soporte documental que ayuda a
los desarrolladores a realizar
nuevo software.
Necesidades principales
Mejores aplicaciones considerando
la mejor calidad (varios factores).
Un mejor proceso de desarrollo,
con mayor rapidez y con recursos
apropiados.
Un proceso estndar en la
organizacin.
24
Objetivos generales
Registrar los requisitos de un sistema de
informacin de forma acertada.
Proporcionar un mtodo sistemtico de
desarrollo que permita controlar el progreso.
Construir un sistema de informacin
considerando tiempo y costo apropiados.
Construir un sistema bien documentado y de
fcil mantenimiento.
Identificar cambios necesarios rpidamente.
Proporcionar un sistema que satisfaga a todos.
Definiciones
La descomposicin del proceso se
realiza hasta el nivel de tareas y
actividades elementales.
Para cada tarea se identifica un
procedimiento que define la forma
de ejecutarla y sirve de vehculo de
comunicacin.
25
Definiciones
Un procedimiento puede utilizar
una o ms tcnicas, grficas con
apoyos textuales formales, y
determinan el formato de los
productos resultantes de cada
tarea.
Definiciones
Para la realizacin de una tcnica,
podemos apoyarnos en las
herramientas , software que
automatizan su aplicacin.
Una metodologa puede seguir uno o
varios modelos de ciclos de vida.
26
Procedimiento
Calidad
Herramienta
Tcnica
27
Desarrollo Convencional
Problemas en el Desarrollo
Convencional
Los resultados finales eran
impredecibles.
No hay forma de controlar lo que esta
sucediendo en el proyecto.
Los cambios organizativos afectan
negativamente al proceso de
desarrollo.
28
Desarrollo Estructurado
Se observaron problemas:
Especificaciones monolticas, redundantes,
ambiguas e imposibles de mantener.
29
ciclo de desarrollo
Verificaciones
intermedias
Planificacin y control
Comunicacin efectiva
Amplia utilizacin
Fcil formacin
Herramientas CASE
Actividades que
mejoren el desarrollo
Soporte mantenimiento
Soporte reutilizacin.
Clasificacin
Metodologas
Estructuradas
Orientadas al
Objeto
{
{
Orientada a
procesos
Orientada a
datos
Jerrquicos
No Jerrquicos
Puros
Evolutivos
Sistema de
Tiempo Real
30
RUP
Requerimientos
de
Usuarios
Software
31
Fases
Flujos de Trabajo de Procesos
Inicio
Elaboracin
Construccin
Transicin
Modelacin de Negocios
Requerimientos
Anlisis y Diseo
Implementacin
Prueba
Implantacin
Flujos de Trabajo de Soporte
Admin. Configuracin
Admin. de Proyectos
Ambiente o Entorno
Iteracin(es)
Preliminar
Iter.
#1
Iter.
#2
Iter.
#n
Iter.
#n+1
Iter.
#n+2
Iter.
#m
Iter.
#m+1
Iteraciones
1. Fases de RUP
Inicio Define el alcance y objetivos del proyecto.
Elaboracin Plan del proyecto, Especificacin
de caractersticas y Arquitectura base.
Construccin Construye y opera el producto.
Transicin Transicin del producto a la
comunidad del usuario.
Metas
Principales
Inicio
Elaboracin
Construccin
Transicin
<-------------------------------------Tiempo------------------------------------->
32
Definicin de RUP
Es un proceso de ingeniera de software orientado
a objetos.
Consiste en un conjunto de actividades
necesarias para transformar los requerimientos
del usuario en el sistema de software.
Est especializado para diversos tipos
de
software de sistemas, diversas reas de
aplicacin, diferentes tipos de organizaciones y
diferentes tamaos de proyectos.
QU tareas hacer ?
Actividades
QUIN las hace?
Roles
CUNDO se hace ?
Workflow
QU generar ?
Artefactos
33
COMPETENCIAS
34
INGENIERIA DE SOFTWARE
PRINCIPIO
Entrada
Salida
PROCESO
INGENIERIA DE SOFTWARE
PROCESOS
Requerimientos De Usuarios
PROCESOS DE
INGENIERIA DE
SOFTWARE
Sistema o aplicacin
35
INGENIERIA DE SOFTWARE
CICLO DE VIDA
Principales Hitos
Inicio
Elaboracin
Construccin
Transicin
TIME
ADMINISTRACION DE
PROYECTOS
36
37
38
39
40
41
42