Mission Science By Team 07
Team 07 Members Jiashuo Li Chen Li Sergey Mukhin Hanadi Mardah Yun Shao Farica Mascarenhas
Team’s Strong and Weak points Strengths Weaknesses Connection Delegation Online tools Skill set Different schedule and work styles Organization/new members catching up
Overall Project Evaluation Construction Phase Navigation Programmability in progress Light and Sound programmability in progress Sensor Programmability, Demo Mode and Conflict Detection to follow Bugzilla Meetings and defects have been tracked Development Progress Report DPR is made very week to guarantee the progress of the project
Operational Concept Description Farica Mascarenhas
System Boundary Diagram
Acceptance Test Plan and Cases Hanadi Mardah
Unit Testing Test methods of source code classes. Individual and Independent code. Automatic or manual testing. Ex. Unit Test Generator with VS2013.
Module Testing Test the interaction between modules Translator High-level Program Instruction Focus on Controller
Test Plan and Cases ID TC-001 Title Navigation Controls Pre-Conditions Function calls in C Coding for forward, backward, left and right controls on User Interface Test-Step(s) Drag the navigation buttons, Compile the code, Load onto the microcontroller chip and Test on the iRobot. Expected Results Movement of the iRobot as expected.
Test Plan and Cases ID TC-002 Title Sensor Controls Pre-Conditions Function Calls in C Code to activate sensors like for cliff detection and obstacle detection on User Interface Test-Step(s) Drag the sensor buttons, Select the sensor check frequency, Compile the code, Load onto the microcontroller chip and Test on the iRobot. Expected Results Pop Up window showing an obstacle detected in front.
Test Plan and Cases ID TC-003 Title Sounds and Lights Pre-Conditions Function Calls in C Coding for aggregating sounds and making songs using drag and drop functionality on User Interface Test-Step(s) Drag the sound and light buttons, Chose the sounds, Compile the code, Load onto the microcontroller chip and Test on the iRobot. Expected Results Composition of the songs as expected.
Test Plan and Cases ID TC-004 Title Demo Modes Pre-Conditions Functional Testing Test-Step(s) Testing all the instructions related to demo modes. Expected Results Demo Modes working as expected.
Test Plan and Cases ID TC-005 Title Conflict Detection Pre-Conditions Conflicts inside/between instructions Test-Step(s) Providing the conflicting instructions in the drag and drop interface. Expected Results Pop Up showing conflicting instructions given.
Prototype Sergey Mukhin
Previous Achievements Drag & Drop Programming Accessible to elementary school children Parameterized Instructions FORWARD 500, 3 Functioning Workflow Create (Open) Compile & Load Run Translation to C High level instructions are translated to low-level language Integration with WinAVR Building and loading program to microcontroller Debugging Interface Accessible to undergraduate students
New Features New parameterized commands: Microcontroller Emulator LEDs : LED[0, 2, 8, 10][0-255][0-255] Song Microcontroller Emulator Translation of new commands to C Tests
LED Command Configuration
Song Command
Live Demo
Risks, Problems and Mitigation Mitigation plan Poor User Accessibility (Overly complex and not engaging enough for school children) Prototyping Collection of User Feedback Iterative System Revision Hardware Limitations (Low Sensor Resolution) Scripting Commands Sensor Calibration Poor development toolset Request tool from robot vendor Building a microcontroller simulator
Architecture Chen Li Architecture. Overall and detailed architecture Design if critical COTS/reuse selections (NOT JUST CHOICES) Chen Li
Overall Architecture
Emulator PC Program iRobot
Process Realization
COTS selections iRobot WinAVR Open Interface: Use Serial Port byte stream to control iRobot WinAVR Compiler: C code -> machine language Downloader: machine language -> Microcontroller
Life Cycle Plan Jiashuo Li
Overview Modified since DCR ARB Plans for 577b Modules Estimation Roles and responsibilities Plans for 577b Re-baseline Foundation Phase Iteration 1 Core Capabilities Iteration 2 Full Capabilities Transition Iteration
Modules No. Module Name Brief Description SLOC REVL 1 GUI A drag-and-drop GUI which allows users to “write” program in a graphical way 2,000 40% 2 Translator Translate high-level instructions to C code 800 20% 3 Emulator Emulate Microcontroller 300 10% 4 Controller Control the workflow of the total program 400 5%
Estimation Total SLOC estimated : 4486 Most Likely effort: 10.42 PM 10.42 / 1.67 = 6.24 Only 6 members! Solution: Set up rigorous schedule and deadlines
Required Skills C# C/C++ Serial Port Programming Git, mainly GitHub Visual Studio 2013 .NET WPF
Roles Jiashuo Li Project Manager, Life Cycle Planner, Developer Chen Li Requirements Engineer, Software Architect, Emulator Developer Farica Mascarenhas Operational Concept Engineer, IV&V, Quality Analyst Hanadi Mardah Tester, Software Architect Sergey Mukhin Prototyper, GUI Developer Yun Shao Feasibility Analyst, Developer
Construction Iteration 1 (Feb 10 – Mar 26) Duration: Feb 10 Mar 25 Modules: Navigation Sensor Light & Sound GUI instruction representation Working Emulator for debugging Unit Testing Cases
Schedule
Construction Iteration 2 (Mar 26 – Apr 8) Duration: Mar 26 Apr 08 Enhanced/Refined User Interface (taking feedback from the client into consideration) Module Testing and System Testing Additional features (e.g., COM port / firmware auto detection)
Feasibility Evidence Yun Shao
Risk Analysis GUI may generate C code that cannot be compiled. 10 2 20 The line of C code causing the compilation error and corresponding instruction from GUI can be highlighted. A message to contact the maintainers with the exact program tried and the error message faced. The GUI may fail to detect conflicting instructions, so that the iRobot will run out of expectation, which decreases kids' interest. 3 4 12 Team needs to analyze the place where conflicts possibly happen for each function, and design a specific action to avoid unpredictable behaviors of iRobot.
Risk Analysis The COM port may change when microcontroller is connected to computer, but the COM port changing function may fail to identify the COM port and customize "makefile" correspondingly. 5 2 10 Maintainer is given an option to manually select the COM port from all available candidates. Add troubleshooting instructions with snapshots of how to identify the correct COM port and change the "makefile". Due to various hardware environments on different computers, incompatibility issue may arise while using default "firmware version" in "makefile" which will cause COM port time-out. Maintainer is given an option to manually select the version of firmware. Add troubleshooting instructions of how to edit "makefile" to change the "firmware version".
Risk Analysis Some misoperation may happen on Github since most of team members are new to Github, which costs time to fix. 2 4 8 Team is now study on Github by reading book named "Pro Git" Final GUI may fail to interest elementary school kids towards programming iRobots. Make improvements based on the collection of feedback of kids who have tried our application.
Traceability Matrix OCD Win Condition SSAD Test Case OC1 WC-3283 ATF: Navigation Keys UCD: 2.1.1 TC-001, TC-005 OC2 WC-3285 ATF: Sensor UCD: 2.1.2 TC-002 OC3 WC-3291 ATF: Sounds /Light UCD: 2.1.3 TC-003 OC4 WC-3296 ATF: Loop & Wait Constructs UCD: 4.1.2.1 TC-004 OC5 WC-3305 WC-3304 ATF: Dome Modes
Definition of Done All code developed with comprehensive comments Unit tests passed Module tests passed System tests passed All functionalities of code recorded in iRobot Programming Manual A comprehensive user manual for undergraduate students and elementary school teachers
Metric 1 Progress Metric Week 1: Team reformation Week 2: Introduction to new members Meet with client Requirement confirmation Overall work flow introduction Week 3: Get Familiar with instructions in iRobot Open Interface LED & Song instructions design Week 4: Develop and realize the LED & Song function Add LED & Song UI Build translator for LED & Song instructions Create specific test cases for LED & Song Build Emulator for LED & Song testing
Metric 1 Delivered Feature Completeness Completed Features: Forward, Left, LED, Song Remaining Features: Backward, Right, Sensor, Loop & If
Metric 2 Defect Metric Remaining Defect Week1 (1) Week2 (0) Week3 (1) Don’t have emulator to communicate with iRobot (Solved in Week 4) Week1 (1) New members were not familiar with the workflow (Solved in Week 2) Week2 (0) None Week3 (1) Members were not familiar with hardware programming (Solved in Week 4) Week4 (3) The SONG dialog is not working perfectly SONG modification is not implemented Program is unstable crashes some time
Solved Technical Debt Code in Prototype has been cleaned up. Team members have been familiar with basic functions of corresponding tools they need to use in developing and testing. Developers have deeply understanding of instructions in iRobot Open Interface.
Remaining Technical Debt Haven’t gotten enough overall understanding of iRobot Open API Haven’t grasped some complex functions of WPF and Visual Studio No Expert in GitHub
Thank you!