NinJo - Frameworks, Applications and Release Distributions - Development and Software Process

39
DWD EGOWS 2004, Haucke, NinJo framework s and software development process NinJo - Frameworks, Applications and Release Distributions - Development and Software Process Sibylle Haucke, DWD EGOWS 2004 - Potsdam

description

NinJo - Frameworks, Applications and Release Distributions - Development and Software Process. Sibylle Haucke, DWD EGOWS 2004 - Potsdam. Overview. Part 1 :NinJo frameworks and applications NinJo architecture NinJo frameworks overview (reminder) - PowerPoint PPT Presentation

Transcript of NinJo - Frameworks, Applications and Release Distributions - Development and Software Process

Page 1: NinJo - Frameworks, Applications and Release Distributions -  Development and Software Process

DWD EGOWS 2004, Haucke, NinJo frameworks and software development process

NinJo - Frameworks, Applications and Release Distributions -

Development and Software Process

Sibylle Haucke, DWDEGOWS 2004 - Potsdam

Page 2: NinJo - Frameworks, Applications and Release Distributions -  Development and Software Process

DWD EGOWS 2004, Haucke, NinJo frameworks and software development process

OverviewOverview

Part 1 :NinJo frameworks and applications NinJo architecture NinJo frameworks overview (reminder) NinJo frameworks - new features and extensions Building client applications with NinJo

Part 2: NinJo software process and release distribution How to organise the work in teams distributed in Europe and

Canada ? Software development process and quality management NinJo going productive : preparation of release distributions

Page 3: NinJo - Frameworks, Applications and Release Distributions -  Development and Software Process

DWD EGOWS 2004, Haucke, NinJo frameworks and software development process

NinJo architectureNinJo architecture

ExportServices

Products

Client Tier

Data Server

Infrastructure Services

ConfigurationServer

Data Storage

Monitoring

Data Storage

Server Tier

ServerInfrastructure

Corba NamingService Event Service Authentication

AuthorizationServer

Management

BatchControl

NinJoBatch

Local ClientStorage

(Geography Data)

Client

External Storage(eg. Archive)

Databases

Prot

ocol

like

eg.

JD

BC

RadarServer

Data Storage

GridServer

Data Storage

Sat Server(Product)

Data Storage

PointServer

Data Storage

ImportServices

Point

Grid

Sat

Radar

ScienceModules

ForecastGuidance

Cell Detection

External Systems

Dis

trib

utio

n

Decoding

Point Layer /Application

Grid Layer /Application

Sat Layer / Application

Radar Layer /Application

Cor

ba (I

IOP)

Cor

ba (I

IOP)

or F

iletr

ansf

er

Page 4: NinJo - Frameworks, Applications and Release Distributions -  Development and Software Process

DWD EGOWS 2004, Haucke, NinJo frameworks and software development process

NinJo architectureNinJo architecture

3 main tiers : client, server, middleware client tier:

NinJo client (GUI) NinJo batch client

server side: data servers and services event service authentication service import (data+products) export (products) monitoring and alerting

server side: science modules OOG (guidance's) : under construction cell/storm detection (planned)

Page 5: NinJo - Frameworks, Applications and Release Distributions -  Development and Software Process

DWD EGOWS 2004, Haucke, NinJo frameworks and software development process

NinJo frameworks overviewNinJo frameworks overview

NinJo is a building kit and a collection of applications as well

it consists of: Frameworks on the one hand Applications : independent windows or integrated components

(Layers) on the other hand, with or without GUI (batch) Applications use the frameworks and must follow unique design

rules Applications are special in respect to their special (main) data type,

window layout, event handling and controlling (event based, time controlled,..)

Applications provide Gui components and concrete graphical representations of data

Frameworks itself use NinJo frameworks

Page 6: NinJo - Frameworks, Applications and Release Distributions -  Development and Software Process

DWD EGOWS 2004, Haucke, NinJo frameworks and software development process

NinJo frameworks overviewNinJo frameworks overview

The connection between frameworks, base implementations and runnable applications is the configuration Configuration (XML) is the construction draft for the building kit barely imaginable, how many variants of NinJo applications are

possible NinJo is configuration driven: NinJo can start with one window, containing several maps or with

just a window containing a Meteogram, as well as with lots of windows on several displays - only a question of the used configuration

Page 7: NinJo - Frameworks, Applications and Release Distributions -  Development and Software Process

DWD EGOWS 2004, Haucke, NinJo frameworks and software development process

NinJo frameworks overviewNinJo frameworks overview

What do we call a framework in NinJo context? A separate software module (or sub tier) inside NinJo client Similar to a software library or API Consists of interfaces and base classes Based on other NinJo frameworks and existing JAVA classes Is used by several applications inside NinJo Implementation of the frameworks is most generic They are configurable themselves (even the configuration manager)

How to ensure the usability of the frameworks? follow the OO design patterns and standards configurability with XML template pattern for compatible applications MVC pattern for PAC agents backward compatible extensions and changes

Page 8: NinJo - Frameworks, Applications and Release Distributions -  Development and Software Process

DWD EGOWS 2004, Haucke, NinJo frameworks and software development process

NinJo frameworks overviewNinJo frameworks overview

3 kinds of frameworks common : used by client and server applications

configuration error handling and logging Id (unique identifications for data types, elements ..) i18n client access layer (data access) math (algorithms, projections) communication units concurrency (threads)

Page 9: NinJo - Frameworks, Applications and Release Distributions -  Development and Software Process

DWD EGOWS 2004, Haucke, NinJo frameworks and software development process

NinJo frameworks overviewNinJo frameworks overview

server : only used on server side basic server implementation import system

client : only used on client side PAC (Presentation Abstraction Control: the building kit for client

applications) PAC basic framework derived : Layer framework derived : diagram framework derived : application (Toplevel) framework

GOF (graphical objects factory) : 2d, 3d graphics, several devices vislib and visualizers : technical visualisation GUI standard components

Page 10: NinJo - Frameworks, Applications and Release Distributions -  Development and Software Process

DWD EGOWS 2004, Haucke, NinJo frameworks and software development process

NinJo client frameworks - new featuresNinJo client frameworks - new features

PAC (Presentation-Abstraction-Control) 3 level agent hierarchy

– BottomLevel (Layers)– Intermediate level (diagrams, charts, layercontainer)– Toplevel : applications like: Mainwindow, CrossSection,

SingleScene– different implementations of each level possible– GUI of the client is composed by the Views of the agent hierarchy

recursively layout management for batch products and printouts properties and base configuration - see PAC diagram framework multithreading support (NjJob) support for creation of Toplevel Agents (= Applications)

Ctrl

ModelView

Page 11: NinJo - Frameworks, Applications and Release Distributions -  Development and Software Process

DWD EGOWS 2004, Haucke, NinJo frameworks and software development process

NinJo client frameworks - new featuresNinJo client frameworks - new features

client access layer (client/server-communication) jar file service data cache

cache API sharing data between components faster data access less memory configurable

GOF unified GOF : usage of 2D/3D now transparent

same methods and classes for 2d and 3d animated canvas for animations exportable canvas for export of graphic to file formats (PostScript) overlay functionality added (for the dragging of objects)

„Severity“

20021216

20021217

20030309

3.50.13.00.1 1.0

2010 1 11

x y az b c d

3

e

Root

Level Key„Ozon“

„Date“

„Altitude“

Level 1

Level 2

Level 3

Level 4

Page 12: NinJo - Frameworks, Applications and Release Distributions -  Development and Software Process

DWD EGOWS 2004, Haucke, NinJo frameworks and software development process

NinJo client frameworks - new featuresNinJo client frameworks - new features

GUI form layout usage (JGoodies) standard components:

JFontChooser Input fields spinner button ColorChooser

Editing of data modification deletion write back to the server or file system

Page 13: NinJo - Frameworks, Applications and Release Distributions -  Development and Software Process

DWD EGOWS 2004, Haucke, NinJo frameworks and software development process

NinJo server frameworks - new featuresNinJo server frameworks - new features

new: export system generic trigger, reader, writer

Zip/Jar as virtual filesystem - useful for MetObjects server Configuration server

under construction NinJo Naming Service introduction of authentication, authorisation event service

Page 14: NinJo - Frameworks, Applications and Release Distributions -  Development and Software Process

DWD EGOWS 2004, Haucke, NinJo frameworks and software development process

framework changes- avoid migration effortframework changes- avoid migration effort

architectural principle: separation of concerns change the fwk’s backward compatible use interfaces for decoupling of objects “extensions” for PAC

we invented the “extensions” for PAC editing extension cross section extension 3d extension

add new functionality to frameworks without migration effort for the applications

only those applications, which want to contribute to the extension, have to implement something

Page 15: NinJo - Frameworks, Applications and Release Distributions -  Development and Software Process

DWD EGOWS 2004, Haucke, NinJo frameworks and software development process

NinJo client applicationsNinJo client applications

What is a “client application” in NinJo? a collection of classes and configurations can be aggregated to an existing application (if Bottomlevel or

Intermediatelevel) or act as a standalone application (if Toplevel) can aggregate other components has an own configuration can be installed separately

NinJo can start with only one or with more Toplevel application(s)

How to create a “client application” in NinJo? use the frameworks derive from basic applications implement the special part (visualisation, data container classes) follow the architectural patterns and templates create a configuration

Page 16: NinJo - Frameworks, Applications and Release Distributions -  Development and Software Process

DWD EGOWS 2004, Haucke, NinJo frameworks and software development process

<?xml version="1.0" encoding="UTF-8" ?>

<NinJoCfg><!-- configuration of a toplevel agent --><sceneControllerRef name="app" hasGUI="true"

className="org.ninjoworkstation.client.appl.mainwindow.ControllerImpl"

configName="training_workspace_mar_11_2004"/>

<!–- optional more toplevel agents --><sceneControllerRef name="app" hasGUI="true"

className="org.ninjoworkstation.client.appl.singlescene.ControllerImpl"

configName="empty"/>

</NinJoCfg>

NinJo client applicationsNinJo client applications

client (NinjoMain) configuration example

Page 17: NinJo - Frameworks, Applications and Release Distributions -  Development and Software Process

DWD EGOWS 2004, Haucke, NinJo frameworks and software development process

NinJo client applicationsNinJo client applications

layers Geovector Georaster layer Surface layer upper air layer Satellite layer Radar layer SCIT Grid layer Flow layer ....

Page 18: NinJo - Frameworks, Applications and Release Distributions -  Development and Software Process

DWD EGOWS 2004, Haucke, NinJo frameworks and software development process

NinJo client applicationsNinJo client applications

toplevel applications (secondary windows) SimpleMeteogram

Page 19: NinJo - Frameworks, Applications and Release Distributions -  Development and Software Process

DWD EGOWS 2004, Haucke, NinJo frameworks and software development process

NinJo client applicationsNinJo client applications

toplevel applications AutoMon : Monitoring and EventService (draft)

Page 20: NinJo - Frameworks, Applications and Release Distributions -  Development and Software Process

DWD EGOWS 2004, Haucke, NinJo frameworks and software development process

NinJo client applicationsNinJo client applications

toplevel applications SingleScene

Page 21: NinJo - Frameworks, Applications and Release Distributions -  Development and Software Process

DWD EGOWS 2004, Haucke, NinJo frameworks and software development process

NinJo client applicationsNinJo client applications

MainWindow (Toplevel) and 2D-LayerContainer

Page 22: NinJo - Frameworks, Applications and Release Distributions -  Development and Software Process

DWD EGOWS 2004, Haucke, NinJo frameworks and software development process

OverviewOverview

Part 1 :NinJo frameworks and applications NinJo architecture NinJo frameworks overview (reminder) NinJo frameworks - new features and extensions Building client applications with NinJo

Part 2: NinJo software process and release distribution How to organise the work in teams distributed in Europe and

Canada ? Software development process and quality management NinJo going productive : preparation of release distributions

Page 23: NinJo - Frameworks, Applications and Release Distributions -  Development and Software Process

DWD EGOWS 2004, Haucke, NinJo frameworks and software development process

NinJo - management of work in distributed teamsNinJo - management of work in distributed teams

Tools source code management : Perforce document storage : Perforce IDE’s : Eclipse, Netbeans, IntelliJ - question of taste build and class generation support : Ant bug tracking system (Bugzilla) design tools: Together static code analysis: Together dynamical analysis: JProbe test tools: JUnit, JTest

Page 24: NinJo - Frameworks, Applications and Release Distributions -  Development and Software Process

DWD EGOWS 2004, Haucke, NinJo frameworks and software development process

NinJo - management of work in distributed teamsNinJo - management of work in distributed teams

Tools - Perforce for source and document depot

Page 25: NinJo - Frameworks, Applications and Release Distributions -  Development and Software Process

DWD EGOWS 2004, Haucke, NinJo frameworks and software development process

NinJo - management of work in distributed teamsNinJo - management of work in distributed teams

Tools - IDE, e.g. :Eclipse, IntelliJ or Netbeans

Page 26: NinJo - Frameworks, Applications and Release Distributions -  Development and Software Process

DWD EGOWS 2004, Haucke, NinJo frameworks and software development process

NinJo - management of work in distributed teamsNinJo - management of work in distributed teams

Tools - Apache Ant generating of JAVA classes for i18n, configuration and CORBA supporting the build process

compiling the JAVA classes creation of JAR - files

generating of installation scripts from templates generating of run scripts for servers and client from templates see http://ant.apache.org/

Page 27: NinJo - Frameworks, Applications and Release Distributions -  Development and Software Process

DWD EGOWS 2004, Haucke, NinJo frameworks and software development process

NinJo - management of work in distributed teamsNinJo - management of work in distributed teams

Tools - Bugzilla : Bug tracking system

Page 28: NinJo - Frameworks, Applications and Release Distributions -  Development and Software Process

DWD EGOWS 2004, Haucke, NinJo frameworks and software development process

NinJo - management of work in distributed teamsNinJo - management of work in distributed teams

rules well defined and documented software development process

starting with requirements specification for each component Design document for each component review process (and meetings) for documents and code QM measurements

well defined software architecture , package structure and distribution of work

naming conventions : JAVA packages and Perforce labels code freeze dates : for frameworks first, for applications later branching the code lines after a release to ensure bugfixing

possibility

Page 29: NinJo - Frameworks, Applications and Release Distributions -  Development and Software Process

DWD EGOWS 2004, Haucke, NinJo frameworks and software development process

NinJo - management of work in distributed teamsNinJo - management of work in distributed teams

framework and API development developed by the best educated team members, supported by

consulting several locations develop frameworks, server or infrastructure

components locations, developing a framework, simultaneously develop at least

one application ( to test the framework and to understand the application developers)

framework developers need tight contact to each other

communication regularly CD meetings : meeting of all local chief designers report of locations, planning the next steps and discussing / deciding

architectural solutions telephone conferences emails

Page 30: NinJo - Frameworks, Applications and Release Distributions -  Development and Software Process

DWD EGOWS 2004, Haucke, NinJo frameworks and software development process

NinJo - management of work in distributed teamsNinJo - management of work in distributed teams

application development each location team develops “his” components:

as few interfaces between the locations as possible to let the teams work independently as long as possible

full responsibility on all aspects of a component (e.g. layer), from data import on server side up to the visualisation

JAVA package structure : if possible, only one team should develop inside one JAVA package avoid “crossing” development

education 1 week developers training, prepared by architecture team (CD) and

framework developers (once a year) train the usage of frameworks train the usage of the tools remind the software development process and quality standards

Page 31: NinJo - Frameworks, Applications and Release Distributions -  Development and Software Process

DWD EGOWS 2004, Haucke, NinJo frameworks and software development process

NinJo Software development process and QMNinJo Software development process and QM

4 phases of software development process

specification design realisation qm

Page 32: NinJo - Frameworks, Applications and Release Distributions -  Development and Software Process

DWD EGOWS 2004, Haucke, NinJo frameworks and software development process

NinJo Software development process and QMNinJo Software development process and QM

Quality management starts with the documents: scheduling of QA tasks, 8 steps/measures

1. requirements document

2. test case description

3. design document

4. code review

5. static analysis

6. performance analysis

7. test case results

8. JAVA Help

Page 33: NinJo - Frameworks, Applications and Release Distributions -  Development and Software Process

DWD EGOWS 2004, Haucke, NinJo frameworks and software development process

NinJo Software development process and QMNinJo Software development process and QM

Continuos QM during realisation phase

design realisation QMspecification

Implementation JavaDocUpdate Design-

DocumentationPartial code reviews

TCC-QA

Performance analysis

Improve code quality

CodeReview.xls

CodeAudit.xlsCodeDynamicalAnalysis.xls

Realisation with continuos QM

Page 34: NinJo - Frameworks, Applications and Release Distributions -  Development and Software Process

DWD EGOWS 2004, Haucke, NinJo frameworks and software development process

CodeDynamicalAnalysis.xls

NinJo Software development process and QMNinJo Software development process and QM

design Real. QMspecification

Code review

QA:audit

Integrationtest

FunktionalTests : testcases

Final testsPerformance testsreview the final

design document

TestCasesResults.doc

Release-label

CodeReview.xls

CodeAudit.xls

QM - the final tests

Page 35: NinJo - Frameworks, Applications and Release Distributions -  Development and Software Process

DWD EGOWS 2004, Haucke, NinJo frameworks and software development process

Preparing a release- working stepsPreparing a release- working steps

code freeze : each location:

check in the last changes create the RfA- labels for frameworks and all applications: responsible

are the distributed teams

integration phase integration team:

synchronize the RfA labels in the predefined order test the correctness of the labels try the build process

– build all client and server applications create the Release label

Release label available

Page 36: NinJo - Frameworks, Applications and Release Distributions -  Development and Software Process

DWD EGOWS 2004, Haucke, NinJo frameworks and software development process

Preparing a release- working stepsPreparing a release- working steps

Perforce - synchronizing the Release label Eclipse/IntelliJ/Netbeans..: run Ant script

select the “DVD” target wait 5 minutes

find on the disc: DVD1 and DVD2 directories, containing: whole NinJo software for server and client whole configuration installation scripts templates for run scripts

copy the Geo data and (if needed) demo data copy a JRE (JAVA runtime environment), inclusive extensions

(third party Jar-files) create the DVD images burn the DVDs

Page 37: NinJo - Frameworks, Applications and Release Distributions -  Development and Software Process

DWD EGOWS 2004, Haucke, NinJo frameworks and software development process

Preparing a release- working stepsPreparing a release- working steps

automated release building with Ant

Page 38: NinJo - Frameworks, Applications and Release Distributions -  Development and Software Process

DWD EGOWS 2004, Haucke, NinJo frameworks and software development process

Installing a NinJo releaseInstalling a NinJo release

directly from the DVD Client

GUI driven : just input the target directory input the server name for live server

fully automated installation starts

demo servers GUI driven :

just input the target directory fully automated installation starts

for live server installation additionally some manually configuration needed configure the data import and delivery

Page 39: NinJo - Frameworks, Applications and Release Distributions -  Development and Software Process

DWD EGOWS 2004, Haucke, NinJo frameworks and software development process

Installing a NinJo releaseInstalling a NinJo release

release 0.8 : beanshell, Ant beanshell for customisable installation procedure and run scripts see http://www.beanshell.org/ just correct the root folders and click “install”

release 0.9 : IzPack, Ant IzPack for customisable installation procedure see http://www.izforge.com/izpack/