SlideShare a Scribd company logo
1 of 19
© 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

What's hot

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

What's hot (7)

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

Viewers also liked

Architectural structures and views
Architectural structures and viewsArchitectural structures and views
Architectural structures and viewsDr Reeja S R
 
4+1view architecture
4+1view architecture4+1view architecture
4+1view architecturedrewz lin
 
10 architectural design (1)
10 architectural design (1)10 architectural design (1)
10 architectural design (1)Ayesha Bhatti
 
architectural design
 architectural design architectural design
architectural designPreeti Mishra
 
05 architectural styles
05 architectural styles05 architectural styles
05 architectural stylesMajong DevJfu
 
Modern Software Architecture Styles and Patterns
Modern Software Architecture Styles and PatternsModern Software Architecture Styles and Patterns
Modern Software Architecture Styles and PatternsGanesh Samarthyam
 
Architectural Case study laxmi vilas palace, Vadodra, Gujrat
Architectural Case study laxmi vilas palace, Vadodra, GujratArchitectural Case study laxmi vilas palace, Vadodra, Gujrat
Architectural Case study laxmi vilas palace, Vadodra, GujratStudent
 
Software Architecture - Principles Patterns and Practices - OSI Days Workshop...
Software Architecture - Principles Patterns and Practices - OSI Days Workshop...Software Architecture - Principles Patterns and Practices - OSI Days Workshop...
Software Architecture - Principles Patterns and Practices - OSI Days Workshop...CodeOps Technologies LLP
 
Quality attributes in software architecture
Quality attributes in software architectureQuality attributes in software architecture
Quality attributes in software architectureHimanshu
 
Software architecture Unit 1 notes
Software architecture Unit 1 notesSoftware architecture Unit 1 notes
Software architecture Unit 1 notesSudarshan Dhondaley
 
Communications is distributed systems
Communications is distributed systemsCommunications is distributed systems
Communications is distributed systemsSHATHAN
 
Architectural Styles and Case Studies, Software architecture ,unit–2
Architectural Styles and Case Studies, Software architecture ,unit–2Architectural Styles and Case Studies, Software architecture ,unit–2
Architectural Styles and Case Studies, Software architecture ,unit–2Sudarshan Dhondaley
 
Principles of software architecture design
Principles of software architecture designPrinciples of software architecture design
Principles of software architecture designLen Bass
 
Software Architecture: Styles
Software Architecture: StylesSoftware Architecture: Styles
Software Architecture: StylesHenry Muccini
 
Software Architecture: views and viewpoints
Software Architecture: views and viewpointsSoftware Architecture: views and viewpoints
Software Architecture: views and viewpointsHenry Muccini
 
Architectural Design in Software Engineering SE10
Architectural Design in Software Engineering SE10Architectural Design in Software Engineering SE10
Architectural Design in Software Engineering SE10koolkampus
 
Fundamentals Of Software Architecture
Fundamentals Of Software ArchitectureFundamentals Of Software Architecture
Fundamentals Of Software ArchitectureMarkus Voelter
 

Viewers also liked (20)

Class notes
Class notesClass notes
Class notes
 
Architectural structures and views
Architectural structures and viewsArchitectural structures and views
Architectural structures and views
 
4+1view architecture
4+1view architecture4+1view architecture
4+1view architecture
 
10 architectural design (1)
10 architectural design (1)10 architectural design (1)
10 architectural design (1)
 
architectural design
 architectural design architectural design
architectural design
 
05 architectural styles
05 architectural styles05 architectural styles
05 architectural styles
 
Modern Software Architecture Styles and Patterns
Modern Software Architecture Styles and PatternsModern Software Architecture Styles and Patterns
Modern Software Architecture Styles and Patterns
 
Architectural Case study laxmi vilas palace, Vadodra, Gujrat
Architectural Case study laxmi vilas palace, Vadodra, GujratArchitectural Case study laxmi vilas palace, Vadodra, Gujrat
Architectural Case study laxmi vilas palace, Vadodra, Gujrat
 
Software Architecture - Principles Patterns and Practices - OSI Days Workshop...
Software Architecture - Principles Patterns and Practices - OSI Days Workshop...Software Architecture - Principles Patterns and Practices - OSI Days Workshop...
Software Architecture - Principles Patterns and Practices - OSI Days Workshop...
 
Quality attributes in software architecture
Quality attributes in software architectureQuality attributes in software architecture
Quality attributes in software architecture
 
Software architecture Unit 1 notes
Software architecture Unit 1 notesSoftware architecture Unit 1 notes
Software architecture Unit 1 notes
 
Communications is distributed systems
Communications is distributed systemsCommunications is distributed systems
Communications is distributed systems
 
Architectural Styles and Case Studies, Software architecture ,unit–2
Architectural Styles and Case Studies, Software architecture ,unit–2Architectural Styles and Case Studies, Software architecture ,unit–2
Architectural Styles and Case Studies, Software architecture ,unit–2
 
Principles of software architecture design
Principles of software architecture designPrinciples of software architecture design
Principles of software architecture design
 
Software Architecture: Styles
Software Architecture: StylesSoftware Architecture: Styles
Software Architecture: Styles
 
Software Architecture: views and viewpoints
Software Architecture: views and viewpointsSoftware Architecture: views and viewpoints
Software Architecture: views and viewpoints
 
Architectural Design in Software Engineering SE10
Architectural Design in Software Engineering SE10Architectural Design in Software Engineering SE10
Architectural Design in Software Engineering SE10
 
Fundamentals Of Software Architecture
Fundamentals Of Software ArchitectureFundamentals Of Software Architecture
Fundamentals Of Software Architecture
 
ARCHITECTURAL STYLES
ARCHITECTURAL STYLESARCHITECTURAL STYLES
ARCHITECTURAL STYLES
 
software architecture
software architecturesoftware architecture
software architecture
 

Similar to Software Architecture Evolution AWT to Swing

Clean architecture on android
Clean architecture on androidClean architecture on android
Clean architecture on androidBenjamin Cheng
 
JAVA J2EE LEAD coming out of CITI
JAVA J2EE LEAD coming out of CITIJAVA J2EE LEAD coming out of CITI
JAVA J2EE LEAD coming out of CITIvravi123
 
Choosing your frontend web framework.pptx
Choosing your frontend web framework.pptxChoosing your frontend web framework.pptx
Choosing your frontend web framework.pptxAaliyanShaikh
 
Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)
Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)
Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)Nedelcho Delchev
 
SpringIO 2016 - Spring Cloud MicroServices, a journey inside a financial entity
SpringIO 2016 - Spring Cloud MicroServices, a journey inside a financial entitySpringIO 2016 - Spring Cloud MicroServices, a journey inside a financial entity
SpringIO 2016 - Spring Cloud MicroServices, a journey inside a financial entityjordigilnieto
 
Spring IO 2016 - Spring Cloud Microservices, a journey inside a financial entity
Spring IO 2016 - Spring Cloud Microservices, a journey inside a financial entitySpring IO 2016 - Spring Cloud Microservices, a journey inside a financial entity
Spring IO 2016 - Spring Cloud Microservices, a journey inside a financial entityToni Jara
 
Architecture Enforcement Aspects Itarc2009
Architecture Enforcement Aspects Itarc2009Architecture Enforcement Aspects Itarc2009
Architecture Enforcement Aspects Itarc2009Srini Penchikala
 
Architecture Enforcement Aspects Itarc2009
Architecture Enforcement Aspects Itarc2009Architecture Enforcement Aspects Itarc2009
Architecture Enforcement Aspects Itarc2009guest2b8cd
 
software architecture
software architecturesoftware architecture
software architecturearnav gupta
 
Lagom : Reactive microservice framework
Lagom : Reactive microservice frameworkLagom : Reactive microservice framework
Lagom : Reactive microservice frameworkFabrice Sznajderman
 
Analyzing Optimal Practises for Web Frameworks
Analyzing Optimal Practises for Web FrameworksAnalyzing Optimal Practises for Web Frameworks
Analyzing Optimal Practises for Web FrameworksIRJET Journal
 
'Architecture of modern frontend apps' by YURIY DOBRYANSKYY at OdessaJS'2020
'Architecture of modern frontend apps' by YURIY DOBRYANSKYY at OdessaJS'2020'Architecture of modern frontend apps' by YURIY DOBRYANSKYY at OdessaJS'2020
'Architecture of modern frontend apps' by YURIY DOBRYANSKYY at OdessaJS'2020OdessaJS Conf
 
Micro frontend architecture_presentation_ssoni
Micro frontend architecture_presentation_ssoniMicro frontend architecture_presentation_ssoni
Micro frontend architecture_presentation_ssoniSandeep Soni
 
Micro Front Ends for Micro Services using Oracle JET
Micro Front Ends for Micro Services using Oracle JETMicro Front Ends for Micro Services using Oracle JET
Micro Front Ends for Micro Services using Oracle JETVijay Nair
 
Modern Agile Software Architecture
Modern Agile Software ArchitectureModern Agile Software Architecture
Modern Agile Software ArchitectureKannan Durairaj
 
Mobile App Architectures & Coding guidelines
Mobile App Architectures & Coding guidelinesMobile App Architectures & Coding guidelines
Mobile App Architectures & Coding guidelinesQamar Abbas
 
Framework adoption for java enterprise application development
Framework adoption for java enterprise application developmentFramework adoption for java enterprise application development
Framework adoption for java enterprise application developmentClarence Ho
 
Software Development Best Practices: Separating UI from Business Logic
Software Development Best Practices: Separating UI from Business LogicSoftware Development Best Practices: Separating UI from Business Logic
Software Development Best Practices: Separating UI from Business LogicICS
 
Shield UI JavaScript Chart
Shield UI JavaScript ChartShield UI JavaScript Chart
Shield UI JavaScript ChartJStoikov
 
[Srijan Wednesday Webinar] How to Run Stateless and Stateful Services on K8S ...
[Srijan Wednesday Webinar] How to Run Stateless and Stateful Services on K8S ...[Srijan Wednesday Webinar] How to Run Stateless and Stateful Services on K8S ...
[Srijan Wednesday Webinar] How to Run Stateless and Stateful Services on K8S ...Srijan Technologies
 

Similar to Software Architecture Evolution AWT to Swing (20)

Clean architecture on android
Clean architecture on androidClean architecture on android
Clean architecture on android
 
JAVA J2EE LEAD coming out of CITI
JAVA J2EE LEAD coming out of CITIJAVA J2EE LEAD coming out of CITI
JAVA J2EE LEAD coming out of CITI
 
Choosing your frontend web framework.pptx
Choosing your frontend web framework.pptxChoosing your frontend web framework.pptx
Choosing your frontend web framework.pptx
 
Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)
Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)
Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)
 
SpringIO 2016 - Spring Cloud MicroServices, a journey inside a financial entity
SpringIO 2016 - Spring Cloud MicroServices, a journey inside a financial entitySpringIO 2016 - Spring Cloud MicroServices, a journey inside a financial entity
SpringIO 2016 - Spring Cloud MicroServices, a journey inside a financial entity
 
Spring IO 2016 - Spring Cloud Microservices, a journey inside a financial entity
Spring IO 2016 - Spring Cloud Microservices, a journey inside a financial entitySpring IO 2016 - Spring Cloud Microservices, a journey inside a financial entity
Spring IO 2016 - Spring Cloud Microservices, a journey inside a financial entity
 
Architecture Enforcement Aspects Itarc2009
Architecture Enforcement Aspects Itarc2009Architecture Enforcement Aspects Itarc2009
Architecture Enforcement Aspects Itarc2009
 
Architecture Enforcement Aspects Itarc2009
Architecture Enforcement Aspects Itarc2009Architecture Enforcement Aspects Itarc2009
Architecture Enforcement Aspects Itarc2009
 
software architecture
software architecturesoftware architecture
software architecture
 
Lagom : Reactive microservice framework
Lagom : Reactive microservice frameworkLagom : Reactive microservice framework
Lagom : Reactive microservice framework
 
Analyzing Optimal Practises for Web Frameworks
Analyzing Optimal Practises for Web FrameworksAnalyzing Optimal Practises for Web Frameworks
Analyzing Optimal Practises for Web Frameworks
 
'Architecture of modern frontend apps' by YURIY DOBRYANSKYY at OdessaJS'2020
'Architecture of modern frontend apps' by YURIY DOBRYANSKYY at OdessaJS'2020'Architecture of modern frontend apps' by YURIY DOBRYANSKYY at OdessaJS'2020
'Architecture of modern frontend apps' by YURIY DOBRYANSKYY at OdessaJS'2020
 
Micro frontend architecture_presentation_ssoni
Micro frontend architecture_presentation_ssoniMicro frontend architecture_presentation_ssoni
Micro frontend architecture_presentation_ssoni
 
Micro Front Ends for Micro Services using Oracle JET
Micro Front Ends for Micro Services using Oracle JETMicro Front Ends for Micro Services using Oracle JET
Micro Front Ends for Micro Services using Oracle JET
 
Modern Agile Software Architecture
Modern Agile Software ArchitectureModern Agile Software Architecture
Modern Agile Software Architecture
 
Mobile App Architectures & Coding guidelines
Mobile App Architectures & Coding guidelinesMobile App Architectures & Coding guidelines
Mobile App Architectures & Coding guidelines
 
Framework adoption for java enterprise application development
Framework adoption for java enterprise application developmentFramework adoption for java enterprise application development
Framework adoption for java enterprise application development
 
Software Development Best Practices: Separating UI from Business Logic
Software Development Best Practices: Separating UI from Business LogicSoftware Development Best Practices: Separating UI from Business Logic
Software Development Best Practices: Separating UI from Business Logic
 
Shield UI JavaScript Chart
Shield UI JavaScript ChartShield UI JavaScript Chart
Shield UI JavaScript Chart
 
[Srijan Wednesday Webinar] How to Run Stateless and Stateful Services on K8S ...
[Srijan Wednesday Webinar] How to Run Stateless and Stateful Services on K8S ...[Srijan Wednesday Webinar] How to Run Stateless and Stateful Services on K8S ...
[Srijan Wednesday Webinar] How to Run Stateless and Stateful Services on K8S ...
 

Recently uploaded

Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 

Recently uploaded (20)

Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 

Software Architecture Evolution AWT to Swing

  • 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