CSE5/7319- Software Architecture and Design Homework #1 (10 Points) On Campus Due Date: 11:59pm on February 18, 2015 Off Campus Due Date: 11:59pm on February 20, 2015 1. Define the following terms: (5 points) • Software component • Software connector • Software architecture • Software design • Architectural style • Architectural pattern • Application family • Product line • Distributed system • Software model Each definition may be as short as a single sentence, but no longer than a paragraph. 1) First provide the definitions of what you think these terms mean, without consulting any external sources. 2) Then do so by consulting external sources (e.g., the Web, a textbook either for this class or other textbooks, etc.). Make sure to acknowledge your source(s). Try to refrain from copying existing definitions wholesale; I would like you to convey your own understanding of these concepts. Justify your definitions whenever needed. 2. Can connectors simply be treated as special-purpose components? Why or why not? (0.5 point) 3. Design and Code (in Java) a pipe and filter application which prints a sorted list of every unique word in a text file, i.e. each unique word should appear only once on the output. (4.5 points) Please submit the follows: 1) A diagram depicting the top-level pipe and filter architecture including your components and connectors. An example of such an architecture diagram is Figure 4-15 (Lunar Lander in pipe-and-filter style). 2) A UML representation of the classes implementing the top-level architecture in 1). An example of the UML class diagram is Figure 4-9. Note that you are not required to use Rational tools to generate the class diagram. 3) A printout of the screenshot showing your successful compilation; the screenshot of your program output; and your source code with all the .java classes; 4) A mapping between your source code (e.g., .java classes) and the components and connectors in the architecture depicted in 1) and 2). Try to name your .java classes consistently with the names of the components/connectors in your architecture. The input text file (pftest.txt) is provided for testing and output.
© Copyright 2020