Search for question
Question

1. Define the following terms: (1 point) Software component Software connector ● CS5/7319- Software Architecture and Design Homework #1 (7 Points) ● 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. Research MapReduce online and briefly describe its framework and the operations within the framework (1 point) 4. Design and Code (in Java) a pipe and filter application that 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 following: 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 of 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. Homework 1 Submission: Please submit the following two files. a) one PDF file named as "First name-Last name.pdf" containing your answers to Q1-Q4(1-4); b) one Zip file named as “First name-Last name.zip" containing the original source code and executables required in Q4.