instructor: tasneem darwish1 university of palestine faculty of applied engineering and urban...

21
Instructor: Tasneem Darwi Instructor: Tasneem Darwi sh sh 1 University of Palestine University of Palestine Faculty of Applied Engineering Faculty of Applied Engineering and Urban Planning and Urban Planning Software Engineering Department Software Engineering Department Software Systems Software Systems Architecture Architecture What is software What is software architecture? architecture?

Upload: addison-mattocks

Post on 13-Dec-2015

216 views

Category:

Documents


0 download

TRANSCRIPT

Instructor: Tasneem DarwishInstructor: Tasneem Darwish 11

University of PalestineUniversity of PalestineFaculty of Applied Engineering and Urban Faculty of Applied Engineering and Urban

PlanningPlanning

Software Engineering DepartmentSoftware Engineering Department Software Systems Software Systems

ArchitectureArchitecture

What is software architecture?What is software architecture?

Instructor: Tasneem DarwishInstructor: Tasneem Darwish 22

OutlinesOutlines

What Software Architecture Is and What It Isn't

Other Points of View

Architectural Patterns, Reference Models, and Reference Architectures

Why Is Software Architecture Important?

Architectural Structures and Views

Instructor: Tasneem DarwishInstructor: Tasneem Darwish 33

What Software Architecture Is and What Software Architecture Is and What It Isn'tWhat It Isn't

The figure is taken from a system description for an underwater acoustic simulation

what can we tell from the figure?

Instructor: Tasneem DarwishInstructor: Tasneem Darwish 44

What Software Architecture Is What Software Architecture Is and What It Isn'tand What It Isn't

what can we tell from the figure?

1. The system consists of four elements.

2. Three of the elements— Prop Loss Model (MODP), Reverb Model (MODR), and Noise Model (MODN)—might have more in common with each other than with the fourth—Control Process (CP)—because they are positioned next to each other.

3. All of the elements apparently have some sort of relationship with each other, since the diagram is fully connected.

Is this an architecture?

Instructor: Tasneem DarwishInstructor: Tasneem Darwish 55

What Software Architecture Is What Software Architecture Is and What It Isn'tand What It Isn't

what can we not tell from the diagram?

1. What is the nature of the elements?

2. What are the responsibilities of the elements? 3. Do the connections mean that the elements

communicate with each other, control each other, send data to each other, use each other, invoke each other, synchronize with each other, share some information-hiding secret with each other, or some combination of these or other relations?

The diagram does not show a software architecture

Instructor: Tasneem DarwishInstructor: Tasneem Darwish 66

What Software Architecture Is What Software Architecture Is and What It Isn'tand What It Isn't

what does form a software architecture?

The software architecture of a program or computing system is the structure or structures of the system, which comprise software elements, the externally visible properties of those elements, and the relationships among them

“Externally visible” properties are those assumptions other elements can make of an element, such as its provided services, performance characteristics, fault handling, shared resource usage

Instructor: Tasneem DarwishInstructor: Tasneem Darwish 77

What Software Architecture Is What Software Architecture Is and What It Isn'tand What It Isn't

architecture defines software elements

The architecture is foremost an abstraction of a system that hold back details of elements that do not affect how they use or interact with other elements.

In nearly all modern systems, elements interact with each other by means of interfaces that partition details about an element into public and private parts.

Architecture is concerned with the public side of this division; private details are not architectural.

Instructor: Tasneem DarwishInstructor: Tasneem Darwish 88

What Software Architecture Is What Software Architecture Is and What It Isn'tand What It Isn't

The architecture can comprise more than one kind of structure

every computing system with software has a software architecture because every system can be shown to comprise elements and the relations among them

The behaviour of each element is part of the architecture

Instructor: Tasneem DarwishInstructor: Tasneem Darwish 99

Other Points of ViewOther Points of View

Instructor: Tasneem DarwishInstructor: Tasneem Darwish 1010

Architectural Patterns, Reference Models, and Architectural Patterns, Reference Models, and Reference ArchitecturesReference Architectures

There are three important architectural structures1. architectural pattern

2. reference model 3. reference architecture

Instructor: Tasneem DarwishInstructor: Tasneem Darwish 1111

Architectural Patterns, Reference Models, Architectural Patterns, Reference Models, and Reference Architecturesand Reference Architectures

architectural pattern

An architectural pattern is a description of element and relation types together with a set of constraints on how they may be used.

A pattern can be thought of as a set of constraints on an architecture (on the element types and their patterns of interaction)

these constraints define a set or family of architectures that satisfy them.

Instructor: Tasneem DarwishInstructor: Tasneem Darwish 1212

Architectural Patterns, Reference Models, Architectural Patterns, Reference Models, and Reference Architecturesand Reference Architectures

architectural pattern For example, client-server is a common architectural

pattern. Client and server are two element types, and their

coordination is described in terms of the protocol that the server uses to communicate with each of its clients.

Use of the term client-server implies only that multiple clients exist; the clients themselves are not identified, and there is no discussion of what functionality, other than implementation of the protocols, has been assigned to any of the clients or to the server.

Countless architectures are of the client-server pattern under this (informal) definition.

An architectural pattern is not an architecture, but it still conveys a useful image of the system (it imposes useful constraints on the architecture and, in turn, on the system).

Instructor: Tasneem DarwishInstructor: Tasneem Darwish 1313

Architectural Patterns, Reference Models, Architectural Patterns, Reference Models, and Reference Architecturesand Reference Architectures

architectural pattern

patterns exhibit known quality attributes. This is why the architect chooses a particular pattern and not one at random.

Some patterns represent known solutions to performance problems, others lend themselves well to high-security systems, still others have been used successfully in high-availability systems.

Choosing an architectural pattern is often the architect's first major design choice.

The term architectural style has also been widely used to describe the same concept of patterns

Instructor: Tasneem DarwishInstructor: Tasneem Darwish 1414

Architectural Patterns, Reference Models, Architectural Patterns, Reference Models, and Reference Architecturesand Reference Architectures

reference model

A reference model is a division of functionality together with data flow between the pieces.

A reference model is a standard decomposition of a known problem into parts that cooperatively solve the problem.

For example: Can you name the standard parts of a compiler ? Can you explain in broad terms how the parts work together to accomplish their purpose? If so, it is because you have been taught a reference model of these applications.

Instructor: Tasneem DarwishInstructor: Tasneem Darwish 1515

Architectural Patterns, Reference Models, Architectural Patterns, Reference Models, and Reference Architecturesand Reference Architectures

reference architecture

A reference architecture is a reference model mapped onto software elements and the data flows between them.

The mapping may be one to one. A software element may implement part of a function or several functions.

Instructor: Tasneem DarwishInstructor: Tasneem Darwish 1616

Architectural Patterns, Reference Models, Architectural Patterns, Reference Models, and Reference Architecturesand Reference Architectures

Reference models, architectural patterns, and reference architectures are not architectures; they are useful concepts that capture elements of an architecture.

Instructor: Tasneem DarwishInstructor: Tasneem Darwish 1717

Why Is Software Architecture Important?Why Is Software Architecture Important? There are fundamentally three reasons for software

architecture's importance:

1. Communication among stakeholders. 2. Early design decisions.

3. Transferable abstraction of a system

Instructor: Tasneem DarwishInstructor: Tasneem Darwish 1818

Architecture is the vehicle for stakeholders Architecture is the vehicle for stakeholders

communicationcommunication Each stakeholder of a software system is concerned

with different system characteristics that are affected by the architecture.

For example: the user is concerned that the system is reliable and

available when needed; the customer is concerned that the architecture can be

implemented on schedule and to budget; the manager is worried (as well as about cost and

schedule) that the architecture will allow teams to work largely independently, interacting in disciplined and controlled ways.

The architect is worried about strategies to achieve all of those goals.

Instructor: Tasneem DarwishInstructor: Tasneem Darwish 1919

Architecture is the vehicle for stakeholders Architecture is the vehicle for stakeholders

communicationcommunication Architecture provides a common language in which

different concerns can be expressed, negotiated, and resolved at a level that is intellectually manageable even for large, complex systems.

Without such a language, it is difficult to understand large systems sufficiently to make the early decisions that influence both quality and usefulness.

Architectural analysis, depends on this level of communication and enhances it.

Instructor: Tasneem DarwishInstructor: Tasneem Darwish 2020

Architecture represents the earliest set of Architecture represents the earliest set of design decisionsdesign decisions

These early decisions are the most difficult to get correct and the hardest to change later in the development process, and they have the most far-reaching effects.

1. The Architecture Defines Constraints on Implementation 2. The Architecture Dictates Organizational Structure 3. The Architecture inhibits or Enables a System's Quality

Attributes 4. Predicting System Qualities by Studying the Architecture 5. The Architecture Makes It Easier to Reason about and

Manage Change 6. The Architecture Helps in Evolutionary Prototyping7. The Architecture Enables More Accurate Cost and

Schedule Estimates

Instructor: Tasneem DarwishInstructor: Tasneem Darwish 2121

Architecture as a transferable reusable modelArchitecture as a transferable reusable model The earlier in the life cycle re-use is applied, the greater

the benefit that can be achieved.

Not only code can be re-used but so can the requirements that led to the architecture in the first place, as well as the experience of building the re-used architecture.

When architectural decisions can be re-used across multiple systems, all of the early decision consequences we just described are also transferred.