Environment Model Building Tools MSE Presentation 3 Esteban - - PowerPoint PPT Presentation
Environment Model Building Tools MSE Presentation 3 Esteban - - PowerPoint PPT Presentation
Environment Model Building Tools MSE Presentation 3 Esteban Guillen Outline Action Items Project Evaluation Assessment Evaluation Component Design XML File Description Future Work Conclusion References Demo
Outline
Action Items Project Evaluation Assessment Evaluation Component Design XML File Description Future Work Conclusion References
- Demo
Action Items
MVC Architecture
Moved data manipulators to controller
package
Improve Terrain Representation
Increase number of triangles Change pattern (doesn’t help much)
XML Definition
Part of documentation
Action Items (cont.)
Formal Specification
Elevation adjustment operation Shapes lie within the bounds of the
associated Object
Move to back operation
Action Items (cont.)
Elevation adjustment
Context EMBEnvironment::elevationAdj(o:EMBObject) Post adjusted: o.y = terrain-> getHeight(o.x,o.z)
Shapes with in Object bounds
Context o : EMBObject
Inv bounds:
shapes-> forall( s | (o.x – o.length/2 < s.x < o.x + o.length/2) and (o.y – o.height/2 < s.y < o.y + o.height/2) and (o.z – o.width/2 < s.z < o.z + o.width/2))
Move to back
Context EMBEnvironment::moveToBack(o:EMBObject)
Post back : objects-> last = o Post size : objects@pre-> asSet() = object-> asSet()
Project Evaluation
SLOC (actual)
Environment Model Builder = 2237 Environment Object Builder = 2315 Environment Terrain Builder = 820 Total = 5372 source lines of code
SLOC (predicted)
Phase 1 (Prototype & examples) – 2500 Phase 2 (Bottom-up) - 4800
Project Evaluation (cont)
Duration (actual)
Phase 1 = 3870 minutes or 65 hours Phase 2 = 5970 minutes or 100 hours Phase 3 = 16410 minutes or 273 hours Total = 438 hours
Duration (predicted)
Phase 1 (COCOMO) – 840 (time remaining) Phase 2 (Button-up) – 270 (time remaining)
Project Evaluation (cont)
Phase 1 Break Down
Documentation, 1380, 36% Meetings, 150, 4% Coding, 2000, 53% Design, 280, 7% Documentation Coding Meetings Design
Project Evaluation (cont)
Phase 2 Break Down
Documentation, 2010, 32% Coding, 2010, 32% Design, 2040, 32% Meetings, 270, 4% Coding Design Documentation Meetings
Project Evaluation (cont)
Phase 3 Break Down
Coding, 5000, 56% Documentation, 3300, 37% Meetings, 150, 2% Design, 460, 5% Coding Documentation Design Meetings
Assessment Evaluation
- Test Case 1 – Loading Shapes
- This test case was successfully passed. All the primitive shapes could be loaded onto
the building surface and were visible.
- Test Case 2 – Resizing Shapes
- This test case passed. All the primitives were resized by first clicking in the shape to
bring up its properties window, and then using the controls on the properties window the shape could be resized.
- Test Case 3 – Changing the Weight and Color
- This test case passed. All the primitives could have their weight and color changed
from the properties window.
- Test Case 4 – Moving Shapes
- This test case passed. All the primitives could be moved with the x, y, and z controls
- n the properties window. The three different viewing perspectives made it easy to
line up and stack the shapes on top of each other.
- Test Case 5 – Zooming I n and Out
- This test case passed. From the 3-D viewing tab the scene could be zoomed in and
- ut by holding down Alt then left clicking the mouse and then moving the mouse up
and down.
Assessment Evaluation
- Test Case 6 – Viewing in 3-D
- This test case passed. From the 3-D viewing tab the scene could viewed from all
angles.
- Test Case 7 – Saving to Library
- This test case passed. Selecting “Save to Library” from the File menu provide a
pop-up window to name the object. After providing a name and clicking the “OK” button the object is saved to the library and is added to the tree that displays a list
- f the library of objects.
- Test Case 8 – Reusing Saved Objects
- This test case passed. The previous saved object was available to add. Four of the
- bjects were added and moved into position. One improvement would be to have
the option to move the added object as a group. At the time of testing the object could only be moved by moving its primitive shapes.
- Test Case 9 – Modifying Elevation
- This test case passed. The tool provided a grid of point to modify. The elevation
was adjusted by a slider bar. The values were form 1-100. After selecting an elevation a point on the grid could be clicked and its elevation would change to value of the slider bar. The zero elevation points were black while the higher elevation points were color shades of green; lighter shades of green represented higher elevations.
Assessment Evaluation
- Test Case 10 – Setting a Texture
- This test case was untested. At the time of testing there was no way to set a
texture for a region. This feature will be future requirement.
- Test Case 11 – Zooming I n and Out
- This test case passed. From the 3-D viewing tab the scene can be zoomed in and
- ut by using the mouse.
- Test Case 12 – Viewing I n 3-D
- This test case passed. From the 3-D viewing tab the scene could be viewed from
any angle.
- Test Case 13 – Saving to Library
- This test case passed. Selecting “Save to Library” from the File menu provide a
pop-up window to name the terrain. After providing a name and clicking the “OK” button the terrain is saved to the library and is added to the tree that displays a list
- f the library of terrains.
- Test Case 14 – Adding Objects and Terrains
- This test case passed. The terrain and objects were successfully added. One
improvement could be to have an added object sit flush on the surface. At the current time of test the added object was placed at (0, 0, 0), but the elevation of the terrain was much higher at that point, so the object was underneath the surface of the terrain.
Assessment Evaluation
- Test Case 15 – Moving the Objects
- This test case passed. The objects were able to be moved by clicking on
them, from the building surface, and using the controls of the provided properties window to move the objects position
- Test Case 16 – Setting the Camera
- This test case was untested. This feature will be a future requirement.
- Test Case 17 – Setting the lights
- This test case was untested. This feature will be a future requirement.
- Test Case 18 – Viewing in 3-D
- This test case passed. From the 3-D viewing tab the scene could be
viewed from any angle.
- Test Case 19 – Saving an Opening
- This test case passed. The environment was successfully saved and re-
- pened.
Component Design
Environment Model Builder Object Builder (see documentation) Terrain Builder (see documentation)
Environment Model Builder
Environment Model Builder
Environment Model Builder
Environment Model Builder
Environment Model Builder
Environment Model Builder
Environment Model Builder
Environment Model Builder
Environment Model Builder
Environment Model Builder
Environment Model Builder
XML File Description
- Object Builder
- < ?xml version= "1.0"?>
- < !DOCTYPE object [
- < !ELEMENT object (name,x,y,z,shape* )>
- < !ELEMENT shape (* primative)>
- < !ELEMENT primative (sphere|box|cone|cylinder)>
- < !ELEMENT sphere (name,x,y,z,direction,radius,color,hot,stationary,weight)>
- < !ELEMENT box (name,x,y,z,direction,color,length,width,height,hot,stationary,weight)>
- < !ELEMENT cone (name,x,y,z,direction,radius,height,color,hot,stationary,weight)>
- < !ELEMENT cylinder (name,x,y,z,direction,radius,height,color,hot,stationary,weight)>
- < !ELEMENT x (# PCDATA)>
- < !ELEMENT y (# PCDATA)>
- < !ELEMENT z (# PCDATA)>
- < !ELEMENT radius (# PCDATA)>
- < !ELEMENT color (# PCDATA)>
- < !ELEMENT length (# PCDATA)>
- < !ELEMENT width (# PCDATA)>
- < !ELEMENT height (# PCDATA)>
- < !ELEMENT name (# PCDATA)>
- < !ELEMENT direction (# PCDATA)>
- < !ELEMENT hot (# PCDATA)>
- < !ELEMENT stationary (# PCDATA)>
- < !ELEMENT weight (# PCDATA)>
- ]>
XML File Description
- Terrain Builder
- < ?xml version= "1.0"?>
- < !DOCTYPE terrain [
- < !ELEMENT terrain (name,num-points,points-per-row,size,* point)>
- < !ELEMENT name (# PCDATA)>
- < !ELEMENT num-points (# PCDATA)>
- < !ELEMENT points-per-row (# PCDATA)>
- < !ELEMENT size (x-min,x-max,y-min,y-max)>
- < !ELEMENT x-min (# PCDATA)>
- < !ELEMENT x-max (# PCDATA)>
- < !ELEMENT y-min (# PCDATA)>
- < !ELEMENT y-max (# PCDATA)>
- < !ELEMENT point (index,x,y,z)>
- < !ELEMENT index (# PCDATA)>
- < !ELEMENT x (# PCDATA)>
- < !ELEMENT y (# PCDATA)>
- < !ELEMENT z (# PCDATA)>
- ]>
XML File Description
Environment Builder
< ?xml version= "1.0"?> < !DOCTYPE env-model [ < !ELEMENT env-model (terrain* ,object* )>
Future Work
- Object Builder
- Grouping primitives
- Having object composed of a hierarchy of objects
- Making the building surfaces scrollable
- Zoom-in and out on building surfaces
- Adding rotation ability to the primitives
- Improving the search feature
- Terrain Builder
- Adding textures to the terrain
- Setting the size of the terrain
- Improving the search feature
- Environment Model Builder
- Making the building surface scrollable
- Allow for multiple terrains to be added
- Ability to dynamically place objects on the top of the surface
- Ability to set the size of the model being built
- Robot Builder (new application)
- Modify current Object Builder
Conclusion
Working in a group setting Working on project that had 5000 SLOC Taking significant time to design Learning how to estimate SLOC and
time
Importance of understanding what you
are building ASAP
References
[1] Davison, Andrew. Game Programming With Java and Java 3D. http://fivedots.coe.psu.ac.th/~ ad/jg/: 2004 [2] Fowler, Martin. UML Distilled Third Edition. Boston: Addison-Wesley, 2004. [3] Horton, Ivor. Java 2 SDK 1.4 Edition. Plainview: Wrox Press, 2002. [4] Lee, Richard & Tepfenhart, William. Practical Object-Oriented Development With UML and Java. Upper Saddle River: Prentice Hall, 2002. [5] Royce, Walker. Software Project Management. Upper Saddle River: Addison- Wesley, 1998. [6] Walsh, Aaron & Gehringer, Doug. Java 3D API Jump-Start. Upper Saddle River: Prentice Hall, 2002.