Semana01-Metodologías

42
1 ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS INGENIERIA SOFTWARE CONCEPTO BASICO SESION 01 ING. IVAN PEREZ FARFAN [email protected] [email protected]

description

metodologias

Transcript of Semana01-Metodologías

  • 1ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS

    INGENIERIA SOFTWARECONCEPTO BASICO

    SESION 01ING. IVAN PEREZ FARFAN

    [email protected]

    [email protected]

  • 2Trabajo para expoword: Automatizacion deun proceso de la organizacion

    Se debe de formar grupos de 4 alumnos:Este trabajo debe ser desarrollado con la

    metodologa RUP y se debe de entregar: Trabajo impreso con todos los pasos de la

    metodologa Avances peridicos del sistema El Mejor trabajo participara en expoword

  • 3Trabajo de Investigacin: Proyecto de investigacin La lnea de Investigacin es Tecnologas de Informacin El Trabajo es individual. Presentacin a asesores que van a evaluar la parte temtica

    y tecnolgica. Al finalizar se va ha evaluar el proyecto con jurado.

    PRUEBA DE ENTRADA

  • 4CONCEPTOS BASICOS

  • 5Ingeniera

    Problema

    Conjunto de conocimientos y tcnicas cientficas

    Elemento lgico del sistemasoftware

    Conjunto de hechos o circunstancias que dificultan la consecucin de algn fin

    Qu es Ingeniera de Software?

    Es una disciplina o rea de la informticao ciencia de la computacin, que ofrececonocimientos, tcnicas y mtodos paradesarrollar y mantener software decalidad que resuelva problemas de todotipo.

  • 6Qu es Software de Calidad?

    Software concordante con: Los requisitos funcionales del cliente Los estndares de desarrolloreconocidos en la industria de softwaremundial.

    UN ENFOQUE DE UN ENFOQUE DE CALIDADCALIDAD

    PROCESOPROCESOMTODOSMTODOS

    HERRAMIENTASHERRAMIENTAS

    Ingeniera de Software como Tecnologa Estratificada

  • 7Las herramientas de la ingeniera delsoftware proporcionan un enfoqueautomtico o semi-automtico para elproceso y para los mtodos.Los mtodos de la ingeniera del softwareindican cmo construir tcnicamente elsoftware.

    Herramientas y Mtodos

    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

  • 8Conjunto de etapas con la intencin de lograr un objetivo:

    Proceso de Software

    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)

  • 9Calidad 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

  • 10

    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.

    mbitos de la Calidad y la relacin entre ellos

    Proyecto 1Proyecto 1

    Plan de Calidad Plan de Calidad AdaptadoAdaptado

    Proyecto 2Proyecto 2

    Plan de Calidad Plan de Calidad del Proyectodel Proyecto

    Proyecto 3Proyecto 3

    Plan de Calidad Plan de Calidad AdaptadoAdaptado

    Normas y exigenciasdel cliente

    Condicionesespeciales delProyecto

    Manual de CalidadDocumentacin delDocumentacin delSistema de CalidadSistema de Calidad

  • 11

    Sistemas de Calidad: Nivel de Empresa

    Por Sistema de Calidad se entiende:La estructura de organizacin, de

    responsabilidades, de actividades, de recursos y de procedimientos que se establecen para

    llevar a cabo la gestin de calidad. (ISO 9000)

    Caractersticas que debe tener un Sistema de Calidad: Ser eficaz y comprendido por todos. Ofrecer confianza en satisfacer las

    necesidades de los clientes. Poner ms nfasis en prevenir que en

    detectar y corregir.

    Sistemas de Calidad: Nivel de Empresa

    Un Sistema de Calidad consta de: Documentacin:

    Manual de calidad Procedimientos de

    calidad Registros de datos

    sobre calidad Parte prctica:

    Aspectos fsicos Aspectos humanos

  • 12

    Sistemas de Calidad: Nivel de Empresa - Dificultades en la

    Implantacin

    Alta dedicacin de tiempo y trabajo Resistencia al Cambio Desilusin inherente a un fracaso Falta de recursos Falta de Formacin y Educacin

    Con Calidad

    Sin Calidad

    Sistemas de Calidad: Nivel de Empresa -Recomendaciones para Implantacin

    Asegurar el compromiso de la Alta Direccin Involucrar a los mandos intermedios Delegar en mandos intermedios la toma de decisiones Formacin e Informacin Adecuada Establecer mecanismos de seguimiento continuo Utilizar casos reales Pactar con los expertos, la metodologa, requisitos,

    niveles y criterios de aceptacin Documentacin exacta, veraz Utilizar los registros de calidad

  • 13

    CLIENTE Patrocina el desarrollo del sistema

    USUARIO

    Usa elsistema

    DESARROLLADOR

    Construyeel sistema

    Obligacincontractual

    $$$,necesidades

    Sistema de software

    Necesidades

    Mantenimiento

    Diseo del Sistema

    Anlisis y Definicin de Requerimientos

    Diseo del programa

    Implementacin delprograma

    Prueba Unitaria

    Prueba de Integracin

    Prueba del Sistema

    Liberacin del Sistema

    Paso

    en

    el

    D

    esar

    rollo

    de

    So

    ftwar

    eR

    oles d

    e lo

    s D

    esarrollad

    ores

    Analista

    Diseador

    Programador

    Tester

    Capacitador

  • 14

    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

    Tiempo parasalir al mercado

    Inversin de relacin de costo entre HW y SW

    Desktop computing

    Interconexinen Redes

    Tecnologa de Objetos Problemas conModelo en Cascada

    InterfacesGrficas

    CAMBIOS EN INGENIERIA DE

    SOFTWARE

  • 15

    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

  • 16

    Construir Modelos y verificar completitud y consistencia

    Usar notacin estndar para ayudarnos a comunicar y documentar las decisiones

    Mtodos de Notacin Anlisis y Diseo

    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 El usuario se siente cmodo con la

    apariencia y forma de interaccin?

  • 17

    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

  • 18

    Aplicaciones paratoda la

    empresa o divisin

    Aplicaciones

    Departamentales

    Mono-usuario, herramientas para

    PC de escritorio

    Desarrollo

    Controlado

    Desarrollo Rpido de aplicaciones

    Mision -critica Multi -usuario Multi -plataforma 2- 3-capas

    Visin/Alcance limitados Riesgo bajo/medio mono/ multi -plataforma 1-2-capas

    Paquetes/desarrollominimo Bajo costo/bajoriesgo plataforma nica

    Proceso- especificidad

    Reuso Sacar partido de los elementos comunes

    entre aplicaciones reutilizando elementos de desarrollos previos

    Componentes Reusables como bienes de activo del negocio

  • 19

    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

  • 20

    Qu es un Modelo de Proceso de Software?

    Es una estrategia de desarrollo que losingenieros de software deben emplearpara resolver problemas de la industria desoftware

    Modelo de Proceso de Software

    Modelos de Procesos de Software

    La Ingeniera de Software es una disciplinaque integra al proceso, los mtodos y lasherramientas para el desarrollo de software decomputadora. Existe un gran numero demodelos de proceso para la ingeniera desoftware, todas definen un conjunto deactividades y tareas.

  • 21

    Modelos Prescriptivos del Procesos de Software

    El Proceso Unificado

    DRAModelos Incrementales

    Incremental

    Construccin de prototipos

    EspiralModelos Evolutivos

    DesarrolloConcurrente

    Mtodos Formales

    Desarrollo Basadoen Componentes

    Software Orientado a Aspectos

    Modelo Especializado

    PC CM

    PC CM

    PC CM

    PC CM D

    Entrega 2

    Entrega 1

    Ent.3

    Ent N

    MODELO S INCREMENTALES

    Modelado Diseo Rpido

    DesarrolloConstruccin del Prototipo

    MODELO DE CONSTRUCCION DE PROTOTIPOS

    Comunicacin

    Plan Rpido

    Comunicacin Planeacin Modelado DespliegueModeloCascada

    Construccin

    D

    D

    D

  • 22

    Modelo Espiral

    Inicio

    Construccin

    Planeacin

    Modelado Comunicacin

    Despliegue

    Modelo Concurrente

    Ninguno

    Bajo Desarrollo

    En Revisin

    En Modificacin

    En Espera de Cambio

    En Lnea

    Realizado

    Es necesario establecer un enfoque disciplinado y

    sistemtico para desarrollar un proyecto de software.

    Sobre Metodologas

  • 23

    Conjunto de filosofas, fases, procedimientos, reglas, tcnicas, herramientas, documentacin y aspectos de formacin para los desarrolladores de sistemas de informacin. - Maddison 1983

    Definiciones de Metodologa

    Las Metodologas nos describen ...

    Cmo se debe dividir un proyecto en etapas.

    Qu tareas se llevan a cabo en cada una Qu salidas se producen y cundo Qu restricciones se aplican Qu herramientas se van a utilizar Cmo se gestiona y controla un proyecto

  • 24

    Conjunto de procedimientos, tcnicas, herramientas y un

    soporte documental que ayuda a los desarrolladores a realizar

    nuevo software.

    Definiciones de Metodologa

    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.

  • 25

    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.

    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.

    Definiciones

  • 26

    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.

    Definiciones

  • 27

    Para cada tarea ...

    Herramienta

    Tcnica

    ProcedimientoMetodologa

    Modelos

    Calidad

    Historia del desarrollo de metodologas

    Desarrollo Convencional

    Desarrollo Estructurado

    Orientacin a Objetos

  • 28

    Desarrollo Convencional

    En los primeros aos (50s). Aplicaciones de tipo cientfico. No existan metodologas de desarrollo. Carencia de documentacin.

    Se observaron en el proceso de desarrollo de sistemas: analistas (funcionales y tcnicos), programadores y operadores.

    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.

  • 29

    Desarrollo Estructurado

    En las dcadas 60s - 90s. Modelado de funciones. Anlisis y diseo estructurado Enfoque Top-Down.

    Se observaron problemas: Especificaciones monolticas, redundantes, ambiguas e imposibles de mantener.

    Desarrollo Orientado al Objeto

    A finales de los aos 80s. Trata procesos y datos. Lenguajes de simulacin y generacin de

    prototipos. Abstraccin, ocultacin de informacin y

    modularidad.

  • 30

    Caractersticas deseables en una metodologa

    Existencia de reglas predefinidas

    Cobertura total del 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

    Orientada a

    procesos

    JerrquicosOrientada a

    datos No Jerrquicos

    Orientadas al

    Objeto

    Sistema de

    Tiempo Real

    Puros

    Evolutivos

    {{

    {

  • 31

    El RATIONAL UNIFIED PROCESSRUP

    RUP

    Requerimientosde

    Usuarios

    Software

  • 32

    Admin. de ProyectosAmbiente o Entorno

    Modelacin de Negocios

    ImplementacinPrueba

    Anlisis y Diseo

    Iteracin(es)Preliminar

    Iter.#1

    FasesFlujos de Trabajo de Procesos

    Iteraciones

    Flujos de Trabajo de Soporte

    Iter.#2

    Iter.#n

    Iter.#n+1

    Iter.#n+2

    Iter.#m

    Iter.#m+1

    Implantacin

    Admin. Configuracin

    Requerimientos

    Elaboracin TransicinInicio Construccin

    Inicio Elaboracin Construccin Transicin

    MetasPrincipales

    1. Fases de RUP

    Inicio Define el alcance y objetivos del proyecto. Elaboracin Plan del proyecto, Especificacinde caractersticas y Arquitectura base.

    Construccin Construye y opera el producto. Transicin Transicin del producto a lacomunidad del usuario.

  • 33

    Definicin de RUP

    Es un proceso de ingeniera de software orientadoa objetos.

    Consiste en un conjunto de actividadesnecesarias para transformar los requerimientosdel usuario en el sistema de software.

    Est especializado para diversos tipos desoftware de sistemas, diversas reas deaplicacin, diferentes tipos de organizaciones ydiferentes tamaos de proyectos.

    Actividades

    Roles

    Workflow

    Artefactos

    QU tareas hacer ?QU tareas hacer ?QU tareas hacer ?QU tareas hacer ?

    QUIN las hace?QUIN las hace?QUIN las hace?QUIN las hace?

    CUNDO se hace ?CUNDO se hace ?CUNDO se hace ?CUNDO se hace ?

    QU generar ?QU generar ?QU generar ?QU generar ?

  • 34

    Captura varias de las mejores prcticas en eldesarrollo moderno de software que es aplicablepara un amplio rango de proyectos yorganizaciones.

    RUP es una gua de cmo usar UML de la forma ms efectiva.

    COMPETENCIAS

    MODELADO DE INFORMACION MEDIANTE EL MANEJO DE NOTACIONES Y CONCEPTOS

    UTILIZADOS EN LOS LENGUAJES DE MODELAMIENTO PARA EL ANALISIS Y DISEO DE

    SISTEMAS DE INFORMACION ORIENTADOS A OBJETOS, DE ACUERDO A LAS NORMATIVAS DE

    LAS HERRAMIENTAS EXISTENTES.

  • 35

    Unidad de un Sistema de Informacin

    PROCESOEntrada Salida

    INGENIERIA DE SOFTWARE

    PRINCIPIO

    INGENIERIA DE SOFTWARE

    PROCESOS

    PROCESOS DE INGENIERIA DE SOFTWARE

    Requerimientos De Usuarios Sistema o aplicacin

    Un Proceso es el conjunto total de actividades de ingenieria necesarias para transformar dentro de un Software los requerimientos de los usuarios

    Managing the Process, Humphrey 1989

  • 36

    Principales Hitos

    TIMELOS PROCESOS TIENE CUATRO FASESInicio o Incepcin: Definir el alcance del proyectoElaboracin: Planear el Proyecto, especificar caractersticas y

    disear la arquitectura.Construccin: Construir el ProductoTransicin: Desplegar a la comunidad de Usuarios

    INGENIERIA DE SOFTWARE

    CICLO DE VIDA

    Inicio Elaboracin Construccin Transicin

    ADMINISTRACION DE PROYECTOS

  • 37

  • 38

  • 39

  • 40

  • 41

  • 42