1 / 17

SOFTWARE ARCHITECTURE: BASIC CONCEPT

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.

oakes
Download Presentation

SOFTWARE ARCHITECTURE: BASIC CONCEPT

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. SOFTWARE ARCHITECTURE: BASIC CONCEPT By Xiangzhe Li Thanh Nguyen

  2. 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

  3. Configuration: Example

  4. 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

  5. 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

  6. 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

  7. 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…

  8. 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

  9. 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

  10. 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

  11. 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

  12. Model: Example

  13. 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

  14. 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

  15. 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.

  16. Stakeholders in a System’s Architecture • Architects • Developers • Testers • Managers • Customers • Users • Vendors

  17. Sources • http://www.nyu.edu/ • http://www.ccs.neu.edu/ • http://www.artechra.com/

More Related