• Tidak ada hasil yang ditemukan

Architecture - Repository UNIKOM

N/A
N/A
Protected

Academic year: 2019

Membagikan "Architecture - Repository UNIKOM"

Copied!
55
0
0

Teks penuh

(1)

Architecture

Architecture

Arnon Rotem-Gal-Oz Arnon Rotem-Gal-Oz Product Line Architect Product Line Architect arnon@rgoarchitects.com

arnon@rgoarchitects.com

(2)

Agenda

Agenda

Why Software Architecture?

Why Software Architecture?

What’s Software Architecture?

What’s Software Architecture?

Architecture types ? Levels ???

Architecture types ? Levels ???

Introduction to Architecture

Introduction to Architecture

Documentation

(3)

Discussion

Discussion

What’s Software Architecture

(4)

Can be built by one person Requires

Minimal modeling Simple process Simple tools

Architecting a dog house

Architecting a dog house

(5)

Architecting a house

Architecting a house

Built most efficiently and timely by a team Requires

Modeling

Well-defined process Power tools

(6)

Architecting a high rise

Architecting a high rise

(7)

D

D

ifferences

ifferences

Scale

Scale

Process

Process

Cost

Cost

Schedule

Schedule

Skills and development teams

Skills and development teams

Materials and technologies

Materials and technologies

Stakeholders

Stakeholders

Risks

(8)

Agenda

Agenda

Why Software Architecture?

Why Software Architecture?

What’s Software Architecture?

What’s Software Architecture?

Architecture types ? Levels ???

Architecture types ? Levels ???

Introduction to Architecture

Introduction to Architecture

Documentation

(9)

Architecture defined

Architecture defined

Software architecture is what

Software architecture is what

software architects do

software architects do

(10)

Architecture defined

Architecture defined

Formal Definition

Formal Definition

IEEE 1471-2000

IEEE 1471-2000

Software architecture is the

Software architecture is the fundamentalfundamental organization

organization of a system, embodied in its of a system, embodied in its

components

components, their , their relationshipsrelationships to each to each other and the environment, and the

other and the environment, and the

principles

principles governing its design and evolution governing its design and evolution

(11)

Software architecture encompasses the Software architecture encompasses the

set of significant decisions about the set of significant decisions about the

organization of a software system organization of a software system

Selection of the structural elements and Selection of the structural elements and their interfaces by which a system is

their interfaces by which a system is composed

composed

Behavior as specified in collaborations Behavior as specified in collaborations among those elements

among those elements

Composition of these structural and Composition of these structural and behavioral elements into larger

behavioral elements into larger subsystems

subsystems

Architectural style that guides this Architectural style that guides this organization

organization

Booch, Kruchten, Reitman, Bittner, and Shaw

Architecture defined

Architecture defined

(12)

Perry and Wolf, 1992 Perry and Wolf, 1992

A set of architectural (or design) A set of architectural (or design) elementselements that have a particular form that have a particular form

Boehm et al., 1995 Boehm et al., 1995

A software system architecture comprises A software system architecture comprises

A collection of software and system

A collection of software and system components, connections, and constraints components, connections, and constraints A collection of

A collection of system stakeholders' need statementssystem stakeholders' need statements A

A rationalerationale which demonstrates that the components, connections, and constraints which demonstrates that the components, connections, and constraints define a system that, if implemented, would satisfy the collection of system

define a system that, if implemented, would satisfy the collection of system stakeholders' need statements

stakeholders' need statements

Clements et al., 1997 Clements et al., 1997

The software architecture of a program or computing system is the The software architecture of a program or computing system is the structure or structures of the system, which comprise

structure or structures of the system, which comprise software componentssoftware components, , the externally visible properties of those components, and the relationships the externally visible properties of those components, and the relationships among them

among them

http://www.sei.edu/architecture/definitions.html

Architecture defined

Architecture defined

(13)

Common elements 1/2

Common elements 1/2

Architecture defines major

Architecture defines major

components

components

Architecture defines component

Architecture defines component

relationships

relationships (structures) and (structures) and interactions

interactions

Architecture omits content

Architecture omits content

information about components that

information about components that

does not pertain to their interactions

does not pertain to their interactions

Behavior of components is a part of

Behavior of components is a part of

architecture insofar as it can be

architecture insofar as it can be

discerned from the point of view of

discerned from the point of view of

another component

(14)

Common elements 2/2

Common elements 2/2

Every system has an architecture

Every system has an architecture

(even a system composed of one

(even a system composed of one

component)

component)

Architecture defines the

Architecture defines the rationalerationale behind the components and the

behind the components and the

structure

structure

Architecture definitions do not define

Architecture definitions do not define

what a component is

what a component is

Architecture is not a single structure

Architecture is not a single structure

-- no single structure is

-- no single structure is the the

architecture

(15)

Architecture is Early

Architecture is Early

Architecture represents the set of earliest Architecture represents the set of earliest

design decisions design decisions

Hardest to change

Hardest to change

Most critical to get right

Most critical to get right

Architecture is the first design artifact Architecture is the first design artifact

where a system’s quality attributes are where a system’s quality attributes are

(16)

Architecture Drives

Architecture Drives

Architecture serves as the blueprint

Architecture serves as the blueprint

for the system but also the project:

for the system but also the project:

Team structure Team structure

Documentation organization Documentation organization

Work breakdown structure Work breakdown structure

Scheduling, planning, budgeting Scheduling, planning, budgeting

Unit testing, integration Unit testing, integration

Architecture establishes the

Architecture establishes the

communication and coordination

communication and coordination

mechanisms among components

(17)

Architecture vs. Design

Architecture vs. Design

non-functional requirements

(“ilities”)

functional requirements

(domains)

Important : this is a general guideline – sometimes the borders are

Important : this is a general guideline – sometimes the borders are

blurred

blurred

Architecture:

Architecture: where non-functional decisions are cast, where non-functional decisions are cast, and functional requirements are partitioned

and functional requirements are partitioned

Design:

Design: where functional requirements are where functional requirements are accomplished

accomplished

architecture

architecture

design

(18)

System Quality Attribute

System Quality Attribute

Performance Performance Availability Availability Usability Usability Security Security Maintainabili Maintainabili ty ty Portability Portability Reusability Reusability Testability Testability

End User’s view

Developer’s view Time To Time To Market Market Cost and Cost and Benefits Benefits Projected life Projected life time time Targeted Targeted Market Market Integration Integration with Legacy with Legacy System System Roll back Roll back Schedule Schedule Business Community view

A list of quality attributes exists in

A list of quality attributes exists in

ISO/IEC 9126-2001 Information Technology – Software Product Quality

(19)

Agenda

Agenda

Why Software Architecture?

Why Software Architecture?

What’s Software Architecture?

What’s Software Architecture?

Software Architecture types ?

Software Architecture types ?

Levels ???

Levels ???

Introduction to Architecture

Introduction to Architecture

Documentation

(20)

Business Architecture

Business Architecture

Concerned with the business model

Concerned with the business model

as it relates to an automated

as it relates to an automated

solution.

solution.

E-business is a good candidate E-business is a good candidate

Structural part of requirements Structural part of requirements

analysis. analysis.

(21)

Technical Architecture

Technical Architecture

Specific to technology and the use of

Specific to technology and the use of

this technology to structure the

this technology to structure the

technical points (Technology

technical points (Technology

Mapping) of an architecture

Mapping) of an architecture

.NET .NET J2EE J2EE

(22)

Solutions Architecture

Solutions Architecture

Specific to a particular business area

Specific to a particular business area

(or project) but still reliant on being a

(or project) but still reliant on being a

technical focal point for

technical focal point for

communications between the domain

communications between the domain

architect, business interests and

architect, business interests and

development.

(23)

Enterprise Architecture

Enterprise Architecture

The organizing logic for a firm’s core

The organizing logic for a firm’s core

business processes and IT

business processes and IT

capabilities captured in a

capabilities captured in a set of set of principles

principles, , policiespolicies and and technical technical choices

choices to achieve the business to achieve the business standardization and integration

standardization and integration

requirements of the firm’s operating

requirements of the firm’s operating

model.

model.

Concerned with cross project/solution

Concerned with cross project/solution

architecture and communication

architecture and communication

between different practices in

between different practices in

architecture.

(24)

Product Line Architecture

Product Line Architecture

Common Architecture for a set of

Common Architecture for a set of

products or systems developed by

products or systems developed by

an organization

(25)

Product Line - Initiation

Product Line - Initiation

Evolutionary

Evolutionary

Product line architecture and Product line architecture and

components evolve with the components evolve with the

requirements posed by new product requirements posed by new product

line members. line members.

Revolutionary

Revolutionary

Product line architecture and components

Product line architecture and components

developed to match requirements of all

developed to match requirements of all

expected product-line members

(26)

Agenda

Agenda

Why Software Architecture?

Why Software Architecture?

What’s Software Architecture?

What’s Software Architecture?

Architecture types ? Levels ???

Architecture types ? Levels ???

Introduction to Architecture

Introduction to Architecture

Documentation

(27)

IEEE 1471 - Recap

IEEE 1471 - Recap

Recommended Practice for

Recommended Practice for

Architectural Description of

Architectural Description of

Architectural Description of

Architectural Description of

Software-Intensive Systems

Software-Intensive Systems

Define the Relations between Define the Relations between

Stakeholders

Stakeholders

Concerns

Concerns

Views

Views

Viewpoint

Viewpoint

Models

Models

Architectural Description

(28)

Documentation Conceptual

Documentation Conceptual

Model

Model

(29)

Stakeholders & their

Stakeholders & their

concerns

concerns

Ease of Integration

Ease of Integration

Ease of Use

Ease of Use

Functionality Functionality Price Price Dev Costs Dev Costs

On Time Delivery

On Time Delivery

Performance

Performance

Stability & Maintainability

Stability & Maintainability

Ease of Debugging

Ease of Debugging

Modifiability

Modifiability

Testability & Traceability

Testability & Traceability

Structure & dependency between component

Structure & dependency between component

Ease of Installation

(30)

Documentation Conceptual

Documentation Conceptual

Model

Model

(31)

Discussion

Discussion

What views do you know / use

(32)

Views, Views and more

Views, Views and more

Views

Views

RUP – 4 + 1

RUP – 4 + 1

RM-ODP – 5

RM-ODP – 5

DODAF – 3 (top level)

DODAF – 3 (top level)

Zachman – 36(!)

Zachman – 36(!)

MS – Well…

(33)
(34)

RM-ODP Viewpoints

RM-ODP Viewpoints

(2001)

(2001)

Enterprise

Information

Engineering Technology

Computational

Manager Database Modeler

Operating Sys. Engineer

Designers

Developer Business model

Logical, data modeling Logical view of services

Servers, Comm, Physical view of

(35)
(36)
(37)
(38)

Zachman Framework

Zachman Framework

Scope (Ballpark) view

Scope (Ballpark) view

Owners View (Enterprise Model)

Owners View (Enterprise Model)

Designers View (System Model)

Designers View (System Model)

Builder’s View (Technology Model)

Builder’s View (Technology Model)

Out of Context View (Detailed Model)

Out of Context View (Detailed Model)

Operational View (Functioning)

Operational View (Functioning)

(39)
(40)

Old Model

Old Model

MSF 3.0 + Views MSF 3.0 + Views

Contextual Contextual

Conceptual Conceptual

Logical Logical

Physical Physical

Aimed at business Aimed at business

executives executives

Aimed at business Aimed at business process owners process owners

Aimed at Aimed at

architects and architects and

designers designers

Aimed at Aimed at

designers and designers and

(41)

Business strategies &

Business strategies &

processes processes Applications to Applications to facilitate business facilitate business process process

Information needed to

Information needed to

manage business

manage business

Technology to support

Technology to support

business & business & application needs application needs Contextual Contextual Conceptual Conceptual Logical Logical Physical Physical B u si n es s V ie w A p p li ca ti o n s V ie w In fo rm at io n V ie w T e ch n o lo g y V ie w

Old Model

Old Model

(42)

New Model

New Model

set of views and artifacts -

set of views and artifacts -

Business Business Capabilities Capabilities Business Business Capabilities

Capabilities Manual Manual Procedures Procedures Manual Manual Procedures Procedures Technology Technology Architecture Architecture Technology Technology Architecture Architecture Constraints Constraints Reconciliation Reconciliation Services, Messages, Services, Messages, Applications, Endpoints Applications, Endpoints Services, Messages, Services, Messages, Applications, Endpoints Applications, Endpoints XML, Projects, XML, Projects, DBs, Classes, Code DBs, Classes, Code

XML, Projects, XML, Projects, DBs, Classes, Code DBs, Classes, Code

Logical Logical Data Center Data Center Logical Logical Data Center Data Center Physical servers Physical servers & segments & segments Deployment Deployment Units Units Deployment Deployment Units Units Abstraction/ Abstraction/ Refinement Refinement Constraints Constraints packaged into

packaged into deployed ondeployed on

(43)

Can be mapped…

Can be mapped…

Contextual Contextual Conceptual Conceptual Logical Logical Physical Physical Business

Business ApplicationsApplications InformationInformation TechnologyTechnology Business Business Capabilities Capabilities Business Business Capabilities

Capabilities Manual Manual Procedures Procedures Manual Manual Procedures Procedures Technology Technology Architecture Architecture Technology Technology Architecture Architecture Constraints Constraints Reconciliation Reconciliation Services, Messages, Services, Messages, Applications, Endpoints Applications, Endpoints Services, Messages, Services, Messages, Applications, Endpoints Applications, Endpoints XML, Projects, XML, Projects, DBs, Classes, Code DBs, Classes, Code

XML, Projects, XML, Projects, DBs, Classes, Code DBs, Classes, Code

Logical Logical Data Center Data Center Logical Logical Data Center Data Center Physical servers Physical servers & segments & segments Deployment Deployment Units Units Deployment Deployment Units Units Abstraction/ Abstraction/ Refinement Refinement Constraints Constraints packaged into

packaged into deployed ondeployed on

(44)

Documentation Conceptual

Documentation Conceptual

Model

Model

(45)

Models

Models

Non-standard Models

Non-standard Models

ADL

ADL

UML

UML

DSL

(46)

Non Standard” - Block

Non Standard” - Block

Diagrams

Diagrams

EAI

Human Workflow

ECM DW OLTP E-Publish DAL Service Agents Business Rules Activity Workflow A u th or iz at io n M on ito rin g Service Interface Controls L og & T ra ce E xc ep tio n M an ag em en t C on fig u ra tio n A u th en ti ca ti on Si gn in g

(47)

An ADL Example (in

An ADL Example (in

ACME)

ACME)

System simple_cs = {System simple_cs = {

Component client = {Port send-request}

Component client = {Port send-request}

Component server = {Port receive-request}

Component server = {Port receive-request}

Connector rpc = {Roles {caller, callee}}

Connector rpc = {Roles {caller, callee}}

Attachments : {client.send-request to rpc.caller;

Attachments : {client.send-request to rpc.caller;

server.receive-request to rpc.callee}server.receive-request to rpc.callee} }

}

System simple_cs = {

System simple_cs = {

Component client = {Port send-request} Component client = {Port send-request} Component server = {Port receive-request} Component server = {Port receive-request} Connector rpc = {Roles {caller, callee}} Connector rpc = {Roles {caller, callee}}

Attachments : {client.send-request to rpc.caller; Attachments : {client.send-request to rpc.caller;

(48)

ADL - Pros

ADL - Pros

ADLs represent a formal way of ADLs represent a formal way of

representing architecture representing architecture

ADLs are intended to be both human and ADLs are intended to be both human and

machine readable machine readable

ADLs support describing a system at a ADLs support describing a system at a

higher level than previously possible higher level than previously possible

ADLs permit analysis of architectures – ADLs permit analysis of architectures – completeness, consistency, ambiguity, completeness, consistency, ambiguity,

and performance and performance

ADLs can support automatic generation of ADLs can support automatic generation of

(49)

ADL - Cons

ADL - Cons

There is not universal agreement on what There is not universal agreement on what

ADLs should represent, particularly as ADLs should represent, particularly as

regards the behavior of the architecture regards the behavior of the architecture

Representations currently in use are Representations currently in use are

relatively difficult to parse and are not relatively difficult to parse and are not

supported by commercial tools supported by commercial tools

Most ADLs tend to be very vertically Most ADLs tend to be very vertically

optimized toward a particular kind of optimized toward a particular kind of

analysis analysis

Most ADL work today has been Most ADL work today has been

undertaken with academic rather than undertaken with academic rather than

(50)

UML 2.0

UML 2.0

13 diagram types

(51)
(52)

DSL

DSL

Business Business Capabilities Capabilities Business Business Capabilities

Capabilities Manual Manual Procedures Procedures Manual Manual Procedures Procedures Technology Technology Architecture Architecture Technology Technology Architecture Architecture Constraints Constraints Reconciliation Reconciliation Services, Messages, Services, Messages, Applications, Endpoints Applications, Endpoints Services, Messages, Services, Messages, Applications, Endpoints Applications, Endpoints XML, Projects, XML, Projects, DBs, Classes, Code DBs, Classes, Code

XML, Projects, XML, Projects, DBs, Classes, Code DBs, Classes, Code

Logical Logical Data Center Data Center Logical Logical Data Center Data Center Physical servers Physical servers & segments & segments Deployment Deployment Units Units Deployment Deployment Units Units Abstraction/ Abstraction/ Refinement Refinement Constraints Constraints packaged into

packaged into deployed ondeployed on

(53)

ADL - revisited

ADL - revisited

ADLs are essentially a DSL for

ADLs are essentially a DSL for

architecture

architecture

The Architecture DSLs in VSTS – can

The Architecture DSLs in VSTS – can

be considered as an ADL

be considered as an ADL

The difference – VSTS has a set of The difference – VSTS has a set of languages instead of one trying to languages instead of one trying to

(54)

Discussion

Discussion

What’s the “best” modeling

What’s the “best” modeling

techniques

(55)

Documentation Conceptual

Documentation Conceptual

Model

Model

Referensi

Dokumen terkait

Create of insert trigger, delete trigger and update trigger. To write a TRIGGER to ensure that Bus table does not contain duplicate of null values in Bus_No column. a) CREATE

Beberapa kelompok mahasiswa yang ditunjuk dosen untuk mempresentasikan hasil tugas yang telah diberikan dosen pada pertemuan sebelumnya

Hasil analisis statistik menunjukkan bahwa pengurangan FR pada pemeliharaan  benih ikan berpengaruh sangat nyata (p<O,OI) terbadap pertumbuhan herat  dan

Menurut Sharma and Sethuraman (1996) dalam [ CITATION Kar13 \l 1057 ], Sindrom Stevens-Johnson adalah bentuk penyakit mukokutan dengan tanda dan

“Transferors” therein and hereinafter referred to as “the Shah Group”) and our Company had entered into a Share Purchase Cum Holders Agreement with Gaji Mercantile

Laboratorium merupakan suatu kesatuan yang secara legal dapat dipertanggungjawabkan. Kegiatan laboratorium dilakukan dengan sebaik-baiknya sehingga dapat memberikan data

Bussan Auto Finance di Kota Palu dituntut agar dapat menyelesaikan pekerjaan masing- masing dengan waktu yang diberikan tetapi masih ada juga karyawan yang belum

[r]