CPSC 875:  Introduction to Software Architecture

Instructors:         Dr. John D. McGregor

                              Associate Professor, School of Computing

                              312 McAdams Hall; phone 864-656-5859; email:  johnmc@cs.clemson.edu

                              www.cs.clemson.edu/~johnmc

                          Office Hours: TTh: 9:30 – 10:45; other hours by appointment

                             

Catalog Description:

This course explores the creation, analysis and maintenance of architectures for software systems. The course considers basic principles, patterns and techniques. Quality attributes of the architecture will be used to make a quantitative analysis.

 

Objectives: This course should help you understand how to design and evaluate systems at an architectural level of abstraction. By the end of the course you should be able to:

 

Textbooks:

               Instructor notes and available web resources such as the SEI’s Architecture Practice web page

Course Requirements:

2 exams

30 points each

Architecture projects

35 points

Class participation

5 points

 

Grading:

100 - 90 A

89 - 80 B

79 - 70 C

69 - Below F

 

Policies:

1. No late assignments accepted.

2. No makeup exams. If you miss the first exam for any reason, the weight of the other exam will be increased accordingly. If you miss the second exam it is recorded as a zero.

3. All work should be completed independently (without the assistance of anyone except the instructor or someone he designates) unless explicitly stated otherwise in the assignment.

4. It is expected that students will wait at least 15 minutes from the scheduled start time for class before leaving because the instructor has not arrived. (I am a professional and will treat you professionally. Only in a VERY VERY rare case would I not either give prior notice OR send someone to explain the delay.)

 

 

Academic Integrity:

The university’s academic integrity statement says: As members of the Clemson University community, we have inherited Thomas Green Clemson's vision of this institution as a "high seminary of learning." Fundamental to this vision is a mutual commitment to truthfulness, honor, and responsibility, without which we cannot earn the trust and respect of others. Furthermore, we recognize that academic dishonesty detracts from the value of a Clemson degree. Therefore, we shall not tolerate lying, cheating, or stealing in any form. See: http://www.cs.clemson.edu/html/academics/academic_integrity_2002.html for more.

 

January 14              Last day to register or add a class

January 22              Last day to drop a class or withdraw from the University

                                 without a W grade

March 14               Last day to drop a class or withdraw from the University

                                without final grades

March 17-21         Spring break

 

May  2                    Exam 7 – 9:30pm

 

 

Topical course outline (not a chronological ordering):

  1. What is Software Architecture

The software architecture of a program or computing system is the structure or structures of the system, which comprise software components, the externally visible properties of those components, and the relationships among them.

  1. Architecture Business Cycle

Software architecture involves technical knowledge, domain knowledge, and business knowledge. The architecture is developed in the context of constraints imposed by each of these areas.

  1. Introductory Case Study

The introductory case study investigates a system that has been successful for a long time.

  1. Quality Attributes

Attributes such as performance and modifiability are enhanced or degraded through the choices made by the architect.

  1. Architectural Styles

Long experience with many systems results in the identification of patterns of reoccurring architectural structures. These styles are used to speed the development of other systems with similar requirements.

  1. Unit Operations

These are a set of fundamental actions that are used to form new architectural structures. The architect can reason about the effects of an action before it is taken.

  1. Case Studies

Case studies are selected to complement the projects chosen in a semester

  1. Evaluating an Architecture

The Architecture Trade-Off Analysis Method (ATAM) and Guided Inspection are techniques that evaluate the architecture in the context of the system requirements.

  1. Architecture-based Development

The development process changes when an architecture is available to guide development.

  1. Reuse of Architecture Knowledge

Reuse of architecture knowledge takes many forms such as product line development and the recognition of new architectural styles.

  1. Architecture Representation

UML has been used with additions and modifications. Other specialized modeling languages have also been developed.