Software Architecture

Software Architecture


This post is an abstract of some chapters in the book 'Software Systems Architecture' by Eoin Woods and Nick Rozanski

Software Architecture Definition

Software elements that you need to specify and or design in order to meet a particular set of requirements, plus the hardware required to run those software elements on

Key Parts of the definition

  • Structure - System’s elements, pieces that can be constructed, and their relationships
    • Static structure
      • Software classes, Relational entities, Network, Hardware etc
    • Dynamic structure
      • System response to an external stimulus
      • Information flow, parallel/serial execution of tasks, effects on data (create, update, delete)
  • Properties - Fundamental properties of a system
    • Externally visible properties
      • Functional behavior
    • Quality properties
      • Scalability, Performance, Security etc
  • Principles - of its design and evolution
    • Fundamental beliefs, approach or intent - that guides the architecture
    • Conventions that makes system easily understood and allow extensions in a consistent and logical way fitting naturally into the overall form of the system

Stakeholder

Individual, team organization having an interest in the realization of the system 

Concern

Requirements, objective, constraint, intention, aspiration of a stakeholder

Architectural Description

Documents or representation of an architecture that a stakeholder can understand and demonstrates that the architecture has met their concern

It is not possible to capture all properties of a complex system in a single model that can be understood and of value to all stakeholders.

View

Representation of structural aspects of an architecture that illustrates how the architecture addresses one or more concerns of its stakeholders.

Viewpoint

Conventions for constructing one type of view.

Grouping of Viewpoints

  • Context Viewpoint
    • The relationship, dependencies, and interactions between the system and its environment (people, system and external entities)
  • Functional Viewpoint
    • Fundamental organization of a system - Functional elements, their responsibilities, interfaces, and interactions
  • Information Viewpoint
    • Fundamental organization of a system - Storage, manipulation, management, and distribution of information
  • Concurrency Viewpoint
    • Fundamental organization of a system - Identification and coordination of system parts that can execute concurrently
  • Development Viewpoint
    • Supports the construction of a system - Building, testing, fixing, enhancing
  • Deployment
    • Deployment of a system in its live environment
  •  Operational Viewpoint
    • Operations, administration, support and running a system in its live environment

Architectural Perspectives

Quality concerns (non-functional requirements) that are cross-cutting in nature. 
  • Security
  • Performance
  • Scalability
  • Availability
  • Resilience
  • UsabilityAccessibility
  • Regulation
  • Location
  • Internationalization
  • Evolution
Perspectives are addressed by applying them to Views.
Viewpoints and Perspectives
Viewpoints & Perspectives

Comments


  1. Best Article buy Pain Pills online Excellent post. I appreciate this site. Stick with it! Because the admin of this web page is working, no doubt very quickly it will be well-known, due to its quality contents.This website was how do you say it? Relevant!! Finally, I’ve found something that helped me.
    Best Article buy Roxicodone online Excellent post
    buy Xanax online
    buy Oxycodone online

    Best Article buy Pain Medications online Excellent post. I appreciate this site. Stick with it! Because the admin of this web page is working, no doubt very quickly it will be well-known, due to its quality contents.This website was how do you say it? Relevant!! Finally, I’ve found something that helped me.

    buy Research Chemicals online

    buy Roxicodone online

    buy Cbd Isolate online

    ReplyDelete
  2. Good Blog, well descrided, Thanks for sharing this information.
    Big Data and Hadoop Online Training

    ReplyDelete
  3. Big data is a term that describes the large volume of data – both structured and unstructured – that inundates a business on a day-to-day basis. big data projects for students But it’s not the amount of data that’s important. Project Center in Chennai It’s what organizations do with the data that matters. Big data can be analyzed for insights that lead to better decisions and strategic business moves.

    Spring Framework has already made serious inroads as an integrated technology stack for building user-facing applications. Corporate TRaining Spring Framework the authors explore the idea of using Java in Big Data platforms.
    Specifically, Spring Framework provides various tasks are geared around preparing data for further analysis and visualization. Spring Training in Chennai


    The Angular Training covers a wide range of topics including Components, Angular Directives, Angular Services, Pipes, security fundamentals, Routing, and Angular programmability. The new Angular TRaining will lay the foundation you need to specialise in Single Page Application developer. Angular Training

    ReplyDelete

Post a comment

Popular posts from this blog

Apache Hadoop Ecosystem

Software Architect and Software Architecture