CSCE 742 - Software Architectures
Our society is built on software. It powers our homes, it manages our private information, it controls our cars, it automates our factories, and it even regulates our bodies. It is incredibly important that we construct robust, operational systems, especially given growing demand for features, limited development budgets and strict time constraints.
In the beginning, the entire codebase for a system would be written in a single file (or a punchcard!). Then, languages such as C added the ability to link code from multiple files together, enabling easier organization and code reuse. Object-oriented languages further increased our ability to organize code into logical entities. The systems that power our modern society may be built from hundreds - if not thousands - of individual classes.
Software architecture is one of the most important activities performed when designing a system. It is the practice of partitioning a large system into smaller ones that can be created separately, that individually have business value, and that can be straightforwardly integrated with one another and with existing systems. The goal of this course is to master skills that support this partitioning.
We will discuss the purpose and role of architecture in the overall process of software development, both as a process (architecting a system) and an artifact (the architecture of a system). We will also examine and debate the similarities and differences between "design" and "architecture". We will examine notations and tools designed to assist software architects and processes that can lead to good architectural outcomes and architectural refactoring.
This content is made available in the interest of sharing educational material with any who might find it useful. This page is updated periodically, and may not be in synch with the course itself. For current course students, the latest content, assignment submission, and discussion forums are available on Moodle.
Note: All documents were originally written in Google Docs and converted to PDF. There may be some formatting errors in slides that did not exist in the original document.