Pattern-Based Design

A design pattern can be characterized as “a three-part rule which expresses a relation between a certain context, a problem, and a solution” [Ale79] For software design, context allows the reader to understand the environment in which the problem resides and what solution might be appropriate within that environment. A set of requirements, including limitations and constraints, acts as…

Component Level Design

Component-level design occurs after the first iteration of architectural design has been completed. At this stage, the overall data and program structure of the software has been established. A component is defined in UML as: “a modular, deployable, and replaceable part of a system that encapsulates implementation and exposes a set of interfaces.” However, different…

Reasons for Software Architecture

Software Architecture is the structure, or structures, of the system that comprise of software components, the externally visible properties of the components, and the relationships among them. Architecture is not operational software, rather it is representative to allow you to see how effective your design is and consider alternatives. It focuses on components. It may…