An Introduction to
Software Architecture
Rahim lotfi
Mr_lotfi@ymail.com
university of Isfahan
university of Isfahan
2
Agenda
 What’s Software Architecture?
 Architectural Design Process?
 Why Software Architecture?
 Architecture types ? Levels ???
university of Isfahan
3
What’s Software Architecture?
• Architectural Design
– process for identifying the subsystems that make up a
system
– defines framework for sub-system control and
communication
– Behavior as specified in collaborations among those
elements
university of Isfahan
4
Architectural Design Process?
• System structuring
– system decomposed into several subsystems
– subsystem communication is established
• Control modeling
– model of control relationships among system components is
established
• Modular decomposition
– identified subsystems decomposed into modules
university of Isfahan
5
Why Software Architecture?
university of Isfahan
6
Why Software Architecture?
• Scale
• Process
• Cost
• Schedule
• Skills and development teams
• Materials and technologies
• Stakeholders
• Risks
university of Isfahan
7
Architecture types
Client/Server Architectures
client
send-request
server
receive-request
-Client-server architecture (client/server) is a network architecture in which each
computer or process on the network is either a client or a server
-Client computers provide an interface to allow a computer user to request
services of the server and to display the results the server returns
university of Isfahan
8
Architecture types
• Components of Client/Server Architectures
System simple_cs = {
Component client = {Port send-request}
Component server = {Port receive-request}
Connector rpc = {Roles {caller, callee}}
Attachments : {client.send-request to rpc.caller;
server.receive-request to rpc.callee}
}
university of Isfahan
9
Architecture types
• three-layer Architecture
• Layer indicates logical separation of components, such as having distinct namespaces and
classes for the Database Access Layer, Business Logic Layer and User Interface Layer.
university of Isfahan
10
Architecture types
• peer to peer Architecture
university of Isfahan
11
Architecture types
• MVC Architecture
university of Isfahan
12
Architecture types
• pipe and filters Architecture
Pipe and Filters is architectural pattern in which an event triggers a series of processing steps
on a component, transforming it uniquely on each step. Each step is a called a filter
component and the entire sequence of called the pipeline
university of Isfahan
13
Architecture types
• publish-subscribe Architecture
• In software architecture, publish–subscribe is a messaging pattern where senders
of messages, called publishers, do not program the messages to be sent directly to
specific receivers, called subscribers.
university of Isfahan
14
Question
university of Isfahan
15
thank for your attention

An Introduction to Software Architecture

  • 1.
    An Introduction to SoftwareArchitecture Rahim lotfi Mr_lotfi@ymail.com university of Isfahan
  • 2.
    university of Isfahan 2 Agenda What’s Software Architecture?  Architectural Design Process?  Why Software Architecture?  Architecture types ? Levels ???
  • 3.
    university of Isfahan 3 What’sSoftware Architecture? • Architectural Design – process for identifying the subsystems that make up a system – defines framework for sub-system control and communication – Behavior as specified in collaborations among those elements
  • 4.
    university of Isfahan 4 ArchitecturalDesign Process? • System structuring – system decomposed into several subsystems – subsystem communication is established • Control modeling – model of control relationships among system components is established • Modular decomposition – identified subsystems decomposed into modules
  • 5.
    university of Isfahan 5 WhySoftware Architecture?
  • 6.
    university of Isfahan 6 WhySoftware Architecture? • Scale • Process • Cost • Schedule • Skills and development teams • Materials and technologies • Stakeholders • Risks
  • 7.
    university of Isfahan 7 Architecturetypes Client/Server Architectures client send-request server receive-request -Client-server architecture (client/server) is a network architecture in which each computer or process on the network is either a client or a server -Client computers provide an interface to allow a computer user to request services of the server and to display the results the server returns
  • 8.
    university of Isfahan 8 Architecturetypes • Components of Client/Server Architectures System simple_cs = { Component client = {Port send-request} Component server = {Port receive-request} Connector rpc = {Roles {caller, callee}} Attachments : {client.send-request to rpc.caller; server.receive-request to rpc.callee} }
  • 9.
    university of Isfahan 9 Architecturetypes • three-layer Architecture • Layer indicates logical separation of components, such as having distinct namespaces and classes for the Database Access Layer, Business Logic Layer and User Interface Layer.
  • 10.
    university of Isfahan 10 Architecturetypes • peer to peer Architecture
  • 11.
    university of Isfahan 11 Architecturetypes • MVC Architecture
  • 12.
    university of Isfahan 12 Architecturetypes • pipe and filters Architecture Pipe and Filters is architectural pattern in which an event triggers a series of processing steps on a component, transforming it uniquely on each step. Each step is a called a filter component and the entire sequence of called the pipeline
  • 13.
    university of Isfahan 13 Architecturetypes • publish-subscribe Architecture • In software architecture, publish–subscribe is a messaging pattern where senders of messages, called publishers, do not program the messages to be sent directly to specific receivers, called subscribers.
  • 14.
  • 15.