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

Lecture 4

The document discusses various types of system modeling and architectural design in software development, including context, interaction, structural, and behavioral modeling. It highlights the benefits of architectural design, such as reusability and meeting nonfunctional requirements, and describes different architectural patterns like layered architecture, client-server architecture, and the Model-View-Controller (MVC) pattern. Additionally, it emphasizes the importance of architectural decisions in ensuring system performance, security, and availability.

Uploaded by

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

Lecture 4

The document discusses various types of system modeling and architectural design in software development, including context, interaction, structural, and behavioral modeling. It highlights the benefits of architectural design, such as reusability and meeting nonfunctional requirements, and describes different architectural patterns like layered architecture, client-server architecture, and the Model-View-Controller (MVC) pattern. Additionally, it emphasizes the importance of architectural decisions in ensuring system performance, security, and availability.

Uploaded by

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

FIT3SQA – Software Quality Assurance

Lecture 4

System Modeling & Architecture

Faculty of Information Technology


Hanoi University
Types of Modeling
• Context modeling
– The system boundary: what is and is not part of the system
being developed
• Interaction modeling
– Between user and system (inputs, outputs)
– Between system and external systems
– Between components of the target system
• Structural modeling
– The components of the system & their relationships
• Behavioral modeling
– How the system responds to triggers from environment.
Types of Modeling
• Context modeling
– Level-0 data flow diagram (DFD), Use case diagram,
System architectural model
• Interaction modeling
– Use case modeling, sequence diagram,
• Structural modeling
– ER modeling, class diagram
• Behavioral modeling
– Sequence diagram, state diagram
Architectural design
• Determining how a software system should be
organized
• Designing the overall system structure
• Identifying the main structural components
– …and the relationships between them
• Output: an architectural model which consists
of a set of communicating components.
Example: architecture of a robot control system
Example: a widely used three-tier
architecture for websites
Contexts of architectural design
• Small context:
– Architecture of individual programs
– The way that a program is decomposed into
components
• Large context:
– Enterprise systems that include systems
(software/hardware), programs, and components
Benefits of architectural design
• Architecture may be used as a focus of
discussion during stakeholders meeting
• An architecture may be reusable across many
systems
• Can help with analysis of whether the system
can meet its nonfunctional requirements
Architectural design decisions
Architecture re-use
• Systems in the same domain often have
similar architectures
• Software product lines are built around a core
architecture
– With variants that satisfy particular customer
requirements
• There are well-known architectural patterns
and models.
Architecture & system characteristics
• Performance
– Localize critical operations and minimize
communications.
• Security
– Use a layered architecture with critical assets in
the inner layers.
• Availability
– Include redundant components and mechanisms
for fault tolerance.
Architectural patterns
• An architectural pattern is a good design
practice, which has been tried and tested in
different environments.
– Patterns should include information about when
they are and when the are not useful.
– Patterns may be represented using tabular and
graphical descriptions.
Layered architecture
• System is organized into a set of layers, each
of which provide a set of services.
• Supports the incremental development of
sub-systems in different layers.
– When a layer interface changes, only the
subsequent (next-in-line) layer is affected.
A generic layered architecture
Client-server architecture
Repository architecture
• Sub-systems must exchange data. This may be
done in two ways:
– Shared data is held in a central database or
repository and may be accessed by all sub-systems
– Each sub-system maintains its own database and
passes data explicitly to other sub-systems
• When large amounts of data are to be shared,
the repository model is an efficient
mechanism which is commonly used.
Repository architecture example
Call-and-Return Architecture
• The program structure will be easy to modify
and scale.
• Two types:
– Main program/subprogram architecture (see
example in next slide)
– Remote procedure call architecture: components
are distributed across multiple machines over
network.
Call-and-Return Architecture
The Model-View-Controller (MVC) pattern

• A type of layered architecture.


• Separates presentation and interaction from
the system data.
– Model: manages the system data and associated
operations on that data.
– View: defines and manages how the data is presented
to the user.
– Controller: manages user interaction (e.g., key
presses, mouse clicks, etc.) and passes these
interactions to the View and the Model.
The Model-View-Controller (MVC) pattern
Website architecture using MVC pattern
Pipe and filter architecture
• Functional transformations process their
inputs to produce outputs.
• When transformations are sequential, this is a
batch sequential model which is extensively
used in data processing systems.
• Not very suitable for interactive systems.
Example Pipe and filter architecture

Language
processing system

You might also like