170 likes | 309 Views
SOFTWARE ARCHITECTURE: BASIC CONCEPT. By Xiangzhe Li Thanh Nguyen. Configuration. Components and connectors are composed in a specific way in a given system’s architecture to accomplish that system’s objective.
E N D
SOFTWARE ARCHITECTURE: BASIC CONCEPT By Xiangzhe Li Thanh Nguyen
Configuration • 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
Architectural Style • “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
The Blackboard Style • Components • Blackboard client programs • Connector • Blackboard: shared data repository, possibly with finite capacity • Configurations • Multiple clients sharing single blackboard • Underlying computational model • Synchronized, shared data transactions, with control driven entirely by blackboard state • Stylistic invariants • All clients see all transactions in the same order
Architectural Pattern • 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… • 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…
Becoming a Chess Master • First learn rules and physical requirements • e.g., names of pieces, legal movements, chess board geometry and orientation, etc. • 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 • These games contain patterns that must be understood memorized, and applied repeatedly • There are hundreds of these patterns
Becoming a Software Designer • First learn the rules • e.g., the algorithms, data structures and languages of software • 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 • These designs contain patterns must be understood, memorized, and applied repeatedly • There are hundreds of these patterns
Difference between style and pattern • 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
Models • 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 architecture-based software development processes such as analysis, system implementation, deployment, and dynamic adaptation
Architectural processes • 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
Architectural 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
Stakeholder • 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.
Stakeholders in a System’s Architecture • Architects • Developers • Testers • Managers • Customers • Users • Vendors
Sources • http://www.nyu.edu/ • http://www.ccs.neu.edu/ • http://www.artechra.com/