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

nutmegactΛογισμικό & κατασκευή λογ/κού

10 Νοε 2012 (πριν από 4 χρόνια και 10 μήνες)

212 εμφανίσεις

DWD

EGOWS 2004, Haucke, NinJo frameworks and
software development process

NinJo
-

Frameworks, Applications and Release
Distributions
-


Development and Software Process




Sibylle Haucke, DWD

EGOWS 2004
-

Potsdam


DWD

EGOWS 2004, Haucke, NinJo frameworks and
software development process



Overview



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


DWD

EGOWS 2004, Haucke, NinJo frameworks and
software development process

NinJo architecture

Export
Services
Products
Client Tier
Data Server
Infrastructure Services
Configuration
Server
Data Storage
Monitoring
Data Storage
Server Tier
Server
Infrastructure
Corba Naming
Service
Event Service
Authentication
Authorization
Server
Management
Batch
Control
NinJo
Batch
Local Client
Storage
(Geography Data)
Client
External Storage
(eg. Archive)
Databases
Protocol like eg. JDBC
Radar
Server
Data Storage
Grid
Server
Data Storage
Sat Server
(Product)
Data Storage
Point
Server
Data Storage
Import
Services
Point
Grid
Sat
Radar
Science
Modules
Forecast
Guidance
Cell Detection
External Systems
Distribution
Decoding
Point Layer /
Application
Grid Layer /
Application
Sat Layer / Application
Radar Layer /
Application
Corba (IIOP)
Corba (IIOP) or Filetransfer
DWD

EGOWS 2004, Haucke, NinJo frameworks and
software development process

NinJo 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)

DWD

EGOWS 2004, Haucke, NinJo frameworks and
software development process

NinJo 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

DWD

EGOWS 2004, Haucke, NinJo frameworks and
software development process

NinJo 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

DWD

EGOWS 2004, Haucke, NinJo frameworks and
software development process

NinJo 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


DWD

EGOWS 2004, Haucke, NinJo frameworks and
software development process

NinJo 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)

DWD

EGOWS 2004, Haucke, NinJo frameworks and
software development process

NinJo 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


DWD

EGOWS 2004, Haucke, NinJo frameworks and
software development process

NinJo 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
Model
View
DWD

EGOWS 2004, Haucke, NinJo frameworks and
software development process

NinJo 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“
2002
1216
2002
1217
2003
0309
3.5
0.1
3.0
0.1
1.0
2
0
1
0
1
1
1
x
y
a
z
b
c
d
3
e
Root
Level Key
„Ozon“
„Date“
„Altitude“
Level 1
Level 2
Level 3
Level 4
DWD

EGOWS 2004, Haucke, NinJo frameworks and
software development process

NinJo 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

DWD

EGOWS 2004, Haucke, NinJo frameworks and
software development process

NinJo 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


DWD

EGOWS 2004, Haucke, NinJo frameworks and
software development process

framework 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


DWD

EGOWS 2004, Haucke, NinJo frameworks and
software development process

NinJo 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

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 applications


client (NinjoMain) configuration example

DWD

EGOWS 2004, Haucke, NinJo frameworks and
software development process

NinJo client applications


layers


Geovector


Georaster layer


Surface layer


upper air layer


Satellite layer


Radar layer


SCIT


Grid layer


Flow layer


....

DWD

EGOWS 2004, Haucke, NinJo frameworks and
software development process

NinJo client applications


toplevel applications (secondary windows)


SimpleMeteogram


DWD

EGOWS 2004, Haucke, NinJo frameworks and
software development process

NinJo client applications


toplevel applications


AutoMon : Monitoring and EventService (draft)

DWD

EGOWS 2004, Haucke, NinJo frameworks and
software development process

NinJo client applications


toplevel applications


SingleScene

DWD

EGOWS 2004, Haucke, NinJo frameworks and
software development process

NinJo client applications


MainWindow (Toplevel) and 2D
-
LayerContainer


DWD

EGOWS 2004, Haucke, NinJo frameworks and
software development process



Overview



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


DWD

EGOWS 2004, Haucke, NinJo frameworks and
software development process

NinJo
-

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

DWD

EGOWS 2004, Haucke, NinJo frameworks and
software development process

NinJo
-

management of work in distributed teams


Tools
-

Perforce for source and document depot

DWD

EGOWS 2004, Haucke, NinJo frameworks and
software development process

NinJo
-

management of work in distributed teams


Tools
-

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

DWD

EGOWS 2004, Haucke, NinJo frameworks and
software development process

NinJo
-

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/


DWD

EGOWS 2004, Haucke, NinJo frameworks and
software development process

NinJo
-

management of work in distributed teams


Tools
-

Bugzilla : Bug tracking system

DWD

EGOWS 2004, Haucke, NinJo frameworks and
software development process

NinJo
-

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


DWD

EGOWS 2004, Haucke, NinJo frameworks and
software development process

NinJo
-

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

DWD

EGOWS 2004, Haucke, NinJo frameworks and
software development process

NinJo
-

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


DWD

EGOWS 2004, Haucke, NinJo frameworks and
software development process

NinJo Software development process and QM


4 phases of software development process

specification
design
realisation
qm
DWD

EGOWS 2004, Haucke, NinJo frameworks and
software development process

NinJo 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

DWD

EGOWS 2004, Haucke, NinJo frameworks and
software development process

NinJo Software development process and QM

CodeReview.xls

CodeAudit.xls

CodeDynamicalAnal
ysis.xls


Realisation with continuos QM

DWD

EGOWS 2004, Haucke, NinJo frameworks and
software development process

CodeDynamicalAnalysis.xls

NinJo Software development process and QM

design
Real.
QM
specification
Code review
QA:audit
Integration
test
Funktional
Tests : test
cases
Final tests
Performance tests
review the final
design document
TestCasesResults.doc

Release
-
label

CodeReview.xls

CodeAudit.xls


QM
-

the final tests

DWD

EGOWS 2004, Haucke, NinJo frameworks and
software development process

Preparing 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



DWD

EGOWS 2004, Haucke, NinJo frameworks and
software development process

Preparing 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


DWD

EGOWS 2004, Haucke, NinJo frameworks and
software development process

Preparing a release
-

working steps


automated release building with Ant

DWD

EGOWS 2004, Haucke, NinJo frameworks and
software development process

Installing 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

DWD

EGOWS 2004, Haucke, NinJo frameworks and
software development process

Installing 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/