• 검색 결과가 없습니다.

소프트웨어 아키텍처

N/A
N/A
Protected

Academic year: 2022

Share "소프트웨어 아키텍처"

Copied!
44
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

Software Engineering

2014 SELAB

소프트웨어 아키텍처

(2)

아키텍처란 무엇인가?

2

(3)

소프트웨어 아키텍처(1)

소프트웨어 아키텍처(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.” (SEI, Carnegie Mellon University)

– 프로그램이나 컴퓨터 시스템의 소프트웨어 아키텍처는 소프트웨

어 구성요소, 그들이 지니고 있는 특성 중에 외부에 드러나는 특성, 그리고 이 요소들 사이의 관계로 이루어진 시스템의 구조 또는 구 조들이다

3

(4)

소프트웨어 아키텍처(2)

소프트웨어 아키텍처는

– 요구사항을 제대로 구현하기 위해 도움을 줄 수 있는 커뮤니케이

션 툴로 정의할 수 있음

– 개발 초기의 요구사항과 실제 솔루션과의 갭을 어떻게 매울 것인

가가 중요한 문제가 되어옴

– 이 자리를 소프트웨어 아키텍처가 수행할 수 있음

4

(5)

소프트웨어 아키텍처(3)

• 소프트웨어 아키텍처의 특성

구성요소를 정의 상호작용을 포함

하나이상의 구조를 포함 시스템에 대한 추상화임

아키텍처의 정의에는 좋고 나쁨에 대한 기준이 없음

• 소프트웨어 아키텍처의 활용

소프트웨어 아키텍처는 이해당사자들(stakeholder)과의 커뮤니케이션을 위한 표현 수단

다양한 관점에서 기술될 수 있음

다양한(때로는 서로 상반되는) 요구사항에 대한 논의에 필요

소프트웨어 아키텍처는 조기에 설계를 결정할 수 있음

시스템 분석, 설계 시의 초기 결정사항을 제공

소프트웨어 아키텍처는 시스템의 이동 가능한(transferable) 추상 개념

시스템의 요약된 형태로서 향후 상세한 시스템 구성의 기본을 제공

5

(6)

6

소프트웨어 아키텍처(4)

Stakeholders and Viewpoints

DevelopingOrganization’s Management Stakeholder

Marketing Stakeholder

End User

Stakeholder Maintenance Organization Stakeholder

Customer Stakeholder

(7)

CS 4311

Learning Objectives

To understand the concept of software architectures along with its motivation

To be able to characterize some important software architecture styles

7

(8)

8 CS 4311

Outline

What’s software architecture?

Elements of software architecture

Architectural styles

CS 4311

(9)

9

Architecture in Civil Engineering

•Arch •Beam •Suspension •Cable-stayed

Design at the highest level

Example: Bridge architectures

• Why do civil engineers talk

about bridge architectures?

(10)

10

What Is Architecture?

“Arch” used as prefix or suffix

– Meaning: Main, chief, principal, most important, highest, f undamental, basic, extreme or most characteristic, ruler, leader

– Examples:

Archangel, archenemy, archduke, archbishop Matriarch, patriarch, monarch

Definition in Civil Engineering

– The art and science of designing and erecting buildings – Fundamental underlying design of buildings

– Style and method of design and construction of buildings

Buildings and other structures

(11)

11

What Is Software Architecture?

Framework, mechanism, way, shape, form, means, organiza tion, arrangement

The Big Picture!

(12)

Software Architecture

The

structure or structures

of a software system

software components

– externally visible properties of those components – the relationships between them

The set of

principle design decisions

made about a software system

System structure Functional behavior Interaction

Nonfunctional properties Implementation

System goals, stakeholders, non-technical considerations, etc.

(13)

13

Outline

What’s software architecture?

• Elements of software architecture

Architectural styles

(14)

Elements of Software Architecture

Components

Connectors

Configuration topologies

System models

(15)

Software Components

Elements that encapsulate processing and data in a system’s architecture

An architectural entity that

– encapsulates a subset of the system’s functionality and/or data, – restricts access to that subset via an explicitly defined interface, – had explicitly defined dependencies on its required execution context.

Often represented as boxes in diagrams.

(16)

Connectors

Elements that are tasked with effecting and regulating

interactions among components.

Application independent.

Often represented as lines in diagrams.

component connector

(17)

Configuration Topology

A set of specific associations between the components

and connectors of a software system’s architecture.

(18)

System Models

An artifact that captures some or all of the

design decisions

that comprise a system’s architecture.

Architectural modeling is the reification and documentation of those design decisions.

Different models:

– structural vs. behavioral – static vs. dynamic

Scope

Q: Key constraints of layered model?

(19)

19

Outline

What’s software architecture?

Elements of software architecture

• Architectural styles

(20)

Architectural Styles

• A named collection of architectural design decisions that:

are applicable in a given development context,

constrain architectural design decisions that are

specific to a particular system with that context, and elicit beneficial qualities in each resulting system.

• Not about: specific systems, components, inter

action mechanisms, or configurations.

(21)

An Architectural Style Example

• Physically separate the software components used to request

services from the components that provide the services, to allow for proper distribution and scaling up, both in the number of

service providers and service requesters.

• Make the service providers unaware of the requesters’ identity to allow the providers to service transparently many, possibly changing requestors.

• Insulate the requesters from one another to allow for their independent addition, removal, and modification. Make the requesters dependent only on the service providers.

• Allow for multiple service providers to emerge dynamically to off-load the existing providers should the demand for services increase above a given threshold.

(22)

Example: Client-Server

(23)

More on Architectural Styles

Advantages

• Each style emphasizes one or more of the quality attributes, such as usability, availability, security, performance, maintainability, flexibility, portability, etc.

Remarks:

• Each style has its own advantages and drawbacks.

• An application may require several architectural views.

• Choosing the right views is a key factor in having a good design.

(24)

The Repertoire of Architecture Styles

Client-Server Architecture Style

Application context:

Clients request services from a server

Centralization of computation and data at the server

Separation of user interface tasks from computation and data management and storage

Q: Any examples?

(25)

Style: Client-Server

Components: Clients and server

Connectors: Remote procedure call, network protocols

Data elements: Parameters and return values are sent by the connectors

Topology: Two-level, with multi-clients

Qualities yielded: Centralization of computation and data at the server, with the information made available to remote clients.

A single powerful server can service many clients.

Cautions: Network bandwidth.

(26)

Style: Three-Tier or N-Tier

• Application context:

Client-Server architecture style

Multi-level services are needed

• Q: Examples?

(27)

Style: Layered

• Application context:

Ordered layered services are necessary

Insulate upper layer from lower layer

• Q: Examples?

(28)

Layered (Cont.)

Components: Layers, offering a set of services to other layers, typically comprising several programs or subprograms

Connectors: Procedure call

Data elements: Parameters and return values are sent by the connectors

• Topology: Linear, for strict virtual machine; a directed acyclic graph in looser interpretations

• Qualities yielded: Clear dependence structure; Software at upper

levels immune to changes of implementation within lower levels as long as the service specification are invariant;

Software at lower levels fully independent of upper levels.

• Cautions: Efficiency

(29)

Style: Repository

• Application context:

Collaborate and communicate through a shared repository

• A.k.a. shared state, blackboard, whiteboard

• Q: Examples?

(30)

Repository (Cont.)

Components: ?

Connectors: ?

Data elements: ?

Topology: ?

Qualities yielded: ?

Cautions: ?

(31)

Repository (Cont.)

Components: Independent programs, blackboard

Connectors: Direct memory access; procedure call;

database query

Data elements: Data stored in the blackboard

Topology: Star topology, with the blackboard at the center

Qualities yielded: Complete solution do not have to be planned;

shared evolving views; collaboration made simple.

Cautions: Data consistency

(32)

Style: Batch Sequential

• Application context:

A series of dedicated and independent components that transforms data in a sequential manner.

Each component needs to finish its task before the next one can start.

• Q: Examples?

(33)

Batch Sequential (Cont.)

Components: Independent programs responsible for a particular task or transformation

Connectors: Procedure call

Data elements: Intermediate data produced or transformed

Topology: Linear or ordered

Qualities yielded: Solve complex task by dividing it into several easier tasks; obtain modifiability/maintainability, reusability,

and flexibility

Cautions: Error handling; efficiency

(34)

Style: Pipes and Filters

• Application context:

A series of independent, sequential transformations on ordered data

Consists of

filters

transforming data and

pipes

trans ferring data

• Q: Examples?

% ps | grep bash | sort | more

(35)

More Architectural Styles

• Client server

• Three-tier

• Layered

• Repository

• Batch sequential

• Pipe and filter

Event driven

Interpreter

Peer-to-peer

Plug-in

Service-oriented

Publish-subscribe

Rule-based

Mobile code

(36)

Service Oriented Architecture (SOA)

Break software into Services

Services are very loosely coupled

Services hide

information about how they work

An application can string together

many services to provide

functionality.

Layout of Service Oriented Architecture

(37)

Benefits

 Organizational flexibility: Loosely coupled services ease the integration into other applications.

 Interoperability: Services are able to understand each other despite the language they were written in.

 Reusability & Maintainability – Changes made to one component in SOA will not ripple outward and affect others.

Reusable services can be easily plugged into new applications without having to test them.

(38)

Drawbacks

Not suitable for Graphical User Interface

functionalities. (i.e. Map manipulation)

Stand-alone or short lived applications that do not require request and response (i.e. word processing)

Increased complexity in basic understanding and managing of SOA

Security is an issue as it must be considered at service level rather than application level

(39)

Component-Based Architecture

What is it?

Emphasizes on separation of concerns where each software component is a software package, service, or a resource that contains related functions.

Component Interface is a set of methods supported by a component.

The components are put together to create one system.

This concept is the same when a car is being assembled, there is prefabricated tires, wheels, stirring wheels, etc.

What problem does it solve?

•Time consumption

•Confusion of where the bug/error is located

•Maintenance of the system

(40)

Advantages

Disadvantages

Reusability

More reliable systems

Increases productivity

Reduction in

development cycle

time

Maintenance cost for

component increases

Components can be pricey

(41)

Examples

Holiday Reservation System

Enterprise JavaBeans

Component Object Model (COM)

.NET model

(42)

Shared Nothing Architecture

What is it?

•Form of distributed computing

– Each node is independent and self-sufficient

•Mainly used in web development and database management What Problem does it solve?

•Avoids a single point of failure – No centralization

How does it solve the problem?

•None of the nodes share disk memory or storage

•Queries go to the node that contains the information

(43)

Database-Centric Architecture

What is it?

Refers to software in which databases play a crucial role

Generally, any software that uses a standard, general-purpose relational DBMS

What Problem does it solve?

Programs need to manage (edit, store, delete) large amounts of data

Other architectures make it impossible for this process to exist, and if they do, make it a resource excessive process

How does it solve the problem?

Allows for data to be stored in a secure location

Utilizing various algorithms, this data is always available in a timed matter

(44)

Peer-to-peer

What is it?

Type of decentralized and distributed architectural network that depends only individual nodes called

“peers” as both suppliers and consumers of resources What Problem does it solve?

No main server for receiving and delivering all the requests, instead the workload is distributed to all peers. This architecture made it possible for the internet to exist in the very beginning.

How does it solve the problem?

It does not required a centralized server that hosts its files, since everyone has access to each other’s files through FTP (File Transfer Protocol)

참조

관련 문서

그림 1-25 4티어 구성 Client Tier Application Tier Server Tier EIS Tier User Presentation Layer (JSP/Servlet) Business Layer (Service, EJB) Data Layer (Persistence,. Integration Layer

However, communication between Internet based client and LLN(Low-power and Lossy Network) based CoAP server architecture has limitations to deploy real IoT service..

In this research, a three-dimensional fluorescence microscope device was developed for taking images of protein and DNA inside a single cell and the server-client based

Abstract This study focuses on the new teaching assistance robot platform and the cloud-based education service model to support the server.. In the client area we would like

모바일 기기에서 구동이 가능한 SAP 시스템의 인터페이스를 GUI 형태로 구현하여 SAP 의 연동 부분을 사용자가 쉽게 설정할 수 있게 지원하며 , Client Application