Environment Model Building Tools MSE Presentation 2 Esteban - - PowerPoint PPT Presentation

environment model building tools
SMART_READER_LITE
LIVE PREVIEW

Environment Model Building Tools MSE Presentation 2 Esteban - - PowerPoint PPT Presentation

Environment Model Building Tools MSE Presentation 2 Esteban Guillen Outline Action Items Project Plan Architecture Design Formal Specification Formal Inspection Checklist Test Plan Questions Demo (Terrain Builder)


slide-1
SLIDE 1

Environment Model Building Tools

MSE Presentation 2 Esteban Guillen

slide-2
SLIDE 2

Outline

Action Items Project Plan Architecture Design Formal Specification Formal Inspection Checklist Test Plan Questions Demo (Terrain Builder)

slide-3
SLIDE 3

Action Items

Added detail to use case diagram Though more about searching Identified features to be implemented

slide-4
SLIDE 4

New Use Case Diagram

slide-5
SLIDE 5

Searching

Libraries will be a hierarchy of

directories searchable by a JTree

A preview window will show a selected

library item as a 3D thump-nail

slide-6
SLIDE 6

Features to be Implemented EMB

Load Objects (search and preview) Load Terrain (search and preview) Move Objects View in 3D Save Model Load Model

slide-7
SLIDE 7

EMB Building Surface

slide-8
SLIDE 8

Features to be Implemented EOB

Build from primitives (move, resize, set

properties)

Build from saved objects Search and Preview View in 3D Save (collection of primitives) Load

slide-9
SLIDE 9

EOB Building Surface

slide-10
SLIDE 10

Features to be Implemented ETB

Modify Elevation Set properties (texture mapping) View in 3D Save (elevation map, triangle coords) Load

slide-11
SLIDE 11

ETB Building Surface

slide-12
SLIDE 12

Project Plan – Cost Estimate

Current Progress

152 total hours (Phase 1 & 2) 90 hours coding/debugging/testing 62 hours documentation 1200 SLOC 25% of implemented features 5 Documents

slide-13
SLIDE 13

Project Plan – Cost Estimate

Productivity

1200 SLOC / 90 hours = 13.2 SLOC/hour 5 Documents / 62 hours = .08 Docs/hour

Remaining Work

1200 SLOC / .25 = 4800 SLOC 4-5 Documents

slide-14
SLIDE 14

Project Plan – Cost Estimate

Remaining Effort

3600 SLOC / (13.3 SLOC /hour)

= 270.7 hours or 39 days (7 hours per day)

56 hours for documentation

= 8 days

slide-15
SLIDE 15

Project Plan – WBS

High level

Coding/debugging – 30 days Testing – 9 days Documentation – 8 days

slide-16
SLIDE 16

Project Plan - WBS

Deliverables for Presentation 3

Action Items (documentation) User Manual (documentation) Component Design (documentation) Source Code (development) Assessment Evaluation (testing) Project Evaluation (documentation) References (documentation) Technical Inspection Letters (documentation)

slide-17
SLIDE 17

Project Plan

Development (6/10 – 7/15)

ETB EOB EMB

Testing (7/16 – 7/28) Documentation (7/29 – 8/10)

slide-18
SLIDE 18

Architecture Design – EMB Package Organization

EMB Application EMB Controller EMB View EMB Model

slide-19
SLIDE 19

Architecture Design – EMB Application Package

EMBApplication init()

slide-20
SLIDE 20

Architecture Design – EMB Controller Package

EMBController save(f : File)

  • pen(f : File)

parseXML() exportXML() setZoomFactor()

slide-21
SLIDE 21

Architecture Design – EMB View Package

EMBTerrainPreview addTerrain() EMBObjectPreview addObject() EMBBuildingSurface paint() zoomOut() zoomIn() select(p : Point2d) EMBThreeDimensionalView add(s : Shape3D) EMBDrawingView 1 +terrainPrev 1 1 +objectPrev 1 1 +builder 1 EMBView 1 +threeD 1 1 +canvas 1 EMBXMLView showXML() 1 +xml 1 EMBTerrainFinder searchDB() getCurrent() : EMBTerrain select() 1 +finder 1 EMBTerrainView display(s : Shape3D) 1 +view 1 EMBObjectFinder searchDB() getCurrent() : EMBObject select() 1 +finder 1 EMBObjectView display(s : Shape3D) 1 +view 1

slide-22
SLIDE 22

Architecture Design – EMB Model Package

EMBCone height : Double radius : Double EMBCylinder height : Double radius : Double EMBSphere radius : Double EMBBox length : Double width : Double height : Double EMBObjectLibrary getData() : Set(EMBObject) addData(o : EMBObject) EMBBasicShape name : String x : Double y : Double z : Double writeXML() : String EMBEnvironmentLibrary getData() : Set(EMBEnvironment) addData(e : EMBEnvironment) EMBModel getData() : EMBEnvironment addObject(o : EMBObject) addTerrain(t : EMBTerrain) deleteObject(o : EMBObject) deleteTerrain(t : EMBTerrain) EMBObject name : String x : Double y : Double z : Double length : Double width : Double height : Double writeXML() : String addShape(s : EMBBasicShape) move(p : Point3d) 1 1..n 1 +objects 1..n 1 1..n 1 +shapes 1..n EMBEnvironment name : String writeXML() : String addObject(o : EMBObject) addTerrain(t : EMBTerrain) deleteObject(o : EMBObject) deleteTerrain(t : EMBTerrain) 1 1..n 1 +environments 1..n 1 1 1 +environment 1 n 1..n n +objects 1..n EMBTerrainLibrary getData() : Set(EMBTerrain) addData(t : EMBTerrain) EMBTerrain name : String getHeight(x : Double, z : Double) : Double writeXML() : String n 1 n +terrain 1 1 1..n 1 +terrains 1..n

slide-23
SLIDE 23

Architecture Design – EMB Loading a Terrain

: User : EMBTerrainFinder : EMBObjectView : EMBTerrainPreview : EMBModel : EMBEnvironment : EMBBuildingSurface : EMBThreeDimensionalView select select display display addTerrain getCurrent addTerrain addTerrain paint add

slide-24
SLIDE 24

Architecture Design – EMB Loading an Object

: User : EMBObjectFinder : EMBObjectView : EMBObjectPreview : EMBModel : EMBEnvironment : EMBBuildingSurface : EMBThreeDimensionalView select display select display addObject getCurrent addObject addObject paint add

slide-25
SLIDE 25

Architecture Design – EMB Saving an Environment Model

: User : EMBController : EMBModel model : EMBEnvironment : EMBTerrain : EMBObject box1 : EMBBox sphere1 : EMBSphere getData save writeXML writeXML writeXML writeXML writeXML

slide-26
SLIDE 26

Architecture Design – EOB Package Organization

EOB Application EOB Controller EOB View EOB Model

slide-27
SLIDE 27

Architecture Design – EOB Application Package

EOBApplication init()

slide-28
SLIDE 28

Architecture Design – EOB Controller Package

EOBController save(f : File)

  • pen(f : File)

parseXML() exportXML() setZoomFactor()

slide-29
SLIDE 29

Architecture Design – EOB View Package

EOBObjectPreview addObject() EOBObjectFinder searchDB() getCurrent() : EOBObject select() EOBObjectView display(s : Shape3D) EOBFrontDrawingView paint() zoomOut() zoomIn() select(p : Point2d) 1 +finder 1 1 +view 1 EOBSideDrawingView paint() zoomOut() zoomIn() select(p : Point2d) EOBTopDrawingView paint() zoomOut() zoomIn() select(p : Point2d) EOBThreeDimensionalView add(s : Shape3D) EOBDrawingView 1 +front 1 1 +preview 1 1 +side 1 1 +top 1 EOBView 1 +threeD 1 1 +canvas 1 EOBXMLView showXML() 1 +xml 1

slide-30
SLIDE 30

Architecture Design – EOB Model Package

EOBBox length : Double height : Double width : Double modify(l : Double, h : Double, w : Double) EOBCone height : Double radius : Double modify(h : Double, r : Double) EOBCylinder height : Double radius : Double modfy(h : Double, r : Double) EOBSphere radius : Double modify(r : Double) EOBBasicShape name : String x : Double y : Double z : Double writeXML() : String move(p : Point3d) EOBModel getData() : EOBObject addShape(s : EOBBasicShape) deleteShape(s : EOBBasicShape) EOBObjectLibrary getData() : Set(EOBObject) addData(o : EOBBasicShape) EOBObject name : String x : Double y : Double z : Double width : Double length : Double height : Double writeXML() : String addShape(s : EOBBasicShape) deleteShape(s : EOBBasicShape) 1 1..n 1 +shapes 1..n 1 1 1 +object 1 1 1..n 1 +objects 1..n

slide-31
SLIDE 31

Architecture Design – EOB Adding Two Box Shapes

: User : EOBObjectFinder : EOBObjectView : EOBObjectPreview box1 : EOBBox box2 : EOBBox : EOBModel : EOBObject : EOBFrontDrawingView : EOBSideDrawingView : EOBTopDrawingView : EOBThreeDimensionalView select display add add new new addShape addShape addShape addShape paint paint paint add paint paint paint add getCurrent getCurrent
slide-32
SLIDE 32

Architecture Design – EOB Modifying Box Shapes

: User : EOBFrontDrawingView : EOBSideDrawingView : EOBTopDrawingView box1 : EOBBox : EOBModel box2 : EOBBox select getData move select getData paint paint modify paint paint

slide-33
SLIDE 33

Architecture Design – ETB Package Organization

ETB Application ETB Controller ETB Model ETB View

slide-34
SLIDE 34

Architecture Design – ETB Application Package

ETBApplication init()

slide-35
SLIDE 35

Architecture Design – ETB Controller Package

ETBController save(f : File)

  • pen(f : File)

parseXML() exportXML() setZoomFactor()

slide-36
SLIDE 36

Architecture Design – ETB View Package

ETBThreeDimensionalView add(s : Shape3D) ETBXMLView showXML() ETBTerrainFinder searchDB() select() getCurrent() : ETBTerrain ETBTerrainView display(s : Shape3D) ETBView 1 +threeD 1 1 +xml 1 ETBTerrainPreview addTerrain() 1 +finder 1 1 +view 1 ETBDrawingView 1 +canvas 1 1 +preview 1 ETBBuildingSurface paint() modify(p : Point2d) setElevation(h : Double) 1 +builder 1

slide-37
SLIDE 37

Architecture Design – ETB Model Package

ETBModel getData() : ETBTerrain ETBTerrainLibrary getData() : Set(ETBTerrain) addData(t : ETBTerrain) ETBTerrain name : String writeXML() : String updatePoint(i : Integer, p : Point3d) 1 1 1 +terrain 1 1 1..n 1 +terrains 1..n

slide-38
SLIDE 38

Architecture Design – ETB Modifying Elevation

: User : ETBBuildingSurface : ETBModel : ETBTerrain setElevation getData updatePoint modify

slide-39
SLIDE 39

Formal Specification

  • -Unique names of objects in Object Library
  • context o : EMBObjectLibrary
  • inv UniqueNameObjectLibrary:
  • .objects-> forAll(p1,p2 | p1 < > p2
  • implies p1.name < > p2.name)
  • -Unique names of terrains in Terrain Library
  • context t : EMBTerrainLibrary
  • inv UniqueNameTerrainLibrary:
  • t.terrains-> forAll(p1,p2 | p1 < > p2
  • implies p1.name < > p2.name)
slide-40
SLIDE 40

Formal Specification

  • -Unique names for all shapes of an object
  • context obj : EMBObject
  • inv UniqueNameObjectShapes:
  • bj.shapes-> forAll(p1,p2 | p1 < > p2
  • implies p1.name < > p2.name)
  • -Every box has positive length, width and height
  • context b : EMBBox
  • inv BoxPositiveLength:
  • b.length > 0
  • inv BoxPositiveWidth:
  • b.width > 0
  • inv BOXPositiveHeight:
  • b.height > 0
slide-41
SLIDE 41

Formal Specification

  • -Deleting an object must remove it while the other object are unchanged
  • context EMBEnvironment::deleteObject(o : EMBObject)
  • pre Current: objects-> includes(o)
  • post Deleted: objects = objects@pre-> excluding(o)
  • -Added objects must be unique
  • context EMBEnvironment::addObject(o : EMBObject)
  • pre Current: objects-> excludes(o)
  • post Added: objects = objects@pre-> including(o)
slide-42
SLIDE 42

Formal Inspection Checklist

  • 1. The symbols used in the class diagrams conform to the UML

standards

  • 2. The symbols used in the sequence diagrams conform to the

UML standards

  • 3. The class diagrams have a corresponding description provide

in the architectural design document

  • 4. The descriptions of all class diagrams are clear and makes

sense

  • 5. The messages passed between objects in the sequence

diagrams can be found in the corresponding class diagram as public methods

slide-43
SLIDE 43

Formal Inspection Checklist

  • 6. All classes in the Environment Model Builder (sections 2.2-2.5
  • f Architecture Design) are found in the USE model (section 5
  • f the Architecture Design)
  • 7. The role names and multiplicities in the USE model match

with the role names and multiplicities of the UML diagrams for the Environment Model Builder (sections 2.2-2.5 of Architecture Design )

  • 8. The attributes in the USE model match with the attributes of

the corresponding class diagrams (sections 2.2-2.5 of the Architecture Design)

  • 9. The operations in the USE model match with the

corresponding methods in the class diagrams (sections 2.2-2.5

  • f the Architecture Design)
slide-44
SLIDE 44

Test Plan

Mainly functional testing Describe a scenario consisting of test

cases that test specific requirements

Unit testing with JUnit Integration testing will be difficult

Nobody developing 3D Viewer and

Environment Simulator

slide-45
SLIDE 45

Test Plan

  • Scenario for Environment Object

Building Tool

  • The object builder is intended to build object from primitive shapes. For

testing the tester will stack all four types of primitive shapes on top of each other. This collection of primitives will be saved to the database and then reused to build a new shape. The test cases below will provide a step by step process for the scenario.

slide-46
SLIDE 46

Test Plan

Test Case 1 – Testing SR12 and SR13

Task(s)

Load a cone, sphere, box, and cylinder onto the

drawing surfaces.

Verification

The shapes should be visible on the drawing

surface.

slide-47
SLIDE 47

Test Plan

Test Case 3 – Testing SR15 and SR16

Task(s)

Change the box to red and a weight of 5kg. Change the cylinder to yellow and a weight of 2kg. Change the cone to orange and a weight of 4kg. Change the sphere to blue and a weight of 2kg.

Verification

The box is visibly red and its property box shows a weight of

5kg.

The cylinder is visibly yellow and its property box shows a

weight of 2kg.

The cone is visibly orange and its property box shows a weight

  • f 4kg.

The sphere is visibly blue and its property box shows a weight

  • f 2kg.
slide-48
SLIDE 48

Questions

  • http://www.cis.ksu.edu/~ ejg3500/embt/phase_2/docs/doc/index.html
slide-49
SLIDE 49

Demo