CSE584,
Assignment #2, 8 April 1997, due 22 April 1997
This assignment covers material for the design portion of the
course.
You may work in pairs, and the assignment is worth 10% of the grade in the
course (see introductory
handout). I prefer it if you submit your assignment
electronically, although it's your call. Ideally, you could send
me a URL to a web page with the solutions.
- (Brownie points only) How can we effectively and efficiently teach
software design to undergraduates? (Don't turn this one in. Instead,
post answers to the mailing list---remember, it's archived.) Be
practical in terms of constraints that are impossible to avoid (such
as the quarter system, etc.).
- (10 points) In what ways will software design change given the
drive to compose systems from components (as opposed to decomposing
systems into components)? If you are familiar with COM or CORBA,
discuss this question in that context in particular. (No more than
one page.)
- (10 points) Discuss the mediator-based designs from class (I can
point you at a paper with more details, if you need it) in terms of
coupling, cohesion, and correspondence (from Bergland). (No more than
one page.)
- (20 points) Read and critique two of the following articles in
terms of their implications on design (no more than one page on each).
(You may want to use UWIN's INSPEC service to find abstracts, etc.) I
am happy to make suggestions if you have some basic theme
you wish to explore. If you choose one of the two Microsoft books (don't
pick both), you
needn't read it all (Code Complete, for example, is over 800 pages).
- VanHilst-M. Notkin-D.
Decoupling change from design.
SIGSOFT '96. Proceedings of the Fourth ACM SIGSOFT Symposium on
the Foundations of Software Engineering.
pp. 58-69. 16-18 Oct. 1996.
- Parnas-D-L. Clements-P-C.
A rational design process: how and why to fake it.
IEEE Transactions on Software Engineering. vol.SE-12, no.2.
pp. 251-7. Feb. 1986.
- Parnas-D-L. Clements-P-C. Weiss-D-M.
The modular structure of complex systems.
IEEE Transactions on Software Engineering. vol.SE-11, no.3.
pp. 259-66. March 1985.
-
Maguire-Steve. Writing Solid Code. Microsoft Press. 1993.
-
McConnell-Steve. Code Complete. Microsoft Press. 1995.
-
Any design-related article from IEEE Transactions on
Software Engineering, ACM Transactions on Software
Engineering and Methodology, the International
Conferences on Software Engineering, the ACM
SIGSOFT Symposia on the Foundations of Software
Engineering, or OOPSLA.