titulo planeación y gestión -...

of 42/42
1 TITULO Temas XXVI Salón de INFORMÁTICA La gobernabilidad de TI: Una responsabilidad y reto para los directivos de TI Planeación y gestión del cambio hacia una nueva tecnología de desarrollo Victor Manuel Toro C. [email protected]

Post on 19-Sep-2018

216 views

Category:

Documents

0 download

Embed Size (px)

TRANSCRIPT

  • 1

    TITULO

    Temas

    XXVI Saln de INFORMTICA

    La gobernabilidad de TI: Una responsabilidad y reto para los directivos de TI

    Planeacin y gestindel cambio hacia una

    nueva tecnologa de desarrollo

    Victor Manuel Toro [email protected]

  • 2

    Hasta hace algunos aos:

    El papel de la informtica en la empresa

    Antes:

    La informtica era Respaldo y Soporte a posteriori

    Vendedores

    Agentes

    Representantes

    Brokers

    Distribuidores

    Asesores

    Concesionarios

    ...

  • 3

    Internety otras

    Tecnologas

    Ahora:

    El papel de la informtica en la empresa

    Hoy:

    La informtica est en toda la empresa,es la fachada de la empresa,

    y muchas veces, es el principal/nico contacto con el cliente

    Desintermediacin

  • 4

    Si la informtica es la fachada de la empresa ...

    Cmo lograr una buena fachada ?

    Alinear los sistemas de informacin con los objetivos

    de la empresa dentro de un contexto globalizado!

    Desarrollar los sistemas de informacin con una

    arquitectura moderna orientada a:

    Internet

    a Servicios (i.e. a la integracin)

    Apoyarse en las nuevas tecnologas y metodologas

    Seguir procesos modernos de desarrollo de software !!

  • Evolucin de la

    Arquitectura

  • 6

    Evolucin de la Arquitectura de los

    Sistemas de Informacin

    SistemasOrientados a Servicios

    Sistemas Web Multi-Nivel

    Sistemas Cliente/Servidor

    Sistemas Monolticos

  • 7

    Sistemas Monolticos

    Uno o varios programas

    Funcionan en un solo computador

    Comparten algunos archivos

    En el mismo computador estn:

    Programas

    Datos

    Usuarios

    Sistema de Nmina

    Cap

    tura

    No

    ved

    ades

    Ver

    ific

    aci

    n d

    e In

    con

    sist

    enci

    as

    Act

    ual

    izac

    in

    Rep

    ort

    es y

    ch

    equ

    es

    MaestroNmina

    AuxiliaresNmina

  • 8

    Los Sistemas de Informacin de la Empresa

    Sistemas de Informacin de la Empresa:

    Campo de Monolitos

    Totalmente Centralizado Costosamente Escalable Difcil intercambio de informacin

    InventariosContabilidad Facturacin Nmina

  • 9

    Un Sistema de InformacinMirando al interior de un

    Sistema de Monoltico

    Interfaz conel usuario

    Lgicadel negocio

    Manejode Datos

    Cdigo con funcionalidad

    entremezclada.

    Difcil mantenimiento.

    Mnima reutilizacin.

    Portabilidad imposible

    ...

  • 10

    Distribucin de la lgica (?)

    Dificultad de actualizacin

    Administracin muy costosa

    Incompatibilidad

    Ineficiente en redes amplias

    Clie

    nte

    Lgica en

    el Cliente

    Interfaz Usuario

    Lgica en el

    Servidor

    Manejo de DatosSer

    vido

    rLgica en

    el Cliente

    Interfaz Usuario

    Clie

    nte

    Lgica en

    el Cliente

    Interfaz Usuario

    Clie

    nte

    Interfazcon el usuario

    Lgicadel negocio

    Manejode Datos

    Arquitectura

    Cliente Servidor en 2 Niveles

  • 11Sistema de InformacinInterfaz

    con el usuario

    Lgica

    del negocio

    Manejo

    de Datos

    Evolucin hacia los

    Sistemas de 3 ( mas) Niveles

  • 12Sistema A Sistema B

    Interfaz conel usuario

    Lgicadel negocio

    Manejode Datos

    Evolucin hacia los

    Sistemas de 3 ( mas) Niveles

  • 13Facturacin InventariosContabilidad

    Lgicadel negocio

    Interfazcon el usuario

    Manejode Datos

    Sistemas de Informacin de la Empresa

    Redes de Componentes de Software

  • 14

    Browser Browser Browser .Browser .Browser .BrowserInterfaz de usuarios

    va Browsers

    Sistemas de Informacin en 3 ( mas) Niveles

    Servidores WEBy de Aplicaciones

    Internet / Intranet

    Nivel de Datos Base deDatos

    SistemasLegado

  • 15

    Sistema Bancario

    en 5 niveles

    NivelServidor WEB

    Nivel Servidor deLgica del Negocio

    firewall

    firewall

    Internet / Intranet

    Browser Nivel de Clientes yusuarios internos

    Browser Browser

    firewall

    Autorizador

    firewall

    SistemasEspecializados

    CuentaCorriente

    CuentaAhorros

    TarjetaCrdito

    Otras redesOtras redes

  • 16

    Sistemas Orientados a Servicios

    Sistema A

    Web

    Audio-respuesta

    Web-Service

    Celular

    Internet

    Intranet

    Red

    telefnicaRed

    Celular

    Sistema B

    Red

    Sistema C

    Red

    Red

  • 17

    Sistemas de Informacin de la Empresa

    Arquitectura Empresarial Orientada a Servicios

    Web

    Audio-respuesta

    Celular

    Web-Service

    Sistema C Sistema D

    Sistema FSistema E

    Sistema A Sistema B

  • Cmo se construyen estos

    nuevos sistemas ?

  • 19

    Cmo se construyen los nuevos sistemas ?

    Apoyndose en las nuevas plataformas tecnolgicas:

    Java EE

    Microsoft .Net

    LAMP (Linux, Apache, MySQL, Php/Perl/Phyton ... y sus variantes)

    Usando herramientas modernas:

    Eclipse, ant, xml, JUnit,

    VisualStudio (Microsoft)

    numerosas herramientas libres

    Siguiendo procesos modernos de desarrollo de software

    RUP (Rational Unified Process)

    Extreme Programming

    AUP (Agile Unified Process), ...

  • 20

    Entonces cal es el problema?

    Hay demasiado por aprender !

    LENGUAJE (Java, C#)

    Arquitectura

    Tecnolgica

    (Java EE .NET)

    Herramientas

    Metodologa, Patrones,

    Buenas prcticas, ...

    Proceso de Desarrollo

    Libreras estndar

  • 21

    Entonces cal es el problema?

    La curva de aprendizaje es larga!

    Documentacin abundantsima

    (decenas de miles de pginas) !!

    Leer Ensayar Leer Ensayar

    Estudiar buen cdigo fuente

    Ir creando su propio:

    estndar

    librera

    manual

    buenas prcticas

  • Pero en concreto ...

    Qu es lo que

    de verdad se necesita ?

  • 23

    Qu es lo que de verdad se necesita para que un

    grupo de desarrollo est listo para un proyecto?

    Proceso de desarrollo que defina secuencia de actividades.

    En particular:

    Definicin y Estndarizacin de Entregables

    Dinmica gil para el manejo del ciclo central:

    diseo (ajustes al) detallado

    creacin (modificacin) del cdigo fuente

    deteccin/registro de problemas (errores, cambios, malentendidos, mal uso)

    Esqueleto global que defina la ubicacin y compromisos

    mnimos de todos los componentes del software

    Estndar de organizacin y documentacin del cdigo

    Seleccin e integracin de herramientas de desarrollo

    Plan de capacitacin para los nuevos miembros

  • Veamos uno por uno: Proceso

    Esqueleto global

    Organizacin del cdigo

    Seleccin de herramientas

    Plan de capacitacin

    Lo que dicen los libros ... nuestra experiencia

  • 25

    Proceso de Desarrollo de Software:

    secuencia de actividades,

    asignacin de responsabilidades,

    dinmica de interaccin entre los miembros del grupo,

    conjunto de entregables (documentos, cdigo, pantallas,

    manuales, ...),

    conjunto de herramientas, adecuadamente sintonizadas

    e integradas.

  • 26

    Nuestra experiencia:

    Proceso de Desarrollo de Software

    Inicio Elaboracin Transicin1 2 3

    Construccin

    ...Entr

    ega

    Ent

    rega

    Ent

    rega

    Ent

    rega

    RUP

    Co

    ntr

    ato

    1

    Co

    ntr

    ato

    2

    Pro

    pu

    esta

    Co

    ntr

    ato

    3S

    op

    ort

    e

    Aju

    ste

    2.1

    Aju

    ste

    2.2

    Extreme

    Programming

    Tests de carga

    Tests funcionales

    Tests integracin

    Tests unitariosRefinar Caso de UsoPantallas y Navegacin

    Refinar Modelo Datosdel Caso de Uso

    Aprobacindel usuario

    ProgramacinPara cada

    Caso de Uso:

  • 27

    Estndarizacin de Entregables

    Documentos que se elaboran y entregan a lo largo del

    proyecto (especificacin de lgica del negocio, diseo de casos de uso,

    diseo de B.D., registros de prueba, manuales, )

    Cada entregable:

    tiene una Tabla de Contenido definida de antemano

    se produce siguiendo cierta metodologa

    se desarrolla usando ciertas herramientas

    se expresa en determinado lenguaje

    Con excepcin de los Manuales de Usuario, la

    cantidad y nivel de detalle de los entregables debe

    mantenerse cercana al mnimo necesario.

  • 28

    Estndarizacin de Entregables:

    Nuestra experiencia

    Extreme

    Programming

    Inicio Elaboracin Transicin1 2 3

    Construccin

    Tests de carga

    Tests funcionales

    Tests integracin

    Tests unitarios

    Refinar Modelo Datos

    Aprobacindel usuario

    Inventario Casos de Uso Descripcin global Casos de Uso Modelaje BPM

    Especificacin de laLgica del Negocio

    Modelaje E-R (global)

    Programacin

    ...Entr

    ega

    Ent

    rega

    Ent

    rega

    Ent

    rega

    RUP

    Diseo detallado delCaso de Uso

    Diseo de datos delCaso de Uso

    Manual de usuario(del mdulo)

    Manuales definitivos

    Refinar Caso de UsoPantallas y Navegacin

    Refinar Modelo Datosdel Caso de Uso

    Para cadaCaso de Uso:

  • 29

    Estndar de

    organizacin y documentacin del cdigo

    Un buen sistema de software vive y evoluciona durante

    muchos aos.

    La documentacin inicial se desactualiza rpidamente.

    la nica informacin estructural y semntica que se

    mantiene vigente ... es el cdigo fuente.

    Hay que cuidar y mantener el cdigo fuente como un

    activo muy valioso y voltil !

  • 30

    Estndar de organizacin y documentacin del cdigo:

    Nuestra experiencia

    Estandar de organizacin:

    TODO el software bajo una misma jerarqua

    (cdigo, scripts, descriptores, sql, librerias, )

    Organizado por Mdulos

    Dentro de cada mdulo, organizado por casos de Uso

    y Web-services

    Correspondencia de nombres

    (directorio = caso de uso = clase java, )

    Administrado por controlador de versiones (CVS ).

  • 31

    Seleccin e integracin de herramientas

    Desarrollar en las nuevas tecnologias requiere usar

    muchas herramientas especializadas.

    Para plataformas abiertas (Java EE, LAMP) existe una

    cantidad ENORME de herramientas libres de alta

    calidad.

    En torno a cada herramienta libre hay una comunidad de

    soporte mutuo, que comparte informacin muy valiosa.

    Cada herramientas debe ser cuidadosa y uniformemente

    sintonizada, e integrada con las otras.

  • 32

    Seleccin e integracin de herramientas:

    Nuestra experiencia

    Extreme Programming

    Inicio Elaboracin Transicin

    Construccin

    Tests de carga

    Tests funcionales

    Tests integracin

    Tests unitariosRefinar Casos de Uso

    Pantallas y Navegacin

    Refinar Modelo Datos

    Aprobacindel usuario

    Poseidon(Editor UML)

    OracleDesigner JUnit

    TestNG

    CVS, WinCVS, Winmerge(Control de Versiones)

    ant(compilacin, empaque, ...)

    Bugzilla(Registro/seguimiento errores)

    Eclipse(varios plug-ins)

    Jikes...

    Programacin

    1 2 3 ...Entr

    ega

    Ent

    rega

    Ent

    rega

    Ent

    rega

    Velocity(macro-procesador de

    cdigo fuente)

    Gen

    erac

    in

    del

    Sis

    tem

    a in

    icia

    l:S

    ecur

    idad

    Men

    us, C

    ontr

    olLi

    brer

    ias

    bsi

    cas

    Gen

    erac

    in

    de

    un

    nu

    evo

    m

    du

    lo

    Gen

    erac

    in

    de

    un

    nu

    eva

    En

    tid

    ad

    Gen

    erac

    in

    de

    un

    nu

    evo

    Web

    Ser

    vice

    Gene

    racin

    de un

    nuev

    o Cas

    o de U

    so

    (vario

    s tipo

    s)

    Word,Paintbrush

  • 33

    Nuestra experiencia:

    Esqueleto global de un sistema (Meta-Framework)

  • 34

    Esqueleto global de un sistema:

    Framework

    Esqueleto + libreras para facilitar la construccin de

    un aspecto de un sistema de software.

    Solo cubren aspectos especficos del desarrollo:

    Desarrollo de interfaz de usuario (JSF, Tapestry, Struts, )

    Conversin Modelo de Objetos Modelo Base de Datos(EJB 3.0, Hibernate, ...)

    Manejo de Componentes (EJB 3.0, Spring, )

    Generacin de reportes (Jasper, Datavision, ),

    Es importante escoger cules se van a usar, y decidir:

    Cmo integrarlos

    Qu reglas deben seguir los componentes que se van a

    desarrollar para poder usar los frameworks.

  • 35

    Esqueleto global de un sistema:

    Nuestra experiencia con un Meta-Framework [1]

    Se desarroll un esqueleto completo de sistema Java

    EE 5.0, compilable y ejecutable desde el primer da.

    Organiza, integra, define la ubicacin y los

    compromisos mnimos de todos los componentes de

    software que se vayan aadiendo al proyecto.

    Integra varios frameworks especializados (libres):

    JavaServer Faces JSF 1.2: interfaces Web orientadas por

    eventos (Java EE 5.0).

    Enterprise Javabeans EJB 3.0: componentes para

    implementar la lgica de negocio y la persistencia (parte de

    Java EE 5.0).

    sigue ...

  • 36

    Esqueleto global de un sistema:

    Nuestra experiencia con un Meta-Framework [2]

    Integra varios frameworks especializados (libres):

    Business Process Management jBPM: manejo procesos de

    negocio y workflow.

    Log4J: Manejo de logs.

    Quartz: Scheduler.

    Jasper: Facilidades bsicas de generacin de reportes.

    Procesamiento de XML

    Generacin de PDF

    Generacin archivos Excel

    ...

  • 37

    Esqueleto global de un sistema:

    Nuestra experiencia con un Meta-Framework [3]

    Establece guas para la programacin de los

    componentes propios de la aplicacin, de manera que:

    se ubiquen en el sitio correcto

    se integren adecuadamente con los otros componentes

    aprovechen las facilidades de los frameworks

    especializados.

  • 38

    Esqueleto global de un sistema:

    Nuestra experiencia con un Meta-Framework [4]

    Se desarrollaron varios generadores de cdigo que

    aceleran la construccin del nuevo sistema mediante:

    Generacin de todo el cdigo de integracin que requiere

    Java EE,

    Generacin de esqueletos -ya integrados- de los

    componentes que se vayan agregando al proyecto, con los

    placeholders a cargo del programador claramente sealados:

    Un nuevo mdulo

    Un nuevo Caso de Uso

    Un nuevo Web-Service

    Una nueva Entidad

    ...

  • Conclusiones

  • 40

    Conclusiones [1]

    Los elementos que de verdad hay que dominar/construir son:

    Proceso de desarrollo Entregables

    Ciclo central

    Estndar de organizacin del cdigo

    Seleccin e integracin de herramientas

    Plan de capacitacin de los miembros del grupo

    Esqueleto global (Meta-framework)

    Construir/dominar estos elementos requiere mucho tiempo y esfuerzo.

    En nuestro caso, para Java EE 5.0, hemos requerido15 Meses*Ingeniero netos (entre 3 ingenieros con bastante experiencia)

  • 41

    Conclusiones [2]

    Disponer de un Meta-framework nos ha permitido

    simplificar y acelerar enormemente el desarrollo.

    Un nuevo programador es productivo en 10 dias, pues

    solo deben aprender:

    las herramientas comunes

    La dinmica del ciclo central (diseo detallado, programacin,

    pruebas, ajustes al diseo, ajustes a la programacin, pruebas, ajustes ...)

    su parte de la tecnloga

    Desarrollo de interfases (html, JSF)

    Desarrollo de funcionalidades (Java)

    Desarrollo de base de datos (SQL, jdbc), ...

  • Preguntas

    Comentarios

    Otros puntos de vista