0% found this document useful (0 votes)
8 views6 pages

Module 4

Uploaded by

Abdul Basit
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views6 pages

Module 4

Uploaded by

Abdul Basit
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd

Topic 1: Introduction to Software Architecture

🎯 Learning Objectives

By the end of the video, you should be able to:

 Define software architecture.


 Explain why well-designed software architecture is important.
 Understand how architecture impacts design decisions (tech stack, production
environment).
 List artifacts from software architecture design.

What is Software Architecture?

 Definition: Organization of the system.


 Functions as a blueprint for developers to create interacting components.
 Captures fundamental structures and system behavior.
 Defines:
o Component interactions.
o Operating environment.
o Design principles.

🔑 Importance of Software Architecture

 Captures early design decisions (hard to change later, costly to modify).


 Addresses non-functional aspects:
o Performance
o Scalability
o Maintainability
o Interoperability
o Security
o Manageability
 Why it matters:
o Balances stakeholder needs.
o Serves as a communication tool among team members.
o Provides agility to adapt to changing requirements.
o Increases lifespan of software, even if implementation details change.

⚙️Architecture & Tech Stack


 Architecture guides choice of technology stack.
 A tech stack includes:
o Programming languages
o Frameworks
o Libraries
o Other supporting software/tools
 Architects must know the advantages and disadvantages of stacks to anticipate
development needs.
 Architecture ensures stacks meet non-functional requirements.

📄 Artifacts of Software Architecture

1. Software Design Document (SDD)


o Collection of technical specifications.
o Functional description + design considerations:
 Assumptions
 Dependencies
 Constraints
 Requirements
 Objectives
 Methodologies
2. Architectural Diagram
o Shows:
 Components
 Interactions
 Constraints
 Patterns used
o Communicates high-level structure.
3. UML (Unified Modeling Language) Diagrams
o Programming language–agnostic.
o Show structure and behavior of the system.
o Common, standardized notation.

🌍 Production Environment Considerations

 Architecture influences deployment environment.


 Production environment includes:
o Servers
o Load balancers
o Databases
o Other infrastructure that delivers the application to users.
📌 Key Takeaways

 Software architecture = blueprint + organization of application.


 Well-designed architecture:
o Improves communication
o Captures hard-to-change early decisions
o Handles evolving requirements
o Extends software lifespan
 Architecture impacts tech stack and production environment.
 Artifacts:
o SDD
o Architectural Diagram
o UML Diagrams
Topic 2 – Software Design & Modeling

🎯 Learning Objectives

By the end of this video, you should be able to:

 Compare and contrast structured design and behavioral models.


 Describe UML and its advantages.
 Explain the purpose of state transition diagrams and interaction diagrams.

Software Design & Modeling

 Software Design = process of documenting structural components and behavioral


attributes of software before development.
 A key activity: modeling the software → creating visual/diagrammatic representations
of:
o The bigger solution
o Sub-components
o Interactions among components
 Tools:
o Simple flowcharts
o UML (Unified Modeling Language) → standardized

📌 Structured Design

 Breaks down a software problem into organized smaller solution elements:


o Modules
o Sub-modules
 Principles:
o Cohesion → all related functionality grouped together.
o Coupling → communication between modules; aim for loose coupling (weak
association so changes in one module minimally affect others).
 Used in service-oriented architectures and microservices.
 Example: Billing System
o Main module: Billing
o Sub-modules: Insurance Verification, Submit Claim, Output Total
o Arrows show data flow.

📌 Behavioral Models
 Describe what a system does (not how it does it).
 Show overall behavior of the system.
 Use behavioral UML diagrams such as:
o State transition diagrams
o Interaction diagrams

Unified Modeling Language (UML)

 Definition: Standardized modeling language to visually represent:


o Architecture
o Design
o Implementation
 Types of UML diagrams:
o Structural
o Behavioral
 Advantages of UML:

1. Plan features before coding → saves time & money.


2. Helps new/joining developers understand system quickly.
3. Facilitates communication between technical & non-technical audiences.
4. Provides visual maps → helps navigate source code.

 Programming language agnostic → universally understandable.

🔄 State Transition Diagram

 Behavioral UML diagram.


 Shows:
o Different states of a system.
o Events causing transitions between states.
 Example: Clinic Visit
o States: Waiting, Testing, With Doctor
o Transitions triggered by events (e.g., appointment starts → waiting ends).

🔁 Interaction Diagram

 Models the dynamic nature of a system.


 Visualizes objects and their relationships.
 Example: Sequence Diagram
o Communication between objects shown over time.
o Ex: Patient booking appointment in online portal.
 Another type of behavioral UML diagram.

📌 Key Takeaways

 Structured Design: Breaks problem into organized modules; emphasizes cohesion and
loose coupling.
 Behavioral Models: Describe system behavior without detailing implementation.
 UML: Standardized, language-agnostic; improves planning, communication, onboarding,
and navigation.
 State Transition Diagram: Shows states + events causing transitions.
 Interaction Diagram: Shows communication between objects (e.g., sequence diagram).

You might also like