4. Requirements Definition

advertisement
Visual Architecture
Requirements Definition
Version:
1.0
Date: 2010-09-30
Visual Architecture
Requirements Definition
Version 1.0
Page 1
Doc. No.:
Visual Architecture
Requirements Definition
Version:
1.0
Date: 2010-09-30
Revision History
Date
Version
Description
Author
2010-09-30
0.01
Initial Draft
Sarah Kuria
01.10.10
1
Final version
All
Page 2
Visual Architecture
Requirements Definition
Version:
1.0
Date: 2010-09-30
Table of Contents
1. Introduction ........................................................................................................................................................ 4
1.1
1.2
1.3
1.4
Purpose of this document ........................................................................................................................ 4
Intended Audience .................................................................................................................................. 4
Scope ....................................................................................................................................................... 4
Definitions and acronyms ....................................................................................................................... 4
1.4.1 Definitions .................................................................................................................................... 4
1.4.2 Acronyms and abbreviations ........................................................................................................ 4
1.5 References ............................................................................................................................................... 4
2. Requirements Description .................................................................................................................................. 5
2.1
2.2
2.3
2.4
Introduction ............................................................................................................................................. 5
General requirements .............................................................................................................................. 5
Specific requirements – Teacher (architecture designer) part ................................................................. 5
Specific requirements – Student part ...................................................................................................... 5
3. Use Case Models ................................................................................................................................................ 6
3.1 Use case model 1..................................................................................................................................... 6
3.1.1 Use case “Create hardware architecture”...................................................................................... 6
3.1.2 Use case “Write Assembler code” ................................................................................................ 6
3.1.3 Use case “Compile and debug Assembler code” .......................................................................... 7
4. Requirements Definition ..................................................................................................................................... 7
4.1 Requirement Group Definitions .............................................................................................................. 7
4.2 Requirement Sources .............................................................................................................................. 7
4.3 Requirements definitions ........................................................................................................................ 7
5. Future Development ........................................................................................................................................... 8
5.1 General Overview ................................................................................................................................... 8
5.2 Specific group 1 ...................................................................................................................................... 8
5.3 Specific group 2 ...................................................................................................................................... 8
Page 3
Visual Architecture
Requirements Definition
Version:
1.0
Date: 2010-09-30
1.
Introduction
1.1
Purpose of this document
The document is designed to detail the customer requirements. It seeks to define the customer needs, detail them
and finally outline the planed approach to steer the project towards meeting them. It seeks to define the system
boundaries and outline the anticipated possibilities of extension of the proposed solution. It seeks to envision
future extension possibilities for later product versions.
1.2
Intended Audience
The document contains elements that will be used by the:
 Project Team
 Steering group
 Customer
 Any other interested stakeholders
1.3
Scope
The document describes the Visual Architecture project requirements. It begins by providing a general overview
of the project direction then proceeds to describe various use case scenarios and give more descriptive
specifications of highlighted requirements. The document concludes with a vision for the future.
1.4
Definitions and acronyms
1.4.1
Definitions
Keyword
Visual Architecture
Drag-and-drop
Code
1.4.2
Acronyms and abbreviations
Acronym or
abbreviation
ALU
1.5
Definitions
A program designed to create a visual representation of a set of
computer architecture components
An action where the user can move visual components to different
locations on the interface using the mouse
Refers to the simple assembly language supported by the Visual
Architecture program
Definitions
Arithmetic Logic Unit – the basic component of a processor
References
Page 4
Visual Architecture
Requirements Definition
2.
Requirements Description
2.1
Introduction
Version:
1.0
Date: 2010-09-30
The result of the project will be the Visual Architecture program (Eclipse plugin) that will help both teachers
(architecture designers) and students understand how a program affects hardware. Teachers will design the
hardware architecture on which students will work. Students will than write programs that will be compiled and
run on that architecture. During runtime, students will be able to see the components interacting while
performing the actions specified by their programs.
2.2
General requirements
Visual Architecture program is required to enable user to do the following:
 Create arbitrarily hardware architecture from parts like register, ALU, memory and buses
 Write a program for that architecture
 Compile, run and debug the program created
 Create a graphical overview of components interaction while performing the designed program
2.3
Specific requirements – Teacher (architecture designer) part
With the Visual Architecture program, teachers will be able to design hardware architecture using the drag-anddrop principle. To create the preferred architecture, they will need to add low-level hardware components
already predifined; like registers, ALU’s, memory and busses that would connect to the particular hardware they
have visualized. A menu list of the different types of hardware available for inclusion will be provided. Using
this list and the drag-and-drop feature, the teacher will create a design. After the teacher has completed the
hardware architecture design, they will be able to export the information to a file accessible to all. Teacher can
also open and edit old architecture and save the changes.
2.4
Specific requirements – Student part
After the student starts up the Visual Architecture program, they will need to load an existing file that contains
information about some pre-designed hardware architecture. For that architecture, students will be required to
write programs using simple assembler-code. Student should be able to open old code, edit code, make new
code and save his code. There should also be rich text editing help like syntax highlighting and auto-complete.
When program creation is complete, they will be able to compile (build) their code and utilize some debugoptions available in the system. The program would then proceed to take the students on a walk-through their
code. Students will at this point experience a step-by-step graphical depiction of the happenings in their
architecture when their code is run. During the debugging part the lines of code that are currently active should
be highlighted as well as the proper part of architecture on which the code is running. Variables and states of
registers should be shown at least on console.
Page 5
Visual Architecture
Requirements Definition
Version:
1.0
Date: 2010-09-30
3.
Use Case Models
3.1
Use case model 1
3.1.1
Use case “Create hardware architecture”
Initiator:
Teacher
Goal:
The teacher makes a hardware architecture that the students can use.
Main Scenario:
1. Teacher drags some hardware-components on the main field
2. Teacher connects these with other hardware (busses)
3. (S)He saves the architecture
Extensions:
3a If the teacher isn’t happy (s)he can move, delete and add more components.
3b continue at 3
3.1.2
Use case “Write Assembler code”
Initiator:
Student
Goal:
Student writes an assembler program on the given hardware.
Main Scenario:
1. Student opens the given hardware architecture.
2. The student writes assembler code
3. (S)He saves the code
Extensions:
2a1. If the student makes a mistake the IDE recognises it will give some suggestions
a2. The student continues to 3
2b1. The student already started on his code, now he first loads his saved code.
Page 6
Visual Architecture
Requirements Definition
3.1.3
Version:
1.0
Date: 2010-09-30
Use case “Compile and debug Assembler code”
Initiator:
Student/Teacher (whoever want to see the code)
Goal:
Compile the code and see how the hardware deals with this
Main Scenario:
1. Load hardware architecture
2. Load assembler code
3. The user presses the ‘compile’ button
4. The system compiles the code
5. The user uses ‘step-into’ and ‘step-over’ to walk through the code. System shows
what is happening.
6. User closes the program.
Extensions:
1a. The hardware architecture is already loaded: continue at 2
2a. The assembler code is already loaded: continue at 3
4a The code isn’t correct: The system provides info about what was wrong
b. The user corrects the code and continues at 3.
4.
Requirements Definition
4.1
Requirement Group Definitions
Identification
Requirement Group
VAD
Visual architecture design application/process
CIE
Code input and editing application/process
VCR
Visual code running application/process
4.2
Requirement Sources
Source
CTM
4.3
Description
Customer(Marin Orlić from FER)
Rem.
Requirements definitions
Identity
VAD-1
VAD-1.1
VAD-1.2
VAD-1.3
VAD-2
Rem.
Sta
tus
I
I
I
I
D
Prio
rity
1
1
1
1
3
Description
Visual architecture design application/process
Allowing teacher(architecture designer) to assemble graphical
architecture
Providing tools to drag and drop predetermined architecture
parts
Providing tools for connecting parts
Providing means to open, edit and save graphical architecture
Allowing teacher(architecture designer) to make new language
for student and its microcode
Source
CTM
CTM
CTM
CTM
Page 7
Visual Architecture
Requirements Definition
VAD-2.1
VAD-2.2
VAD-3
VAD-3.1
VAD-3.2
VAD-4
D
D
H
H
H
I
3
3
2
2
2
1
CIE-1
CIE-1.1
CIE-1.2
I
I
I
I
1
1
1
CIE-2
CIE-3
D
I
3
1
VCR-1
I
I
1
VCR-1.2.1
VCR-1.2.2
I
H
1
2
VCR-1.3.1
VCR-1.3.2
I
H
1
2
VCR-1.4
VCR-2
VCR-3
I
H
I
1
2
1
CIE-1.3
VCR-1.1
1
1
Version:
1.0
Date: 2010-09-30
Providing tools for writing down language grammar
Providing tools for saving or exporting grammar(language)
Allowing teacher(architecture designer) to design parts
Providing tools for drawing parts
Providing tools for describing parts
Visual architecture should be developed using Eclipse GMF and
EMF
Code input and editing application/process
Allowing student(code runner)to enter code
Providing means to make new, open, edit and save code
Providing tools for code building(compiling)
Providing tools for easier code editing, syntax highlighting,
autocomplete.
Providing means of selecting the language used
Tools for code input and editing should be developed using EMF
and xtext
Visual code running application/process
Allowing student(code runner) to debug code
Providing means of selecting or importing the code for
debugging
Providing tools for simple(step)progressing trough lines of code
Providing tools for advanced(break-point) progressing trough
lines of code
Showing debug information(registers, variables) trough console
Showing advanced debug information (registers, variables) in
special window
Showing visual debug information(graphical architecture)
Allowing student(code runner) to select running architecture
Visual code running part should be developed using EMF and
Java debugger
CTM
CTM
CTM
CTM
CTM
CTM
CIE-1
CIE-1.1
CIE-1.2
CIE-1.3
CIE-2
CIE-3
Requirement status:
I = initial (this requirement has been identified at the beginning of the project),
D = dropped (this requirement has been deleted from the requirement definitions),
H = on hold (decision to be implemented or dropped will be made later),
A = additional (this requirement was introduced during the project course).
5.
Future Development
5.1
General Overview
Since Visual Architecture is quite an ambitious project, there are of course many ways in which it can be
extended.
5.2
Hard-to-implement requirements (on hold or dropped)
Due to the complexity of the task, several requirements have been put on hold or dropped so when one would go
into further project extension, these would be the first to take into consideration.
Visual architecture design application/process:
Page 8
Visual Architecture
Requirements Definition






Version:
1.0
Date: 2010-09-30
Allowing teacher(architecture designer) to make new language for student and its microcode
Providing tools for writing down the language grammar
Providing tools for saving or exporting grammar(language)
Allowing teacher(architecture designer) to design parts
Providing tools for drawing parts
Providing tools for describing parts
Code input and editing application/process
 Providing means of selecting the language used
Visual code running application/process
 Providing tools for advanced(break-point) progressing trough lines of code
 Showing advanced debug information (registers, variables) in special window
 Allowing student(code runner) to select running architecture
5.3
Experimental future features
As with all graphical interfaces, there are many ways in which one can take the technology as an advantage to
present something to the user in a more natural way – to shape the program according to the user, not vice versa.
These are of course features very difficult to implement and would probably be projects on their own, but
interesting none the less.
For Visual Architecture, examples of such features might be:
 hierarchical architectures - designing and examining architectures with a hierarchical graphical
representation; where a student can select the level of abstraction in which he will watch the execution
of his program (for example just the processor and memory or the inside of the processor – which
register is being addressed, what wire is being used)
 program execution animation – the student executing his program on an architecture might see data
animated as if flowing from one location to another through wires; this would appear more natural to
human eye and would be easier to follow changes
Page 9
Download