SlideShare a Scribd company logo
Chapter 1 – Architectural Design
Mutah University
Faculty of IT
Department of Software Engineering
Dr. Ra’Fat A. AL-Msie’Deen
rafatalmsiedeen@mutah.edu.jo
https://rafat66.github.io/Al-Msie-Deen/
Software Architecture and Design
Reference - Text Book:
 Chapter 6 of Software Engineering book - by Ian
Sommerville. l0th Edition. Addison Wesley, 2015, ISBN-
10: 0137035152.
2
Topics covered
 Architectural design decisions
 Architectural views
 Architectural patterns
 Application architectures
318/03/2020
Application architectures
Application architectures
 Application systems are intended to meet a business or
an organizational need.
 All businesses have much in common—they need to hire
people, issue invoices, keep accounts, and so on.
 Businesses operating in the same sector use common
sector specific applications.
 Therefore, as well as general business functions, all
phone companies need systems to connect and meter
calls, manage their network and issue bills to customers.
 Consequently, the application systems used by these
businesses also have much in common.
5
Application architectures … cont.
 These commonalities have led to the development of
software architectures that describe the structure and
organization of particular types of software systems.
 Application architectures encapsulate the principal
characteristics of a class of systems.
 For example, in real-time systems, there might be
generic architectural models of different system types,
such as data collection systems or monitoring systems.
 Although instances of these systems differ in detail, the
common architectural structure can be reused when
developing new systems of the same type.
6
Application architectures … cont.
 The application architecture may be reimplemented when
developing new systems.
 However, for many business systems, application
architecture reuse is implicit when generic application
systems are configured to create a new application.
 We see this in the widespread use of Enterprise Resource
Planning (ERP) systems and off-the-shelf configurable
application systems, such as systems for accounting and
stock control.
 These systems have a standard architecture and
components.
 The components are configured and adapted to create a
specific business application. 7
Application architectures … cont.
 Application systems are designed to meet an
organizational need.
 As businesses have much in common, their application
systems also tend to have a common architecture that
reflects the application requirements.
 A generic application architecture is an architecture for a
type of software system that may be configured and
adapted to create a system that meets specific
requirements.
818/03/2020
Use of application architectures
 For example, a system for supply chain management
can be adapted for different types of suppliers, goods,
and contractual arrangements.
 As a software designer, you can use models of
application architectures in a number of ways:
1. As a starting point for the architectural design
process
 If you are unfamiliar with the type of application that
you are developing, you can base your initial design
on a generic application architecture.
 You then specialize this for the specific system that is
being developed. 9
Use of application architectures … cont.
 As a software designer, you can use models of
application architectures in a number of ways:
2. As a design checklist
 If you have developed an architectural design for an
application system, you can compare this with the
generic application architecture.
 You can check that your design is consistent with the
generic architecture.
10
Use of application architectures … cont.
 As a software designer, you can use models of
application architectures in a number of ways:
3. As a way of organizing the work of the development
team
 The application architectures identify stable structural
features of the system architectures, and in many
cases, it is possible to develop these in parallel.
 You can assign work to group members to implement
different components within the architecture.
11
Use of application architectures … cont.
 As a software designer, you can use models of
application architectures in a number of ways:
4. As a means of assessing components for reuse
 If you have components you might be able to reuse,
you can compare these with the generic structures to
see whether there are comparable components in the
application architecture.
12
Use of application architectures … cont.
 As a software designer, you can use models of
application architectures in a number of ways:
5. As a vocabulary for talking about applications
 If you are discussing a specific application or trying to
compare applications, then you can use the concepts
identified in the generic architecture to talk about
these applications.
13
Use of application architectures … cont.
1) As a starting point for architectural design.
2) As a design checklist.
3) As a way of organizing the work of the development
team.
4) As a means of assessing components for reuse.
5) As a vocabulary for talking about application types.
14
Application architectures … cont.
 There are many types of application system, and, in
some cases, they may seem to be very different.
 However, superficially dissimilar applications may have
much in common and thus share an abstract application
architecture.
 I illustrate this by describing the architectures of two
types of application:
15
Examples of application types
1. Transaction processing applications
 Transaction processing applications are database-
centered applications that process user requests for
information and update the information in a database.
 These are the most common types of interactive
business systems.
 They are organized in such a way that user actions can’t
interfere with each other and the integrity of the
database is maintained.
 This class of system includes interactive banking
systems, e-commerce systems, information systems,
and booking systems. 16
Examples of application types … cont.
2. Language processing systems
 Language processing systems are systems in which the
user’s intentions are expressed in a formal language, such
as a programming language.
 The language processing system processes this language
into an internal format and then interprets this internal
representation.
 The best known language processing systems are
compilers, which translate high-level language programs
into machine code.
 However, language processing systems are also used to
interpret command languages for databases and
information systems, and markup languages such as XML.
Examples of application types … cont.
 I have chosen these particular types of system because
a large number of web based business systems are
transaction processing systems, and all software
development relies on language processing systems.
18/03/2020 18
Examples of application types … cont.
 Data processing applications
 Data driven applications that process data in batches
without explicit user intervention during the processing.
 Transaction processing applications
 Data-centered applications that process user requests and
update information in a system database.
 Event processing systems
 Applications where system actions depend on interpreting
events from the system’s environment.
 Language processing systems
 Applications where the users’ intentions are specified in a
formal language that is processed and interpreted by the
system. 19
Application type examples
 Two very widely used generic application architectures
are transaction processing systems and language
processing systems.
 Transaction processing systems
 E-commerce systems;
 Reservation systems.
 Language processing systems
 Compilers;
 Command interpreters.
20
Key points
 Models of application systems architectures help us
understand and compare applications, validate
application system designs and assess large-scale
components for reuse.
21
Application architectures
Transaction processing systems
Transaction processing systems
 Transaction processing systems are designed to process
user requests for information from a database, or
requests to update a database (Lewis, Bernstein, and
Kifer 2003).
 Technically, a database transaction is part of a sequence
of operations and is treated as a single unit (an atomic
unit).
 All of the operations in a transaction have to be
completed before the database changes are made
permanent.
 This ensures that failure of operations within a
transaction does not lead to inconsistencies in the
database.
23
Transaction processing systems … cont.
 From a user perspective, a transaction is any coherent
sequence of operations that satisfies a goal, such as
“find the times of flights from London to Paris.”
 If the user transaction does not require the database to
be changed, then it may not be necessary to package
this as a technical database transaction.
18/03/2020 24
Transaction processing systems … cont.
 An example of a database transaction is a customer
request to withdraw money from a bank account using
an ATM.
 This involves checking the customer account balance to
see if sufficient funds are available, modifying the
balance by the amount withdrawn and sending
commands to the ATM to deliver the cash.
 Until all of these steps have been completed, the
transaction is incomplete and the customer accounts
database is not changed.
25
Transaction processing systems … cont.
 Transaction processing systems are usually interactive systems
in which users make asynchronous requests for service.
 Figure 1 illustrates the conceptual architectural structure of
transaction processing applications.
 First, a user makes a request to the system through an I/O
processing component.
 The request is processed by some application-specific logic.
 A transaction is created and passed to a transaction manager,
which is usually embedded in the database management
system.
 After the transaction manager has ensured that the transaction
is properly completed, it signals to the application that
processing has finished. 26
Transaction processing systems … cont.
 Process user requests for information from a database
or requests to update the database.
 From a user perspective a transaction is:
 Any coherent sequence of operations that satisfies a goal;
 For example - find the times of flights from London to Paris.
 Users make asynchronous requests for service which
are then processed by a transaction manager.
27
The structure of transaction processing applications
28
Figure 1. The structure of transaction processing applications.
Transaction processing systems … cont.
 Transaction processing systems may be organized as a “pipe
and filter” architecture, with system components responsible
for input, processing, and output.
 For example, consider a banking system that allows customers
to query their accounts and withdraw cash from an ATM.
 The system is composed of two cooperating software
components — the ATM software and the account processing
software in the bank’s database server.
 The input and output components are implemented as
software in the ATM, and the processing component is part of
the bank’s database server.
 Figure 2 shows the architecture of this system, illustrating the
functions of the input, process, and output components. 29
The software architecture of an ATM system
30
Figure 2. The software architecture of an ATM system.
Key points
 Models of application systems architectures help us
understand and compare applications, validate
application system designs and assess large-scale
components for reuse.
 Transaction processing systems are interactive systems
that allow information in a database to be remotely
accessed and modified by a number of users.
31
Application architectures
Transaction processing systems
Information systems
Information systems
 All systems that involve interaction with a shared
database can be considered to be transaction-based
information systems.
 An information system allows controlled access to a
large base of information, such as a library catalog, a
flight timetable, or the records of patients in a hospital.
 Information systems are almost always web-based
systems, where the user interface is implemented in a
web browser.
33
Information systems … cont.
 Figure 1 presents a very general model of an information
system.
 The system is modeled using a layered approach
(discussed in Section 6.3) where the top layer supports
the user interface and the bottom layer is the system
database.
 The user communications layer handles all input and
output from the user interface, and the information
retrieval layer includes application-specific logic for
accessing and updating the database.
 The layers in this model can map directly onto servers in
a distributed Internet-based system.
34
Layered information system architecture
35Figure 1. Layered information system architecture.
Information systems architecture
 Information systems have a generic architecture that can
be organized as a layered architecture.
 These are transaction-based systems as interaction with
these systems generally involves database transactions.
 Layers include:
 The user interface
 User communications
 Information retrieval
 System database
36
The architecture of the Mentcare system
 As an example of an instantiation of this layered model,
Figure 2 shows the architecture of the Mentcare system.
 Recall that this system maintains and manages details of
patients who are consulting specialist doctors about
mental health problems.
 I have added detail to each layer in the model by
identifying the components that support user
communications and information retrieval and access.
18/03/2020 37
The architecture of the Mentcare system … cont.
38
Figure 2. The architecture of the Mentcare system.
The architecture of the Mentcare system … cont.
1) The top layer is a browser-based user interface.
2) The second layer provides the user interface
functionality that is delivered through the web browser.
It includes components to allow users to log in to the
system and checking components that ensure that the
operations they use are allowed by their role. This layer
includes form and menu management components that
present information to users, and data validation
components that check information consistency.
39
The architecture of the Mentcare system … cont.
3) The third layer implements the functionality of the
system and provides components that implement
system security, patient information creation and
updating, import and export of patient data from other
databases, and report generators that create
management reports.
4) Finally, the lowest layer, which is built using a
commercial database management system, provides
transaction management and persistent data storage.
40
Web-based information systems
 Information and resource management systems are
sometimes also transaction processing systems.
 For example, e-commerce systems are Internet-based
resource management systems that accept electronic
orders for goods or services and then arrange delivery of
these goods or services to the customer.
 In an e-commerce system, the application-specific layer
includes additional functionality supporting a “shopping
cart” in which users can place a number of items in
separate transactions, then pay for them all together in a
single transaction.
41
Web-based information systems … cont.
 The organization of servers in these systems usually
reflects the four-layer generic model presented in Figure
1.
 These systems are often implemented as distributed
systems with a multitier client server/architecture.
42
Layered information system architecture
43
Figure 1. Layered information system architecture.
Web-based information systems … cont.
1. The web server is responsible for all user
communications, with the user interface implemented
using a web browser;
2. The application server is responsible for implementing
application-specific logic as well as information storage
and retrieval requests;
3. The database server moves information to and from
the database and handles transaction management.
18/03/2020 44
Web-based information systems … cont.
 Information and resource management systems are now
usually web-based systems where the user interfaces
are implemented using a web browser.
 For example, e-commerce systems are Internet-based
resource management systems that accept electronic
orders for goods or services and then arrange delivery of
these goods or services to the customer.
 In an e-commerce system, the application-specific layer
includes additional functionality supporting a ‘shopping
cart’ in which users can place a number of items in
separate transactions, then pay for them all together in a
single transaction.
45
Server implementation
 These systems are often implemented as multi-tier client
server/architectures.
 The web server is responsible for all user
communications, with the user interface implemented
using a web browser;
 The application server is responsible for implementing
application-specific logic as well as information
storage and retrieval requests;
 The database server moves information to and from
the database and handles transaction management.
46
Server implementation … cont.
 Using multiple servers allows high throughput and
makes it possible to handle thousands of transactions
per minute.
 As demand increases, servers can be added at each
level to cope with the extra processing involved.
47
Key points
 Models of application systems architectures help us
understand and compare applications, validate
application system designs and assess large-scale
components for reuse.
 All systems that involve interaction with a shared
database can be considered to be transaction-based
information systems.
 An information system allows controlled access to a
large base of information, such as a library catalog.
 Information systems are almost always web-based
systems, where the user interface is implemented in a
web browser.
48
Chapter 1 – Architectural Design
Mutah University
Faculty of IT
Department of Software Engineering
Dr. Ra’Fat A. AL-Msie’Deen
rafatalmsiedeen@mutah.edu.jo
https://rafat66.github.io/Al-Msie-Deen/
Software Architecture and Design

More Related Content

What's hot (20)

PDF
Chapter 9 -Multimedia on The Internet
Pratik Pradhan
 
PPT
07 software connectors
Majong DevJfu
 
PDF
Sequence diagram- UML diagram
Ramakant Soni
 
PPTX
Cloud computing lecture 1
Md. Mashiur Rahman
 
PDF
An Introduction to Software Architecture
RahimLotfi
 
PPTX
CS8791 Unit 2 Cloud Enabling Technologies
karthikajegadeesan
 
PPTX
SDLC Model (Waterfall,Iterative Waterfall,Spiral)
Shaikh Kamrul Islam (Konok kamrul)
 
PPTX
Unit-I Introduction to Cloud Computing.pptx
garkhot123
 
PPT
Object Oriented Analysis and Design
Haitham El-Ghareeb
 
PPT
Use Case Diagram
Ashesh R
 
PPTX
Software requirements specification
lavanya marichamy
 
PPT
Use Case Diagram
Kumar
 
PPTX
Design Goals of Distributed System
Ashish KC
 
PDF
Deadlock in Distributed Systems
Pritom Saha Akash
 
PPTX
Object oriented and function oriented design
Naveen Sagayaselvaraj
 
PPTX
University Database Management Project
Kavi
 
PPT
CBAM
Asim Shahzad
 
PPT
Architecture design in software engineering
Preeti Mishra
 
PPT
Data dictionary
Surbhi Panhalkar
 
PPT
CHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddel
mohamed khalaf alla mohamedain
 
Chapter 9 -Multimedia on The Internet
Pratik Pradhan
 
07 software connectors
Majong DevJfu
 
Sequence diagram- UML diagram
Ramakant Soni
 
Cloud computing lecture 1
Md. Mashiur Rahman
 
An Introduction to Software Architecture
RahimLotfi
 
CS8791 Unit 2 Cloud Enabling Technologies
karthikajegadeesan
 
SDLC Model (Waterfall,Iterative Waterfall,Spiral)
Shaikh Kamrul Islam (Konok kamrul)
 
Unit-I Introduction to Cloud Computing.pptx
garkhot123
 
Object Oriented Analysis and Design
Haitham El-Ghareeb
 
Use Case Diagram
Ashesh R
 
Software requirements specification
lavanya marichamy
 
Use Case Diagram
Kumar
 
Design Goals of Distributed System
Ashish KC
 
Deadlock in Distributed Systems
Pritom Saha Akash
 
Object oriented and function oriented design
Naveen Sagayaselvaraj
 
University Database Management Project
Kavi
 
Architecture design in software engineering
Preeti Mishra
 
Data dictionary
Surbhi Panhalkar
 
CHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddel
mohamed khalaf alla mohamedain
 

Similar to Application architectures - Software Architecture and Design (20)

PDF
Constructing a software requirements specification and design for electronic ...
Ra'Fat Al-Msie'deen
 
PPT
Hard work matters for everyone in everytbing
lojob95766
 
DOCX
Erp application
Akshara S
 
DOCX
Airline ticket reservation system
SH Rajøn
 
PDF
A Study of Software Size Estimation with use Case Points
ijtsrd
 
PPTX
Software Development Process - REQUIREMENTS ANALYSIS / ANALYSIS OF TECHNICAL...
Mark John Lado, MIT
 
DOCX
Appendix AProof of effectiveness of some of the agile methods us.docx
armitageclaire49
 
PDF
Business rules-extraction
Maran Gothandaraman
 
PPTX
Software Engineering Diversity
SayedMokarrom
 
PDF
Cognitive Approach Towards the Maintenance of Web-Sites Through Quality Evalu...
Waqas Tariq
 
PPTX
JEE Technology Concepts in Details for web development.pptx
Mithun DSouza
 
PPTX
MONOLITHIC & MICROSERVICES difference and their properties
KingOfLuck
 
PDF
Bt0081 software engineering
Techglyphs
 
PDF
Quality Assurance. Quality Assurance Approach. White Box
Kimberly Jones
 
DOCX
Chapter 9 The People in Information Systems Learning Ob.docx
spoonerneddy
 
DOCX
Chapter 9 The People in Information Systems Learning Ob.docx
tiffanyd4
 
DOCX
Learning activity 4
Aileen Banaguas
 
PDF
A CRUD Matrix
Cheryl Brown
 
DOC
Session3
Jani Kusuma
 
DOC
Ooad quest and ans
dhivyarangasamy
 
Constructing a software requirements specification and design for electronic ...
Ra'Fat Al-Msie'deen
 
Hard work matters for everyone in everytbing
lojob95766
 
Erp application
Akshara S
 
Airline ticket reservation system
SH Rajøn
 
A Study of Software Size Estimation with use Case Points
ijtsrd
 
Software Development Process - REQUIREMENTS ANALYSIS / ANALYSIS OF TECHNICAL...
Mark John Lado, MIT
 
Appendix AProof of effectiveness of some of the agile methods us.docx
armitageclaire49
 
Business rules-extraction
Maran Gothandaraman
 
Software Engineering Diversity
SayedMokarrom
 
Cognitive Approach Towards the Maintenance of Web-Sites Through Quality Evalu...
Waqas Tariq
 
JEE Technology Concepts in Details for web development.pptx
Mithun DSouza
 
MONOLITHIC & MICROSERVICES difference and their properties
KingOfLuck
 
Bt0081 software engineering
Techglyphs
 
Quality Assurance. Quality Assurance Approach. White Box
Kimberly Jones
 
Chapter 9 The People in Information Systems Learning Ob.docx
spoonerneddy
 
Chapter 9 The People in Information Systems Learning Ob.docx
tiffanyd4
 
Learning activity 4
Aileen Banaguas
 
A CRUD Matrix
Cheryl Brown
 
Session3
Jani Kusuma
 
Ooad quest and ans
dhivyarangasamy
 
Ad

More from Ra'Fat Al-Msie'deen (20)

PDF
Smart City: Definitions, Architectures, Development Life Cycle, Technologies,...
Ra'Fat Al-Msie'deen
 
PDF
ScaMaha: A Tool for Parsing, Analyzing, and Visualizing Object-Oriented Softw...
Ra'Fat Al-Msie'deen
 
PDF
ScaMaha: A Tool for Parsing, Analyzing, and Visualizing Object-Oriented Softw...
Ra'Fat Al-Msie'deen
 
PDF
Software evolution understanding: Automatic extraction of software identifier...
Ra'Fat Al-Msie'deen
 
PDF
FeatureClouds: Naming the Identified Feature Implementation Blocks from Softw...
Ra'Fat Al-Msie'deen
 
PDF
Requirements Traceability: Recovering and Visualizing Traceability Links Betw...
Ra'Fat Al-Msie'deen
 
PDF
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports
Ra'Fat Al-Msie'deen
 
PDF
Supporting software documentation with source code summarization
Ra'Fat Al-Msie'deen
 
PDF
SoftCloud: A Tool for Visualizing Software Artifacts as Tag Clouds.pdf
Ra'Fat Al-Msie'deen
 
PDF
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports.pdf
Ra'Fat Al-Msie'deen
 
PDF
Requirements Traceability: Recovering and Visualizing Traceability Links Betw...
Ra'Fat Al-Msie'deen
 
PDF
Automatic Labeling of the Object-oriented Source Code: The Lotus Approach
Ra'Fat Al-Msie'deen
 
PDF
Detecting commonality and variability in use-case diagram variants
Ra'Fat Al-Msie'deen
 
PDF
Naming the Identified Feature Implementation Blocks from Software Source Code
Ra'Fat Al-Msie'deen
 
PPTX
Planning and writing your documents - Software documentation
Ra'Fat Al-Msie'deen
 
PPTX
Requirements management planning & Requirements change management
Ra'Fat Al-Msie'deen
 
PPTX
Requirements change - requirements engineering
Ra'Fat Al-Msie'deen
 
PPTX
Requirements validation - requirements engineering
Ra'Fat Al-Msie'deen
 
PPTX
Software Documentation - writing to support - references
Ra'Fat Al-Msie'deen
 
PPTX
Algorithms - "heap sort"
Ra'Fat Al-Msie'deen
 
Smart City: Definitions, Architectures, Development Life Cycle, Technologies,...
Ra'Fat Al-Msie'deen
 
ScaMaha: A Tool for Parsing, Analyzing, and Visualizing Object-Oriented Softw...
Ra'Fat Al-Msie'deen
 
ScaMaha: A Tool for Parsing, Analyzing, and Visualizing Object-Oriented Softw...
Ra'Fat Al-Msie'deen
 
Software evolution understanding: Automatic extraction of software identifier...
Ra'Fat Al-Msie'deen
 
FeatureClouds: Naming the Identified Feature Implementation Blocks from Softw...
Ra'Fat Al-Msie'deen
 
Requirements Traceability: Recovering and Visualizing Traceability Links Betw...
Ra'Fat Al-Msie'deen
 
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports
Ra'Fat Al-Msie'deen
 
Supporting software documentation with source code summarization
Ra'Fat Al-Msie'deen
 
SoftCloud: A Tool for Visualizing Software Artifacts as Tag Clouds.pdf
Ra'Fat Al-Msie'deen
 
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports.pdf
Ra'Fat Al-Msie'deen
 
Requirements Traceability: Recovering and Visualizing Traceability Links Betw...
Ra'Fat Al-Msie'deen
 
Automatic Labeling of the Object-oriented Source Code: The Lotus Approach
Ra'Fat Al-Msie'deen
 
Detecting commonality and variability in use-case diagram variants
Ra'Fat Al-Msie'deen
 
Naming the Identified Feature Implementation Blocks from Software Source Code
Ra'Fat Al-Msie'deen
 
Planning and writing your documents - Software documentation
Ra'Fat Al-Msie'deen
 
Requirements management planning & Requirements change management
Ra'Fat Al-Msie'deen
 
Requirements change - requirements engineering
Ra'Fat Al-Msie'deen
 
Requirements validation - requirements engineering
Ra'Fat Al-Msie'deen
 
Software Documentation - writing to support - references
Ra'Fat Al-Msie'deen
 
Algorithms - "heap sort"
Ra'Fat Al-Msie'deen
 
Ad

Recently uploaded (20)

PDF
Generative AI: it's STILL not a robot (CIJ Summer 2025)
Paul Bradshaw
 
PPT
Talk on Critical Theory, Part One, Philosophy of Social Sciences
Soraj Hongladarom
 
PPTX
grade 5 lesson matatag ENGLISH 5_Q1_PPT_WEEK4.pptx
SireQuinn
 
PDF
The Different Types of Non-Experimental Research
Thelma Villaflores
 
PPTX
How to Handle Salesperson Commision in Odoo 18 Sales
Celine George
 
PPTX
I AM MALALA The Girl Who Stood Up for Education and was Shot by the Taliban...
Beena E S
 
PDF
ARAL-Orientation_Morning-Session_Day-11.pdf
JoelVilloso1
 
PPTX
PATIENT ASSIGNMENTS AND NURSING CARE RESPONSIBILITIES.pptx
PRADEEP ABOTHU
 
PPTX
Stereochemistry-Optical Isomerism in organic compoundsptx
Tarannum Nadaf-Mansuri
 
PDF
ARAL_Orientation_Day-2-Sessions_ARAL-Readung ARAL-Mathematics ARAL-Sciencev2.pdf
JoelVilloso1
 
PPTX
Post Dated Cheque(PDC) Management in Odoo 18
Celine George
 
PPTX
GRADE-3-PPT-EVE-2025-ENG-Q1-LESSON-1.pptx
EveOdrapngimapNarido
 
PPT
Talk on Critical Theory, Part II, Philosophy of Social Sciences
Soraj Hongladarom
 
PPTX
How to Manage Large Scrollbar in Odoo 18 POS
Celine George
 
PDF
Women's Health: Essential Tips for Every Stage.pdf
Iftikhar Ahmed
 
PPTX
How to Create a PDF Report in Odoo 18 - Odoo Slides
Celine George
 
PPTX
PPT-Q1-WK-3-ENGLISH Revised Matatag Grade 3.pptx
reijhongidayawan02
 
PPTX
How to Create Odoo JS Dialog_Popup in Odoo 18
Celine George
 
PPTX
Identifying elements in the story. Arrange the events in the story
geraldineamahido2
 
PDF
Biological Bilingual Glossary Hindi and English Medium
World of Wisdom
 
Generative AI: it's STILL not a robot (CIJ Summer 2025)
Paul Bradshaw
 
Talk on Critical Theory, Part One, Philosophy of Social Sciences
Soraj Hongladarom
 
grade 5 lesson matatag ENGLISH 5_Q1_PPT_WEEK4.pptx
SireQuinn
 
The Different Types of Non-Experimental Research
Thelma Villaflores
 
How to Handle Salesperson Commision in Odoo 18 Sales
Celine George
 
I AM MALALA The Girl Who Stood Up for Education and was Shot by the Taliban...
Beena E S
 
ARAL-Orientation_Morning-Session_Day-11.pdf
JoelVilloso1
 
PATIENT ASSIGNMENTS AND NURSING CARE RESPONSIBILITIES.pptx
PRADEEP ABOTHU
 
Stereochemistry-Optical Isomerism in organic compoundsptx
Tarannum Nadaf-Mansuri
 
ARAL_Orientation_Day-2-Sessions_ARAL-Readung ARAL-Mathematics ARAL-Sciencev2.pdf
JoelVilloso1
 
Post Dated Cheque(PDC) Management in Odoo 18
Celine George
 
GRADE-3-PPT-EVE-2025-ENG-Q1-LESSON-1.pptx
EveOdrapngimapNarido
 
Talk on Critical Theory, Part II, Philosophy of Social Sciences
Soraj Hongladarom
 
How to Manage Large Scrollbar in Odoo 18 POS
Celine George
 
Women's Health: Essential Tips for Every Stage.pdf
Iftikhar Ahmed
 
How to Create a PDF Report in Odoo 18 - Odoo Slides
Celine George
 
PPT-Q1-WK-3-ENGLISH Revised Matatag Grade 3.pptx
reijhongidayawan02
 
How to Create Odoo JS Dialog_Popup in Odoo 18
Celine George
 
Identifying elements in the story. Arrange the events in the story
geraldineamahido2
 
Biological Bilingual Glossary Hindi and English Medium
World of Wisdom
 

Application architectures - Software Architecture and Design

  • 1. Chapter 1 – Architectural Design Mutah University Faculty of IT Department of Software Engineering Dr. Ra’Fat A. AL-Msie’Deen [email protected] https://rafat66.github.io/Al-Msie-Deen/ Software Architecture and Design
  • 2. Reference - Text Book:  Chapter 6 of Software Engineering book - by Ian Sommerville. l0th Edition. Addison Wesley, 2015, ISBN- 10: 0137035152. 2
  • 3. Topics covered  Architectural design decisions  Architectural views  Architectural patterns  Application architectures 318/03/2020
  • 5. Application architectures  Application systems are intended to meet a business or an organizational need.  All businesses have much in common—they need to hire people, issue invoices, keep accounts, and so on.  Businesses operating in the same sector use common sector specific applications.  Therefore, as well as general business functions, all phone companies need systems to connect and meter calls, manage their network and issue bills to customers.  Consequently, the application systems used by these businesses also have much in common. 5
  • 6. Application architectures … cont.  These commonalities have led to the development of software architectures that describe the structure and organization of particular types of software systems.  Application architectures encapsulate the principal characteristics of a class of systems.  For example, in real-time systems, there might be generic architectural models of different system types, such as data collection systems or monitoring systems.  Although instances of these systems differ in detail, the common architectural structure can be reused when developing new systems of the same type. 6
  • 7. Application architectures … cont.  The application architecture may be reimplemented when developing new systems.  However, for many business systems, application architecture reuse is implicit when generic application systems are configured to create a new application.  We see this in the widespread use of Enterprise Resource Planning (ERP) systems and off-the-shelf configurable application systems, such as systems for accounting and stock control.  These systems have a standard architecture and components.  The components are configured and adapted to create a specific business application. 7
  • 8. Application architectures … cont.  Application systems are designed to meet an organizational need.  As businesses have much in common, their application systems also tend to have a common architecture that reflects the application requirements.  A generic application architecture is an architecture for a type of software system that may be configured and adapted to create a system that meets specific requirements. 818/03/2020
  • 9. Use of application architectures  For example, a system for supply chain management can be adapted for different types of suppliers, goods, and contractual arrangements.  As a software designer, you can use models of application architectures in a number of ways: 1. As a starting point for the architectural design process  If you are unfamiliar with the type of application that you are developing, you can base your initial design on a generic application architecture.  You then specialize this for the specific system that is being developed. 9
  • 10. Use of application architectures … cont.  As a software designer, you can use models of application architectures in a number of ways: 2. As a design checklist  If you have developed an architectural design for an application system, you can compare this with the generic application architecture.  You can check that your design is consistent with the generic architecture. 10
  • 11. Use of application architectures … cont.  As a software designer, you can use models of application architectures in a number of ways: 3. As a way of organizing the work of the development team  The application architectures identify stable structural features of the system architectures, and in many cases, it is possible to develop these in parallel.  You can assign work to group members to implement different components within the architecture. 11
  • 12. Use of application architectures … cont.  As a software designer, you can use models of application architectures in a number of ways: 4. As a means of assessing components for reuse  If you have components you might be able to reuse, you can compare these with the generic structures to see whether there are comparable components in the application architecture. 12
  • 13. Use of application architectures … cont.  As a software designer, you can use models of application architectures in a number of ways: 5. As a vocabulary for talking about applications  If you are discussing a specific application or trying to compare applications, then you can use the concepts identified in the generic architecture to talk about these applications. 13
  • 14. Use of application architectures … cont. 1) As a starting point for architectural design. 2) As a design checklist. 3) As a way of organizing the work of the development team. 4) As a means of assessing components for reuse. 5) As a vocabulary for talking about application types. 14
  • 15. Application architectures … cont.  There are many types of application system, and, in some cases, they may seem to be very different.  However, superficially dissimilar applications may have much in common and thus share an abstract application architecture.  I illustrate this by describing the architectures of two types of application: 15
  • 16. Examples of application types 1. Transaction processing applications  Transaction processing applications are database- centered applications that process user requests for information and update the information in a database.  These are the most common types of interactive business systems.  They are organized in such a way that user actions can’t interfere with each other and the integrity of the database is maintained.  This class of system includes interactive banking systems, e-commerce systems, information systems, and booking systems. 16
  • 17. Examples of application types … cont. 2. Language processing systems  Language processing systems are systems in which the user’s intentions are expressed in a formal language, such as a programming language.  The language processing system processes this language into an internal format and then interprets this internal representation.  The best known language processing systems are compilers, which translate high-level language programs into machine code.  However, language processing systems are also used to interpret command languages for databases and information systems, and markup languages such as XML.
  • 18. Examples of application types … cont.  I have chosen these particular types of system because a large number of web based business systems are transaction processing systems, and all software development relies on language processing systems. 18/03/2020 18
  • 19. Examples of application types … cont.  Data processing applications  Data driven applications that process data in batches without explicit user intervention during the processing.  Transaction processing applications  Data-centered applications that process user requests and update information in a system database.  Event processing systems  Applications where system actions depend on interpreting events from the system’s environment.  Language processing systems  Applications where the users’ intentions are specified in a formal language that is processed and interpreted by the system. 19
  • 20. Application type examples  Two very widely used generic application architectures are transaction processing systems and language processing systems.  Transaction processing systems  E-commerce systems;  Reservation systems.  Language processing systems  Compilers;  Command interpreters. 20
  • 21. Key points  Models of application systems architectures help us understand and compare applications, validate application system designs and assess large-scale components for reuse. 21
  • 23. Transaction processing systems  Transaction processing systems are designed to process user requests for information from a database, or requests to update a database (Lewis, Bernstein, and Kifer 2003).  Technically, a database transaction is part of a sequence of operations and is treated as a single unit (an atomic unit).  All of the operations in a transaction have to be completed before the database changes are made permanent.  This ensures that failure of operations within a transaction does not lead to inconsistencies in the database. 23
  • 24. Transaction processing systems … cont.  From a user perspective, a transaction is any coherent sequence of operations that satisfies a goal, such as “find the times of flights from London to Paris.”  If the user transaction does not require the database to be changed, then it may not be necessary to package this as a technical database transaction. 18/03/2020 24
  • 25. Transaction processing systems … cont.  An example of a database transaction is a customer request to withdraw money from a bank account using an ATM.  This involves checking the customer account balance to see if sufficient funds are available, modifying the balance by the amount withdrawn and sending commands to the ATM to deliver the cash.  Until all of these steps have been completed, the transaction is incomplete and the customer accounts database is not changed. 25
  • 26. Transaction processing systems … cont.  Transaction processing systems are usually interactive systems in which users make asynchronous requests for service.  Figure 1 illustrates the conceptual architectural structure of transaction processing applications.  First, a user makes a request to the system through an I/O processing component.  The request is processed by some application-specific logic.  A transaction is created and passed to a transaction manager, which is usually embedded in the database management system.  After the transaction manager has ensured that the transaction is properly completed, it signals to the application that processing has finished. 26
  • 27. Transaction processing systems … cont.  Process user requests for information from a database or requests to update the database.  From a user perspective a transaction is:  Any coherent sequence of operations that satisfies a goal;  For example - find the times of flights from London to Paris.  Users make asynchronous requests for service which are then processed by a transaction manager. 27
  • 28. The structure of transaction processing applications 28 Figure 1. The structure of transaction processing applications.
  • 29. Transaction processing systems … cont.  Transaction processing systems may be organized as a “pipe and filter” architecture, with system components responsible for input, processing, and output.  For example, consider a banking system that allows customers to query their accounts and withdraw cash from an ATM.  The system is composed of two cooperating software components — the ATM software and the account processing software in the bank’s database server.  The input and output components are implemented as software in the ATM, and the processing component is part of the bank’s database server.  Figure 2 shows the architecture of this system, illustrating the functions of the input, process, and output components. 29
  • 30. The software architecture of an ATM system 30 Figure 2. The software architecture of an ATM system.
  • 31. Key points  Models of application systems architectures help us understand and compare applications, validate application system designs and assess large-scale components for reuse.  Transaction processing systems are interactive systems that allow information in a database to be remotely accessed and modified by a number of users. 31
  • 33. Information systems  All systems that involve interaction with a shared database can be considered to be transaction-based information systems.  An information system allows controlled access to a large base of information, such as a library catalog, a flight timetable, or the records of patients in a hospital.  Information systems are almost always web-based systems, where the user interface is implemented in a web browser. 33
  • 34. Information systems … cont.  Figure 1 presents a very general model of an information system.  The system is modeled using a layered approach (discussed in Section 6.3) where the top layer supports the user interface and the bottom layer is the system database.  The user communications layer handles all input and output from the user interface, and the information retrieval layer includes application-specific logic for accessing and updating the database.  The layers in this model can map directly onto servers in a distributed Internet-based system. 34
  • 35. Layered information system architecture 35Figure 1. Layered information system architecture.
  • 36. Information systems architecture  Information systems have a generic architecture that can be organized as a layered architecture.  These are transaction-based systems as interaction with these systems generally involves database transactions.  Layers include:  The user interface  User communications  Information retrieval  System database 36
  • 37. The architecture of the Mentcare system  As an example of an instantiation of this layered model, Figure 2 shows the architecture of the Mentcare system.  Recall that this system maintains and manages details of patients who are consulting specialist doctors about mental health problems.  I have added detail to each layer in the model by identifying the components that support user communications and information retrieval and access. 18/03/2020 37
  • 38. The architecture of the Mentcare system … cont. 38 Figure 2. The architecture of the Mentcare system.
  • 39. The architecture of the Mentcare system … cont. 1) The top layer is a browser-based user interface. 2) The second layer provides the user interface functionality that is delivered through the web browser. It includes components to allow users to log in to the system and checking components that ensure that the operations they use are allowed by their role. This layer includes form and menu management components that present information to users, and data validation components that check information consistency. 39
  • 40. The architecture of the Mentcare system … cont. 3) The third layer implements the functionality of the system and provides components that implement system security, patient information creation and updating, import and export of patient data from other databases, and report generators that create management reports. 4) Finally, the lowest layer, which is built using a commercial database management system, provides transaction management and persistent data storage. 40
  • 41. Web-based information systems  Information and resource management systems are sometimes also transaction processing systems.  For example, e-commerce systems are Internet-based resource management systems that accept electronic orders for goods or services and then arrange delivery of these goods or services to the customer.  In an e-commerce system, the application-specific layer includes additional functionality supporting a “shopping cart” in which users can place a number of items in separate transactions, then pay for them all together in a single transaction. 41
  • 42. Web-based information systems … cont.  The organization of servers in these systems usually reflects the four-layer generic model presented in Figure 1.  These systems are often implemented as distributed systems with a multitier client server/architecture. 42
  • 43. Layered information system architecture 43 Figure 1. Layered information system architecture.
  • 44. Web-based information systems … cont. 1. The web server is responsible for all user communications, with the user interface implemented using a web browser; 2. The application server is responsible for implementing application-specific logic as well as information storage and retrieval requests; 3. The database server moves information to and from the database and handles transaction management. 18/03/2020 44
  • 45. Web-based information systems … cont.  Information and resource management systems are now usually web-based systems where the user interfaces are implemented using a web browser.  For example, e-commerce systems are Internet-based resource management systems that accept electronic orders for goods or services and then arrange delivery of these goods or services to the customer.  In an e-commerce system, the application-specific layer includes additional functionality supporting a ‘shopping cart’ in which users can place a number of items in separate transactions, then pay for them all together in a single transaction. 45
  • 46. Server implementation  These systems are often implemented as multi-tier client server/architectures.  The web server is responsible for all user communications, with the user interface implemented using a web browser;  The application server is responsible for implementing application-specific logic as well as information storage and retrieval requests;  The database server moves information to and from the database and handles transaction management. 46
  • 47. Server implementation … cont.  Using multiple servers allows high throughput and makes it possible to handle thousands of transactions per minute.  As demand increases, servers can be added at each level to cope with the extra processing involved. 47
  • 48. Key points  Models of application systems architectures help us understand and compare applications, validate application system designs and assess large-scale components for reuse.  All systems that involve interaction with a shared database can be considered to be transaction-based information systems.  An information system allows controlled access to a large base of information, such as a library catalog.  Information systems are almost always web-based systems, where the user interface is implemented in a web browser. 48
  • 49. Chapter 1 – Architectural Design Mutah University Faculty of IT Department of Software Engineering Dr. Ra’Fat A. AL-Msie’Deen [email protected] https://rafat66.github.io/Al-Msie-Deen/ Software Architecture and Design