System and Software Architecture Description (SSAD) Version 2.0

System and Software Architecture Description (SSAD)

04/05/2015

Mission Science iRobots

Team 07

Jiashuo Li Project Manager, Life Cycle Planner, Developer

Chen Li Requirements Engineer, Software Architect, Developer

Farica Mascarenhas Operational Concept Engineer, IV&V, Quality Analyst

Hanadi Mardah Tester

Sergey Mukhin Prototyper, Developer

Yun Shao Feasibility Analyst, Developer

Version Date: 11/26/14

System and Software Architecture Description (SSAD) Version 2.3

Version History

Date / Author / Version / Changes made / Rationale /
08/25/05 / PA / 1.0 / ·  Original template for use with Instructional ICM-Sw v1.0 / ·  Initial draft for use with Instructional ICM-Sw v1.0
10/11/14 / SS / 1.1 / ·  Updating the document with use case
Diagram, system context diagram. / ·  Updating the document with use case
diagram, system context diagram
10/18/14 / SS / 1.2 / ·  Fixed comments from ARB meeting / ·  Fixed comments from ARB meeting
11/26/14 / SS / 2.0 / ·  Update the document with detailed architecture / ·  Update the document with detailed architecture.
12/06/14 / SS / 2.1 / ·  Fixed Comments from ARB meeting / ·  Fixed Comments from ARB
02/09/15 / CL / 2.2 / ·  Update some diagrams / ·  According to changes in the project
04/05/15 / CL / 2.3 / ·  Update class diagram and system analysis / ·  According to changes in the project

Table of Contents

System and Software Architecture Description (SSAD) i

Version History ii

Table of Contents iii

Table of Tables iv

Table of Figures v

1. Introduction 1

1.1 Purpose of the SSAD 1

1.2 Status of the SSAD 1

2. System Analysis 2

2.1 System Analysis Overview 2

2.2System Analysis Rationale 11

3.Technology-Independent Model 12

4.Technology-Specific System Design 13

4.1 Design Overview 13

4.2Design Rationale 18

5.Architectural Styles, Patterns and Frameworks 19

iii Version Date: 04/05/15

System and Software Architecture Description (SSAD) Version 2.3

Table of Tables

Table 1 Actors Summary 3

Table 2 UC1 Create Navigation Instructions 4

Table 3 UC1 Typical Course of Action 5

Table 4 UC-2 Create Sensor Instructions 5

Table 5 UC2 Typical Course of Action 5

Table 6 UC3 Create Sound Instructions 6

Table 7 UC3 Typical Course of Action 6

Table 8 UC4 Create Light Instructions 6

Table 9 UC4 Typical Course of Action 6

Table 10 UC5 New / Open File 7

Table 11 UC5 Typical Course of Action 7

Table 12 UC6 Save File 7

Table 13 UC6 Typical Course of Action 8

Table 14 UC7 Translate to C 8

Table 15 UC7 Typical Course of Action 8

Table 16 UC8 Compile 9

Table 17 UC8 Typical Course of Action 9

Table 18 UC 9 Load 9

Table 19 UC9 Typical Course of Action 9

Table 20 UC10 Demo 10

Table 21 UC10 Typical Course of Action 10

Table 22 Hardware Component Description 14

Table 23 Software Component Description 14

Table 24 Design Class Description 16

Table 25 Architectural Styles, Patterns, and Frameworks 19

Table of Figures

Figure 1: System Context Diagram 2

Figure 2: Process Diagram 4

Figure 3: Hardware Component Class Diagram...... 13

Figure 4: Software Component Class Diagram...... 13

Figure 5:Deployment Diagram...... 14

Figure 6: Design Class Diagram...... 15

Figure 7: Process Realization Diagram...... 17

Version Date: 04/05/15

System and Software Architecture Description (SSAD) Version 2.3

1. Introduction

1.1 Purpose of the SSAD

The purpose of the SSAD is to document the results of the object-oriented analysis and design (OOA&D) of the system being developed. It is used by the team as the reference to the system architecture. It makes sure that the system adheres to the architecture specified. It helps the clients to understand the structure of the system once the proposed system is delivered.

1.2 Status of the SSAD

The document is updated for TRR.

2. System Analysis

2.1 System Analysis Overview

The primary purpose of the system is to increase the probability of Elementary School Students pursuing careers in STEM(Science Technology Engineering Mathematics).A drag and drop GUI enables the students to program iRobot in a more efficient way with set of instructions to perform navigation, sensing activity, turn off/on led lights, compose a song. The elementary school kids get the concept of logic and control systems. It helps in improving the funding opportunities for the Mission Science thus promoting the program.

2.1.1 System Context

Figure 1: System Context Diagram

Table 1 Actors Summary

Actor / Description / Responsibilities /
Elementary School Student / User of iRobotGUI who can instruct the iRobot to perform tasks. / ·  Give Instruction through iRobot GUI
·  Compiling the code
·  Loading it to the Microcontroller
·  Insert the Microcontroller into the iRobot and make it run.
Undergraduate Student / User of iRobot GUI who provide demos to the teachers. / ·  Provide demos to the teachers
·  The low level responsibilities include giving instructions in GUI, compiling the code, loading to Microcontroller, inserting it to the Microcontroller and make it run.
WinAVR / It is a component that is integrated with GUI to compile C code to executable program. / Compiles the C code generated from GUI into hex code that can be loaded into Microcontroller.
iRobot / The actual robot to test the GUI. / Executes the program developed using GUI.
2.1.2 Artifacts & Information

Our interface does not replace any artifacts. There are no artifacts that are produced or consumed by this new system. It only provides an alternate way of operating iRobot by eliminating the need to learn C programming.

2.1.3 Behavior

Figure 2: Process Diagram

2.1.3.1 Navigation Capability

Table 2 UC1 Create Navigation Instructions

Identifier / UC-1 Create Navigation Instructions
Purpose / Enable the Elementary School Student to create navigation instructions such as moving forward, backward, turn left or right based on the angle specified.
Requirements / To be able to program iRobot with instructions to move forward, backward, turn left /right.
Development Risks / Resolving of Incompatible navigation instructions, frequency of checking the angle of turning so as to perform accurately.
Pre-conditions / Knows about the parameters for each navigation
Post-conditions / Give meaningful Navigation instructions.

Table 3 UC1 Typical Course of Action

Seq# / Actor’s Action / System’s Response
1 / Drag and drop any of the navigation instruction icons to the canvas. / The canvas displays the drag and dropped instruction and a dialog is popped up for users to change parameters
2 / Specify the value of parameter for each instruction such as distance, time, angle for turning. / Parameters are changed accordingly.
3 / Close the dialog / The program is updated.

2.1.3.2 Sensing Capability:

Table 4 UC-2 Create Sensor Instructions

Identifier / UC-2 Create Sensor Instructions
Purpose / Enable the Elementary School Student to create sensor instructions to detect cliffs, bumps, find the elapsed time and distance covered.
Requirements / To be able to program sensor instructions so as to detect cliffs or bumps, calculate time and distance.
Development Risks / Intervals of checking for the time and distance sensors.
Pre-conditions / Knows about the purpose of each sensor.
Post-conditions / Appropriate Sensor instructions based on the requirement.

Table 5 UC2 Typical Course of Action

Seq# / Actor’s Action / System’s Response
1 / Drag and drop any of the navigation instruction icons to the canvas. / The canvas displays the drag and dropped instruction and a dialog is popped up for users to change parameters
2 / Specify the value of parameter for each instruction such as distance, time, angle for turning. / Parameters are changed accordingly.
3 / Close the dialog / The program is updated.

2.1.3.3 Sound Capability:

Table 6 UC3 Create Sound Instructions

Identifier / UC-3 Create Sound Instructions
Purpose / Enable the Elementary School Student to compose a song
Requirements / To be able to compose a song.
Development Risks / None.
Pre-conditions / Knows how to use GUI.
Post-conditions / Set of Musical notes forms a song.

Table 7 UC3 Typical Course of Action

Seq# / Actor’s Action / System’s Response
1 / Drag and drop the song instruction icon to the canvas. / The canvas displays the drag and dropped instruction and the song dialog will pop up
2 / Input the notes and adjust the volume / Instruction parameters are changed accordingly.
3 / Close the dialog / The program is updated.

2.1.3.4 Light Capability:

Table 8 UC4 Create Light Instructions

Identifier / UC-4 Create Light Instructions
Purpose / Enable the Elementary School Student to give instructions to turn light on / off
Requirements / To be able to give instructions to switch on / off led lights.
Development Risks / None.
Pre-conditions / Knows how to use the drag and drop GUI
Post-conditions / Turning on / off lights as per the requirements.

Table 9 UC4 Typical Course of Action

Seq# / Actor’s Action / System’s Response
1 / Drag and drop the LED instruction icon to the canvas. / The canvas displays the drag and dropped instruction and the LED dialog will pop up
2 / Select the LED to display, change the color and lumincation / Instruction parameters are changed accordingly.
3 / Close the dialog / The program is updated.

2.1.3.5 Opening File Capability:

Table 10 UC5 New / Open File

Identifier / UC-5 New / Open File
Purpose / Enable the Elementary School Student to create a new program or open an existing program created
Requirements / To be able to create a new program with set of instructions or to open an existing files.
Development Risks / Opening an existing file requires it to be loaded into the canvas from memory.
Pre-conditions / Knows how to use the drag and drop GUI.
Post-conditions / If a new file is created, program instructions can be given; to open an existing file, the file should exist.

Table 11 UC5 Typical Course of Action

Seq# / Actor’s Action / System’s Response
1 / Select Option File->New / A new File is created.
2 / Select Option File->Open / The selected file is opened.

2.1.3.6 Saving File Capability:

Table 12 UC6 Save File

Identifier / UC-6 Save File
Purpose / Enable the Elementary School Student to save the file with instructions created.
Requirements / To be able to save the created file.
Development Risks / Store the created file in the memory so as to retrieve it when needed.
Pre-conditions / Knows how to use the drag and drop GUI.
Post-conditions / If a GUI is saved, it can be opened later for re-use.

Table 13 UC6 Typical Course of Action

Seq# / Actor’s Action / System’s Response
1 / Select Option File->Save / System asks for the filename with extension.
2 / Specify the filename with extension and destination location. / Validates the filename and saves it.

2.1.3.7 Translating Capability:

Table 14 UC7 Translate to C

Identifier / UC-7 Translate to C
Purpose / Enable the Elementary School Student to Compile the program created using GUI.
Requirements / To be able to compile the program of instructions without any error.
Development Risks / Generating a C code for the respective GUI instructions, calling the C API functions accordingly and compiling the code.
Pre-conditions / Knows how to use the drag and drop GUI
Post-conditions / If a GUI is compiled, it can be loaded to the Microcontroller.

Table 15 UC7 Typical Course of Action

Seq# / Actor’s Action / System’s Response
1 / Select Build -> Translate to C Code / Translate the program into C Code and respond with the message "Compiled Successfully".

2.1.3.8 Compiling Capability:

Table 16 UC8 Compile

Identifier / UC-8 Compile
Purpose / Enable the Elementary School Student to compile the instructions with WinAVR that is executable in iRobot.
Requirements / To be able to compile with WinAVR.
Development Risks / None.
Pre-conditions / Should have the generated C code from GUI instructions.
Post-conditions / If the compilation is successful, it can be loaded into the Microcontroller.

Table 17 UC8 Typical Course of Action

Seq# / Actor’s Action / System’s Response
1 / Select Build -> WinAVR -> Build / Compile the C code and display the progress of compiling in a window.

2.1.3.9 Loading Capability:

Table 18 UC 9 Load

Identifier / UC-9 Loads the executable file
Purpose / Enable the Elementary School Student to load the compiled file into the Microcontroller Chip.
Requirements / To be able to load the executable file in the Microcontroller.
Development Risks / None.
Pre-conditions / Should have the executable file.
Post-conditions / If a program is loaded, it can be inserted into the iRobot.

Table 19 UC9 Typical Course of Action

Seq# / Actor’s Action / System’s Response
1 / Attach the micro controller chip with a USB port to the laptop.
2 / Select Build -> WinAVR -> Load / Load the program to Microcontroller and display the successful message

2.1.3.10 Demo GUI:

Table 20 UC10 Demo

Identifier / UC-10 Demo
Purpose / Enable the Elementary School Teachers to know about the working of drag and drop GUI and basic functions of iRobot
Requirements / To train the elementary school teachers on how to use the GUI system and learn about iRobot
Development Risks / None.
Pre-conditions / Knows how to use the drag and drop GUI with iRobot
Post-conditions / The teachers know how to use the GUI with iRobot

Table 21 UC10 Typical Course of Action

Seq# / Actor’s Action / System’s Response
1 / Drag and drop the demo instruction icon to the canvas. / The canvas displays the instruction icon and the demo dialog will pop up
2 / Select which demo to play / Instruction parameters are changed accordingly.
3 / Close the dialog / The program is updated.
2.1.4 Modes of Operation

The iRobot GUI system for the iRobot operates only in one mode of operation

2.2System Analysis Rationale

Based on our analysis of how the users interact with the system, we have identified 4 classes of operational stakeholders.

Elementary School Students: They are the actual users of the system who create programs for the iRobot through drag and drop GUI.