0% found this document useful (0 votes)
8 views

Week 03 - Using Software Architecture

Uploaded by

yuxuan
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views

Week 03 - Using Software Architecture

Uploaded by

yuxuan
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 25

Software Architecture And

Testing
CT059-3-2

USING SOFTWARE
ARCHITECTURE
Recap From Last Lesson

• Identify the components of Philipe Kruchten’s 4 +1 view model?

Module Code & Module Title Slide Title SLIDE 2


Slide 2
Topic Learning Outcomes

• At the end of this topic, you should be able to:


1. Create an architecture from the collective set of design
choices
2. Explain different patterns and architectures

Module Code & Module Title Slide Title SLIDE 3


Slide 3
Contents & Structure

• Creating an architectural
• Patterns and architectures

Module Code & Module Title Slide Title SLIDE 4


Slide 4
Key Terms you must be able to use

• If you have mastered this topic, you should be able to use


the following terms correctly in your assignments and
exams:
– System decomposition
– Architecture pattern
– Meta architecture

Module Code & Module Title Slide Title SLIDE 5


Slide 5Slide
(out of514)
What is Software Architecture?

✧ The process of defining a structured solution that meets


all of the technical and operational requirements, while
optimizing common quality attributes such as
performance, security, and manageability.
✧ It will impact on the quality, performance, maintainability,
and overall success of the application.
✧ Known as architecture abstraction:
▪ Architecture in the small is concerned with the
architecture of individual programs. At this level, we are
concerned with the way that an individual program is
decomposed into components.
▪ Architecture in the large is concerned with the
architecture of complex enterprise systems that include6
Module Code & Module Title Slide Title SLIDE 6
Slide 6
Creating an Architecture-1

• A software architecture begins as the result of the collective


set of design choices made by the team that created the
very first version of a system. They maybe sketches on a
whiteboard or diagrams created in a notebook.
• The initial version of software architecture is like a young child.
• Over time and through continued use and multiple release cycle
it become a mature and solid

Module Code & Module Title Slide Title SLIDE 7


Slide 7
Creating architecture-2

Should address :
– System decomposition
• structural elements, architectural components,
subsystems, sub-assemblies
– Cross-cutting concerns
• broad-scoped qualities or properties of the system
• Refer to Luke Hohmann “Creating and sustaining
winning solutions”

Module Code & Module Title Slide Title SLIDE 8


Slide 8
System Decomposition

• Build block based on system functionality.

Ecommerce

Inventory Payment
Order Subsystem
Subsystem Subsystem

Create Display
Inventory Invoice
Display Payment
Inventory Method
Module Code & Module Title Slide Title SLIDE 9
Slide 9
Cross-cutting concerns

• Related to quality attribute and non-functionality requirement of the


system

Performan
ce

Ecommerc
Availability Reliability
e

Security

Module Code & Module Title Slide Title SLIDE 10


Slide 10
What is NOT Software Architecture

• Not lower level design


– (e.g., design of component internals and algorithms)
• software architecture is not the information (or data) model
• it is also not the hardware architecture of a product to be
manufactured

Module Code & Module Title Slide Title SLIDE 11


Slide 11Slide
(out of11
14)
Patterns and Architectural

The net result of the initial creation should be :


• pragmatic/realistically approach
• proven style, emerging discipline of software patterns,
capture known solutions to recurring problems and how to
apply to new situations
• tested earlier or been used previously
• software patterns are “pre-digested” knowledge
• patterns capture-basic structural organization of
software systems, addressing the technical aspects, such
as the subsystems.

Refer to Luke Hohmann


“Creating and sustaining winning solutions”
Module Code & Module Title Slide Title SLIDE 12
Slide 12
Patterns and Architectural

• Before major software development starts, we have to


choose a suitable architecture that will provide us with the
desired functionality and quality attributes.
• Hence, we should understand different architectures,
before applying them to our design.

SDLC Stages

1. Choose 2. Analyze 3. Design 4. Software


Architecture architecture + software Developmen
decompositi component t
on

Module Code & Module Title Slide Title SLIDE 13


Slide 13
Architectural Pattern

• An architectural pattern is a general, reusable solution


to a commonly occurring problem in software architecture
within a given context.
• Architectural patterns are similar to software design
pattern but have a broader scope.
• There are architectures that are commonly used to
organize software systems. The best way to plan new
programs is to study them and understand their strengths
and weaknesses.
- Layered (n-tier) architecture
- Client-server architecture
- Model-View-Controller (MVC) architecture
- Pipe-filter architecture
Module Code & Module Title Slide Title SLIDE 14
Slide 14
1. Layered (n-tier) architecture

• This pattern can be used to structure programs that can be


decomposed into groups of subtasks, each of which is
at a particular level of abstraction. Each layer provides
services to the next higher layer.
• The most commonly found 4 layers of a general
information system are as follows.
- Presentation layer (also known as UI layer)
- Application layer (also known as service layer)
- Business logic layer (also known as domain layer)
- Data access layer (also known as persistence layer)
• Usage
- General desktop applications.
- E commerce web applications.
Module Code & Module Title Slide Title SLIDE 15
Slide 15
Example

Module Code & Module Title Slide Title SLIDE 16


Slide 16
Client-server architecture

• Distributed system model which shows how data and


processing is distributed across a range of components.
- Can be implemented on a single computer.
• Set of stand-alone servers which provide specific
services.
• Network which allows clients to access servers.
Usage
- printing,
- data management
- human resource

Module Code & Module Title Slide Title SLIDE 17


Slide 17
Model-View-Controller (MVC)
architecture

• Separates presentation and interaction from the system data.


The system is structured into three logical components that
interact with each other.
• The Model component manages the system data and
associated operations on that data.
• The View component defines and manages how the data is
presented to the user.
• The Controller component manages user interaction (e.g.,
key presses, mouse clicks, etc.) and passes these interactions to
the View and the Model.

Module Code & Module Title Slide Title SLIDE 18


Slide 18
Model-View-Controller (MVC)

Module Code & Module Title Slide Title SLIDE 19


Slide 19
Pipe-filter architecture

• Pipe-and-filter is a popular architecture pattern


for application development, especially for data
processing and transformation tasks.
• Pipe and Filter connects a number of components that
process a stream of data, each connected to the next
component in the processing pipeline via a Pipe.
• The pipe and filter architecture consists of one or more
data sources. The data source is connected to data filters
via pipes. Filters process the data they receive, passing
them to other filters in the pipeline. The final data is
received at a Data Sink

Module Code & Module Title Slide Title SLIDE 20


Slide 20
Other popular Architectures

• Microservices • Peer-to-peer (P2P)


architecture • Plug-ins
• Space-based architecture • Reactive architecture
• Component-based • Representational state
• Data-centric transfer (REST)
• Monolithic application • Shared nothing
• Microkernel architecture architecture
• Event Driven architecture • Space-based architecture

Module Code & Module Title Slide Title SLIDE 21


‹#›
Slide 21
Meta Architecture

Module Code & Module Title Slide Title SLIDE 22


Slide 22
Key points

• Creating an architecture
• Patterns and architecture

Module Code & Module Title Slide Title SLIDE 23


Slide 23
Question and Answer Session

Q&A

Module Code & Module Title Slide Title SLIDE 24


Slide 24
What To Expect Next Week

In Class Preparation for Class


• Download the slide and
• Architectural Evaluation and
study for the next chapter.
Maturation

Module Code & Module Title Slide Title SLIDE 25


Slide 25

You might also like