Http:// BEWITCHED 15/06/2006Soutenance GLAO #2 slide 1 GLAO Presentation #2 CASE Architecture...

30
http://www.sigl.epita.net 15/06/2006 Soutenance GLAO #2 slide 1 BEWITCHED GLAO Presentation #2 GLAO Presentation #2 CASE Architecture CASE Architecture Bewitched Team Bewitched Team 15 Juin 2006 15 Juin 2006

Transcript of Http:// BEWITCHED 15/06/2006Soutenance GLAO #2 slide 1 GLAO Presentation #2 CASE Architecture...

http://www.sigl.epita.net

15/06/2006Soutenance GLAO #2slide 1

BEWITCHED

GLAO Presentation #2GLAO Presentation #2CASE ArchitectureCASE Architecture

Bewitched TeamBewitched Team

15 Juin 200615 Juin 2006

15/06/2006Soutenance GLAO #2slide 2

BEWITCHED

OutlineOutline

• IntroductionIntroduction• CASE OverviewCASE Overview

– StrategyStrategy– CASE workingCASE working– Special toolsSpecial tools

• CASE architectureCASE architecture– OverviewOverview– Integration (Gateways)Integration (Gateways)

• CASE development planCASE development plan– Gateways to developGateways to develop– SequencingSequencing

• ConclusionConclusion

15/06/2006Soutenance GLAO #2slide 3

BEWITCHED

IntroductionIntroduction

15/06/2006Soutenance GLAO #2slide 4

BEWITCHED

Context and ObjectivesContext and Objectives

• ContextContext– GLAO project for CASE integrationGLAO project for CASE integration

• ObjectivesObjectives– Demonstrate our CASE architectureDemonstrate our CASE architecture

• The quality of the proposed technical and methodological The quality of the proposed technical and methodological integrationintegration

• Answering the specification needsAnswering the specification needs• Its added valuesIts added values

– Suggest a development plan for the CASE and SygimeSuggest a development plan for the CASE and Sygime

15/06/2006Soutenance GLAO #2slide 5

BEWITCHED

CASE OverviewCASE Overview

15/06/2006Soutenance GLAO #2slide 6

BEWITCHED

CASE OverviewCASE OverviewStrategyStrategy

• BDE (BDE (BBewitched ewitched DDevelopment evelopment EEnvironment) based on the nvironment) based on the Eclipse IDE (Integrated Development Environment)Eclipse IDE (Integrated Development Environment)

• Production of Java Web application for J2EE (JSP; Servlets)Production of Java Web application for J2EE (JSP; Servlets)

• A 3 axe strategy :A 3 axe strategy :– Test translations from the functional specificationsTest translations from the functional specifications– Code generation and modificationCode generation and modification– Test executionsTest executions

• Used with the XP (eXtrem Programming) Method (spiral Used with the XP (eXtrem Programming) Method (spiral development cycle)development cycle)

• The source code will be generatedThe source code will be generated• The tests will be generated (for the majority)The tests will be generated (for the majority)

15/06/2006Soutenance GLAO #2slide 7

BEWITCHED

CASE OverviewCASE OverviewCase Working (1/3)Case Working (1/3)

15/06/2006Soutenance GLAO #2slide 8

BEWITCHED

CASE OverviewCASE OverviewCase Working (2/3)Case Working (2/3)

• The CASE works in 11 steps:The CASE works in 11 steps:1.1. Project initialization, repository creation…Project initialization, repository creation…

2.2. The customer provides the functional specificationsThe customer provides the functional specifications

3.3. Functional specifications are translated in large view tests Functional specifications are translated in large view tests (functional tests)(functional tests)

4.4. From those tests, functional unit tests are extractedFrom those tests, functional unit tests are extracted

5.5. Those tests are used in order to define modulesThose tests are used in order to define modules

6.6. The dev. team defines the classes of the project and makes the The dev. team defines the classes of the project and makes the first version of the Web applicationfirst version of the Web application

7.7. Tests are added (partially automated)Tests are added (partially automated)

8.8. Results of tests are available into BWIResults of tests are available into BWI

9.9. The developers checkout the project and correct the detected The developers checkout the project and correct the detected bugsbugs

10.10.The Web application is generatedThe Web application is generated

11.11.A loop goes to the statement 7 until all the tests are not passed A loop goes to the statement 7 until all the tests are not passed or the project is not finishedor the project is not finished

15/06/2006Soutenance GLAO #2slide 9

BEWITCHED

CASE OverviewCASE OverviewCase Working (3/3)Case Working (3/3)

• Key features for the use of CASE are:Key features for the use of CASE are:1.1. BDE ToolsBDE Tools

– CASE Tools selected as part of the CASECASE Tools selected as part of the CASE– Eclipse, EclipseUML and the tests toolsEclipse, EclipseUML and the tests tools

2.2. BWI – Bewitched Web InterfaceBWI – Bewitched Web Interface– A home developed-tool providing additional features, A home developed-tool providing additional features,

managing the tests and the test executionsmanaging the tests and the test executions

3.3. BBC – Bewitched Batch ControlBBC – Bewitched Batch Control– A batch allowing to run the scripts for the gateways A batch allowing to run the scripts for the gateways

between the toolsbetween the tools

15/06/2006Soutenance GLAO #2slide 10

BEWITCHED

CASE OverviewCASE OverviewSpecial Tools (1/3) - BWISpecial Tools (1/3) - BWI

• BWI – BWI – BBewitched ewitched WWeb eb IInterfacenterface– Connected with several tools through many gatewaysConnected with several tools through many gateways– Considered as a Considered as a hubhub

• BWI has 8 major functions:BWI has 8 major functions:– Secure login to the interfaceSecure login to the interface– Synchronisation of the tests with the SVN repositorySynchronisation of the tests with the SVN repository– Adding or modifying JUnit testsAdding or modifying JUnit tests– Adding or modifying JUnitScenario testsAdding or modifying JUnitScenario tests– Viewing results of JUnit testsViewing results of JUnit tests– Viewing results of JUnitScenario testsViewing results of JUnitScenario tests– Modifying of the testGen4J data.xml fileModifying of the testGen4J data.xml file– Manage repositoryManage repository

15/06/2006Soutenance GLAO #2slide 11

BEWITCHED

CASE OverviewCASE OverviewSpecial Tools (2/3) - BWISpecial Tools (2/3) - BWI

15/06/2006Soutenance GLAO #2slide 12

BEWITCHED

CASE OverviewCASE OverviewSpecial Tools (3/3) - BBCSpecial Tools (3/3) - BBC

• BBC – BBC – BBewitched ewitched BBatch atch CControlontrol

• Born from the idea that control of all gateways Born from the idea that control of all gateways must be in only one placemust be in only one place

• BBC is a “super” batch that allows launching all BBC is a “super” batch that allows launching all scripts and batches that compose the gateways scripts and batches that compose the gateways of the CASEof the CASE

• BBC will be automated on the server (CRON) and BBC will be automated on the server (CRON) and may be used from BWI manuallymay be used from BWI manually

• And… it makes call to other scripts with good And… it makes call to other scripts with good parametersparameters

15/06/2006Soutenance GLAO #2slide 13

BEWITCHED

CASE ArchitectureCASE Architecture

15/06/2006Soutenance GLAO #2slide 14

BEWITCHED

CASE CASE ArchitectureArchitecture

• OverviewOverview– Tool ListTool List– User InterfacesUser Interfaces– Physical ArchitecturePhysical Architecture– Allocation in the physical Allocation in the physical

architecturearchitecture

15/06/2006Soutenance GLAO #2slide 15

BEWITCHED

Overview (1/2)Overview (1/2)User InterfacesUser Interfaces

• BDE is constructed around BDE is constructed around the IDE Eclipse and the the IDE Eclipse and the test toolstest tools

• Run in a Java environmentRun in a Java environment

• Users will only use two Users will only use two tools (interfaces)tools (interfaces)– Eclipse IDE with its plug-in Eclipse IDE with its plug-in

(EclipseUML, Subclipse, (EclipseUML, Subclipse, Solex)Solex)

– BWI which will provide the BWI which will provide the test inputs and outputs, test inputs and outputs, access to BBCaccess to BBC

Eclipse

EclipseUML JUnit

TestGen4J

JUnitScenario

Solex

Javadoc

Hibernate

Subclipse

Tomcat

XML Buddy

BWI

BBC

SVN

Hansel

Designing toolsTest tools Transversal toolsInterface

tools

15/06/2006Soutenance GLAO #2slide 16

BEWITCHED

Overview (2/2)Overview (2/2)Physical Architecture and Physical Architecture and

AllocationAllocation• A distributed architecture imposed by the development with a team (XP)A distributed architecture imposed by the development with a team (XP)• Repository with the sources of the projects and the tests are on a serverRepository with the sources of the projects and the tests are on a server• A web server hosting the BWI toolA web server hosting the BWI tool• The BDE application on the workstations of the team membersThe BDE application on the workstations of the team members

15/06/2006Soutenance GLAO #2slide 17

BEWITCHED

CASE CASE ArchitectureArchitecture

• IntegrationIntegration– Flows diagramFlows diagram– Identified gatewaysIdentified gateways– Costs of the gatewaysCosts of the gateways– Examples of gatewaysExamples of gateways

15/06/2006Soutenance GLAO #2slide 18

BEWITCHED

Integration (1/4)Integration (1/4)Flows DiagramFlows Diagram

Eclipse

BWI

JUnit

BEA Workshop

Tomcat

Javadoc

Solex

Hansel

JUnitScenarioSubclipse

EclipseUML

TestGen4J

Tests

SVN

Hibernate Synchronizer

Eclipse Environment

Server

MySQL

Repository

Workstation

ECP-IP

ECP-IP

ECP-IP

ECP-IPECP-IP

ECP-IP

ECP-IP

ECP-IP

ECP-OF

ECU-IF

JVD-IF

JUT-IF

JUT-OF

TG4-IF

TG4-OF

SLX-IC

BWF-IF

ECU-OF

HBS-IC

HBS-ID

SVN-IF

SVN-IF

TCT-IF

TCT-OW

JUT-IF

JUT-IF

JUT-OF

JUT-IF

SVN-OF

SVN-OF

BWF-IF

15/06/2006Soutenance GLAO #2slide 19

BEWITCHED

Integration (2/4)Integration (2/4)Identified GatewaysIdentified Gateways

• 17 gateways have 17 gateways have been identifiedbeen identified Code Type

Unidirection

al

Bidirectional

JUnit-Hansel JUT.HSL Tech. x  

JUnit-JUnitScenario JUT.JUS Tech. x  

TestGen4J-JUnit TG4.JUT Tech. x  

Eclipse-JUnit ECP.JUT Tech, Meth.   x

Eclipse-Solex ECP.SLX Tech, Meth. x  

Eclipse-SVN ECP.SVN Tech, Meth.   x

Eclipse-Javadoc ECP.JVD Tech x  

Eclipse-HibernateSynchronizer ECP.HBS Tech, Meth.   x

Eclipse-Tomcat ECP.TCT Tech.   x

Eclipse-BEA Workshop ECP.JER Tech, Meth.   x

Tomcat-JBoss TCT.JBS Tech.   x

EclipseUML-Eclipse ECU.ECP Tech, Meth.   x

EclipseUML-MySQL ECU.MYS Tech. x  

HibernateSynchronizer-MySQL HBS.MYS Tech, Meth. x  

BWI-JUnit BWI.JUT Tech, Meth.   x

BWI-JUnitScenario BWI.JUS Tech, Meth.   x

BWI-SVN BWI.SVN Tech, Meth.   x

15/06/2006Soutenance GLAO #2slide 20

BEWITCHED

Integration (3/4)Integration (3/4)Example 1Example 1

• The two complicated gateways The two complicated gateways are:are:1.1. Junit-JUnitScenarioJunit-JUnitScenario

JUnitScenario

scenario.xml

Batch JUS

Script JUS

result.txt result.xml

Tool Program

Legend

BBC

Call

I/O

*Test.java

Fichier.jar

Maven

BBC

JUnit

15/06/2006Soutenance GLAO #2slide 21

BEWITCHED

Integration (4/4)Integration (4/4)Example 2Example 2

2.2. TestGen4J - JUnitTestGen4J - JUnit

JUnit

Tool Program

Legend

Call

I/O

TestGen4J

build.sh

project.jar

*.java

*Test.java data.xml

Maven

resultTest*.xml

BBC

BBC

15/06/2006Soutenance GLAO #2slide 22

BEWITCHED

CASECASEdevelopment plandevelopment plan

15/06/2006Soutenance GLAO #2slide 23

BEWITCHED

CASECASEdevelopment plandevelopment plan

• Gateways to developGateways to develop• SequencingSequencing

15/06/2006Soutenance GLAO #2slide 24

BEWITCHED

CASE Development Plan (1/2)CASE Development Plan (1/2)Gateways to developGateways to develop

• 17 gateways17 gateways

• Only two gateways Only two gateways considered as long and considered as long and difficultdifficult– Junit-JUnitScenarioJunit-JUnitScenario– TestGen4J - JUnitTestGen4J - JUnit

• 7 out of 17 are plug-in 7 out of 17 are plug-in and don’t need work for and don’t need work for integrationintegration

• All gateways can be All gateways can be developed in the assigned developed in the assigned timetime

Cost

JUnit-Hansel 7

JUnit-JUnitScenario 9

TestGen4J-JUnit 9

Eclipse-JUnit 1

Eclipse-Solex 3

Eclipse-SVN 1

Eclipse-Javadoc 1

Eclipse-HibernateSynchronizer 7

Eclipse-Tomcat 1

Eclipse-BEA Workshop 1

Tomcat-JBoss 1

EclipseUML-Eclipse 1

EclipseUML-MySQL 6

HibernateSynchronizer-MySQL 2

BWI-JUnit 6

BWI-JUnitScenario 6

BWI-SVN 5

15/06/2006Soutenance GLAO #2slide 25

BEWITCHED

CASE Development Plan (2/2)CASE Development Plan (2/2)SequencingSequencing

• The first tool to be developed will be BWI, which is a hub between several tools

• After, all the missing script for each gateways will be developed

• To finish, Batches and BBC will be created allowing to control all the CASE from one place

• Estimated time for the entire CASE development is 4 weeks with 5 people according the costs table

15/06/2006Soutenance GLAO #2slide 26

BEWITCHED

ConclusionConclusion

15/06/2006Soutenance GLAO #2slide 27

BEWITCHED

Conclusion (1/2)Conclusion (1/2)Value AddedValue Added

• Strong interaction between project development team and Strong interaction between project development team and customercustomer– XP methodXP method– Web interface for collaborative workWeb interface for collaborative work

• Code generationCode generation– Main goalMain goal– Eclipse-Hibernate gateway will generate a maximum of source codeEclipse-Hibernate gateway will generate a maximum of source code– TestGen4J-Junit will be able to generate testsTestGen4J-Junit will be able to generate tests

• A functional CASEA functional CASE– Reducing number of interface (BWI + Eclipse)Reducing number of interface (BWI + Eclipse)– Scripts supervising other scripts (BBC)Scripts supervising other scripts (BBC)– A logic allocation of the tools and of the repositoryA logic allocation of the tools and of the repository– Answer specific needs : SygimeAnswer specific needs : Sygime

• Technical and methodological qualityTechnical and methodological quality– A repository based on SVN and data in a DataBaseA repository based on SVN and data in a DataBase

15/06/2006Soutenance GLAO #2slide 28

BEWITCHED

Conclusion (2/2)Conclusion (2/2)SygimeSygime

• Development PlanDevelopment Plan1.1. Database conception (BDE)Database conception (BDE)2.2. Web Interface design (BDE)Web Interface design (BDE)3.3. Define functional tests (BWI)Define functional tests (BWI)4.4. Code generation (BDE + BBC)Code generation (BDE + BBC)5.5. Add and correct business code (BDE)Add and correct business code (BDE)6.6. Verify test validation (BBC report)Verify test validation (BBC report)7.7. Back to 3 for more functionalitiesBack to 3 for more functionalities

• Web Interface will be generated• Controlled Security• Automated database access• Low development costs• Quality assurance via tests and iterative development

15/06/2006Soutenance GLAO #2slide 29

BEWITCHED

Questions ?Questions ?

15/06/2006Soutenance GLAO #2slide 30

BEWITCHED

CASE Development Plan (1/2)CASE Development Plan (1/2)Costs of the gateways (Bonus)Costs of the gateways (Bonus)

• The costs table has been define as follow

Costs tables Estimated time Approximate work for this cost

0 - Inexistent Gateway

1 Immediate Existing gateway (generally plug-in or compatible formats)

2 0,5h Gateway possible with configuration

3 1h Gateway possible with existing intermediate tools

4 4h Files can be formatted to helped integration

5 1d One connector is needed

6 2d Several connector are needed

7 4d Several connector are needed with external tools

8 1week A connector changing a file is needed

9 2-3weeks Write of several connectors with multiple files manipulation

10 1year Part of tools to rewrite

Back