18-649 Project Assignment #1
Requirements & Simulation
*Please submit all project-related questions to
-- thanks!
Changelog (changes highlighted
in red in the project):
- Dated entries will appear here if the assignment changes after it
is released.
- 1/25/2011 - Added 400s requirement for running basicpass.pass to
Part B
This semester, you will
specify, design, build, and test an elevator control system and use it
to control a simulated elevator. You will learn of and deal with many
of the details of building a distributed, real-time, embedded system,
as well as important skills in teamwork and project management.
A major goal of the class is to teach you a good process for
developing systems. This process begins with requirements
specification.
You should expect that there will be some sort of problems
with file system permissions, login IDs and so on for this first
assignment of the semester . Make sure you can put files in your afs
space and log onto appropriate machines at least one week
before the due date to give time to sort things out!!! An excuse of the
form "I didn't try to log in until 10 PM on Thursday and my account was
broken" will not get you an extension.
Although later projects will be team projects, this first project is
individual effort only.
You should complete all parts of the assignment on your own. For
part A, you will need to find another student to complete the Process
Check, but this is the only collaboration allowed on this project.
Assignment
Part A: Intro to Writing Requirements
For Project 1 you will follow the process outlined here to generate requirements for the
DoorControl[b,r] object. There are four DoorControl[b,r], one for
each of the two front and back doors.
There are four sets of Initial conditions given. Complete the
process steps 1-7 for one set of initial conditions, according to the
criteria below:
- If your AndrewID begins with A-F, use Set #1.
- If your AndrewID begins with G-L, use Set #2.
- If your AndrewID begins with M-S, use Set #3.
- If your AndrewID begins with T-Z, use Set #4.
Grading is five points per Process Step.
Part B: Simulation Framework Exercise
The purpose of this assignment is for you to become familiar with
the simulation framework. For this assignment you will see how a sample
module works within the simulation framework. And use acceptance
tests to see how the elevator simulator delivers passengers. This
link provides more detail, but
in
short you will need to:
- Download the simulator code into your AFS directory
- Modify the TestLight.java file so that it is correct and will
compile, then run an integration tests on it.
- Run an acceptance test and see that a passenger is delivered.
Be sure to pay attention to what is happening in the
simulations! Watch the gui & look at the elevator.stats
output file from the sample integration test. Watch the
output to the screen for the module testing of TestLight.java.
Think about what is happening. You will be asked about the
simulations during your weekly status meeting with the TAs.
Part C (10 points):
Improvements and Self-Grading
For this part of the assignment:
- Create a text file called
andrewid_improvements.txt. List any ideas about ways to improve
this project. Include even minor bugs so we
know to fix them. If you found nothing, then say so.
- Download the grading rubric for
project 1.
Use it to self-grade the rest of your submission and include it in the
handin directory.
Submission Process:
This assignment will be submitted via the afs file handin system. Each
student shall submit their assignment according to
the conventions given below. The contents of each file shall start with
the assignment number, your name, your Andrew ID, and the file name.
(This way, when we print out files for grading we
can keep track of what each item is.)
Projects shall be submitted by copying all needed files into your
handin directory in the course AFS space. The handin directory is
located at:
/afs/ece/class/ece649/Public/handin/proj1/andrewID/ontime
If you need to submit late, use
the .../andrewID/late/ folder and SEND AN EMAIL TO THE STAFF
LIST. See
the project FAQ for more details.
Handins:
Submit your project files in the handin folder as described above.
For part A of this assignment, the format must be a single
vanilla HTML file (for more info, read the portfolio formatting
guidelines). For part B, you must submit ASCII text files
containing the
information listed below. Note
that every file must contain the appropriate header information.
Grading: (80 points)
The Project 1
grading rubric can be downloaded here. A grading rubric will
be
provided for every project so that you can clearly see what the grading
expectations are. Please note that the grading rubrics are a
general guideline and that
you are still responsible for all the details in the writeup. If
the grading rubric and the project writeup conflict, the project
writeup takes precedence. If you find a conflict, please let us
know by sending mail to the staff list.
- 35 points:
andrewid_p1a.html - the file containing your solution to part a;
be sure to state which initial condition you picked, and the names of
your classmates who were involved in process reviews.
- Note: If you are
waitlisted and cannot find a partner to do the process audit with, you
may submit the audit after you are admitted to the class and have
joined a group, even if this is after the project deadline. If
you wish to take advantage of this, say so in your project submission
(in the place where the process audit would be), then send the process
audit by email to the course staff list after you complete it. This extension is
ONLY granted to those who are waitlisted.
- 10 points: andrewid_p1b_testlight.java - the
modified version of testlight.java - to receive credit, this file must
be able to be compiled!
- Note: There is an apparent
conflice between the simulator / Java naming convention (filename must
match class name) and the hand-in requirements (use the filename
"andrewid_p1b_testlight.java"). To resolve this, do the
following: Make sure your file will compile and run in the
simulation framework. Rename a copy of the file according to the
hand-in requirements ("andrewid_p1b_testlight.java") and turn that file
in to the AFS directory as instructed in the project. Do NOT
change the class name in the file. Do not worry that the filename
and class name do not match.
- 4 points:
andrewid_p1b_testlight.cf
-
the
configuration
file
used
to
instantiate
the
testlight unit test
- 3 points: andrewid_p1b_test1.out
- the screen output
from the unit test
- 3 points: andrewid_p1b_test1.stats -
the stats file generated by the elevator for the unit test
- 15 points: andrewid_p1b_elevator.stats - the stats
file produced by the acceptance test basicpass.pass
- 5 points: andrewid_improvements.txt -
List of improvements
- 5
points: anderwid_proj1_grade_sheet.xls -
self-grade your project submission.
You MUST follow this naming convention and handin
instructions to receive credit for the
assignment. Be sure to double-check the assignments to make sure each
file has everything that is required, and that you have added the
required header information(described below) to each of the seven files:
The seven files that require a header above are:
- andrewid_p1a.html
- andrewid_p1b_test1.out
- andrewid_p1b_test1.stats
- andrewid_p1b_elevator.stats
- andrewid_improvements.txt
- andrewid_p1b_testlight.cf
- andrewid_p1b_testlight.java
Note: For adding headers to files that are automatically
generated by the simulator, check the commandline syntax for the -head
option.
Note 2: For HTML files (in this and all future projects), the
header should be included in the HTML body so that it is visible when
the file is viewed in a web browser. Do not put the header in an
HTML comment.
Note 3: Future projects will require headings that include
your group number, but group number are not required for this project
since it is completed on an individual basis.
Troubleshooting Notes for Project 1
- 8/31/2012:
At this time machines ece000-ece010 have been updated and checked to work for project 1. Machines ece011-ece031 will be updated in the coming days.
Note that ECE facilities had to install these packages to get the project to work:
java-1_6_0-openjdk
and
java-1_5_0-gcj-compat
If you have problems getting things to work on your own computer you may find that information useful.
Back to Course home page