
|
Assignment 1
Due date
-
Wednesday, September 27, 2000
Objectives
-
Introduction to software architecture
-
Introduction to architecture descriptions
-
Introduction to architecture recognition
Instructions
A key objective for this course is to learn how to extract software architecture artifacts from the descriptions (i.e., code and documentation) of a subject software system and how to document software architecture effectively. The emacs editor is a substantial subject system. It is neither a toy program nor a large legacy system.
You are to write a report that illustrates the architecture of the emacs editor. The report is intended for third year computer science. Thus, you can assume basic software engineering terms and knowledge.
Your report should address the following questions:
-
What are the major static and dynamic components of this software system? What are the dependencies or relationships among these components?
-
How do the major components interact?
-
What are the "concerns that are separated" in this software systems? In other words, how is the software engineering principle "separation of concerns" implemented?
-
How can this software system evolve? Which components are expected to change regularly and which components are expected to be relatively stable over time? Is this system designed for ease of evolution?
The report should include diagrams (e.g., data flow or entity relationship diagrams). Deciding what kind and how many diagrams to draw, and at what level of abstraction, is critical for this assignment.
Hints
-
Start early with this assignment.
-
-
-
Deciding what to include and exclude in this report is hard. Expect your report to evolve over time.
-
Develop this report incrementally, that is, make several passes ove the entire report.
-
The report should include the following parts: abstract; introduction; architecture; software structure; component descriptions; component interactions; separation of concerns; conclusions; glossary of key terms used in the architecture; and references, including web pages, used in your report.
-
Ric Holt's software architecture course has analyzed Apache and Linux. The following reports are excellent examples from the Apache analysis:
What to turn in
The report should be written as an HTML document. You may include links to the documentation pages of the emacs web site. The length of the report, including diagrams and references, should not exceed 12 printed pages using a reasonable font size (i.e., 10-12 point for text and 14 point for headings).
Submit your assignement by e-mail to hausi@csr.uvic.ca.Marks
|
|