SlideShare a Scribd company logo
© RAGINIJAIN CC SA 4.0
Ragini Jain
MSc CA 1st
Year (2015 - 2017)
Software Architecture
© RAGINIJAIN CC SA 4.0
Overview
● Software architecture
● Architectural analysis
● Architectural style
● Software Architecture and Software engineering
● Software architecture (AWT → Swing → Swing 2.x)
● Summary
● References
© RAGINIJAIN CC SA 4.0
Software Architecture
● A set of principal design decisions about the system.
● A blueprint for a system's construction and evolution
● Software architecture = Elements , Form, Rationale
● Software architecture deals with
– Abstraction
– Decomposition
– Composition
– Style
– Aesthetics
What How Why
© RAGINIJAIN CC SA 4.0
Layered Architecture Style
Java OpenJDK
Java libraries
© RAGINIJAIN CC SA 4.0
Case study – AWT – Problem statement
● Conceptualize and Architect a platform-independent
– Windowing
– Graphics
– User-interface widget
toolkit
© RAGINIJAIN CC SA 4.0
AWT architecture challenge
Java Native Code
AWT: Window , Graphics , User interface Widget
Microsoft Windows
UNIX /Solaris X11 environment
© RAGINIJAIN CC SA 4.0
AWT architecture is a 2-level toolkit with API
AWT Object-Oriented Abstraction
Windowing, Events and Layout managers
GUI widgets – buttons, text boxes and menus
Canvas
Drawing
surface
© RAGINIJAIN CC SA 4.0
Abstract Window Toolkit architecture
© RAGINIJAIN CC SA 4.0
Illustrative code
import java.awt.*;
import java.awt.event.*;
public class RJCanvas extends Canvas {
static {
System.loadLibrary("rjrender");
}
public native void paint(Graphics g);
public static void main(String[] args) {
Frame f = new Frame();
f.setBounds( 0, 0, 500, 110 );
f.add( new RJCanvas() );
f.addWindowListener( new WindowAdapter() {
public void windowClosing( WindowEvent ev ) {
System.exit(0);
}
} );
f.show();
}
}
librjrender.so
Canvas
Frame
Graphics Context
/usr/lib64/jvm/jre/lib/amd64/libjawt.so
© RAGINIJAIN CC SA 4.0
Software Architecture and Engineering
● An architecture is a composition and interplay of different elements
● Engineering delivers by using two artifacts
– Components
● Encapsulate processing and data
– eg. AWT classes, Interfaces and native library modules
– Connectors
● Application independent interaction facility
– eg. shared memory connector (Graphics context)
● Working code is the proof of the architecture and trade-offs
– Refactoring the toolkit library
● Move from heavy AWT to light-weight swing component
© RAGINIJAIN CC SA 4.0
Decoupled architecture
● Event handling in User Interface (UI) can be quite challenging
given a large number of components and events.
● To address this complexity, we need to incorporate Architectural
style.
– A named collection of architectural design decisions
● Event handling
– Data is the Model
– Visual representation is the View
– Code that responds to events and updates is the Controller
© RAGINIJAIN CC SA 4.0
Model-View Controller (MVC) architecture
© RAGINIJAIN CC SA 4.0
Engineering the MVC architecture
Swing MVC
public void   installUI(JComponent c);
public void uninstallUI(JComponent c);
© RAGINIJAIN CC SA 4.0
Impact of modified MVC Swing architecture
● Separable Model architecture
– A separate model interface for each component that has a
logical data or value abstraction.
● Swing models
– GUI state model
– Application state model
© RAGINIJAIN CC SA 4.0
Summary
● Software Architecture is a blueprint and incorporates every facet of
the system
– Structure
– Behaviour
– Interaction
– Non-functional properties
● Not all design decisions are architectural
● Architecture evolves with experience gained from previous
versions of the software or similar designs.
● Frameworks (servlet) , Toolkits (Git), libraries (openGL) are
manifestation of software architecture.
© RAGINIJAIN CC SA 4.0
References
Community of thought leaders of
software architecture and patterns
Amy Fowler, Swing Architecture,
www.oracle.com/technetwork/java/architecture­142923.html
© RAGINIJAIN CC SA 4.0
References
© RAGINIJAIN CC SA 4.0
References
© RAGINIJAIN CC SA 4.0
Thank you.
● Questions
● Clarifications
● Suggestions
● Feedback
Ragini Jain
15030142023@sicsr.ac.in

More Related Content

PDF
Development made easy with WSO2 App Factory
PDF
Exposing Lambda Functions as Managed APIs
PDF
Evolution of Application Development
PPTX
Software architecture in practice
PDF
Creating and Managing Technical Content for Open Source Products
PDF
Portlet Bridge
PDF
WSO2 Updates 2.0
PDF
API Management for GraphQL
Development made easy with WSO2 App Factory
Exposing Lambda Functions as Managed APIs
Evolution of Application Development
Software architecture in practice
Creating and Managing Technical Content for Open Source Products
Portlet Bridge
WSO2 Updates 2.0
API Management for GraphQL

What's hot (7)

PPTX
AGILE M18 – State of the “Nation”
PDF
[APIdays Paris 2019] API Management in Service Mesh Using Istio and WSO2 API ...
PDF
Continuous Integration and Continuous Deployment (CI/CD) with WSO2 Enterprise...
PDF
Monolith vs Microservices with Golang at practice - Ivan Kutuzov
PDF
[Workshop] API-driven Integration
PDF
Kubernetes in Modern Application Architecture - Orkhan Gasimov
PPT
e-suap - general software architecture (English)
AGILE M18 – State of the “Nation”
[APIdays Paris 2019] API Management in Service Mesh Using Istio and WSO2 API ...
Continuous Integration and Continuous Deployment (CI/CD) with WSO2 Enterprise...
Monolith vs Microservices with Golang at practice - Ivan Kutuzov
[Workshop] API-driven Integration
Kubernetes in Modern Application Architecture - Orkhan Gasimov
e-suap - general software architecture (English)
Ad

Viewers also liked (20)

DOC
PPTX
Architectural structures and views
PDF
4+1view architecture
PPTX
10 architectural design (1)
PPT
architectural design
PPT
05 architectural styles
PDF
Modern Software Architecture Styles and Patterns
PPTX
Architectural Case study laxmi vilas palace, Vadodra, Gujrat
PDF
Software Architecture - Principles Patterns and Practices - OSI Days Workshop...
PPTX
Quality attributes in software architecture
DOCX
Software architecture Unit 1 notes
PPT
Communications is distributed systems
DOCX
Architectural Styles and Case Studies, Software architecture ,unit–2
PDF
Principles of software architecture design
PDF
Software Architecture: Styles
PDF
Software Architecture: views and viewpoints
PPT
Architectural Design in Software Engineering SE10
PPTX
Fundamentals Of Software Architecture
PPTX
ARCHITECTURAL STYLES
PDF
software architecture
Architectural structures and views
4+1view architecture
10 architectural design (1)
architectural design
05 architectural styles
Modern Software Architecture Styles and Patterns
Architectural Case study laxmi vilas palace, Vadodra, Gujrat
Software Architecture - Principles Patterns and Practices - OSI Days Workshop...
Quality attributes in software architecture
Software architecture Unit 1 notes
Communications is distributed systems
Architectural Styles and Case Studies, Software architecture ,unit–2
Principles of software architecture design
Software Architecture: Styles
Software Architecture: views and viewpoints
Architectural Design in Software Engineering SE10
Fundamentals Of Software Architecture
ARCHITECTURAL STYLES
software architecture
Ad

Similar to Software Architecture (20)

PPTX
Clean architecture on android
PDF
JAVA J2EE LEAD coming out of CITI
PPTX
Choosing your frontend web framework.pptx
PPTX
Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)
PDF
Spring IO 2016 - Spring Cloud Microservices, a journey inside a financial entity
PDF
SpringIO 2016 - Spring Cloud MicroServices, a journey inside a financial entity
PDF
Architecture Enforcement Aspects Itarc2009
PDF
Architecture Enforcement Aspects Itarc2009
PDF
software architecture
PDF
Lagom : Reactive microservice framework
PDF
Analyzing Optimal Practises for Web Frameworks
PDF
'Architecture of modern frontend apps' by YURIY DOBRYANSKYY at OdessaJS'2020
PPTX
25 Best React Frameworks For Development
PPTX
Micro frontend architecture_presentation_ssoni
PPTX
Micro Front Ends for Micro Services using Oracle JET
PDF
Modern Agile Software Architecture
PPTX
Mobile App Architectures & Coding guidelines
PDF
Framework adoption for java enterprise application development
PDF
Software Development Best Practices: Separating UI from Business Logic
 
PPTX
Shield UI JavaScript Chart
Clean architecture on android
JAVA J2EE LEAD coming out of CITI
Choosing your frontend web framework.pptx
Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)
Spring IO 2016 - Spring Cloud Microservices, a journey inside a financial entity
SpringIO 2016 - Spring Cloud MicroServices, a journey inside a financial entity
Architecture Enforcement Aspects Itarc2009
Architecture Enforcement Aspects Itarc2009
software architecture
Lagom : Reactive microservice framework
Analyzing Optimal Practises for Web Frameworks
'Architecture of modern frontend apps' by YURIY DOBRYANSKYY at OdessaJS'2020
25 Best React Frameworks For Development
Micro frontend architecture_presentation_ssoni
Micro Front Ends for Micro Services using Oracle JET
Modern Agile Software Architecture
Mobile App Architectures & Coding guidelines
Framework adoption for java enterprise application development
Software Development Best Practices: Separating UI from Business Logic
 
Shield UI JavaScript Chart

Recently uploaded (20)

PDF
2025 Textile ERP Trends: SAP, Odoo & Oracle
PPT
Introduction Database Management System for Course Database
PDF
Nekopoi APK 2025 free lastest update
PPTX
VVF-Customer-Presentation2025-Ver1.9.pptx
PDF
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PPTX
Computer Software and OS of computer science of grade 11.pptx
PPTX
CHAPTER 2 - PM Management and IT Context
PDF
Softaken Excel to vCard Converter Software.pdf
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PDF
Design an Analysis of Algorithms II-SECS-1021-03
PDF
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PPTX
history of c programming in notes for students .pptx
PPTX
Introduction to Artificial Intelligence
2025 Textile ERP Trends: SAP, Odoo & Oracle
Introduction Database Management System for Course Database
Nekopoi APK 2025 free lastest update
VVF-Customer-Presentation2025-Ver1.9.pptx
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
How to Choose the Right IT Partner for Your Business in Malaysia
Odoo Companies in India – Driving Business Transformation.pdf
Computer Software and OS of computer science of grade 11.pptx
CHAPTER 2 - PM Management and IT Context
Softaken Excel to vCard Converter Software.pdf
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
Adobe Illustrator 28.6 Crack My Vision of Vector Design
Design an Analysis of Algorithms I-SECS-1021-03
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
Design an Analysis of Algorithms II-SECS-1021-03
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
history of c programming in notes for students .pptx
Introduction to Artificial Intelligence

Software Architecture

  • 1. © RAGINIJAIN CC SA 4.0 Ragini Jain MSc CA 1st Year (2015 - 2017) Software Architecture
  • 2. © RAGINIJAIN CC SA 4.0 Overview ● Software architecture ● Architectural analysis ● Architectural style ● Software Architecture and Software engineering ● Software architecture (AWT → Swing → Swing 2.x) ● Summary ● References
  • 3. © RAGINIJAIN CC SA 4.0 Software Architecture ● A set of principal design decisions about the system. ● A blueprint for a system's construction and evolution ● Software architecture = Elements , Form, Rationale ● Software architecture deals with – Abstraction – Decomposition – Composition – Style – Aesthetics What How Why
  • 4. © RAGINIJAIN CC SA 4.0 Layered Architecture Style Java OpenJDK Java libraries
  • 5. © RAGINIJAIN CC SA 4.0 Case study – AWT – Problem statement ● Conceptualize and Architect a platform-independent – Windowing – Graphics – User-interface widget toolkit
  • 6. © RAGINIJAIN CC SA 4.0 AWT architecture challenge Java Native Code AWT: Window , Graphics , User interface Widget Microsoft Windows UNIX /Solaris X11 environment
  • 7. © RAGINIJAIN CC SA 4.0 AWT architecture is a 2-level toolkit with API AWT Object-Oriented Abstraction Windowing, Events and Layout managers GUI widgets – buttons, text boxes and menus Canvas Drawing surface
  • 8. © RAGINIJAIN CC SA 4.0 Abstract Window Toolkit architecture
  • 9. © RAGINIJAIN CC SA 4.0 Illustrative code import java.awt.*; import java.awt.event.*; public class RJCanvas extends Canvas { static { System.loadLibrary("rjrender"); } public native void paint(Graphics g); public static void main(String[] args) { Frame f = new Frame(); f.setBounds( 0, 0, 500, 110 ); f.add( new RJCanvas() ); f.addWindowListener( new WindowAdapter() { public void windowClosing( WindowEvent ev ) { System.exit(0); } } ); f.show(); } } librjrender.so Canvas Frame Graphics Context /usr/lib64/jvm/jre/lib/amd64/libjawt.so
  • 10. © RAGINIJAIN CC SA 4.0 Software Architecture and Engineering ● An architecture is a composition and interplay of different elements ● Engineering delivers by using two artifacts – Components ● Encapsulate processing and data – eg. AWT classes, Interfaces and native library modules – Connectors ● Application independent interaction facility – eg. shared memory connector (Graphics context) ● Working code is the proof of the architecture and trade-offs – Refactoring the toolkit library ● Move from heavy AWT to light-weight swing component
  • 11. © RAGINIJAIN CC SA 4.0 Decoupled architecture ● Event handling in User Interface (UI) can be quite challenging given a large number of components and events. ● To address this complexity, we need to incorporate Architectural style. – A named collection of architectural design decisions ● Event handling – Data is the Model – Visual representation is the View – Code that responds to events and updates is the Controller
  • 12. © RAGINIJAIN CC SA 4.0 Model-View Controller (MVC) architecture
  • 13. © RAGINIJAIN CC SA 4.0 Engineering the MVC architecture Swing MVC public void   installUI(JComponent c); public void uninstallUI(JComponent c);
  • 14. © RAGINIJAIN CC SA 4.0 Impact of modified MVC Swing architecture ● Separable Model architecture – A separate model interface for each component that has a logical data or value abstraction. ● Swing models – GUI state model – Application state model
  • 15. © RAGINIJAIN CC SA 4.0 Summary ● Software Architecture is a blueprint and incorporates every facet of the system – Structure – Behaviour – Interaction – Non-functional properties ● Not all design decisions are architectural ● Architecture evolves with experience gained from previous versions of the software or similar designs. ● Frameworks (servlet) , Toolkits (Git), libraries (openGL) are manifestation of software architecture.
  • 16. © RAGINIJAIN CC SA 4.0 References Community of thought leaders of software architecture and patterns Amy Fowler, Swing Architecture, www.oracle.com/technetwork/java/architecture­142923.html
  • 17. © RAGINIJAIN CC SA 4.0 References
  • 18. © RAGINIJAIN CC SA 4.0 References
  • 19. © RAGINIJAIN CC SA 4.0 Thank you. ● Questions ● Clarifications ● Suggestions ● Feedback Ragini Jain 15030142023@sicsr.ac.in