1 / 39

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

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)

Télécharger la présentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. NinJo - Frameworks, Applications and Release Distributions - Development and Software Process Sibylle Haucke, DWD EGOWS 2004 - Potsdam EGOWS 2004, Haucke, NinJo frameworks and software development process

  2. 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 EGOWS 2004, Haucke, NinJo frameworks and software development process

  3. NinJo architecture EGOWS 2004, Haucke, NinJo frameworks and software development process

  4. 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) EGOWS 2004, Haucke, NinJo frameworks and software development process

  5. 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 EGOWS 2004, Haucke, NinJo frameworks and software development process

  6. 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 EGOWS 2004, Haucke, NinJo frameworks and software development process

  7. 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 EGOWS 2004, Haucke, NinJo frameworks and software development process

  8. 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) EGOWS 2004, Haucke, NinJo frameworks and software development process

  9. 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 EGOWS 2004, Haucke, NinJo frameworks and software development process

  10. 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) EGOWS 2004, Haucke, NinJo frameworks and software development process

  11. 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) EGOWS 2004, Haucke, NinJo frameworks and software development process

  12. 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 EGOWS 2004, Haucke, NinJo frameworks and software development process

  13. 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 EGOWS 2004, Haucke, NinJo frameworks and software development process

  14. 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 EGOWS 2004, Haucke, NinJo frameworks and software development process

  15. 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 EGOWS 2004, Haucke, NinJo frameworks and software development process

  16. NinJo client applications • client (NinjoMain) configuration example <?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> EGOWS 2004, Haucke, NinJo frameworks and software development process

  17. NinJo client applications • layers • Geovector • Georaster layer • Surface layer • upper air layer • Satellite layer • Radar layer • SCIT • Grid layer • Flow layer • .... EGOWS 2004, Haucke, NinJo frameworks and software development process

  18. NinJo client applications • toplevel applications (secondary windows) • SimpleMeteogram EGOWS 2004, Haucke, NinJo frameworks and software development process

  19. NinJo client applications • toplevel applications • AutoMon : Monitoring and EventService (draft) EGOWS 2004, Haucke, NinJo frameworks and software development process

  20. NinJo client applications • toplevel applications • SingleScene EGOWS 2004, Haucke, NinJo frameworks and software development process

  21. NinJo client applications • MainWindow (Toplevel) and 2D-LayerContainer EGOWS 2004, Haucke, NinJo frameworks and software development process

  22. 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 EGOWS 2004, Haucke, NinJo frameworks and software development process

  23. 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 EGOWS 2004, Haucke, NinJo frameworks and software development process

  24. NinJo - management of work in distributed teams • Tools - Perforce for source and document depot EGOWS 2004, Haucke, NinJo frameworks and software development process

  25. NinJo - management of work in distributed teams • Tools - IDE, e.g. :Eclipse, IntelliJ or Netbeans EGOWS 2004, Haucke, NinJo frameworks and software development process

  26. 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/ EGOWS 2004, Haucke, NinJo frameworks and software development process

  27. NinJo - management of work in distributed teams • Tools - Bugzilla : Bug tracking system EGOWS 2004, Haucke, NinJo frameworks and software development process

  28. 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 EGOWS 2004, Haucke, NinJo frameworks and software development process

  29. 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 EGOWS 2004, Haucke, NinJo frameworks and software development process

  30. 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 EGOWS 2004, Haucke, NinJo frameworks and software development process

  31. NinJo Software development process and QM • 4 phases of software development process EGOWS 2004, Haucke, NinJo frameworks and software development process

  32. 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 EGOWS 2004, Haucke, NinJo frameworks and software development process

  33. NinJo Software development process and QM • Realisation with continuos QM CodeAudit.xls CodeDynamicalAnalysis.xls CodeReview.xls EGOWS 2004, Haucke, NinJo frameworks and software development process

  34. NinJo Software development process and QM • QM - the final tests CodeReview.xls TestCasesResults.doc CodeAudit.xls CodeDynamicalAnalysis.xls Release-label EGOWS 2004, Haucke, NinJo frameworks and software development process

  35. 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 EGOWS 2004, Haucke, NinJo frameworks and software development process

  36. 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 EGOWS 2004, Haucke, NinJo frameworks and software development process

  37. Preparing a release- working steps • automated release building with Ant EGOWS 2004, Haucke, NinJo frameworks and software development process

  38. 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 EGOWS 2004, Haucke, NinJo frameworks and software development process

  39. 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/ EGOWS 2004, Haucke, NinJo frameworks and software development process

More Related