Download as pdf or txt
Download as pdf or txt
You are on page 1of 6

Software Architecture Styles and Patterns

Nimra Akram Kinza Saeed Ahsan Ilyas


Dept. of Software Engineering Dept. of Software Engineering Dept. of Software Engineering
Fatima Jinnah Women University Fatima Jinnah Women University Fatima Jinnah Women University
Rawalpindi, Pakistan Rawalpindi, Pakistan Rawalpindi, Pakistan
nimra.akram.m@gmail.com kinzasaeed1998@gmail.com ahsenilyas@fjwu.edu.pk

Abstract— This paper focuses on software architecture styles requirements and it should also exhibit some quality attributes
and patterns. We can define software architecture as a such as portability, usability, maintainability, etc. [6]
structured solution that meets all of the technical requirements
as well as operational requirements and optimizing quality In this paper we discuss MVC (Model-View-Controller)
attributes i.e. performance, reliability, manageability, and architecture pattern and its successors i.e. MVP (Model-View-
security. Software architecture is serving as the foundation for Presenter) and MVVM (Model-View-View-Model). We
all phases of the Software Development Life Cycle (SDLC). It discuss about others architecture patterns also Layered,
helps the software developer to develop software correctly and Component-Based and Object Oriented Architecture Styles.
to choose the architecture style according to his/her project After comparing all these six architecture patterns and which
requirements. In this paper, we present architecture styles and architecture pattern have better advantages although
design phases along with all of the recent advancement and we developers choice also matters according to his/her project
compare all of the architecture styles based on quality attributes requirements but this comparison will minimize the confusion
they offers. In this paper, we try to elaborate on the advantage, which architecture to choose. We will be discussing the results
disadvantages, and application areas of each architectural style. in section 4.
Keywords— (SDLC, Software Architecture, Architecture Patterns, This paper is organized as follows. Section 2 describes the
Software Architectural Styles, Architecture Components, related work (Literature Review). Section 3 contains research
Connector, platform dependent and independent component questions and its answers. Section 4 contains findings i.e.
architecture and functional service architecture) proposed method, its step by step implementation and also the
necessary parameters are described. Section 5 contains study
methodology. Section 6 covers results and explanation.
I. INTRODUCTION Section 7 covers limitations of the study. Section 8 concludes
the paper. Finally, Section 9 covers the future research.
The architecture style is an abstract structure which is
developed for a group of the systems to have a general solution
for repeated problems which arises mostly in development II. RELATED WORKS
processes of software [1] The correct decision of architectural
pattern is important for the accomplishment of the system
design of software, an inappropriate choice of architecture Software architectural style has the responsibility to give
pattern can lead to bad results. The engineer should know connectors and the components with the principles on how
software architectures so he/she can make the right choice they ought be joined, improve partitions, allow reusability of
among different architectures. System representation is very design by offering solutions to repeated problems and
important for analysis and also for the description of high- explains a specific method in order to configure the set of
level properties of a complex framework. [2] Although we collection of the components that have a module with error
have some measures i.e. FEAF and TOGAF but there is no free interfaces, changeable reusable and connectors of
understanding that which of the architecture layer, its communication connect between the modules. Every
dependencies, and artifact types compromise the pith of architecture style depicts a framework family which
enterprise architecture. [3] incorporated set of component types that that play out a
Architectural styles are important because it can necessary function by the system and semantic constraints
differentiate between classes of design through experiential that explains how the components ought to be coordinated to
evidence and by using reasoning that each class has some form the system and topological format of the components
certain properties and as for software pattern it provides a showing run time inter-connection. As, there is diversity of
reusable package of generic and repeatable solutions for architectural styles for the software development but at last
recurring problems of the software and the system design. everything relies on project requirements and developer’s
[4,5]. Architecture is called as early design phase and it is step choice. [1]
in SDLC because it contains all functional and non-functional
Category Architectural Style to the software system which have to be developed. Software
Structure Layered, Component- architectures guarantee advantages to both development as
Based and Object Oriented well as maintenance also. The design should take advantage
Architecture Styles of improved abstractions, analysis and also notation.
Architectural definitions ought to provide best specifications
Table 1 showing category (Patterns) and Architecture Style for the programming activities, it also serves as the system
An architectural pattern determines vocabulary of build, the specifications and the code will be less inclined to
connectors and components how that can be used for diverge. The maintenance ought to have benefit in three
instances of the style which constraints i.e., no cycle. The ways:
software architecture is responsible to represent the software 1. Half of the maintenance efforts should be devoted to
artifact e.g. software services and data structures [2,3]. understanding the framework (system) in anticipation of
Quality attributes are the important factors in software rolling out any improvements.
architecture e.g. performance is measured in latency and 2. And explicit definition of architecture ought to lessen
throughput. And for the performance arrival pattern of event this expense
is important it can be either one of it i.e. periodic, sporadic, 3. The system architectures will be degrading after some
and stochastic. [4] time, when we carry out the architectural definition in
the maintenance it ought to diminish this inclination
towards degradation. [7, 8]. Aoyama describes that the
evolution of architecture can be either continuous or
discontinuous. We consider two three types of pattern
evolutions i.e.
1. The pattern can evolve without changing pattern
itself.
2. The new architecture should contain newest pattern
not the oldest pattern.
3. The new pattern should be add in the architecture
and should be able to interact with the existing pattern
also and the newest pattern will be added when there
was no pattern before. [9]
Architecture exists at different levels of
abstraction i.e. World Wide Web it is component based
architecture although no single piece of software
implements the whole architecture. [10] Decision
Table 2 showing Pattern Template making has an important role in the creation of Software
Architecture. Such decisions are required throughout the
software development life cycle and to attain the quality
It is important because it is a structured document and we
attributes of a software product. Decisions which are
present the necessary guidelines to document software
made during architectural design have direct impact on
pattern in a template. [5]
software quality. Many design patterns are available in
software architecture and these design patterns help
The key principle of software architecture are:
achieve quality attributes in a software product but
decision-making for the solution of these design patterns
1. It should only describes how to achieve user/customer
is still an issue. A new perspective of selection of design
requirements while not disclosing any of the
pattern for a given problem is presented. PRIC
implementation details.
(Problem, Requirement Identification, Compatible
2. Architecture should be made carefully and also
design pattern) model is proposed which helps decision-
considering the fact that there is flexibility factor i.e. the
making of selection of design pattern to attain the
software system should be flexible and should be able to
required quality attributes. [11]
handle to any changes and maintenance in the future.
As quality attributes are considered major drivers
3. Architecture should be made in such a way that it can
of the design process to achieve high quality systems,
fulfill all the functional requirements as well as non-
the design decisions that drive the selection and use of
functional requirements of the customer.
specific quality properties and vice versa are closely
4. Architecture ought to predict any risk that can happen to
related. ADD (Architectural Design Decision) which
system in future.
include tools, support for managing ADDs, and human
5. Architecture should be able to support optimum
aspects in architectural decision making (ADM). The
utilization of system resources [6].
literature review should be getting-started guide for the
The main purpose of software architecture is to find high
level structures. And these structures are developed according
researchers who are entering in the research phase of Developing regular ways to make the relation of quality
ADM. [12, 13] attributes of the software system with system’s architecture
provides a comprehensive base for making decisions about
design job and empowers engineers to compose sensibly
III. RESEARCH QUESTIONS accurate estimates about a software system’s attributes which
are free from partiality and unseen assumption The major
This research mainly concentrated on these questions: goal is the capability to quantitatively assess and adjust
numerous software quality attributes to reach at a good
1. Which software architecture style and pattern are system.
most suitable?
3. What is the major function of high-level
Layered architecture is most common and suitable architecture?
architectural style because it is frequently built round the
database, and most of the business applications must have The key function of the High-Level Architecture is to create
functionality to store data. a common infrastructure, for a construction other component
This is to some degree of a self-fulfilling prediction. Almost of a software system. The infrastructure is used and then, re-
all the prime and best software frameworks like Java EE, used by further components that depend on interaction and
Express and Drupal were constructed with this architectural other resources by HLA.
style in mind, so most of the software applications made with An HLA is a group of correlated standards which collectively
them logically come out in this architecture. define a unified method and common architecture to making
Code is arranged into the top layer reaches the lower layers interoperable replication systems. It comprises major
one by one until reach the bottom layer. So, it is very common functional foundations, interfaces, design rules and
for programmers to work on different layers independently. pertaining to all DoD simulation apps, and provided that a
Each layer has its own functionality so, maintaining the common framework inside which precise system architecture
checking of data consistency become easy. can be well-defined. The aims of the HLA are to:
The MVC that is the most popular and a standard software
development method is basically layered architecture. The i. To establish common architecture to simplify the
model layer is above database which often grasp business interfaces of all types of Modeling and
logic and have information about database. The view layer is Simulation including the real time, quicker than
at top which is frequently HTML, CSS and the JavaScript the real time, the event driven simulations & the
(active embedded code). The controller, which is basically in command and the control systems.
the middle have numerous principles and approaches for ii. Enable the reuse of Model & the simulation
altering the data sharing between the view and model. The components.
architecture i.e. layer makes the system maintainable, testable The use of RTI software is needed to support the
and the role assignation easy. Updating and enhancement of confederation execution operation. The RTI software delivers
the separate layer is also become easy. a set of service area, as clear by the unite interface
description, used by unites to coordinate the operations &
2. What is the role of quality attributes in software data exchange throughout the runtime execution.
architecture? HLA has three parts.

Quality attributes such as performance, reliability, security, i. Rules: that must obey the standards. Federates &
modifiability, maintenance and usability have an important Federations that describe relationships amongst
effect on the software architecture. It is essential for an federating submissive simulations.
Architect to comprehend his design in terms of software ii. Federate: an HLA entity of compliant simulation.
quality attributes. Many safety critical application used iii. Federation: multiple Federates connected through
software where any mistake take lives. Safety critical the RTI.
applications must have the following features:
4. What are main challenges of the software
i. It must have long life cycles and involve architecture and the design phase?
evolutionary upgrading. i. Problems in requirement elicitation
ii. The applications must have uninterrupted operation. process.
iii. The applications should be able to interact with a. Defining the objectives and scope of
different hardware’s. the system.
iv. The safety critical applications should give b. Collaboration among stakeholders of
importance to software quality attributes i.e. safety, the system.
portability, interoperability, timeliness etc. c. Volatile requirements.
Solution.
Prototyping, interviews and other a. 13% of the architect use attack treeand threat
inspection techniques are helpful to solve models for designing software architecture.
requirement related problems. b. 26% are believe on the utilization of
ii. Problems in choosing design inappropriate cases during designing process.
methodologies. c. 40% uses secure design principles to mitigate
a. Reliability with risks.
b. Quality d. 20% are agreed on the utilization of existing
c. Complexity software.
d. Conformity 2. Most difficult task in software design process.
e. Changeability a. 40% are agreed on creating consistency.
f. Invisibility b. 26% believes that maintenance is most
Solution challenging.
Making increments and delivered to client c. 20% are agreed on feasibility.
can helpful to identify the problems in this d. 13% thinks that following the standards is most
regard. difficult task.
iii. Problems related to the using of Tools and 3. Most Critical deficiency in design.
technologies. a. 40% are agreed on flexibility.
a. Usability, Complexity. b. 33% and 26% are agreed on global acceptance
b. Required creative skills and scalability deficiencies respectively.
c. Incorporations between teams 4. Design tools & technologies
Solution a. 33% uses commercial tools for designing.
Commercial tools should be used because b. 26% and 20% uses open source tools and free
these are easy and reliable to use. tool respectively. These are all easily available.
iv. Problems in selecting Software process 5. Design methodologies
model a. 26% and 20% use brainstorming and
a. Applying the wrong process for prototyping techniques to elicitate
software product requirements.
b. Use of less code generated by b. 10% are agreed on interviews and
automated tools. questionnaires while 6% prefers case study.
Solution 6. Volatile requirements handling.
Iterative model is helpful to reduce a. 40% people believes that volatility can be
mistakes at this phase because increment reduced by freezing requirements.
can measure the performance of model at b. 33% are agreed on reducing modifications.
early stages. c. 26% believed that we would ignore changes.
v. Architecture & design is risky and costly 7. Best designing method
due to the following reasons: a. 33% and 25% are agreed on iterative method
a. Effects of design and cost cannot be and agile method respectively.
determined and not understandable. b. 20% and 13% prefers spiral and waterfall
b. Continuous change of requirements respectively.
put design into high risk. 8. Design documentation.
c. Top-down method is not suitable for a. 33% believes that changeability is the big
inherited systems. challenge in documentation.
Solution b. 26% are agreed on flexibility and
Requirements should be fixed to understandability.
reduce changing requirements to c. 13% are agreed in invisibility in documentation.
reduce cost and risk of failure of a
software system.
V. STUDY METHODOLOGY
IV. FINDINGS
Related work of many different research papers is used
to identify the importance and comparison of software
Based on survey of UK Department of Information architectural styles and the patterns. The primary focus is on
Technology. software architecture because architecture must be selected
1. Secure architecture and design perfectly and correctly according to project requirements and
should be able extract all the benefits. We compared these
patterns on quality attributes and other major factors. In order
to suggest the suitable pattern we did brainstorming, study
research papers and read the architecture documentation. The
main challenge is to find architectural description therefore, 2. Platform Independent Component Architecture
we observed and explained the architectural description of (PICA)
open -source software’s.
We decompose software into component to realize it.
VI. RESULTS From the viewing platform of the architecture, these
decomposed components have to perform their execution
Software Architecture and design is a main activity of depend on their roles that they offer including the behavior of
every software development cycle. The techniques which can the interface. The definition of software components is free
be used in software architecture depends on the nature of of execution platform, but we ought to specify equivalent
project and choice of the developer. The study of UK behavior, real time behavior, & probabilistic behavior in term
department of information technology shows that different of interfaces.
developers have different views about using different
techniques, models and preferences. But the projects 3. Platform Dependent Software and Hardware
prototyping, and incremental implementation guides the Architecture (PDSHA)
developers to develop fault free software architecture. Every
prototype and increment can measure the system Finally, (PDSHA) has to be put into effect on a carefully
performance and customer satisfaction. selected hardware platform. Now this time of deployment of
the components of software & their development. Now,
components of COA must be sovereign deployable
VII. CONCLUSION components that are lonely associated to their platforms only
by own their interfaces. Despite these methods, we want a
We have highlighted some problems in this paper which suitable interface concept, behaviour of the interfaces, & the
are related to architecture and design phase. Every developer system conformation in standings of the interfaces and
has to meet with these challenges to complete his project. practices for their requirement. In conclusion, we ought to
This paper covers all the frequently occur problems in define the framework of the software, the suppositions, and
designing a software architecture that can be faced by a also the behaviours
software architect. We also give suggestion above to solve
these problems. By following these suggestions, we can
lessen the problems in designing software architecture. The IX. REFERENCES
success of the software architecture depends upon the [1] Akmel, Feidu, et al. "AComparative ANALYSIS ON
developer and his methods of development, but he can reduce SOFTWARE ARCHITECTURE STYLES." International
his difficulties by following standards. Standard will take the Journal in Foundations of Computer Science &
architecture to the success. Technology 7.5/6 (2017): 11-22.
[2] David Garlan, Mary Shaw.”An Introduction to Software
Architecture.” Technical Report (1994).
VIII. FUTURE RESEARCH [3] Winter, Robert, and Ronny Fischer. "Essential layers,
artifacts, and dependencies of enterprise architecture." 2006
In the future, software architects are trying to follow 10th IEEE International Enterprise Distributed Object
the idea of platform-dependent and independent Computing Conference Workshops (EDOCW'06). IEEE,
architectures. The architecture will be based on the following 2006.
three in the future. [4] Klein, Mark H., et al. "Attribute-based architecture
styles." Working Conference on Software Architecture.
1. Functional Service Architecture Springer, Boston, MA, 1999.
[5] Ahmad, Aakash, et al. "ARCHITECTING OF MOBILE
It describes almost all functionality provided by a CLOUD SOFTWARE."
software system to world i.e. software systems e.g. latest [6] Sharma, Anubha, Manoj Kumar, and Sonali Agarwal. "A
phones are offering a huge number of facilities, it is important complete survey on software architectural styles and
to structure all the facilities into a functional service patterns." Procedia Computer Science 70 (2015): 16-28.
architecture and to define equally behaviour of the interfaces [7] Rani, Neha. "Review on Application of Pipe and Filter
i.e. the functionality providing to the exterior and the Architectural Style." Int. J. Curr. Trends Eng. Res 2.9 (2017):
common connections which describe the functional 7-12.
dependencies, known as features interactions. So, required a [8] Shaw, Mary, et al. "Abstractions for software architecture
description technique takes both interface performances, and tools to support them." IEEE transactions on software
structuring, and the dependencies. Specifications of the engineering 21.4 (1995): 314-335.
interfaces ought to depend on supposition related to their [9] Harrison, Neil B., Erich Gubler, and Danielle Skinner.
specific conditions. "Software architecture pattern morphology in open-source
systems." 2016 13th Working IEEE/IFIP Conference on
Software Architecture (WICSA). IEEE, 2016.
[10] Rotta, Randolf, Vladimir Nikolov, and Lutz Schubert.
"Software Architecture Fundamentals." (2016).
[11] Aslam, Tehreem, et al. "Quality based software
architectural decision making." 2019 International
Conference on Communication Technologies (ComTech).
IEEE, 2019.
[12] Lytra, Ioanna, et al. "Quality attributes use in
architecture design decision methods: research and
practice." Computing 102.2 (2020): 551-572.
[13] Bhat, Manoj, et al. "The Evolution of Architectural
Decision Making as a Key Focus Area of Software
Architecture Research: a Semi-Systematic Literature
Study." 2020 IEEE International Conference on Software
Architecture (ICSA). IEEE, 2020.

You might also like