Feature House, Feature Modularity, and Feature Composition
In
this assignment, you will transcribe your Logic Circuit (or Gate)
program that you developed incrementally, and make its features
explicit in Feature House (FH), which is part of the FeatureIDE plug-in of Eclipse.
First, follow this link to get the prepackaged version of FeatureIDE
with Eclipse (as FeatureIDE doesn't play well with other plug-ins) and
then read the short tutorial and watch the video on how to use Feature
House:
Honestly, there is not much to this project.
- You create a FH project with a feature model that is appropriate for your Gate program.
- FH,
in turn, will create a features super-directory, whose subdirectories
are features. The contents of features will be individual Java
files that encode either a base Java file or its extension, as written
in FH-Java. (The only difference that I know of FH-java and Java
is the special meaning of "original", which we discussed in class).
- Add the files that define each feature, one feature at a time.
You build and test your Gates program exactly as before, from the
ground up, feature by feature -- except that you are using FH to help
you with this process.
- If you have regression tests that you can run after every feature, do so.
What to Submit Canvas
- A single zip file that unzips into <yourName>/<yourFilesAndDirectories>
- The contents of your FeatureIDE project
- A pdf that briefly explains your model (using screen snapshots of your design, which includes constraints).
In
your writeup, comment on how useful or un-useful FH is to your project
and where you could see it (a) being improved or (b) really useful.
A
critical part of any design is clarity and
understandability. Hence, you will be graded on the clarity
of your project and its ability to work correctly. Sloppy code,
documentation, or anything that makes grading or understanding your
program difficult will cost you points. Beware, some of these
"beauty" points are subjective.
Remember: No late assignments/submissions will be accepted.