Montana Tech of The University of Montana
Get Into It! at Montana Tech
S.E. 4270
Principles of Software Architecture & Design
3 Cr. (Hrs.:3Lec.)

Builds on the student's existing knowledge of and experience designing software. This course focuses on high level design of software systems so that those systems satisfy quality attributes such as security, availability, performance, and modifiability. Students will learn the importance of developing, documenting, communicating, and adhering to a software architecture that achieves not only the functional but also the non-functional requirements of a software system. By the end of the course, students will understand the importance of early stakeholder involvement, early focus on quality attributes, design tradeoffs that must be negotiated, and how to evaluate a software architecture in term the resulting system's ability to achieve quality attributes. Prerequisite: S.E. 3280 and S.E. 3300.  (1st)

Expectations:

E1.  Students have a conceptual understanding of and practical experience with the steps of requirements production, including requirements elicitation, requirements validation, and requirements management. (SE 3280)

E2.  Students have worked in a group to design, implement, test, and maintain a small software system (5000 lines of code) and appreciate the complexities of implementing a large software system. Students have made at least two presentations on aspects of the software systems that they implemented. (SE 3250W)

Course Outcomes:

R1. Students know the importance of designing quality attributes such as modifiability, availability and performance into the system from the beginning and know tactics for achieving specific quality attributes. (CS 6, SE 6)

R2. Students understand that designing a system to achieve one quality attribute can negatively impact the achievement of another quality attribute. They have identified and evaluated alternatives, and they appreciate the importance of early negotiations between system stakeholders. (CS/SE 3, CS/SE 4)

R3. Students understand the role of software architecture in achieving quality attributes and appreciate the importance of documenting, communicating, and adhering to the architecture of the system. (CS 6, SE 6)

R4. Students can describe common architecture patterns (also called styles) and discuss tradeoffs between these patterns. (CS/SE 3, CS 6, SE 6)

R5. Given requirements for a software system and quality attributes that the system is to achieve, students can design a software architecture for the system and justify why they made the decisions that they did. (CS/SE 11)

R6. Students understand views, can document a software architecture using different views, and can justify why they used the views that they did. (CS 6, SE 6)

R7. Students understand the advantages and disadvantages of building software systems from commercial off-the-shelf products, as well as advantages and disadvantages of building software systems on top of an existing framework. (CS 6, SE 6)

 

 

Questions or Comments? Contact Us!
Department Head: Dr. Michele Van Dyne
Administrative Associate: Tami Windham

 

 

© Montana Tech • All Rights Reserved
Montana Tech of The University of Montana • 1300 West Park Street
Butte, MT 59701 • 800-445-Tech • Contact Montana Tech