Managing Software Development Spring 2008 Karl Lieberherr Project 8: How an architectural style influences a software project Out: March 17, 2008 Due date: March 24, 2008 This project consists of two simple parts so that you have time to prepare for the midterm. An important decision in managing a software project is to choose the architectural style for the system. The purpose of this project is to illustrate the effect of a change of the architectural style from DemeterF to DJ. Both styles support structure-shy programming. A quote from: http://www.ibm.com/developerworks/rational/library/feb06/eeles/ Most architectures are derived from systems that share a similar set of concerns. This similarity can be described as an architectural style, which can be thought of as a particular kind of pattern, albeit an often complex and composite pattern (a number of patterns applied together). Like a pattern, an architectural style represents a codification of experience, and it is good practice for architects to look for opportunities to reuse such experience. So far we used the architectural style of normal oo and the architectural style of AP-F implemented in DemeterF. AP-F is a structure-shy architectural style. For a description of the patterns behind this style: http://www.ccs.neu.edu/research/demeter/adaptive-patterns/AOP/Structure-Shy-Traversal In project 7, part 3, our project was tree processing and we used the architectural style of DemeterF. In project 8 we use instead the architectural style of visitor programming as implemented by the DJ library. PART 1: Implement the functions Incr and Rev shown in the BST.pdf document using DJ. PART 2: Also implement the computation of the type of a raw material (a CSP formula) using DJ (compute the fractions of the constraints that use a particular relation). Hint: consider using stacks as fields of your visitors. http://www.ccs.neu.edu/research/demeter/DJ/ contains a link to the installation instructions. DJ is like DemeterF a Java library. What to turn in: The program for parts 1 and 2 along with test cases etc. Also include a brief discussion about which of the architectural styles you prefer for each of the parts.