3. 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
4. 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
6. university of Isfahan
6
Why Software Architecture?
• Scale
• Process
• Cost
• Schedule
• Skills and development teams
• Materials and technologies
• Stakeholders
• Risks
7. 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
8. 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}
}
9. 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.
12. 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
13. 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.