Section 1: | TuTh | 1:30 - 2:45 PM | room ENG 337 |
# | Assigned | Due | Assignment |
---|---|---|---|
1 | Jan 31 | Feb 8 |
Functional Specification
Use case form: UseCaseForm.docx Formal report rubrics: FormalReportRubrics.pdf |
2 | Feb 12 | Feb 22 | Design Specification |
Week | Date | Content |
---|---|---|
1 | Jan 24 | Slides: Course objectives; project teams; postmortem report; grading; good applications; change and complexity; how to achieve good design; iterative process; poor design not a failure; Rick's Guitars; problems |
2 | Jan 29 |
Slides:
Continued iterations: (#2) remove string fields and
return multiple matches, (#3) encapsulate what changes,
(#4) new characteristics, (#5) refactored code, delegate
the matching task
Example programs: RicksGuitars-1.zip RicksGuitars-2.zip RicksGuitars-3.zip RicksGuitars-4.zip RicksGuitars-5.zip |
Jan 31 | Slides: Summary; cohesion; loose coupling; OOA&D is about satisfaction; requirements elicitation; functional and nonfunctional; requirements of requirements; how to get requirements; use cases; use case descriptions; Functional Specification; Assignment #1 | |
3 | Feb 5 |
Slides:
Key points for good design; iterative development;
solutions to adding a new mandolin instrument;
Instrument and InstrumentSpec classes; abstract classes;
revised Inventory class; Guitar, GuitarSpec, Mandolin,
MandolinSpec classes; red flags; more instruments; design
doesn't scale well; encapsulation to the rescue?
Example programs: RicksMusic-1.zip |
Feb 7 |
Slides:
Revisit our design; encapsulate with a hash map; use the
Boost C++ library; boost::any; new attribute classes;
the improved design; conclusions
Example programs: RicksMusic-2.zip Boost C++ library Install the Boost header files (no need to build the libraries). In each project, tell Eclipse (or use the -I option on the command line) where you installed them. |
|
4 | Feb 12 | Slides: Complexity; decomposition: algorithmic and object-oriented; hierarchy; design in software engineering; analysis precedes design; paralysis by analysis; where do classes come from; categories of classes; class responsibilities; class relationships: dependency, aggregation, inheritance; UML diagrams; class diagrams; sequence diagram; Assignment #2 |
Feb 14 | Slides: Textual analysis; CRC cards; UML class diagrams: dependency, association, examples; UML state diagram; proposed C++ Date class; code to the interface; factory method design pattern; Day class design |
Department policy is to enforce
all course prerequisites strictly
For SE Majors: CS 046B
For others: CMPE 126
There is no required textbook. You will receive reading material during the semester.