lecture 11 enterprise systems development ( csc447 ) comsats islamabad muhammad usman, assistant...

45
Lecture 11 E nterprise S ystems D evelopment ( CSC447) COMSATS Islamabad n, Assistant Professor

Upload: ruth-brooks

Post on 03-Jan-2016

222 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Lecture 11 Enterprise Systems Development ( CSC447 ) COMSATS Islamabad Muhammad Usman, Assistant Professor

Lecture 11

Enterprise

Systems

Development( CSC447)

COMSATS Islamabad

Muhammad Usman, Assistant Professor

Page 2: Lecture 11 Enterprise Systems Development ( CSC447 ) COMSATS Islamabad Muhammad Usman, Assistant Professor

Software Architecture

Page 3: Lecture 11 Enterprise Systems Development ( CSC447 ) COMSATS Islamabad Muhammad Usman, Assistant Professor

Software Architecture

You employ stone, wood and concrete, and with these materials you build houses and palaces. That is construction. Ingenuity at

work. But suddenly you touch my heart, you do me good, I am happy and I say “ That is

beautiful.” That is Architecture.

-Le Corbusier 1923

Page 4: Lecture 11 Enterprise Systems Development ( CSC447 ) COMSATS Islamabad Muhammad Usman, Assistant Professor

4

Antecedents of Software Architecture

Page 5: Lecture 11 Enterprise Systems Development ( CSC447 ) COMSATS Islamabad Muhammad Usman, Assistant Professor

5

Page 6: Lecture 11 Enterprise Systems Development ( CSC447 ) COMSATS Islamabad Muhammad Usman, Assistant Professor

6

Page 7: Lecture 11 Enterprise Systems Development ( CSC447 ) COMSATS Islamabad Muhammad Usman, Assistant Professor

7

Page 8: Lecture 11 Enterprise Systems Development ( CSC447 ) COMSATS Islamabad Muhammad Usman, Assistant Professor

8

Page 9: Lecture 11 Enterprise Systems Development ( CSC447 ) COMSATS Islamabad Muhammad Usman, Assistant Professor

Software Architecture in Context

Page 10: Lecture 11 Enterprise Systems Development ( CSC447 ) COMSATS Islamabad Muhammad Usman, Assistant Professor

10

A computer system

Page 11: Lecture 11 Enterprise Systems Development ( CSC447 ) COMSATS Islamabad Muhammad Usman, Assistant Professor

11

A computer system in isolation…

In space, no-one can hear you

?

Page 12: Lecture 11 Enterprise Systems Development ( CSC447 ) COMSATS Islamabad Muhammad Usman, Assistant Professor

12

Stakeholders…

Architect

Operator

Supplier CEO

Technician Developer

Sysadmin

Consumer

QA

BillGatesCustomer CEO

Page 13: Lecture 11 Enterprise Systems Development ( CSC447 ) COMSATS Islamabad Muhammad Usman, Assistant Professor

13

Other systems…

EnrolmentsStudent Labs

Networkinginfrastructure

AccountingManagement

reporting

Payroll

Page 14: Lecture 11 Enterprise Systems Development ( CSC447 ) COMSATS Islamabad Muhammad Usman, Assistant Professor

14

Opportunities and risks…

Sell a lot of systems

Go to IPO

Late to market

Sell a few systems

Deliver a poor performer

Build a reputation

Tax issues

Misjudge the market

BillGates

Page 15: Lecture 11 Enterprise Systems Development ( CSC447 ) COMSATS Islamabad Muhammad Usman, Assistant Professor

15

Constraints and enablers…

Operatingsystem

Standards Policies

Regulations

Faster processor

Legacy systems

Lots ofJava developers

Not manydatabase developers

Ethics andenvironment

Page 16: Lecture 11 Enterprise Systems Development ( CSC447 ) COMSATS Islamabad Muhammad Usman, Assistant Professor

16

It’s complicated.

Page 17: Lecture 11 Enterprise Systems Development ( CSC447 ) COMSATS Islamabad Muhammad Usman, Assistant Professor

17

What is the role of architecture?

Leaning tower image from Gary Feuerstein.Other images from The Big Ball of Mud, by Yoder and Foote.

??

Page 18: Lecture 11 Enterprise Systems Development ( CSC447 ) COMSATS Islamabad Muhammad Usman, Assistant Professor

18

Development lifecycle

Preliminaryrequirements

analysis

Design ofarchitecture and

system core

Developa version

Deliver aversion

Elicitcustomerfeedback

Incorporatecustomerfeedback

Softwareconcept

Architecture plays a vital role in establishing the structure of the system, early in the development

lifecycle

The evolutionary delivery lifecycle model(Rapid Development, Steve McConnell)

Architecture sets system structure

First iteration implements system core

Page 19: Lecture 11 Enterprise Systems Development ( CSC447 ) COMSATS Islamabad Muhammad Usman, Assistant Professor

19

System lifetime

Architecture is about decisions that affect the whole lifetime of the system

Inception

Development

Deployment

Maintenance

Alteration

Legacyoperation

Vision

Death

Operation

Page 20: Lecture 11 Enterprise Systems Development ( CSC447 ) COMSATS Islamabad Muhammad Usman, Assistant Professor

20

The Architecture Business Cycle

Page 21: Lecture 11 Enterprise Systems Development ( CSC447 ) COMSATS Islamabad Muhammad Usman, Assistant Professor

21

Architectural Influences

• Stakeholders– each stakeholder has different concerns & goals, some

contradictory

• Development Organization– immediate business, long-term business, and organizational

(staff skills, schedule, & budget)

• Background & Experience of the Architects– repeat good results, avoid duplicating disasters

• The Technical Environment– standard industry practices or common SE techniques

Page 22: Lecture 11 Enterprise Systems Development ( CSC447 ) COMSATS Islamabad Muhammad Usman, Assistant Professor

22

Stakeholders

ManagementStakeholder

Marketing

MaintenanceOrganization

End Users

CustomersArchitect

Lower Cost!

New Features! Faster!

Compete!

Performance!Reliability!

Security!Behavior!

Extensibility!Maintainability!

Deliver on Time!

Don’t Keep Changing!

Page 23: Lecture 11 Enterprise Systems Development ( CSC447 ) COMSATS Islamabad Muhammad Usman, Assistant Professor

23

Trade-offs

Architect

Performance Security

Maintainability Reliability

Current Cost Future Cost

Page 24: Lecture 11 Enterprise Systems Development ( CSC447 ) COMSATS Islamabad Muhammad Usman, Assistant Professor

What is a good definition ofSoftware Architecture?

Page 25: Lecture 11 Enterprise Systems Development ( CSC447 ) COMSATS Islamabad Muhammad Usman, Assistant Professor

25

Software Architecture Definition

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

Page 26: Lecture 11 Enterprise Systems Development ( CSC447 ) COMSATS Islamabad Muhammad Usman, Assistant Professor

26

Software Architecture Defines

• The Software Elements – Abstraction of the system

• Omits some information

• And relationships between elements– Relationships typically are interfaces– Architecture talks about the public interfaces

Page 27: Lecture 11 Enterprise Systems Development ( CSC447 ) COMSATS Islamabad Muhammad Usman, Assistant Professor

27

Other Definitions of Software Architecture

• Perry and Wolf– Software Architecture = { Elements, Form, Rationale }– what how why

• Shaw and Garlan– Software architecture [is a level of design that] involves

• the description of elements from which systems are built, • interactions among those elements, • patterns that guide their composition, and • constraints on these patterns.

• Kruchten– Software architecture deals with the design and implementation

of the high-level structure of software.– Architecture deals with abstraction, decomposition, composition,

style, and aesthetics.

Page 28: Lecture 11 Enterprise Systems Development ( CSC447 ) COMSATS Islamabad Muhammad Usman, Assistant Professor

28

Other Definitions of Software Architecture

• Organizational structure of a system or component (IEEE Standard Glossary of Software Engineering Terminology 1990)

• IEEE 1471-2000– Software architecture is the fundamental

organization of a system, embodied in its components, their relationships to each other and the environment, and the principles governing its design and evolution

Page 29: Lecture 11 Enterprise Systems Development ( CSC447 ) COMSATS Islamabad Muhammad Usman, Assistant Professor

29

Page 30: Lecture 11 Enterprise Systems Development ( CSC447 ) COMSATS Islamabad Muhammad Usman, Assistant Professor

30

Page 31: Lecture 11 Enterprise Systems Development ( CSC447 ) COMSATS Islamabad Muhammad Usman, Assistant Professor

31

What type of requirements drive architectural design?

Answer: Quality attribute requirements are the primary drivers for architecture design.

Page 32: Lecture 11 Enterprise Systems Development ( CSC447 ) COMSATS Islamabad Muhammad Usman, Assistant Professor

32

Page 33: Lecture 11 Enterprise Systems Development ( CSC447 ) COMSATS Islamabad Muhammad Usman, Assistant Professor

33

Page 34: Lecture 11 Enterprise Systems Development ( CSC447 ) COMSATS Islamabad Muhammad Usman, Assistant Professor

34

Architecture and Functionality

• Functionality is largely orthogonal to quality attribute requirements.

• Functionality is the ability of a system to do the work it was intended to do.

• Systems are decomposed into elements to achieve a variety of purposes other than function.– Architectural choices promote certain

qualities as well as implement the desired functionality.

Page 35: Lecture 11 Enterprise Systems Development ( CSC447 ) COMSATS Islamabad Muhammad Usman, Assistant Professor

35

Effects of Architectural Decisionson Quality Attributes

• The degree to which a system meets it’s quality attribute requirements is dependent on architectural decisions.

• A change in structure improving one quality often affects the other qualities.

• Architecture is critical to the realization of quality attributes.

• These product qualities should be designed into the architecture.

• Architecture can only permit, not guarantee, any quality attribute.

Page 36: Lecture 11 Enterprise Systems Development ( CSC447 ) COMSATS Islamabad Muhammad Usman, Assistant Professor

36

Role of the Software Architect

Architect

Balance Stakeholder

Concerns

Manage Complexity

Functional Requirements

Communicate!Balance Quality

Attributes

Bring Technology

Report Results

Page 37: Lecture 11 Enterprise Systems Development ( CSC447 ) COMSATS Islamabad Muhammad Usman, Assistant Professor

37

Systems Structure(s)

• Systems have more than one structure– Module structure– Interaction structure– Deployment structure

• Every system has an architecture

• Behavior is part of the architecture– Behavior allows component interaction to be

specified

Page 38: Lecture 11 Enterprise Systems Development ( CSC447 ) COMSATS Islamabad Muhammad Usman, Assistant Professor

38

Structures and Views

From: http://www.wordinfo.info/words/index/info/view_unit/1/?letter=B&spage=3

Page 39: Lecture 11 Enterprise Systems Development ( CSC447 ) COMSATS Islamabad Muhammad Usman, Assistant Professor

39

Structures and Views

• Modules – Functional decomposition & uses information– Class structure (generalization) & Layers

• Component-and-Connector– Runtime components– Concurrency and shared data models

• Allocation– Deployment, Implementation, work

assignments

Page 40: Lecture 11 Enterprise Systems Development ( CSC447 ) COMSATS Islamabad Muhammad Usman, Assistant Professor

40

Types of Views

Architect

Module

Runtime

Allocation

How to express each view. What is each

view useful for?

Page 41: Lecture 11 Enterprise Systems Development ( CSC447 ) COMSATS Islamabad Muhammad Usman, Assistant Professor

41

Integrating the Views

From: http://www.wordinfo.info/words/index/info/view_unit/1/?letter=B&spage=3

Page 42: Lecture 11 Enterprise Systems Development ( CSC447 ) COMSATS Islamabad Muhammad Usman, Assistant Professor

42

Behavioral Modeling

Page 43: Lecture 11 Enterprise Systems Development ( CSC447 ) COMSATS Islamabad Muhammad Usman, Assistant Professor

43

Views

• Systems are composed of many structures– Code units, their decompositions

and dependencies– Processes and how they interact– How software is deployed on

hardware– And others

• A view is a representation of a structure, that is, a representation of a set of system elements and the relations associated with them.

Page 44: Lecture 11 Enterprise Systems Development ( CSC447 ) COMSATS Islamabad Muhammad Usman, Assistant Professor

44

SEI Architectural Viewtypes

• Module Viewtypes describe how the system is to be structured as a set of units of implementation.

• Component and Connector (C&C) Viewtypes describe how the system is to be structured as a set of interacting runtime elements.

• Allocation Viewtypes describe how the system relates to non-software structures in its enviroment.

A viewtype defines the element types and relationship types used to describe the software architecture from a particular perspective.

Page 45: Lecture 11 Enterprise Systems Development ( CSC447 ) COMSATS Islamabad Muhammad Usman, Assistant Professor

45

Reference

• Bass, L., Clements, P. and Kazman, R., Software Architecture in Practice, Second Edition (2006), Addison-Wesley.

• Clements, P., Bachmann, F., Bass, L., Garlan, D., Ivers, j., Little, R., Nord, R. and Stafford, J., Documenting Software Architectures: Views and Beyond, 2002, Addison-Wesley. Documenting Software Architectures