You are on page 1of 30

Software Architecture and Design

Session 1: Introduction to Software Architecture

Session Outline

IT Systems Application Domain The Architecture Business Cycle What is Software Architecture Design Definitions Why is architecture important What does an architect do? Further reading
2

IT Systems Application Domain

IT systems are everywhere


Banks Shops Internet sites

Large, complex, heterogeneous, distributed applications Use commercial-of-the-shelf middleware, databases, web servers, application packages Major problems are architecture design, technology selection, application and business integration
3

The Architecture Business Cycle (ABC)


The Role of the Architect
requirements client, users assess architect creates solutions developers assess

visualises

prescribes

appearance, behaviour

architectural design

construction, co-operation

The Architecture Business Cycle (ABC)


Factors influencing architectures
Architectures are influenced by: Stakeholders of an system. Technical or organizational factors. Architects background

The Architecture Business Cycle (ABC)


Stakeholders of a system

The Architecture Business Cycle (ABC)


Technical environment
Technical trends: todays information system likely an employ a: Database management system. Web browser for delivery and distribution across platforms Available technology: decisions on using a centralized or decentralized system depend on processor cost and communication speed; both are changing quantities.
7

The Architecture Business Cycle (ABC)


Development organization concerns
Business issue: Investing in, and then amortizing the infrastructure Keeping cost installation low. Investing in, and then utilizing personnel. Organizational structure issues furthering vested interests, e.g., - maintaining an existing database organization - supporting specialized expertise
maintaining the standard method of doing business.
8

The Architecture Business Cycle (ABC)


Architects background
Architects develop their mindset from their past experiences: Prior good experiences will lead to replication of prior designs. Prior bad experiences will be avoided in the new design.

The Architecture Business Cycle (ABC)


Summary: influences on the architect

10

The Architecture Business Cycle (ABC)


Pre-architecture life cycle

stakeholders (few)

requirements

quality

agreement

development

11

The Architecture Business Cycle (ABC)


Characteristic Iteration mainly on functional requirements

Few stakeholders involved No balancing of functional and quality requirements

12

The Architecture Business Cycle (ABC)


Architecture Business Cycle (ABC)
stakeholders (many)

requirements

quality

architecture

agreement

development

13

The Architecture Business Cycle (ABC)


Characteristic Iteration on both functional and quality requirements

Many stakeholders involved Balancing of functional and quality requirements


14

What is Software Architecture?

Its about software design

All architecture is software design, but not all design is software architecture Part of the design process

Simply, architecture focuses on issues that will be difficult/impossible to change once the system is built

Quality attributes like security, performance Non-functional requirements like cost, deployment hardware More on these later in this session
15

What is Software Architecture?


Some usual description of architecture
Component and connector Overall structure of system a diagram:

Control Process (CP)


Propagation loss Model (ModP)

Reverberation Model (ModR)


Figure x: overall software structure

Noise Mode (ModN)

16

What is Software Architecture?


What is this picture say:

The system has of four elements? Three of elements have something in common? All the elements apparently have some sort of relationship since the diagram is fully connected. Beside this we know nothing else!

17

What is Software Architecture?


Whats wrong with component or connector What kind of component?

Task? process? Object? Program? Funtion? Library? Compilation unit? Processor?

What kind of connector?


Calls? Invokes? Signals? Uses? Data flow? Subclass? Run with? Excludes? Co - located with

18

What is Software Architecture?


Whats wrong with overall structure Which structure? Software is composed many of structures:

Module Use Logical Functional What do the boxes represent? What do the arrows mean?

When seeing boxes and lines we must ask?


19

What is Software Architecture?


Whats wrong with the diagram Same questions as the previous slides?

What kind of component? What kind of connector? What structure? What do the boxes and arrows mean?

Plush new question


What is the significance of the layout? Why is control process on a higher level?

Boxes and arrows drawings alone are not architectures; rather, they are a starting point
20

The Definition of Software Architecture?


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

Notice this mean that:

Box and line drawing alone are not architectures but a starting point. Architecture includes behavior of components
21

Why is Architecture important?


Architecture is the vehicle for stakeholder communication Architecture manifests the earliest set of design decisions
Constraints on implementation Dictates organizational structure Inhibits or enable quality attributes

Architecture is a transferable abstraction of a system


Product lines share a common architecture Allows for template-based development Basis for training

22

What does Architect do?


People skill: must be able to
Negotiate competing interests of stakeholders Promote inter team collaboration

Technical skill: must understand


The relationships between qualities and structures Current technology That most requirements for an architecture are not written down in any requirements document

Communication skill: must be able to


Clearly convey the architecture to team (both verbally and in writing) Listen to understand multiple viewpoints

23

What does Architect do?


Factors influenced by architectures
Structures of the development organization Enterprise goals of the development organization Customer requirements Architects experience Technical environment The architecture itself

24

Architecture influences the development organization structure?


Short term: work units are organized around architectural units for a particular system under construction. Long term: when company constructs a collection of similar systems, organizational units reflect Common components (e.g., operating system unit or database unit).

25

Architecture influences the development organization Enterprise goals?


Development of a system may establish a foothold In the market niche.

Being known for developing particular kinds of systems becomes a marketing device. Architecture becomes a leveraging point for additional market opportunities and networking.

26

Architecture influences Customer requirements?


Knowledge of similar fielded systems leads customers to ask for particular features.

Customers will alter their requirements on the basis of the availability of existing systems.

27

Architecture influences the Architect s experience and technical environment


Creation of a system affects the architects background.

Occasionally, a system or an architecture will affect the technical environment. the WWW for information systems the three-tier architecture for database systems

28

What is Software Architecture?


Where did it start?

1992: Perry & Wolf 1987: J.A. Zachman; 1989: M. Shaw 1978/79: David parnas, program families 1972 (1969): Edsger Dijkstra, program families 1969: I.P. Sharp @ NATO Software Engineering conference: I think we have something in addition to software engineering [..] This is the subject of software architecture. Architecture is different from engineering.
29

30

You might also like