To the bottom of
this Page
Written assignments:
- Homework#1
(Requirements and specification): First draft document of project
requirements and specification. Due: Tuesday, Feb 21. (i)
See the sample requirement and specification document in case
study 1 as an example. (ii)
You should talk to your customers and apply the principles you learn in Reading#2
here in this requirement analysis and specification phase.
- Homework#2
(Framework design): First draft document of project architecture design:
Due: Tuesday, Feb 28. (i) Use formal diagram drawing tools such as SmartDraw
(a trial version available for Windows platform), ArgoUML (OpenSource Java based). (ii) Draw package diagrams and
class diagrams (UML)
to analyze the architecture design of your project and optionally the architecture design of the Biola interpreter
project (See your FirstClass emails for the sample project). (iii) You should apply the principles you learn in Reading#3
in this architecture design phase.
- Homework #3 (Code critic) Due: Thursday, March 9 before the class. Conduct
a code review of the lexicalScanner
module of the CSCI230 interpreter project. Based on the principles
(coupling, coherence, …) you learn from Chapters 5~8 of Code Complete, evaluate the quality
(strength and weakness) of (i)
the lexScanner class as a whole and (ii)
specifically the coding of getPerLineTokenVectFromOneCharArray as a
member function. Describe how you may refactor and rewrite the code in getPerLineTokenVectFromOneCharArray
to improve its quality.
- Homework #4 (Unit testing) Due: Tuesday April
4. Download the code (updated
on March 15) that implements the DateType as described here. This is
intended as a black-box testing, devise a test plan to extensively test
the implementation of the AdvanceDays( ) and BackDays( ) of the DateType
class to find as many faults as possible. Report all the faults you find
through the execution of your test plan. (For example, there is at least
one fault in the BackDays method of the implementation.)
- Homework #5 (Defensive programming)
Due: Tuesday April 11. Download
the code for
this binary search tree
implementation and experiment and play with it. The program may abnormally
terminate if you try the ‘E’ option and insert/delete more than 500000
data items as a batch (due to bad-allocation exception because of failure
of dynamic memory allocation). Apply what you have learned from chapter 8
(defensive programming) of Code
Complete to revise the code with the capacity of exception handling
and make it more robust.
To the Top of this Page