By Xiangzhe Li Thanh Nguyen Components and connectors are composed in a specific way in a given system’s architecture to accomplish that system’s objective. Definition – An architectural configuration is a set of specific associations between the components and connectors of a software system’s architecture “A set of design rules that identify the kinds of components and connectors that may be used to compose a system or subsystem, together with local or global constraints on the way the composition is done” - Shaw & Clements, 1996 Components Connector Multiple clients sharing single blackboard Underlying computational model Blackboard: shared data repository, possibly with finite capacity Configurations Blackboard client programs Synchronized, shared data transactions, with control driven entirely by blackboard state Stylistic invariants All clients see all transactions in the same order Definition- An architectural pattern is a named collection of architectural design decisions that are applicable to a recurring design problem, parameterized to account for different software development contexts in which that problem appears Patterns help you build on the collective experience of skilled software engineers. They capture existing, well-proven experience in software development and help to promote good design practice Every pattern deals with a specific recurring problem in the design or implementation of a software system Patterns can be used to construct software architectures with specific properties… First learn rules and physical requirements Then learn principles e.g., relative value of certain pieces, strategic value of center squares, power of a threat, etc. However, to become a master of chess, one must study the games of other masters e.g., names of pieces, legal movements, chess board geometry and orientation, etc. These games contain patterns that must be understood memorized, and applied repeatedly There are hundreds of these patterns First learn the rules Then learn the principles e.g., structured programming, modular programming, object oriented programming, generic programming, etc. However, to truly master software design, one must study the designs of other masters e.g., the algorithms, data structures and languages of software These designs contain patterns must be understood, memorized, and applied repeatedly There are hundreds of these patterns Style and pattern are similar and it is not always possible to identify. However, in general styles and patterns differ in at least three important ways: Scope Style focus on development context while pattern focus on specific design problem Abstraction Style helps to constrain the architectural design decisions one makes about the system while patterns are parameterized architectural fragments Relationship A single pattern could be applied to systems designed of multiple styles. A single style may involve the use of multiple pattern Definition – An architectural model is an artifact that captures some or all of the design decisions that comprise a system’s architecture. Architectural modeling is the reification and documentation of those design decisions The notations for modeling software architectures are frequently referred to as Architecture Description Languages( ADLs) Used as the foundation for most other activities in architecturebased software development processes such as analysis, system implementation, deployment, and dynamic adaptation Architectural design Architecture modeling and visualization Architecture driven system analysis Architecture-driven system implementation Architecture-driven system deployment, run-time redeployment, and mobility Architecture-based design for nonfunctional properties, including security and trust Architecture adaptation Architecture recovery If architectural degradation is allowed to occur, one will be forced to recover the system’s architecture sooner or later Definition – Architectural recovery is the process of determining a software system’s architecture from its implementation level artifacts -Implementation-level artifacts can be Source code Executable files Java .class files - - Definition: A person, group or organization that has interest or concern in an organization Stakeholders can affect or be affected by the organization's actions, objectives and policies. Architects Developers Testers Managers Customers Users Vendors http://www.nyu.edu/ http://www.ccs.neu.edu/ http://www.artechra.com/