Desarrollo de aplicaciones Solución Borland Daniel Pereiro Borland Ibérica .

76
Desarrollo de aplicacion Solución Borland Daniel Pereiro Borland Ibérica www.borland.es

Transcript of Desarrollo de aplicaciones Solución Borland Daniel Pereiro Borland Ibérica .

Page 1: Desarrollo de aplicaciones Solución Borland Daniel Pereiro Borland Ibérica .

Desarrollo de aplicaciones Solución Borland

Daniel PereiroBorland Ibéricawww.borland.es

Page 2: Desarrollo de aplicaciones Solución Borland Daniel Pereiro Borland Ibérica .

Contenido

Desarrollo de aplicaciones: Proceso de desarrollo de Software. Calidad en el desarrollo de aplicaciones. Mejorar el rendimiento de las aplicaciones.

Solución Borland

Page 3: Desarrollo de aplicaciones Solución Borland Daniel Pereiro Borland Ibérica .

Desarrollo de Software

Actividades:

1: Definir que queremos construir (capturar requisitos)

2: Analizar requisitos y diseñar el producto

3: Construir el producto

4: Probar el producto

5: Entregar/Desplegar

Page 4: Desarrollo de aplicaciones Solución Borland Daniel Pereiro Borland Ibérica .

Por qué un proceso?

Permite mejorar las tareas repetitivas hasta la entrega del software

Dirige y controla de las tareas asignadas a los distintos perfiles

Permite comunicación entre las partes interesadas

La alternativa: Caos Total

Page 5: Desarrollo de aplicaciones Solución Borland Daniel Pereiro Borland Ibérica .

Best-in-classTECHNOLOGY

EffectivePROCESSES

SkilledPEOPLE

Procesos de desarrollo Software Excellence Triangle

Page 6: Desarrollo de aplicaciones Solución Borland Daniel Pereiro Borland Ibérica .

Procesos de desarrollo de Software El objetivo de un proceso de desarrollo

debe ser asegurar la calidad del Software. Orientado a:

Cumplir el 100% de los requisitos de usuario. Generar sólo la documentación necesaria.

Procesos de desarrollo mas conocidos: Unified Process (UP) Rational Unified Process (RUP) (Pesado) Extreme Programming (XP) (Ligero) Feature Driven Development (FDD) (Intermedio) …

Page 7: Desarrollo de aplicaciones Solución Borland Daniel Pereiro Borland Ibérica .

Agile Processes

Casi lo contrario a RUP Orientado a las personas y no a los

procesos

Cualquiera hace cualquier cosa!

“Adaptativo” en lugar de “predictivo” Más centrado en el código que en la

documentación

Page 8: Desarrollo de aplicaciones Solución Borland Daniel Pereiro Borland Ibérica .

¿ Usamos un proceso de desarrollo efectivo ?

Page 9: Desarrollo de aplicaciones Solución Borland Daniel Pereiro Borland Ibérica .

Fases del desarrollo tradicional El vació entre las distintas fases de

desarrollo tradicional requiere que el equipo realice manualmente la integración. Proceso lento, inflexible y la colaboración baja. + tiempo, + recursos, + dinero.

Page 10: Desarrollo de aplicaciones Solución Borland Daniel Pereiro Borland Ibérica .

Proceso iterativo

Analysis

Construct Design

Test/Deploy

tiempo

Page 11: Desarrollo de aplicaciones Solución Borland Daniel Pereiro Borland Ibérica .

Borland ALMApplication Lifecycle Management Solución modular pero fuertemente

integrada. Todo el equipo es coordinado por el SCM.

Together®

Edition for .NET

Janeva™InterBase®

VS.NET C#Builder

Optimizeit™

For .NETCaliberRM™

StarTeam®

DESIGN

DEPLOY

DEVELOP

TESTDEFINE MANAGE

Page 12: Desarrollo de aplicaciones Solución Borland Daniel Pereiro Borland Ibérica .

LA VISIÓN DE BORLANDBuenas prácticas Alta integración entre fases de desarrollo. Gestión de requisitos (efectiva) Modelado visual (UML) Conocimiento (Patrones de diseño) Desarrollo iterativo (crecimiento

incremental) Verificar la calidad del Software

continuamente Control de cambios a todos los niveles,

requisitos y código (visibles en tiempo real) Trazabilidad a través de todo el ciclo de

vida.

Page 13: Desarrollo de aplicaciones Solución Borland Daniel Pereiro Borland Ibérica .

Configuration, Change, and Project ManagementConfiguration, Change, and Project Management

LA VISIÓN DE BORLAND Reengineering The Process

Quality Assurance / TestingQuality Assurance / Testing

Requirements ManagementRequirements Management

AnalyzeAnalyze DesignDesign DevelopDevelop DeployDeployObject-Oriented Analysis and Design

TogetherTogetherIntegrated Development Environment

VS.NET,VS.NET, C#BuilderC#Builder

Unit Testing

OptimizeITOptimizeIT

Requirements Management

CaliberRMCaliberRM

Configuration and Change Management

StarTeamStarTeam

Page 14: Desarrollo de aplicaciones Solución Borland Daniel Pereiro Borland Ibérica .

Integración de herramientasMS Visual Studio .NET

Together

CaliberRM StarTeam

OptimizeIT Janeva

Page 15: Desarrollo de aplicaciones Solución Borland Daniel Pereiro Borland Ibérica .

Gestión de Requisitos Borland CaliberRM

Daniel PereiroBorland Ibéricawww.borland.es

Page 16: Desarrollo de aplicaciones Solución Borland Daniel Pereiro Borland Ibérica .

Origen de errores en el Software

Requirements Errors(56%)

Requirements Errors(56%)

Other Errors (10%)Other Errors (10%) Coding Errors (7%)Coding Errors (7%)Coding Errors (7%)Coding Errors (7%)

Design Errors (27%)Design Errors (27%)

Source: James Martin, An Information Systems Manifesto

Page 17: Desarrollo de aplicaciones Solución Borland Daniel Pereiro Borland Ibérica .

Síntomas mala gestión de requisitos “Perdemos más tiempo gestionando

documentos que requisitos” “Hemos generado una solución

técnicamente perfecta, pero el cliente no la acepta”

“No podemos medir el estado real del proyecto”

“Al llegar un cambio, el análisis de impacto se realizaba manualmente o no se realizaba”

“Se desconoce el motivo por el cual se implementa un componente”...

Page 18: Desarrollo de aplicaciones Solución Borland Daniel Pereiro Borland Ibérica .

Borland CaliberRM

Es la totalmente configurable e integrable con otras herramientas.

Entorno distribuido y colaborativo Notificaciones en tiempo real de cambios

en los requisitos a los responsables Tratamiento de requisitos como objetos Repositorio centralizado Versionado de los requisitos Múltiples vistas sobre los requisitos Generación de documentación automática

Page 19: Desarrollo de aplicaciones Solución Borland Daniel Pereiro Borland Ibérica .

Características principales

Flexibilidad – Definición tipos requisitos y atributos Integración Productividad: Desarrollo / Pruebas Trazabilidad, auditorías, seguimiento

dependencias Datamining API abierta: Java, COM y .net (sig. versión) Acceso remoto (Cliente Web) Foros de discusión Glosario Seguridad Personalización de informes (Document

Framework)

Page 20: Desarrollo de aplicaciones Solución Borland Daniel Pereiro Borland Ibérica .

Información en CaliberRM

Dentro del proyecto

Hierarchy #ID #

Atributosde usuario

Atributos del sistema

Proyecto

Tipos de requisito

Dentro de los tipos de requisito

Requisitos

Se definen por estos grupos de atributos (tabs)

Detalles Otros..Trazabilidad Referencias Discusión Historia ValidaciónResponsables

Page 21: Desarrollo de aplicaciones Solución Borland Daniel Pereiro Borland Ibérica .

Requisitos en CaliberRM

Cada requisito tiene un identificador, se integra en una jerarquía y tiene múltiples atributos sobre los que registrar información importante

IdentificadorIdentificador único del requisto que no cambia ni puede reutilizarse.

Numero jerárquicoDetermina su posición en la jerarquía, puede cambiar cuando un requisito se añade, elimina, etc.

Nombre del requisitoEspecificación corta del requisito. Permite reconocerlo rápidamente

Descripción del requisitoContiene una descripción completa y no ambigüa del requisito.

Page 22: Desarrollo de aplicaciones Solución Borland Daniel Pereiro Borland Ibérica .

CaliberRM - Integraciones

Windows NT/2000/XPJava-enabled Browser

Mod & Dev ToolsTogetherJBuilderC#BuilderVisual Studio .NETRational RoseEmbarca. DescribeSELECT EnterpriseOthers via SDK

SCM ToolsStarTeamPVCSMicrosoft VSSClearCaseCM SynergyOthers via SDK

Testing ToolsMer. TestDirectorOthers via SDK

PASS

FAIL

Desktop & PM ToolsMicrosoft OfficeMicrosoft ProjectSPC Estimate PRO

MyProject1 Task1.1 Sub Task 11.2 SubTask 21.2.1 Sub Task 3

CaliberRM Integrations

Web Server:Microsoft IISNetscape ServerApache

CaliberRM Server

Page 23: Desarrollo de aplicaciones Solución Borland Daniel Pereiro Borland Ibérica .

En la práctica …

Why? What? How? When? Where?

Page 24: Desarrollo de aplicaciones Solución Borland Daniel Pereiro Borland Ibérica .

Integración con Together CC

Page 25: Desarrollo de aplicaciones Solución Borland Daniel Pereiro Borland Ibérica .

Integración con Visual Studio .net

Page 26: Desarrollo de aplicaciones Solución Borland Daniel Pereiro Borland Ibérica .

Gestión de Configuración Borland StarTeam

Daniel PereiroBorland Ibéricawww.borland.es

Page 27: Desarrollo de aplicaciones Solución Borland Daniel Pereiro Borland Ibérica .

La necesidad de un SCM

Los errores corregidos suelen reaparecer Imposibilidad de reconstruir releases

previas de software Cambios o desapariciones misteriosas de

componentes Cambios múltiples sobre el software no son

correctamente controlados No existe un modo de rastrear o auditar los

cambios

Page 28: Desarrollo de aplicaciones Solución Borland Daniel Pereiro Borland Ibérica .

Trabajo Colaborativo

Arquitectura interna … Permite acceso remoto, soporte a múltiples

plataformas y clientes, configurable (SDK), control de acceso …

Workflow … Definición de reglas de negocio, procesos,

roles… Desarrollo en paralelo Control de versiones …

Soporte completo a la gestión de la configuración, indicación de estados del repositorio, desarrollo en paralelo, acceso a proyectos PVCS y SourceSafe

Page 29: Desarrollo de aplicaciones Solución Borland Daniel Pereiro Borland Ibérica .

Trabajo Colaborativo

Gestión de cambios e incidencias … Modulo de gestión de cambios integrado,

integración con TestDirector, notificaciones de cambio integradas

Gestión de requisitos … Pequeño módulo de gestión de requisitos,

integración con CaliberRM Gestión de tareas …

Gestión básica de tareas, integración bidireccional con MS Project

Page 30: Desarrollo de aplicaciones Solución Borland Daniel Pereiro Borland Ibérica .

Trabajo Colaborativo

Desarrollo colaborativo… Acceso centralizado a “assets” del proyecto

(ficheros, peticiones de cambio, tareas, requisitos,…), notificaciones y discusiones por e-mail,…

Explotación de la información… Ordenación y priorización de assets, histórico

de cambios, baselining Reports

Starteam proporciona informes personalizables a través del SDK; StarTeam DataMart (análisis de la información)

Page 31: Desarrollo de aplicaciones Solución Borland Daniel Pereiro Borland Ibérica .

Borland StarTeamEl proceso de desarrollo

StarTeamWorkFlow

Proceso de gestión de requisitos:- Seleccionar un requisito aprobado como parte del proceso de check-in- Enlazar versiones de ficheros con versiones de requisitos

Proceso de gestión de cambios:- Seleccionar un cambio aprobado como parte del proceso de check-in- Enlazar versiones de ficheros con versiones de propuestas de cambio

Proceso de gestión de tareas:- Seleccionar una tarea aprobada como parte del proceso de check-in- Enlazar versiones de ficheros con tareas del proyecto

Proceso de gestión de versiones:- Add, checkin y checkout- Vistas, revisiones y etiquetas- Discusiones y notificaciones por e-mail

Page 32: Desarrollo de aplicaciones Solución Borland Daniel Pereiro Borland Ibérica .

Arquitectura StarTeam

SGBD-ODBC

PVCS

VSS

StarGate SDK

StarDiskIntegración con Explorer

STCMDComandos Unix o Win Web Browser

JStarGUI via Java

AppsJava, VB, C++,...

Cliente StarTeamIDE – Soporte SCC

StarTeam Server

Page 33: Desarrollo de aplicaciones Solución Borland Daniel Pereiro Borland Ibérica .

Diseño y Optimización de aplicaciones

Daniel PereiroBorland Ibéricawww.borland.es

Page 34: Desarrollo de aplicaciones Solución Borland Daniel Pereiro Borland Ibérica .

Algunos datos

“For every $1 you spend on development, you will spend $2 on maintenance”.

Only about 15% of software development effort is devoted to programing”.

- Walker Royce

Diseñar

Sistema extensible (Herencia-Sistema extensible (Herencia-Polimorfismo).Polimorfismo).Un buen diseño reducirá el Un buen diseño reducirá el mantenimientomantenimiento

¿Qué hacemos el 85% restante?¿Qué hacemos el 85% restante?

Page 35: Desarrollo de aplicaciones Solución Borland Daniel Pereiro Borland Ibérica .

Necesidad de modelar

El código es fácil de entender?

El código es fácil de comunicar?

Millones de líneas de código

Diferentes lenguajes!

Soluciones: UML Patrones de

Diseño

Page 36: Desarrollo de aplicaciones Solución Borland Daniel Pereiro Borland Ibérica .

UML (Unified Modeling Language) Lenguaje para visualización, definición,

construcción y documentación de Software. UML no es un lenguaje de programación

visual. Autores: Booch, Jacobson y Rumbaught. Compendio de otros lenguajes (“U”). Ventajas:

Comunicación entre desarrolladores. Diferentes vistas de un sistema. Independiente de lenguajes de programación. Representación visual de nuestro sistema.

Page 37: Desarrollo de aplicaciones Solución Borland Daniel Pereiro Borland Ibérica .

Diagramas UML

Requisitos del Sistema

Diagramas Casos de uso

Diagrama Clases & Paquetes

Diagrama Objetos

Diagrama Componentes

Diagrama Despliegue

Comportamiento del Sistema Estructura del Sistema

Diagrama Actividades

Diagrama Estados

Diagrama Secuencia

Diagrama Colaboración

Aspectos dinámicos

Aspectos estáticos

Page 38: Desarrollo de aplicaciones Solución Borland Daniel Pereiro Borland Ibérica .

UML y Vistas del sistema

Vistas

Diagrama Casos de uso

Diagrama Actividades

Diagrama Secuencia

Diagrama Colaboración

Diagrama Secuencia

Diagrama Clases

Diagrama Objetos

Diagrama Componentes

Diagrama Estados

Page 39: Desarrollo de aplicaciones Solución Borland Daniel Pereiro Borland Ibérica .

Patrones de DiseñoOrigen En los años 70 Christopher Alexander

escribió algunos libros documentando patrones para ingeniería civil y arquitectura.

La comunidad del Software adopto la idea. Se popularizaron con el libro:

“Design Patterns: Elements of Reusable Software”

Conocidos como patrones de GoF (Gang of Four).

Contiene diseños útiles apreciados en numerosos proyectos, que fueron identificados y documentados.

Ninguno patrón fue inventado por los autores.

Page 40: Desarrollo de aplicaciones Solución Borland Daniel Pereiro Borland Ibérica .

Patrones de DiseñoDEFINICIÓN

“Each pattern is a three-part rule, which expresses a relation between a certain context, a problem and a solution”

- Christopher Alexander, A Pattern Language

“A pattern is an idea that has been useful in one practical context and will probably be useful in others”

- Martin Fowler, Analysis Patterns

Un patrón es una solución de diseño, probada y documentada, de un problema que aparece repetidamente en un contexto particular y en consecuencia puede ser imitado para resolverlo.

Page 41: Desarrollo de aplicaciones Solución Borland Daniel Pereiro Borland Ibérica .

Patrones de DiseñoDEFINICIÓN En esencia, son plantillas de diseño

reutilizables: Esqueleto básico adaptable, no una librería de

clases. Útiles para programadores y arquitectos

porque: Documentan un mecanismo simple que trabaja

bien Transfieren conocimiento (Vocabulario común) Describen soluciones como combinación de

patrones Reutilizan diseños y decisiones de

implementación

Page 42: Desarrollo de aplicaciones Solución Borland Daniel Pereiro Borland Ibérica .

Patrones de DiseñoElementos básicos de un Patrón NOMBRE

Descripción corta que identifica a un patrón Incrementa nuestro vocabulario, haciendo más fácil

pensar sobre el diseño y comunicarlo a otros. PROBLEMA

Describe cuando aplicar el patrón, el problema y su contexto.

SOLUCIÓN Describe los elementos que forman el diseño, sus

relaciones, responsabilidades y colaboraciones (Diagramas).

CONSECUENCIAS El resultado de aplicar el patrón.

Page 43: Desarrollo de aplicaciones Solución Borland Daniel Pereiro Borland Ibérica .

Patrones de GoFCasificación Por Proposito Creational patterns

Abstracción sobre el proceso de instanciación de objetos

Mejoran la flexibilidad y reduce el acoplamiento. Structural patterns

Describe como clases y objetos pueden ser compuestos para formar grandes estructuras.

Behavioral patterns Describe patrones de objetos y clases, y

patrones sobre la comunicación ente ellos. Herencia para distribuir comportamiento entre

clases y composición para distribuir comportamiento entre objetos.

Page 44: Desarrollo de aplicaciones Solución Borland Daniel Pereiro Borland Ibérica .

Patrones de GoFCasificación Por Proposito Creational patterns

Abstract Factory Pattern

Builder Pattern Factory Method Pattern Prototype Pattern Singleton Pattern

Structural patterns Adapter Pattern Bridge Pattern Composite Method

Pattern Decorator Pattern Facade Pattern Flyweight Pattern Proxy Pattern

Behavioral patterns Chain of Responsibility

Pattern Command Pattern Interpreter Pattern Iterator Pattern Mediator Pattern Memento Pattern Observer Pattern State Pattern Strategy Pattern Template Method

Pattern Visitor Pattern

Page 45: Desarrollo de aplicaciones Solución Borland Daniel Pereiro Borland Ibérica .

Patrones de DiseñoOtras Categorias Distintas formas de catalogar patrones:

Design Patterns Architectural Patterns Analysis Patterns Creational Patterns Structural Patterns Behavioral Patterns

Otra clasificación frecuente es (Layers Pattern): Presentation Tier Patterns Business Tier Patterns Integration Tier Patterns

Page 46: Desarrollo de aplicaciones Solución Borland Daniel Pereiro Borland Ibérica .

Pattern Frame

Diferentes niveles de abstracción: Arquitectura, Diseño e Implementación.

Diferentes puntos de vista: Bases de datos, Aplicación, Despliegue e

Infraestructura. http://msdn.microsoft.com/architecture/

patterns

Page 47: Desarrollo de aplicaciones Solución Borland Daniel Pereiro Borland Ibérica .

Web Presentation Patterns Model-View-Controller Desacoplar Lógica de negocio/Datos,

Presentación y Control de flujo de la aplicación.

Permite cambiar presentación sin modificar la lógica, múltiples vistas de un modelo, separar perfiles, etc.

Page 48: Desarrollo de aplicaciones Solución Borland Daniel Pereiro Borland Ibérica .

Web Presentation PatternsObserver Permite alertar de un cambio de estado a

otros objetos, sin introducir dependencias entre ellos.

Desacoplar el modelo y la vista: El modelo no requiere información de la vista, sólo notifica los cambios a los Observers que tiene registrados.

Page 49: Desarrollo de aplicaciones Solución Borland Daniel Pereiro Borland Ibérica .

Web Presentation PatternsPage Controller La separación Vista-Controlador es implícita

en ASP.NET. Usa un controlador por página.

En algunos casos podemos ampliarlo añadiendo una clase BaseController que incorpora funciones comunes (como validar parámetros) y el resto heredan de ella.

Page 50: Desarrollo de aplicaciones Solución Borland Daniel Pereiro Borland Ibérica .

Web Presentation PatternsFront Controller Centraliza todas las peticiones en un único

controlador. Útil cuando la navegación entre páginas es

dinámica y se basa en reglas configurables.

Page 51: Desarrollo de aplicaciones Solución Borland Daniel Pereiro Borland Ibérica .

Web Presentation PatternsFront Controller - El manejador Cada petición HTTP es procesada por una

instancia de clase que implemente IHttpHandler (o otra interfaz del API).

El manejador delega la creación del objeto Command correcto en la clase CommandFactory.

Page 52: Desarrollo de aplicaciones Solución Borland Daniel Pereiro Borland Ibérica .

Diseño de aplicaciones Borland Together For .NET

Daniel PereiroBorland Ibéricawww.borland.es

Page 53: Desarrollo de aplicaciones Solución Borland Daniel Pereiro Borland Ibérica .

Sincronización modelo & código The hard way

Model fileVersion X

source fileVersion Y

CodeModel

Forward engineer source fileVersion X

Manage conflicts?Replace lost data?

Reverse engineerModel fileVersion Y

Manage conflicts?Replace lost data?

Page 54: Desarrollo de aplicaciones Solución Borland Daniel Pereiro Borland Ibérica .

Sincronización entre modelo y código Tecnología Together® LiveSource™:

Elementos UML de clases son la viva interpretación del código subyacente.

Modelo-Código, Código-Modelo: Siempre sincronizados.

IncrementalIncrementalCodeCode

GeneratorGenerator

Together®Together®ParsingParsingEngineEngine

LiveSource™

Page 55: Desarrollo de aplicaciones Solución Borland Daniel Pereiro Borland Ibérica .

Together for Visual Studio .NET

Permiten la utilización del lenguaje de modelado UML dentro de Ms Visual Studio .net

Presentación de Diagramas desde el código dentro de Visual Studio .net

Ingeniería inversa desde cualquier código fuente Sincronización automática entre modelo y código Generación automática de Documentación

actualizada Patrones de diseño (GoF, estándar, personalizados,

…) Exportación / Importación del modelo vía XMI

Page 56: Desarrollo de aplicaciones Solución Borland Daniel Pereiro Borland Ibérica .

Together for Visual Studio .NET DIAGRAMAS UML Soporte de diagramas UML:

Class/Namespace diagram Use Case diagram Interaction (sequence and collaboration) Activity diagram Statechart diagram Component diagram Deployment diagram

Page 57: Desarrollo de aplicaciones Solución Borland Daniel Pereiro Borland Ibérica .

Together for Visual Studio .NET

Together

CaliberRM

Page 58: Desarrollo de aplicaciones Solución Borland Daniel Pereiro Borland Ibérica .

Together Design Pattern Support Reutilizar soluciones probadas

Gang of Four (GoF) patterns Nuestros propios patrones!

Page 59: Desarrollo de aplicaciones Solución Borland Daniel Pereiro Borland Ibérica .

Generación automática de documentación Muestra cada dato introducido Siempre esta actualizada Incluye todos nuestros diagramas Es navegable

Page 60: Desarrollo de aplicaciones Solución Borland Daniel Pereiro Borland Ibérica .

Optimización de código Borland OptimizeIt For .NET

Daniel PereiroBorland Ibéricawww.borland.es

Page 61: Desarrollo de aplicaciones Solución Borland Daniel Pereiro Borland Ibérica .

¿Cuándo optimizamos el rendimiento? En todo momento La optimización debe hacerse de forma

iterativa. Nadie conoce mejor el código que quien lo

ha desarrollado. Nadie está mejor situado en el ciclo de

desarrollo para solucionar problemas de rendimiento que el autor del código.

Muchos de los problemas de rendimiento ocurren en la integración de componentes. Nota: http://www.nunit.org

Page 62: Desarrollo de aplicaciones Solución Borland Daniel Pereiro Borland Ibérica .

¿Qué código tenemos que optimizar? No es necesario optimizar todo el código

(regla 80/20). El reto es descubrir qué partes de nuestra

aplicación suponen un cuello de botella o consumen la memoria ...

Intentar optimizar cada línea de código supone un esfuerzo innecesario.

Los depuradores clásicos no son suficientes!

OptimizeIt permite una optimización de código inteligente y eficiente.

Page 63: Desarrollo de aplicaciones Solución Borland Daniel Pereiro Borland Ibérica .

Optimizeit Profiler for .net

CLR es responsable de la ejecución de toda la fontanería de nuestra aplicación.

Este alto nivel de abstracción permite centrarse en la lógica de la aplicación.

Posibles problemas: excesiva actividad del GC, memory leaks o excesivos objetos temporales.

Page 64: Desarrollo de aplicaciones Solución Borland Daniel Pereiro Borland Ibérica .

Optimizeit Profiler for .net

OptimizeIt esta formado por dos aplicaciones: Audit System -> oiprof.exe User interface -> OptimizeDotNet.exe

Se comunican vía TCP por el puerto 1964 (por defecto).

Page 65: Desarrollo de aplicaciones Solución Borland Daniel Pereiro Borland Ibérica .

Optimizeit Profiler for .net

Soporta todos los lenguajes que generan código manejado para CLR (C#, J#, Visual Basic, JScript, etc).

Permite analizar código ASP.NET. No requiere modificar el código. Exportar información (ASCII, HTML, o ASCII

para analizar). Localiza el código fuente implicado. Ejecución desde línea de comandos (Script). Análisis de aplicaciones remotas.

Page 66: Desarrollo de aplicaciones Solución Borland Daniel Pereiro Borland Ibérica .

Optimizeit Profiler for .net

CLR Overview Memory Profiling CPU Profiling

Page 67: Desarrollo de aplicaciones Solución Borland Daniel Pereiro Borland Ibérica .

Optimizeit Profiler – CLR Information Gráfico del Tamaño del Heap Número de clases cargadas en CLR Actividad del Garbage Collector Número de Threads en ejecución

Page 68: Desarrollo de aplicaciones Solución Borland Daniel Pereiro Borland Ibérica .

Optimizeit Profiler – Memory Profiling Permite encontrar memory leaks Manejar el garbage collection Monitorización en tiempo real de la

asignación de objetos Gráfico de secuencia en asignación de

objetos Permite llegar a la línea de código

implicada

Page 69: Desarrollo de aplicaciones Solución Borland Daniel Pereiro Borland Ibérica .

Optimizeit Profiler – CPU Usage Profiling CPU Profiler descubre cuellos de botella en

el código: Lista los puntos calientes por tiempo de

ejecución Gráfico de secuencia de llamadas Permite llegar a la línea de código implicada

Page 70: Desarrollo de aplicaciones Solución Borland Daniel Pereiro Borland Ibérica .

Remote profiling

Establecer variables de entorno para CLR COR_ENABLE_PROFILING = 1 COR_PROFILER =OIProfiler

Ahora CLR usará OptimizeIt Profiler Audit System

Le proceso Aspnet_wp.exe de IIS leerá estas variables al ejecutar aplicaciones ASP.NET.

Variables para configurar el análisis: DN_PAUSE, DN_PROFILER_PORT,

DN_PROFILER_MODE, DN_OPEN_CONSOLE,…

Page 71: Desarrollo de aplicaciones Solución Borland Daniel Pereiro Borland Ibérica .

Integración de entornos Borland Janeva

Daniel PereiroBorland Ibéricawww.borland.es

Page 72: Desarrollo de aplicaciones Solución Borland Daniel Pereiro Borland Ibérica .

Enterprise Mixed EnvironmentsEnterprise Application Interoperability

ClientDepartment

ServerCorporate

Data Center

.NET

JavaWeb Services, CORBA®, and Borland Janeva

Page 73: Desarrollo de aplicaciones Solución Borland Daniel Pereiro Borland Ibérica .

Borland Janeva

Interoperabilidad entre Microsoft .NET y J2EE o CORBA

Integra en el entorno de desarrollo .NET No requiere conocimientos de J2EE o CORBA

No requiere cambios en la infraestructura de back-end

Page 74: Desarrollo de aplicaciones Solución Borland Daniel Pereiro Borland Ibérica .

““Bridge”Bridge”“Bridge”

Web Server

WebService

WebService

WebService

WebService

WebService

WebService

WebService

WebService

WebService

WebService

WebService

WebService

La solución Janeva

EJBEJB EJBEJBEJBEJB

BESBES

AppServerAppServer

BES VisiBrokerBES VisiBroker

EJBEJB EJBEJBEJBEJB

WebSphereWebSphere

EJBEJB EJBEJBEJBEJB

WebLogicWebLogic

InterBase

Oracle

Sybase

MS-SQL Server

.NET Server.NET Server

ASASPP

ASASPP

ASASPP

.NET ThickClients

.NET Thin Clients J2EE and CORBA Back Ends

JanevaJaneva JanevaJaneva

- No additional infrastructures needed

- No changes required to back end

- Seamless interoperability

- J2EE and CORBA infrastructures are leveraged, including Qualities-of- Service features

- High Performance

JanevaJaneva

JanevaJaneva

JanevaJaneva

JanevaJaneva

Page 75: Desarrollo de aplicaciones Solución Borland Daniel Pereiro Borland Ibérica .

Janeva - Java and Corba Interop

.NET

JanevaRun-Time

Corba

Proxy

.NETASM

.NET EXEJ2EE

Proxy.CS

C# Source Code(or VB, Delphi,J#, etc)

.NET IDE

.EJBIIOP

Compile

.NETType

IDLJAR

.NETType Janeva

CompilerDevelop

Deploy

Page 76: Desarrollo de aplicaciones Solución Borland Daniel Pereiro Borland Ibérica .