jon mathews
play

Jon Mathews Team Members Chaz Beck Marcus Rosenow Shaun Brockhoff - PowerPoint PPT Presentation

Faculty Advisor Dr. Suraj Kothari Client Jon Mathews Team Members Chaz Beck Marcus Rosenow Shaun Brockhoff Jason Lackore AADL (Architecture Analysis and Design Language) Textual and graphic notation with precise semantics


  1. Faculty Advisor – Dr. Suraj Kothari Client – Jon Mathews Team Members – Chaz Beck Marcus Rosenow Shaun Brockhoff Jason Lackore

  2.  AADL (Architecture Analysis and Design Language)  Textual and graphic notation with precise semantics to model applications and execution platforms  Example: airplane’s subsystems (sensors, processes, buses, etc)  Models tested against predefined qualifiers  Language used as a unifier in transferring models in communication  Companies interested:  Rockwell Collins  Boeing  Honeywell  Lockheed Martin  and others  SEI Open Source AADL Tool Environment (OSATE)  Major program used to develop AADL models  A few weaknesses 2

  3.  Few development environments available  Low entry-cost (Open source software)  Eclipse based (Java)  Eclipse Modeling Framework (EMF)  Visual representation of models  Unified modeling method 3

  4.  Application of model persistence  For alleviating modeling tool burdens  For creation of meaningfully sized models for simulation  Storage of EMF models  Import large models  Retrieve relevant, but smaller sections of data  Dynamic model testing  Arbitrarily large  Multiple layers of abstraction 4

  5.  Model Generator  Accept model parameters/constraints and output AADL model conforming to the parameters  System must be extendable so future developers can easily add new parameters to the system  XML:DB Adapter  Store XML representations of AADL models in an XML database  Allow user to query the model on a per-object basis 5

  6.  Model Generator  Console based user-interface with a focus on scripting for future use as a testing tool  Plug-in for OSATE  XML Adapter  BaseX wrapper for use with connecting to a BaseX XML database  Code based means for inserting and retrieving individual objects that have been stored externally 6

  7. 7

  8. 8

  9.  Model Generator uses two interfaces  Command line interface for scripting purposes  OSATE plugin  XML:DB Adapter  None 9

  10.  Model Generator command line interface: 10

  11. Model Generator – Develop a static model generator that produces AAXL output 1. Extend the static model generator to handle dynamic model generation 2. Create a console that allows parameters to be input from the user to control the 3. dynamic model generation Experiment with dynamically generating models larger than memory 4. XML:DB Adapter – Experiment with BaseX and understand its limitations in terms of performance 1. and features Build a wrapper for BaseX in Java to insert XML files into database and to 2. perform XPath (1.0) queries Generate EMF models for testing from java annotated code 3. Develop the XML:DB adapter using EMF’s persistence API and use BaseX for 4. data storage 11

  12.  High risk of not finishing on time  Project was redefined twice, leaving less time to focus on planning and design phases  Making improvements to existing software, some of which is not mature  Two subgroups meant the loss of a team member would have more drastic effect due to more specialization between the two subgroups  Evolving requirements, unsure if new project is feasible 12

  13.  Pass in constraints/properties of the model  Create tree representation of the model using EMF/OSATE components in memory  Output memory representation to AAXL text, which can be converted by OSATE into AADL text and EMF diagram  Extensible structure to allow new AADL components and tree structures to be added later 14

  14.  Implement EMF Estore and other interfaces to allow per-object queries  Validate user-provided URI and do conversion if necessary between two supported standards (EMF or OSATE’s custom XPath implementation)  Generalized for XML, but can store AAXL model files as they conform to XML specifications 15

  15.  Integrated with OSATE by using its implementations of AADL component classes  +Reuse of existing code  +Helped make sure we used correct AADL constructs  -Restricted what we were able to do with the components 16

  16.  Extendibility  Created factories for different component categories  “Builder” classes to combine components from different factories – e.g. connection builder, flow builder  Ability to add more model structures and constraints later 17

  17.  White Box Testing  JUnit was used on logic-oriented classes  OSATE API provides many restrictions on how components can be used  We have put our own restrictions in place to preserve model validity  Custom exceptions thrown to capture specific errors  System Testing  Use OSATE to convert AAXL to AADL and EMF diagram  Use OSATE to run analyses on imported diagrams to confirm validity of model  Use OSATE to create “instances” of the system – a flat model based on the original model layers 18

  18.  Handling “Dynamic” and “Generated” EMF models  Dynamic: Create a factory from scratch to point objects to use our data storage (BaseXEFactory class)  Generated: Modify the model’s auto -generated factory and point object creation through our BaseXEObject class  Handling the entry and retrieval of data to and from the database through the EStore interface  Rely on EStore‘s get() and set() methods  Create a unique key based on EClass and EStructuralFeatures to be able to query database  Serialize the object to XML and insert into database  Convert data back into a EMF object once retrieved 19

  19.  Knowing which EMF classes/interfaces to extend/implement  Study EMF book and look at CDO implementation  Trial and error  Debugger nearly impossible to use due to EMF being packaged in JAR  How to simplify BaseX’s API  Create a façade and use singleton pattern to handle I/O 20

  20.  White Box Testing  JUnit 4 used in BaseXWrapper class to test BaseX database commands  Black Box Testing  Used generated EMF models from java annotated code  Rewrote the generated model’s factory classes to use BaseXEStore instead of in-memory storage  Used JUnit 4 for testing dynamic model creation  Instrumented BaseXWrapper class with Java Logger to capture traces of EMF’s execution 21

  21.  Verification  Used BaseX’s visual interface to ensure data was correctly inserted and retrieved 22

  22. Fall Spring Overall Total Hours 144.5 387 531.5 Shaun XML:DB Adapter Model Generator Hours Per Component 204 183 Brockhoff 141 AVG Salary (per year) 57420 Marcus Work hours in Year 2080 Rosenow Pay per Hour 27.60576923 Cost $14,672.47 Chaz Beck 135 144.5 Jason Lackore 111 http://www.payscale.com/research/US/Job=Software_Engi neer_/_Developer_/_Programmer/Salary 23

  23. Research 17% Design Implementation 23% 33% Requirements 20% Documentation 5% Testing 2% 24

  24.  Lessons Learned  Model-driven development techniques  Evolving system requirements  Integration of third-party software components  Managing a large-scale project  Summary 25

  25.  Mode Generator  Generating models larger than memory  Taking advantage of XML:DB Adapter  XML:DB Adapter  Integrating XML:DB adapter with OSATE  Package up implementation into “market” deliverable 26

  26. 27

Recommend


More recommend