Post on 11-Mar-2015
Ingeniería de Ingeniería de SotfwareSotfware
¿Qué es Ingeniería de ¿Qué es Ingeniería de Software?Software?
►La El término Ingeniería de Software La El término Ingeniería de Software surge a final de los años 60surge a final de los años 60
►"Ingeniería del Software es un "Ingeniería del Software es un conjunto de métodos,herramientas y conjunto de métodos,herramientas y procedimientos para producir software procedimientos para producir software de gran calidad" de gran calidad" [R. Pressman][R. Pressman]
¿Cuál es su Objetivo?¿Cuál es su Objetivo?
►Su objetivo Producir Producto de Su objetivo Producir Producto de SoftwareSoftware Productos GenéricosProductos Genéricos Productos PersonalizadosProductos Personalizados
Genérico Personalizados
Sistema de ComprasSistema de ComprasOFFICEOFFICE
¿Por qué Es Importante?¿Por qué Es Importante?
"Aunque los computadores han tenido mucho éxito, la"Aunque los computadores han tenido mucho éxito, laexperiencia diaria de uso de computadores es experiencia diaria de uso de computadores es
asociadaasociadamuchas veces con dificultad, pena y otras barreras muchas veces con dificultad, pena y otras barreras
para lapara lamayoría de la gente... La falta de usabilidad del mayoría de la gente... La falta de usabilidad del
software ysoftware yun diseño pobre de los programas son una vergüenzaun diseño pobre de los programas son una vergüenzasecreta de la industria."secreta de la industria."
► Mitchell Kapor, Software Design Manifesto, 1990Mitchell Kapor, Software Design Manifesto, 1990
¿Qué conceptos debemos ¿Qué conceptos debemos conocer?conocer?
► MétodoMétodo Planificación y estimación de proyectosPlanificación y estimación de proyectos Análisis de requisitosAnálisis de requisitos DiseñoDiseño CodificaciónCodificación PruebaPrueba MantenimientoMantenimiento
► HerramientasHerramientas► ProcedimientosProcedimientos
Ingeniería de Software
Metódos
ProcedimientoHerramientas
¿Qué conceptos debemos ¿Qué conceptos debemos conocer?conocer?
Calidad del SoftwareCalidad del Software► InternosInternos
CorrecciónCorrección RobustezRobustez ModificabilidadModificabilidad ReusabilidadReusabilidad CompatibilidadCompatibilidad EficienciaEficiencia PortabilidadPortabilidad VerificabilidadVerificabilidad IntegridadIntegridad Facilidad de usoFacilidad de uso
¿Qué conceptos debemos ¿Qué conceptos debemos conocer?conocer?
Calidad del SoftwareCalidad del Software► InternosInternos
ModularidadModularidad LegibilidadLegibilidad
Ciclo de Vida del SoftwareCiclo de Vida del Software
► Ciclo de vida:"Sucesión de etapas por las que atraviesa un producto software a lo largo de su desarrollo y existencia."
► Tipos Clásico Clásico con prototipado En espiral Prototipado puro Combinación de estilos, etc.
Ciclo de Vida del SoftwareCiclo de Vida del Software
Ciclo de vida clásico Ciclo de vida clásico (W. Roycea en los años 70)(W. Roycea en los años 70)
Análisis
Diseño
Codificación
Puesta en Marcha
Ciclo de Vida del SoftwareCiclo de Vida del Software
PrototipadoPrototipado
► Tipo vertical, horizontal, evolutivo, desechable
Análisis
Construcción Prototipo
Diseño
DiseñoRápido
Requeri
mie
nto
Validación
Ciclo de Vida del SoftwareCiclo de Vida del Software
Proceso evolutivo (espiral)
Introducción al Análisis OOIntroducción al Análisis OO
►¿Qué es un objeto?¿Qué es un objeto?
Muebles
Mundo Real
Introducción al Análisis OOIntroducción al Análisis OO
►¿Qué es un objeto?¿Qué es un objeto?
Muebles
Clase (Mayor)
Instancia
Introducción al Análisis OOIntroducción al Análisis OO
►Las Clases tienen Las Clases tienen AtributosAtributos Métodos Métodos
CLASE
Atributos
costodimensionescolorpesoubicación
Métodos
comprarvendermoverpintardescribir
Muebles
Introducción al Análisis OOIntroducción al Análisis OO
►Las Clases tienen Las Clases tienen AtributosAtributos Métodos Métodos
CLASE
Mueble
costodimensionescolorpesoubicación
comprarvendermoverpintardescribir
Muebles
Introducción al Análisis OOIntroducción al Análisis OO
►Las Clases tienen Las Clases tienen Atributos :Atributos :Un conjunto de atributos
genéricos Métodos :Métodos :Cada una de estas operaciones
modificará uno o más atributos del objeto.
CLASEcomprarvendermoverpintardescribirMuebles
costodimensionescolorpesoubicación
Métodos Atributos
DisertacionesDisertaciones
Temas►Sistemas Distribuidos►Capability Maturity Model for Software
(CMM) ►Data Warehousing►Data Mining►Business Intelligence►Licencia GNU/GPL
Pauta Pauta Las disertaciones deben cumplir con el objetivo de Propagar el Las disertaciones deben cumplir con el objetivo de Propagar el
conocimiento especifico del tema que abordaconocimiento especifico del tema que aborda
► Introducción al tema a desarrollar.Introducción al tema a desarrollar.► Descripción del tema.Descripción del tema.
Descripción general: ¿Qué aplicaciones tiene? ¿Cuales son sus objetivos?Descripción general: ¿Qué aplicaciones tiene? ¿Cuales son sus objetivos? Interrelación:¿Ayuda a otras áreas del conocimiento?Interrelación:¿Ayuda a otras áreas del conocimiento? modelos matemáticos y métricas asociadas ¿Existen métricas Asociadas?modelos matemáticos y métricas asociadas ¿Existen métricas Asociadas?
► Análisis críticoAnálisis crítico Relación con el Curso y percepción personal : ¿Qué opinión le merece el Relación con el Curso y percepción personal : ¿Qué opinión le merece el
tema estudiado y su aporte a la ingeniería de Software? tema estudiado y su aporte a la ingeniería de Software? ¿Cuáles son las desventajas encontradas? ¿Cuáles son las desventajas encontradas?
► ConclusionesConclusiones ¿Cómo resumiría el Tema analizada?¿Cómo resumiría el Tema analizada? ¿Cuándo puede ser usado?¿Cuándo puede ser usado? ¿Buenas practicas Asociada?¿Buenas practicas Asociada?
Introducción al Análisis OOIntroducción al Análisis OO
►Encapsulamiento de ClasesEncapsulamiento de Clases Atributos :Atributos :Un conjunto de atributos
genéricos Métodos :Métodos :Cada una de estas operaciones
modificará uno o más atributos del objeto.
CLASEcomprarvendermoverpintardescribirMuebles
costodimensionescolorpesoubicación
Métodos Atributos
Encapsulamiemto
Estimulo
Introducción al Análisis OOIntroducción al Análisis OO
CLASES (super clases, subclase) CLASES (super clases, subclase) ►JERARQUIAJERARQUIA►ATRIBUTOSATRIBUTOS►MENSAJESMENSAJES
subclases que pueden añadir atributos subclases que pueden añadir atributos "privados" y métodos"privados" y métodos
Mueble (SUPER CLASE)
Sub-clase de la Super-Clase Mueble
mesa escritoriosilla
Instancia de silla
Introducción al Análisis OOIntroducción al Análisis OO
Conceptos Propios de la Orientación a Conceptos Propios de la Orientación a ObjetosObjetos
►EncapsulamientoEncapsulamiento►HerenciaHerencia►PolimorfismoPolimorfismo
claseA B
Figura
circulo cuadrado triangulo
Dibujar Dibujar Dibujar
Dibujar
Análisis OOAnálisis OO
Proceso Unificado de SoftwareProceso Unificado de Software UML (1997)UML (1997)
►Lenguaje de propósito generalLenguaje de propósito general►Permite crear modelosPermite crear modelos
"El hábito no hace el monje"
Análisis OOAnálisis OO Diagramas Usados UMLDiagramas Usados UML
►Diagramas de estructuraDiagramas de estructura Diagrama de clases Diagrama de clases Diagrama de componentes Diagrama de componentes Diagrama de objetos Diagrama de objetos Diagrama de despliegue Diagrama de despliegue Diagrama de paquetesDiagrama de paquetes
►Diagramas de comportamientoDiagramas de comportamiento Diagrama de actividades Diagrama de actividades Diagrama de casos de uso Diagrama de casos de uso Diagrama de estados Diagrama de estados
►Diagramas de InteracciónDiagramas de Interacción Diagrama de secuencia Diagrama de secuencia Diagrama de comunicación Diagrama de comunicación
Análisis OOAnálisis OO¿Qué son análisis y diseño?¿Qué son análisis y diseño?
Una definición general seria:Una definición general seria:►AnálisisAnálisis
Centrado en la investigación del ProblemaCentrado en la investigación del Problema►DiseñoDiseño
Como el sistema va a cumplir con los Como el sistema va a cumplir con los requerimientosrequerimientos
Análisis OOAnálisis OO¿Qué son análisis y diseño?¿Qué son análisis y diseño?
Una definición OO seria:Una definición OO seria:►AnálisisAnálisis
Identifica los Objetos del dominio del Identifica los Objetos del dominio del problemaproblema
►DiseñoDiseñoSe definen los objetos lógicos de softwareSe definen los objetos lógicos de software
Analista Diseño Implementación
Mueble public Mueble{
….}
Análisis OOAnálisis OOIdentificar un Objeto o ClaseIdentificar un Objeto o Clase►Entidades externas Entidades externas ►CosasCosas►SucesosSucesos►RolesRoles►LugaresLugares►EstructuralesEstructurales
Análisis OOAnálisis OO¿Cómo saber si el objeto es correcto? ¿Cómo saber si el objeto es correcto? ► Información retenidaInformación retenida►Servicio necesarioServicio necesario►Atributos múltiplesAtributos múltiples►Atributos ComunesAtributos Comunes►Operaciones comunesOperaciones comunes►Requisitos esencialesRequisitos esenciales
Análisis OOAnálisis OODiagramas BásicosDiagramas Básicos
casos de uso
el modelo conceptual
Definir diagramas colaboración
diagramas de diseño de clases
Diagramas a Definir Diagramas a Definir
Análisis OOAnálisis OODiagramas Básicos > Diagrama Caso de USODiagramas Básicos > Diagrama Caso de USO
diagramas de diseño de clases
Juego de Dados
Pagar JuegoJugador
Análisis OOAnálisis OODiagramas Básicos > Caso de USO Diagramas Básicos > Caso de USO
► Caso de uso Alto NivelCaso de uso Alto Nivel► Caso de uso ExtendidoCaso de uso Extendido
JugarDados
(Comienzan con un verbo)Jugador
Análisis OOAnálisis OOCaso de USOCaso de USO► No son los Requisitos► Descripción narrativa de Procesos► Describe secuencia de acciones de un actor► ¿Cómo el uso del sistema provee un valor
observable para un usuario, o como satisface sus necesidades?
Ejemplo1. Retiro de dinero desde un cajero2. La comprar un articulo3. Juego de datos JugarDados
Análisis OOAnálisis OOCaso de USOCaso de USO► Enunciado del ejemplo juego de datosEnunciado del ejemplo juego de datos
Juego de DadosJuego de Dados
el jugador puede realizar todas las jugadas queel jugador puede realizar todas las jugadas que desee el jugador ganara si al hacer rodar los dosdesee el jugador ganara si al hacer rodar los dos dados obtiene un puntaje igual a 7 de lo contrario dados obtiene un puntaje igual a 7 de lo contrario con cualquier otro puntaje perderácon cualquier otro puntaje perderá
Análisis OOAnálisis OODiagramas Básicos > Diagrama Caso de USODiagramas Básicos > Diagrama Caso de USO► Caso de uso Alto NivelCaso de uso Alto Nivel
Caso de UsoActores
Descripción
REF. 1
Jugador
Juego de Dados
Este caso de uso comienza cuando el jugador recoge y hace rodar los dados. Si los puntos suman siete gana y pierde si suman cualquier otro número.
Análisis OOAnálisis OODiagramas Básicos > Diagrama Caso de USODiagramas Básicos > Diagrama Caso de USO► Caso de uso ExpandidoCaso de uso Expandido
Caso de UsoActores
resumen
REF. Numero de referencia
Lista de actores quién inicial el caso de uso.
Nombre del caso de uso
Propósito Intención del caso de uso.
Repetición del caso de uso de altonivel o alguna síntesis similar.
Tipo 1. Primario, secundario u opcional.2. Esencial o real.
Evento
Ref. Cruzada:
Sistema
Análisis OOAnálisis OODiagramas Básicos > Diagrama ConceptualDiagramas Básicos > Diagrama Conceptual► Diagrama conceptualDiagrama conceptual
Jugador
Nombre
Dados
valorMostrado
Jugadaconsta
Lanza
1
1
1
2
1 2
Juega
Análisis OOAnálisis OODiagramas Básicos > Diagrama ColaboraciónDiagramas Básicos > Diagrama Colaboración► Diagrama ColaboraciónDiagrama Colaboración
:jugador d1:Dado
d2:Dado
Jugar() 1:r1:=lanzar
2:r2:=lanzar
Análisis OOAnálisis OODiagramas Básicos > Diagrama diseño de clasesDiagramas Básicos > Diagrama diseño de clases► Diagrama diseño de ClasesDiagrama diseño de Clases
Jugador
Nombre
Dados
valorMostrado
Jugadaconsta
Lanza
1
1
1
2
1 2
Juegar()Lanzar()
Nombre
Iniciar()
Análisis OOAnálisis OOejemplo: Sistema de Proyecto ejemplo: Sistema de Proyecto
1.1. RequerimientosRequerimientos
2.2. Casos de usos Alto NivelCasos de usos Alto Nivel
3.3. Casos de usos ExpandidosCasos de usos Expandidos
4.4. Diagrama de SecuenciaDiagrama de Secuencia
5.5. ContratosContratos
6.6. Diagrama conceptualDiagrama conceptual
7.7. Diagrama de ClasesDiagrama de Clases
Análisis OOAnálisis OOejemplo: Sistema de Proyecto ejemplo: Sistema de Proyecto
1.1. RequerimientosRequerimientos► Informe Informe
1.- Informe de movimiento1.- Informe de movimiento 2.- Informe etapa y actividades2.- Informe etapa y actividades
► AlmacenamientoAlmacenamiento 3.- Guardar información movimiento proyecto etapa 3.- Guardar información movimiento proyecto etapa
actividades responsableactividades responsable 4.- Guardar información de los datos responsables4.- Guardar información de los datos responsables 5.- Guardar información de proyectos5.- Guardar información de proyectos 6.- Guardar información de las etapas6.- Guardar información de las etapas 7.- Guardar información de actividades 7.- Guardar información de actividades
► ProcesamientoProcesamiento 8.- Calculo porcentual de cada etapa8.- Calculo porcentual de cada etapa 9.- Calculo porcentual de cada etapa 9.- Calculo porcentual de cada etapa
Análisis OOAnálisis OOejemplo: Sistema de Proyecto ejemplo: Sistema de Proyecto
Caso de Uso MantenedorProyecto ID 05
Actor Responsable
Descripción Este caso se encarga de mantener la información de los proyectos que son ingresados por el responsable.
► Casos de usos alto NivelCasos de usos alto Nivel
Análisis OO (Ej.) Sistema de ProyectoAnálisis OO (Ej.) Sistema de Proyecto ► Casos de usos ExpandidoCasos de usos Expandido
Caso de Uso MantenedorProyecto ID 05
Actor Responsable
Propósito Mantener actualizada la información del proyecto
Resumen Este caso se encarga de mantener la información de los proyectos que son ingresados por el responsable.
Tipo Primario y esencial
Referencias Cruz.
Curso Normal de los Eventos
EVENTO SISTEMA
1. Este caso comienza cuando el responsable solicita ver los proyectos
3. El responsable solicita “crear un nuevoProyecto”
5. El responsable solicita “modificar proyecto"
2. El sistema despliega una lista con todos los proyectos.
4. El sistema informa al usuario del estado de creación
6.-El sistema informa del estado de la modificación
Curso Alternativo
Linea 5 : no ingreso el responsable el identificador del proyecto, se muestra un mensaje de error
Análisis OO (Ej.) Sistema de ProyectoAnálisis OO (Ej.) Sistema de Proyecto ► Diagrama de SecuenciaDiagrama de Secuencia
:Sistema
1.- Este caso comienza cuando el responsable solicita ver los proyectos
3. El responsable solicita “crear un nuevo
Proyecto”
5. El responsable solicita “modificar proyecto"
verListaProyecto()
crearProyecto()
modificarProyecto()
Se crea un proyecto
ver caso de uso ???
Análisis OO (Ej.) Sistema de ProyectoAnálisis OO (Ej.) Sistema de Proyecto ► ContratosContratos
Nombre VerListadoProyecto ()
Responsabilidad Obtener de la base de datos un listado de proyectos.
Referencia Caso de uso “mantenedorDeproyecto”
Pre-Condicion Que exista una instancia de responsable
Post-Condicion Se creo una instancia de proyecto
Diseño OO (Ej.) Sistema de ProyectoDiseño OO (Ej.) Sistema de Proyecto ► Diagrama de colaboraciónDiagrama de colaboración
List listaProyecto= VerListadoProyecto ():ListControlador
:fachada
:Proyecto
1: List listaProyecto= RecuperarProyectos ():List
2: List listaProyecto= RecuperarProyectos ():List
Análisis OO (Ej.) Sistema de ProyectoAnálisis OO (Ej.) Sistema de Proyecto ► Diagrama ConceptualDiagrama Conceptual
Proyecto
Responsable
Etapas
Actividades
Movimiento
crea
crea
genera
crea
crea
1
0..n
1..n1
1
0..n
0..n
0..n1
Diseño OO (Ej.) Sistema de ProyectoDiseño OO (Ej.) Sistema de Proyecto ► Diagrama ClasesDiagrama Clases
Proyecto
Responsable
Etapas
Actividades
Movimiento
crea
crea
genera
crea
crea
1
0..n
1..n1
1
0..n
0..n
0..n1
Nombre
ingresarProyecto()ModificarProyecto()EliminarProyecto()
Nombre
ingresarEtapa()ModificarEtapa()EliminarEtapa()