group 9 “the software architecture of a program or computing system is the structure or structures...
TRANSCRIPT
Group 9
“The software architecture of a program or computing system is the structure or structures of the system, which comprise software elements, the externally visible properties of those elements, and the relationships among them”
Group members
Mirela Divic Anders Magnus Braathen Hans Rasmussen Bjørn-Erik Stenbakk
Introduction
Quality attributes in focusPerformanceAvailability
Approach
Phase 1:Started out with Req. Spec. & Arch. design.….and doing it all over again
Phase 2:The ATAM
Phase 3: Implementation
Quality tactics
PerformanceAlgorithmRepresentation of the encountered world in
the robots memory Availability
Preventing faults Recovery
Our architecture
Changed during implementation Described with three different views UML class diagram most valuable during
implementation
Logical view
StateManagerController
SensorInterpretorEngine PathRecorder PathGripper
getState()
state;int
setMotorSpeed(int,int)
findObject(boolean, boolean)
upDateTrack(int,int, Pathrecorder)
meanDistance(boolean, boolean)
investigate()
turnToItem()
setFoundBall(true)
nextState
nexState
getState()
state;int
pickUp()
int[][]
setHasBall(true)
nexState()
getState()
state;int
getRecordedPath()
path;Path
followRecTrack
get()
set()
path
Development view
3. Controller 2. StateManager, PathRecorder 1. SensorInterpreter, Engine, Paths
Implementation
Plan: App. 1+ week figuring out the existing code and
implemententing simple tasks App. 1+ week making our Controller as we wanted it App. 1+ week testing and writing final report (NB! Everybody had other courses to attend as well)
Implementation
The plan worked fairly well More time-consuming to implement simple
tasks than expected More time-consuming to implement the
final Controller Testing was done during implementation
Lessons learned (1/2)
Framework:Architecture depends on existing frameworkMade a lot of ”hacks” to make it work
Lessons learned (2/2)
ATAMEvaluating another team’s architectureHaving our own architecture evaluated
Programming AI
Results (1/3)
Difficult to draw map by sensor-readingsHad to use a different approachRobot best suited for following walls
Excluding the need for complex search-algorithms
Results (2/3)
The robot is able to:Find and recognize ballsFind and recognize lightRecord path when searching
Efficient movement between encountered items
Avoid crashing and getting stuck
(in most situations)
Results (3/3)
Areas of improvementBetter recognition of ballsControlled termination when finished or stuckWhat to do when encountering a second ball
Conclusion
Unable to fulfill all the requirements Time consuming
Final implementation differs somewhat from the original architecture
Hard to keep architecture in focus Simulator offers limited flexibility
Low level experience in AI programming Challenging task