Architecture

Overview of what Software Architecture means

Architecture forms the anchor for development. It is the principal design decision’s made about the system

WWW Web Example follows REST pattern

Unix pipe and filter is an Architecture style ( Command line is an Architecture)

Correctness, Robustness,Extendibility,Re-usability,compatibility,Portability,Ease of use,Efficiency,Timeliness,economy,Functionality

  • Standards
  • Yaras for REST

References

  • Thought works Tech radar
  • Stack overflow developer survey
  • Google developer survey
  • Join architecture and design meetings
  • First step to software architect

Software Maintainence


Software Maintenance

Design Thinking

First understand the problem

Find the connection between Data and Unknown

How to Design — Fundamental design tools — Abstraction and modularity

Modularity classification below

• Decomposability.

• Composability.

• Understandability.

• Continuity.

  • Protection

• Direct Mapping.

• Few Interfaces.

• Small interfaces (weak coupling).

• Explicit Interfaces.

• Information Hiding.

Every Application Domain have simple machines

Components (Computation) and Connectors ( Communication)

Noun become the Objects and Verb become the Methods in those Nouns

Connectors — PIPE for single uni direction flow. Event Bus for bi directional flow with buffer and easy to add Component

Building Blocks of Connector are —

Flow of control ( changing process counter) and Flow of Data ( that is performing memory access )

Connector Roles — Communication,Coordination,Conversion,Facilitation

Connector Types

  1. Procedure Calls

2. Event Connectors

3. Data Access Connectors

4. Linkage Connector ( ex Make in unix)

5. Stream Connector ( Unix PIPE )

6. Arbitrator ( Controlling Concurrency and Synchronization)

7. Adaptor Connector ( For managing diff in components)

8. Distributor Connector ( DNS )

Basic Architecture Concepts

Non Functional Requirements — Mostly in the form of adverb ( This can be faster,quicker,etc)

ViewPoints

UML Diagrams — State and Sequence cover behavior and Activity cover Static

Visualization

Deployment

QOS — Latency,durability,interaction volume

Non Functional Requirements