시스템의 특성
- 시스템의 정의
- 시스템의 분류
- 정보 시스템의 특성
- 정보 시스템의 기본요소
 
시스템의 정의
1) Webster 사전에서의 시스템의 정의
    ① 규칙적으로 상호 작용하거나 상호 의존적이면서 단일 집합을 형성하는 항목들의 집합
    ② 주의, 사상, 법칙 등의 조직화된 집합 ; Gauss 법칙
    ③ a. 조직화되거나 확립된 절차
       b. 분류 또는 기호화하여 도식화하는 방법
    ④ 조화로운 배열 및 양식 즉, 절차
    ⑤ 하나의 조직화된 사회 또는 사회환경 즉, 체계

2) 시스템을 다른 표현으로 정의한 사례
    ① 상호 작용하는 수많은 사물과 그 처리 과정
    ② 특정 목적을 성취하기 위해 구성인자들이 유기적으로 연결되어 있으면서 목적을 위해 노력하는 것
    ③ 여러 가지 요소로 짜여진 기능 종합체로 짜여진 인간과 기계의 결합에 의해 이루어짐
    ④ 조화 있게 상호 작용 또는 관련되어 전체를 이루는 사물 집단
    ⑤ 질서가 있는 집단의 상태

1 시스템의 분류
1.1 현상에 의한 분류
1.2 인간과 인체 시스템
1.3 컴퓨터 시스템
1.4 주요 사회현상 시스템에 대한 분류
1.5 정보 처리 방식에 의한 시스템 분류

시스템의 분류(계속}
1.1 현상에 의한 분류
  1) 자연 시스템
  2) 인공 시스템
  - 유형적인 것
  - 무형적인 것
1.2 인간과 인체 시스템
1) 생리학적인 분류 :
    - 중 추 계 : 본능, 사고, 기억과 연관된 운동 및 감각중추
    - 근 육 계 : 손, 발, 몸통, 목, 안면 등 신체를 이루고 있는 근육
    - 신 경 계 : 시각, 청각, 후각, 촉각 등의 신경
    - 생존증식계 : 호흡기, 소화기, 순환기, 생식계통 및 신진대사계 통
2) 기능적인 분류 :
    - 인 식 계 : 외부의 정보수집 기능을 갖고 있는 눈, 귀, 코, 입, 피부
    - 제 어 계 : 태어나면서부터 작동. 본능
    - 기 억 계 : 뇌를 주체로 기억을 유지하고 필요정보를 기억하는 기능.
    - 동 작 계 : 운동중추와 얼굴, 손, 발, 몸통으로 구성.
    - 생존증식계 : 호흡, 소화, 순환, 생식계통 및 신진대사계통을 총칭.
 
1.3  컴퓨터 시스템
 컴퓨터 = 하드웨어 + 소프트웨어
 하드웨어 = 입력장치(인식계) + 제어장치(제어계) + 주기억장치(기억계)
            + 산술 및 논리연산장치(동작계) + 출력장치 + 통신장치
 소프트웨어 = 인체의 생존증식계의 역할과 유사
1.4 주요 사회현상 시스템에 대한 분류
1) 공학시스템 :
- 기본시스템
Posted by 으랏차
,
[대학원] 분산시스템아키텍처
조회(641)
Software Engineering | 2007/06/16 (토) 17:35
추천하기 | 스크랩하기
학습 목표
- 분산 시스템 아키텍쳐의 장·단점에 대해 이해할 있다.
- 분산 시스템 아키텍쳐를 위한 중요 모델인 클라이언트-서버와 분산 객체 아키텍쳐를 학습한다.
- 조직간 분산시스템 구축을 위한 피어투피어(peer-to-peer) 서비스 지향 아키텍쳐에 대해 학습한다.
 
학습 개요
 
 
분산 시스템에 대한 설명
- 규모가 상당히 컴퓨터 기반 시스템은 사실상 모두 분산시스템이라고 있다.
- 정보 처리(information processing) 하나의 컴퓨터에 의존하기 보다는 분산되어 있는 많은 수의 컴퓨터에서 이루어진다.
- 최근 들어, 분산 소프트웨어 공학의 중요성이 커지고 있다.
 
분산 시스템의 특징
리소스 공유
(Resource sharing)
디스크, 프린터, 파일, 컴파일러 하드웨어나 소프트웨어 리소스들의 공유를 가능하게 한다.
개방성
(Openness)
다양한 공급자(vendors)로부터의 하드웨어 소프트웨어를 포함할 있다.
병행성
(Concurrency)
동시에 네트워크상의 서로 다른 컴퓨터에서 다양한 프로세스가 처리될 있으며, 이들 간에 통신(communication) 이루어질 있다.
확장성
(Scalability)
시스템에 대한 새로운 요구에 대해서는 쉽게 새로운 자원의 추가가 가능하다.
결함 내성
(Fault tolerance)
여러 컴퓨터의 사용이나 정보의 중복이 이루어질 있고, 이는 하드웨어나 소프트웨어 결함에 대한 내성을 가질 있도록 한다.
 
분산 시스템의 단점
복잡성
(Complexity)
창발적 속성(emergent properties) 이해하기 어렵고 시스템 검사가 어렵기 때문에 중앙처리 시스템보다 훨씬 복잡하다.
( : 성능이 네트워크 밴드위드나 다른 여러 컴퓨터 속도에 좌우됨, 어떤 프로세서에 어떤 자원을 것인가도 성능에 영향을 .)
보안
(Security)
시스템은 다양한 컴퓨터로부터 접근 가능하며, 네트워크의 트래픽이 노출되기 쉬우므로 보안관리가 다른 시스템들에 비해 상대적으로 어렵다.
관리
(Manageability)
다양한 컴퓨터들은 다양한 버전, 운영체제 등을 가지므로 이러한 다양한 환경에 대해 고려해주어야 한다.
결함의 전이 가능성은 불확실성을 증대시킨다.
예측불가능
(Unpredictability)
분산 시스템의 반응(response) 대해서는 예측불가능하다.
시스템을 둘러싸고 있는 다양한 환경때문인데, 예를 들어 시스템의 부하, 시스템의 구성 네트워크의 트래픽 등을 예측하기 어렵기 때문이다.
 
분산 시스템의 설계 이슈
Design Issue
Description
자원 식별
여러 컴퓨터에 분산되어 있으므로 자원을 찾아 사용할 있게끔 naming scheme 필요 ( : URL)
통신
성능이나 신뢰도와 같은 특별한 요구가 있다면 인터넷외의 다른 통신 방법도 필요
서비스의
성능, 가용성, 신뢰도를 의미하며 프로세스의 할당, 자원의 분산, 네트워크와 시스템 하드웨어, 그리고 시스템의 적응성(adaptability)등의 요인에 좌우됨.
소프트웨어 아키텍쳐
응용의 기능이 컴포넌트로 구성되어 어떻게 프로세서에 분산되는가의 문제로 올바른 아키텍쳐를 선택해야 서비스의 질을 향상시킬 있음.
 
실시간 분산 시스템의 아키텍쳐에 관한 장·단점을 이해하면, 어떠한 성질을 가져야 바람직한 분산 시스템을 설계할 있는지를 있습니다.
실시간 시스템은 다음 주차에서 다룰 것입니다.
 
멀티 프로세서 아키텍처란?
- 가장 간단한 분산 시스템 모델
- 서로 다른 프로세서(Processor)에서 실행되는 복수개의 프로세스(Processes) 구성된 시스템
- 규모의 실시간 시스템(Large real-time systems)에서 흔함.
 
멀티프로세서 아키텍쳐의 개념을 바탕으로 멀티프로세서 아키텍쳐의 살펴보도록 하겠습니다.
 
l        Sensor control process : 교통 흐름에 관한 정보를 수집하여 처리함.
l        Operator consoles : 조작수는 처리된 정보를 이용하여 신호등 제어 프로세스에 명령함.
 
다중 프로세스라 하여 반드시 분산 시스템일 필요는 없으며, 설계 과정에서 distribution issues 항상 고려해야 하는 것은 아닙니다.
 
Q1. 멀티프로세서 아키텍쳐에 대한 설명이 아닌 것은?
가장 간단한 분산 시스템 모델
서로 다른 프로세서에서 실행되는 복수개의 프로세스로 구성 
규모의 실시간 시스템에서 흔하다.
클라이언트와 서버로 구성되어 있다.  <- 클라이언트-서버 아키텍처에 대한 설명임.
 
클라이언트-서버 아키텍쳐(Client-server architectures) 특징
서버(servers) 의해 제공되는 서비스들(services) 집합과 이러한 서비스를 이용하는 클라이언트(clients)들의 집합으로 구성된 모델이다.
클라이언트는 서버를 알아야 하지만, 서버는 클라이언트에 대해 필요가 없다.
클라이언트와 서버는 논리적인 프로세스이다.
프로세서(processors) 프로세스(processes) 매핑이 1:1 필요는 없다.
 
 
 
응용 구조의 3계층
클라이언트 서버 시스템을 설계할 때는 응용(application) 논리적 구조를 반영해야 하는데, 응용의 구조는 다음 그림에서와 같이 3계층으로 나눕니다.
 

표현 계층
 
응용 처리 계층
 
데이터 관리 계층
 
 
클라이언트-서버 모델 가장 간단한 것이 2-Tier 클라이언트-서버 아키텍쳐 입니다.
2-Tier 클라이언트-서버 아키텍쳐는 다음과 같이 Thin/Fat client 2가지 형태 가지게 됩니다.
 
1) Thin Client Model
- 모든 응용 처리(application processing) 데이터 관리(data management) 서버에서 수행되고, 클라이언트는 표현(presentation) 계층만 구현하게 된다.
- 레거시 시스템(legacy systems) 클라이언트-서버 아키텍쳐로 바꿀 사용된다.
- 단점
  ; 서버와 네트워크에 걸리는 부하가 .
 
2) Fat Client Model
- 서버는 데이터 관리(data management)에만 관여하고, 클라이언트상의 소프트웨어에 응용 로직(application logic) 표현(presentation) 부분이 구현된다. 
- 응용 처리가 클라이언트에 넘겨져서 로컬(local)에서 실행되기 때문에 클라이언트에 많은 부하가 걸린다. (서버의 부하가 클라이언트에 넘겨진다.)
- 클라이언트 컴퓨터의 사양이 응용 처리를 하기에 충분할 경우 많이 사용된다.
- 단점
    ; 관리적인 면에 있어서는 thin client model 보다 복잡.
    ; 새로운 버전의 애플리케이션이 출시된다면 모든 클라이언트에 배포되어 설치되어야 .
 
- : Banking ATM 시스템, 여기서 ATM 클라이언트이며 서버는 mainframe
 
2-Tier 클라이언트-서버의 문제점은 논리적인 3개의 계층을 2개의 컴퓨터 시스템에 분배했다는 것으로 이는 확장성(scalability)이나 성능(performance) 또는 관리상의 문제(fat client) 일으킬 있습니다. 이에 대한 대안으로 3-Tier 클라이언트-서버 아키텍쳐를 사용하며, 3-Tier 클라이언트-서버 아키텍쳐의 특징으로는 다음 3가지를 있습니다.
 
3-Tier 클라이언트-서버 아키텍쳐의 특징
- 각각의 응용 아키텍쳐 계층은 서로 다른 프로세서(processor)상에서 수행된다.
- thin-client보다 높은 성능을 제공하며, fat-client 경우보다 쉽게 관리할 있다.
- 서버의 부하가 커지거나 요구가 증가할 경우, 여분의 서버를 추가하기만 하면 되므로 아키텍쳐 확장성이 우수하다.
()사용자가 증가하면 서버를 추가한다. 특히 애플리케이션 처리 부분은 가장 자주 바뀌기 쉬운 부분이다.
 
3-Tier 클라이언트-서버 아키텍처
 
인터넷 뱅킹 시스템에서의 분산 아키텍처
 
Web server database server 간에는 internet standards 필요 없으므로 faster & lower-level communication protocol 사용하여 transfer optimize 있습니다. 데이터베이스 쿼리 처리를 위한 efficient middleware SQL 사용합니다.
 
 
Thin client 이용한 2-Tier 클라이언트 서버 아키텍쳐
- 응용 처리(application processing) 부분과 데이터 관리 (data management) 부분을 분리시키는 것이 어려운 레거시 시스템 애플리케이션
- 데이터 관리(data management) 거의 필요하지 않은 컴파일러(compiler) 같은 계산 중심의 애플리케이션
- 응용 처리가 거의 필요하지 않은 데이터 중심(data-intensive) 애플리케이션( 검색, 쿼리 )
 
Fat Client 이용한 2-Tier 클라이언트 서버 아키텍쳐
- 응용 처리(application processing) 클라이언트 상에서 COTS( : Microsoft Excel) 제공되는 애플리케이션 
- 데이터를 계산하거나 처리하는 것의 비중이 애플리케이션
- 구성된 시스템 환경에서 안정화 애플리케이션
 
3-Tier 클라이언트 서버 아키텍쳐
- 클라이언트의 수가 많은 대규모 애플리케이션
- 데이터와 응용 로직이 자주 바뀌는 경우의 애플리케이션
- 다양한 소스로부터 구해진 데이터가 통합되어야 하는 애플리케이션
 
l        Use of different client-server architectures
Architercture
Applications
Two-tier C/S architecture with thin clients
Legacy system applications where separating application processing And data management is impractical Computationally intensive applications such as compilers with little or no data management Data-intensive applications (browsing and querying) with little or no application processing
Two-tier C/S architecture with fat clients
Applications where application processing is provided by COTS (e.g. Microsoft Excel) on the client Applications where computationally intensive processing of data (e.g. data visualisation) is required Applications with relatively stable end-user functionality used in an environment with well-established system management
Three-tier or Multi-tier C/S architecture
Large-scale applications with hundreds or thousands of clients Applications where both the data and the application are volatile Applications where data from multiple sources are integrated
 
 
 
Q1. 다음 설명이 Fat-client 대한 설명이면 Fat, Thin-client 대한 설명이면 Thin이라고 입력하세요.
[thin] 모든 응용 처리(application processing) 데이터 관리(data management) 서버에서 수행된다. 클라이언트는 표현(presentation) 계층만 구현하게 된다. 
[thin] 서버와 네트워크에 걸리는 부하가 크다.
[fat] 서버는 데이터 관리(data management)에만 관여하고, 클라이언트상의 소프트웨어에 응용 로직(application logic) 표현(presentation) 부분이 구현된다.
[fat] 클라이언트의 사양이 응용 처리를 하기에 충분할 경우 많이 사용된다.
 
분산 객체 아키텍쳐(Distributed object architectures) 특징
- 분산 객체 아키텍쳐에서는 클라이언트와 서버간의 차이점이 거의 없다.
- 각각의 분산 요소는 다른 객체들에게 서비스를 제공하기도 하고, 반대로 다른 객체들로부터 서비스를 받기도 한다.
- 객체간의 통신은 ORB(Object request broker)라고 불리는 미들웨어(middleware) 시스템을 이용하게 된다. ( software bus )
- 클라이언트-서버 시스템보다 설계하기가 어렵다.
 
클라이언트-서버 모델은 서버와 클라이언트를 미리 정해야 한다는 점에서 시스템 설계상 유연성이 많이 떨어집니다. 분산 객체 아키텍쳐에서는 클라이언트와 서버간의 차이를 없애고, 동일하게 분산시킨 객체로써 아키텍쳐를 구성할 있습니다.
 
4가지 클라이언트-서버 모델의 장점
- 시스템 설계자가 어디서(where), 어떻게(how) 서비스가 제공되어야 하는지에 대한 판단을 뒤로 미룰 있다. , 시스템 설계자에게 유연성을 제공한다.
- 새로운 리소스(resource) 추가되기 쉬운 열린 시스템(open system) 이다. 예를 들어 다른 언어로 작성된 객체끼리 통신할 있다.
- 시스템이 유연하며(flexible), 확장성(scalable) 좋다. 예를 들어 시스템 부하에 대비하기 위해 같은 서비스를 다른 객체가 제공할 있고 새로운 객체를 추가시킬 수도 있다.
- 네트웍을 통해 객체를 주고 받으면서 시스템을 동적으로 재구성하는 것이 가능하다. 예를 들어 성능 때문이라면 서비스 제공 객체를 서비스 요구 객체와 같이 있다.
 
논리적인 모델로 사용 가능
유연성 있는 접근법으로 사용가능
 
[그림설명]
- 여러 데이타베이스에 저장된 데이터간의 관계를 찾아야 한다.
- 예를 들어 여러 종류의 상점을 운영할 , baby food 사는 사람은 특정 wallpaper 찾는다.
- 각각의 데이타베이스는 하나의 분산 객체이다.
- 통합 객체는 특정 관계를 의미한다.
(예를 들어 다른 종류의 상품간의 관계, 상품의 계절적 변이)
l        데이터 마이닝에 분산 객체가 적당한 이유
- 가지가 아닌 다양한 서비스가 존재
- 전체 시스템에 영향을 주지 않으면서 데이터베이스의 확장을 가능하게 .
- 다른 통합 객체에 대한 지식 없이 사업 부서별로 관심 있는 관계의 마이닝을 위해 새로운 통합 객체를 추가하여 시스템을 확장할 있음.
 
Q1. 분산 객체 아키텍쳐에 대한 설명이 아닌 것을 모두 고르시오.
시스템 설계자가 어디서(where), 어떻게(how) 서비스가 제공되어야 하는지에 대한 판단을 뒤로 미룰 있다.
각각의 분산 요소는 다른 객체들에게 서비스를 제공하기도 하고, 반대로 다른 객체들로부터 서비스를 받기도 한다.
서버와 클라이언트를 구분하여 요청/응답에 대한 통신 설계를 해주어야 한다.
네트웍을 통해 객체를 주고 받으면서 시스템을 동적으로 재구성하는 것이 가능하다.
 
③은 클라이언트-서버 아키텍쳐에 대한 설명이다.
 
 
 
조직내 또는 조직간 분산 객체 컴퓨팅(distributed object computing) 특징
- 보안과 상호 운용성(inter-operability) 때문에 대부분의 분산 컴퓨팅은 조직내 수준(intra-organisational 또는 intra-enterprise level)에서 구현되었다.
- 조직내 수준에서는 많은 서버들이 같은 조직 내에 위치하므로, 로컬 표준과 관리 작동 프로세스(operational process) 적용할 있다.
- 분산 컴퓨팅의 새로운 모델은 조직 내부가 아닌 조직간 컴퓨팅을 지원하도록 설계되고 있다. 여기서는 여러 노드들이 다른 조직들에 위치하게 된다.
 
Peer-to-peer 아키텍쳐의 특징
- p2p 시스템은 분권적(decentralized) 시스템으로 네트워크상의 어느 노드에서도 계산(computation) 수행할 있고 원칙적으로는 서버와 클라이언트의 구별은 없다.
- 전체 시스템은 네트워크로 연결된 상당히 많은 수의 컴퓨터들이 가지고 있는 계산 능력과 기억 공간을 활용하려는 의도로 설계된다.
- 노드간 통신을 위한 표준과 프로토콜은 응용 프로그램 자체에 포함되어 있으므로 노드는 응용 프로그램을 복사하여 실행시켜야 한다.
- 대부분의 p2p 시스템들은 개인적 시스템들이었으나 비즈니스적으로 기술을 이용하려는 시도가 증가하고 있다.
 
2가지 관점의 P2P 아키텍처 모델
P2P 아키텍쳐 모델은 2가지 관점으로 있는데 하나는 p2p 애플리케이션을 구성하는 요소들의 일반적 구조를 다루는 애플리케이션 아키텍쳐입니다.
여기서는 시스템의 분산 아키텍쳐를 다루는 논리적 네트워크 관점만을 다루도록 하겠습니다.
 
1)      분권적(Decentralized) P2P 아키텍처 모델
순수한 의미의 p2p 아키텍쳐 모델에서는 모든 노드가 다른 노드의 존재를 알고 접속할 있지만 실제로는 다른 노드와의 접속을 위해 브릿지 역할을 하는 노드가 필요하다.
 
장점
 - 중복적(redundant) 이어서 결함 내성적(fault-tolerant)이다. 네트워크에 연결되지 않은 노드들이 생겨도 내성적이다.
 
단점
 - 하나의 검색을 여러 노드들이 처리할 있으므로 오버헤드가 존재한다.
 - 반복되는 피어 통신을 생각해도 오버헤드가 크다.
 
2)      반중앙집중식(Semi-centralized) 아키텍처 모델
계산 중심의 p2p 응용에서 작업을 분산시키고 계산 결과를 조합하고 검사하는 역할의 서버가 존재한다.
장점
 - 서비스 중심의 방법(다음의 내용)보다 조직간 컴퓨팅을 위한 보다 효과적인 방법이다.
 
단점
 - 보안이나 신뢰성에 관한 문제가 존재한다. (따라서 p2p 시스템은 non-critical 정보 시스템 또는 working relation 이미 존재하는 조직 간에 사용된다.)

- 피어간의 연결이나 계산 결과를 조정해 주는 역할의 서버가 존재한다.
- ) 메시징 시스템
- 점선 : 노드는 다른 노드가 이용가능한지 알아보기 위해 서버와 통신
- 통신 해당 노드와 직접 연결되면 서버와의 연결 필요
 
 
 
 
 
 
 
 
 
WWW 클라이언트 컴퓨터가 원격 서버에 접근할 있게 하나, 브라우저를 이용해야만 하고 외부 프로그램이 정보를 직접적으로 접근하는 것은 불가능 합니다. 이러한 이유로 서비스 개념이 제안되었으며 서비스 지향 아키텍쳐는 서비스에 기초하고 있습니다.
 
l        서비스란?
- 외부에 제공되는 서비스
  ; 다른 프로그램에게 정보의 접근을 허용할 조직은 서비스 인터페이스를 정의하고 공표할 있음. 
- 서비스는 다른 프로그램이 사용할 있게 계산 또는 정보 자원을 표현하는 표준 방법
- () “세금 신고 서비스”는 사용자가 세금서류 양식을 작성하면 자동으로 검사한 조세당국에 제출할 있도록 지원한다.
 
l        서비스의 일반적인 개념
-          An act or performance offered by one party to another. Although the process may be tied to a physical product, the performance is essentially intangible and does not normally
result in ownership of any of the factors of production.
-   따라서 서비스 제공은 서비스를 이용하는 애플리케이션과 무관하다.
-   서비스는 이것의 인스탄스로 있다.
 
서비스 지향 시스템의 개념적 아키텍처
 
 
Service provider : 서비스 제공자는 서비스의 인터페이스를 정의하고 기능을 구현하여 서비스를 제공한다.
Service registry : 외부에서 서비스를 사용할 있게 하기 위해 서비스 제공자는 서비스 정보의 레지스트리에 서비스 정보를 기록한다.
Service requester : 서비스 요구자는 서비스를 찾아 응용 프로그램에 바인드 한다. (응용 프로그램은 서비스를 호출하는 코드를 포함하여 결과를 처리한다.)
 
서비스 모델과 분산 시스템 아키텍처
서비스 모델은 분산 시스템 아키텍쳐를 위한 분산 객체 방법과 차이점이 있습니다. 느슨히 연결된(loosely coupled) 분산 응용의 구축을 위해 웹서비스에 관심이 쏟아지나 아직까지 서비스 지향 아키텍쳐에 대한 실질적 경험이 부족하다는 점을 알고 살펴보도록 합시다.
> 제공자 독립성 : 조직 내부든 외부든 서비스 제공이 가능한다.
> 서비스 제공자는 서비스가 이용가능 함을 공표함
> 응용 프로그램은 서비스 바인딩을 실행시까지 지연시킬 있음
> 서비스의 조합을 통한 새로운 서비스 생성이 가능
> 서비스 사용에 대한 댓가 지불이 가능
> 응용 프로그램이 보다 작아질 있음
> 응용 프로그램이 환경 변화에 따라 반응적 또는 적응적일 있음
 
서비스 사용 시나리오
[그림설명]
- 자동차 내부의 정보 시스템은 운전자에게 날씨, 교통, 상황, 지역 정보 등을 제공함. 정보는 특정 라디오 채널상의 신호로 전달되어 자동차 라디오에 연결됨
- 자동차는 현재 위치를 알기 이ㅜ한 GPS 수신기를 갖춤. 위치 정보에 기초하여 시스템은 '정보 서비스' 접근함.
- 정보가 특정 언어로 전달됨.
Q1. 분권적 p2p 아키텍쳐와 반중앙집중식 p2p 아키텍쳐가 상대적으로 어떠한 장단점을 가지고 있는지 설명하시오.
- 분권적 p2p 아키텍쳐
  장점: 서비스에 대한 공격에 취약함. 피어를 추가한다고 성능이 떨어지지 않는다.
  단점: 피어 통신을 구성하기 어렵다. 가용한 피어를 발견하기 어렵다.
- 반중앙집중식 p2p 아키텍쳐
  장점: 가용한 피어를 찾기 쉽다. 피어간 데이터 교환이 단순하다(서버를 경유).
  단점: 서버에 대한 공격에 취약함.
Posted by 으랏차
,
[대학원] 소프트웨어 공학 개요 및 사회, 기술적 시스템
조회(820)
Software Engineering | 2007/06/16 (토) 17:09
추천하기 | 스크랩하기


1) 소프트웨어(Software) 무엇인가?
- 많은 사람들이 소프트웨어(Software) 컴퓨터 프로그램(Computer program) 같은 것으로 생각하지만 정확하지는 않음. 
- 소프트웨어(Software) 프로그램(programs) 아니라 관련한 모든 문서(Documents) 프로그램이 정상적으로 동작하기 위해 필요한 설정 데이터(Configuration data) 포함함
 
  Software = Programs + Documents + Configuration data
 
Generic products
- 일반적인 목적으로 사용되는 제품으로, 필요로 하는 사용자가 시장에 나와있는 것을 구입하게 .
-  Software Specification 주도권은 개발조직이 가지게 .
: DB서버, 문서 편집기, 이미지 도구, 프로젝트 관리 도구
 
Bespoke (Or Customized product)
- 특정 고객에 맞도록 개발되는 제품
- Software Specification 주도권은 사용자가 가지게 .
: 특정 전자장비의 제어 시스템, 특정 업무를 지원하는 시스템, 항공 운항 통제 시스템
 
2) 소프트웨어공학(Software Engineering) 무엇인가?
시스템 명세(System Specification)단계와 같은 초기단계부터 시스템이 사용된 수행되는 유지보수에 이르기까지 소프트웨어 생산과 관련되는 공학적 분야
- 공학자들은 어떤 문제를 해결함에 있어서 가장 적합한 이론이나 방법론, 도구를 사용하려고 합니다. 기존의 해결책이 없는 경우에는 새로운 시도를 하게 되지만,
문제해결과정에서 조직이나 예산의 제한성도 고려해야 합니다.
- 소프트웨어공학은 소프트웨어를 개발하는데 있어서의 기술적 과정뿐 아니라 프로젝트 관리나 도구, 방법론 이론의 개발과도 관련되어 있습니다.
- 문제해결과정에서 조직적이고 체계적인 접근뿐 아니라 비정형화된 접근이 필요한 경우도 있습니다. ( : 기반 e-Commerce 시스템의 경우는 다양한 소프트웨어 기술과
그래픽 디자인 기술의 융합을 필요로 .)
 
3) 소프트웨어공학(Software engineering) 컴퓨터과학 (Computer science) 차이점은 무엇인가?
- 소프트웨어 공학 : 소프트웨어를 개발함에 있어서 발생하는 실제적인 문제들과 관련한
- 컴퓨터과학 : 컴퓨터나 소프트웨어시스템의 기초가 되는 이론이나 방법론들과 관련된
 
물리학 지식이 전자공학자에게 필요하듯이 컴퓨터과학은 소프트웨어공학자에게 필수적이지만, 항상 컴퓨터과학의 이론에 따르는 것은 아닙니다.
 
4) 소프트웨어공학(Software engineering) 시스템공학 System engineering) 차이점은 무엇인가?
- 소프트웨어 공학 : 소프트웨어기반의 시스템을 주로 다룸.
- 시스템공학 : 하드웨어 개발, 정책, 프로세스 설계, 시스템 배포 소프트웨어공학을 포함하는 개념으로 개별 시스템 컴포넌트(하드웨어,
              소프트웨어 ) 개발과 관련된 공학이 아님.
시스템공학이 소프트웨어공학에 비해 훨씬 역사가 오래되었지만, 최근 시스템의 대부분이 소프트웨어로 대체되고 있기 때문에 시스템공학에서 소프트웨어공학의 기술을
활용하기도 합니다. ( : use-case modeling)
 
 
5) 소프트웨어 프로세스(Software Process) 무엇인가?
- 소프트웨어 생산과 관련한 행위들과 관련 결과물의 집합
- 대부분의 소프트웨어 프로세스에 적용되는 기본적인 4단계 프로세스

l        명세 : 소프트웨어의 기능과 동작에 대한 제약사항 정의
l        개발 : 소프트웨어 요구사항에 맞는 제품 생산
l        확인 : 고객의 요구사항에 맞는 것인지를 확인
l        진화 : 변화하는 고객의 요구사항에 맞도록 소프트웨어 변경
 
6) 소프트웨어 프로세스 모델(Software process model)이란 무엇인가?
l        소프트웨어 프로세스를 단순화, 추상화시킨 .
l        소프트웨어 프로세스 모델의 종류
- Workflow model : 순서있는 일련의 활동
- Data-flow (또는 Activity) model : 데이터의 변환 과정
- Role/action model : 누가 어떤 일을 하는가를 표현
일반적인 프로세스 모델
- Waterfall Approach : 요구사항분석, 명세, 설계, 구현, 테스팅 등의 단계가 엄격하게 구분되어 순서대로 진행
- Evolutionary development : 명세, 개발, 검증 등을 반복하며, 초기에는 추상적인 명세로부터 시작하여 점점 명확해지며 고객이 만족하는 수준이 때까지 계속적으로 개발을 진행
- Formal transformation : 수학적으로 시스템을 명세하여, 정형적인 변환과정을 통해 시스템을 만들게 .
- System assembly from reusable components : 기존에 존재하는 컴포넌트 재사용 조합을 통해 시스템을 개발
 
7) 소프트웨어공학의 비용은 어떻게 되는가?
- 대략적으로 60% 개발비용이고, 40% 테스트 비용이지만, 커스터마이징이 필요한 소프트웨어의 경우는 개발 비용보다 유지보수 비용이 훨씬 많이 .
- 성능이나 신뢰도 수준 또는 개발되는 시스템의 종류에 따라 다양함.
- 사용한 개발 모델에 따라서도 비용이 다르게 나타남.


8) 소프트웨어공학 방법론(Software engineering methods) 무엇인가?
- 시스템 모델, 표기법, 규칙, 설계 조언이나 프로세스 길잡이를 포함하는 소프트웨어 개발에 대한 구조적인 접근법
- 방법론 구성요소(Method components)
 


시스템 모델 설명(System model description) : 개발되어야 시스템 모델과 모델을 정의하는데 필요한 표기법에 대한 설명  , object model, data-flow model, state model
규칙(Rules) : 시스템 모델에 항상 적용되는 제약사항들
                   , 시스템 모델에서 entity 이름은 유일해야 .
권고사항(Recommendations) : 방법론을 올바르게 사용하기 위한 경험적 지침
                                          , 서브객체는 7 이하로
프로세스 길잡이(Process guidance) : 시스템 모델을 개발하기 위해 따라야 절차들에 대한 정의
                                                   , 속성을 정하고 나서 연산을 정의한다.
 
9) CASE 무엇인가?
- Computer Aided Software Engineering 약자
- 요구사항분석, 시스템 모델링, 디버깅, 테스팅 등의 소프트웨어 프로세스를 지원함. 
- 지원하는 개발 시점에 따라 크게 2가지로 나뉨.
  ; upper-CASE 도구 : 분석 설계
; lower-CASE 도구 : 구현 테스팅
 
10) 좋은 소프트웨어의 속성들은 무엇인가?
- Maintainability : 소프트웨어는 변화하는 요구사항을 만족시킬 있도록 설계되어야 한다.
- Dependability : 소프트웨어는 신뢰도(reliability) 높아야 하며, 보안(security) 안전성(safety) 뛰어나야 한다.
- Efficiency      : 소프트웨어는 시스템의 자원을 낭비하지 않도록 효율적으로 동작해야 한다.
- Usability        : 소프트웨어는 의도한대로 사용자가 사용하기 쉬워야 한다. : 사용자인터페이스, 문서화
 
11) 소프트웨어공학이 직면한 주요 과제로는 어떤 것들이 있는가?
- 오래된 시스템(Legacy system) : 수년 전에 개발되어 사용되고 있는 오래된 시스템을 비용 효율적으로 유지보수하고 업데이트 시킬 있어야 한다.
- 환경의 이질성 : 네트워크를 통해 분산된 환경에서 다양한 컴퓨터들과 운영체제 등에 독립적으로 동작할 있어야 한다.
- 품질과 생산속도 : 품질을 위해 시간을 너무 많이 투자해서는 안된다. 오늘날과 같이 빠르게 변화하는 시장에서 살아남기 위해서는 품질도 충분히
보장하면서 비용을 줄이면서도 빠르게 시스템을 개발할 있어야 한다.
 
 
Q1.소프트웨어공학 방법론(Software engineering methods) 정의와 방법론의 4가지 구성요소에 대해 설명하시오.
- 정의 : 시스템 모델, 표기법, 규칙, 설계 조언이나 프로세스 길잡이를 포함하는 소프트웨어 개발에 대한 구조적인 접근법
- 방법론의 4가지 구성요소(Method components) : 시스템 모델 설명(System model description, 규칙(Rules), 권고사항(Recommendations), 프로세스 길잡이(Process guidance)
 
Q2.다음은 좋은 소프트웨어 속성에 관한 설명입니다. 설명에 해당하는 속성을 보기에서 골라 입력해 보세요.
- 설계되어 유지보수가 쉬워야 한다. [Maintainability]
- 소프트웨어는 신뢰도(reliability) 높아야 하며, 보안(security)이나 안전성(safety) 뛰어나야 한다. [Dependability]
- 소프트웨어는 시스템의 자원을 낭비하지 않도록 효율적으로 동작해야 한다. [Efficiency]
- 소프트웨어는 의도한대로 사용자가 사용하기 쉬워야 한다. [Usability]
 
 
 
ACM, IEEE(Institute of Electrical and Electronic Engineers), British Computer Society 기술전문가가 지켜야 8가지 윤리강령을 만들었는데, 내용은 다음과 같습니다.
- Public : 소프트웨어공학자는 대중의 이익에 부합하는 행동을 한다.
- Client & Employer : 소프트웨어공학자는 대중의 이익에 부합하는 범위 내에서 그들의 고객과 고용주의 최대 이익을 내기 위한 행동을 한다.
- Product : 소프트웨어공학자는 제품 관련 변경이 최대한 전문가적 기준에 부합하도록 한다.
- Judgment : 소프트웨어공학자는 그들의 전문가적 판단 아래 성실하고 독립적으로 행동한다.
- Management : 소프트웨어공학 관리자와 지도자는 소프트웨어 개발과 유지보수를 함에 있어 윤리적 접근을 지향한다.
- Profession : 소프트웨어공학자들은 대중의 이익에 부합하면서 전문가로서의 성실과 평판을 유지·발전시켜 나가야 한다.
- Colleagues : 소프트웨어공학자들은 동료에게 공평하고 협조적이어야 한다.
- Self : 소프트웨어공학자들은 그들의 전문지식을 지속적으로 공부하면서, 윤리적인 접근으로 전문가로서의 실천을 행해야 한다.
 
Q, 국내의 과학윤리 현황을 살펴보고 앞으로 여러분께서 나가야 과제를 생각해 보세요.
제시된 자료는 과학의 윤리적 측면에 대한 국내의 제반 활동에 대해 모니터링을 시도한 것으로 국내의 과학윤리 관련 상황이 얼마나 열악한지를 엿볼 있습니다. 이런 열악한 상황을 극복하기 위해 과학 연구에서의 객관성 유지, 논문 발표시의 저자 표시 (authorship) 공로(credit) 배분, 과학윤리 교육 연구 등에 관심을 가지고 노력하여야 겠습니다.
 
- 침입자 경고시스템은 시스템의
- 시스템이란, 관련 요소들이 체계적으로 조직화된 집합체를 의미한다. 하나의 시스템은 여러 서브 시스템들로 구성되고, 서브시스템은 여러 컴포넌트들로 구성되며, 컴포넌트들은 작은 여러 컴포넌트들로 구성된다.
 
- 우리가 과목에서 학습해야 하는 것은소프트웨어 시스템이지만 일반적으로시스템이라 하면 소프트웨어와 하드웨어 등의 결합체를 의미한다. 최근 들어 시스템을 구성하는 소프트웨어의 비중이 점차 커지고 있으며, 시스템 관점에서의 고려 사항이 소프트웨어 개발에 영향을 끼치므로 먼저 시스템 공학을 이해할 필요가 있다.
 
* 시스템이란?
공통의 목적을 달성하기 위해 서로 연관되어 함께 동작하는 컴포넌트들의 집합
 
* 시스템의 특징?
- 시스템에 존재하는 컴포넌트들 간의 관계가 복잡하며 창발적 속성이 나타남.
- 사회-기술적 시스템은 조직의 정책이나 법률과 같은 변화하는 주변 환경과의 관계도 존재함.
 
시스템을 구성하는 소프트웨어의 비중이 점차 커지고 있으며, 시스템 공학에서의 문제는 소프트웨어 공학에서의 문제와 유사한 경우가 많으므로 유심히 살펴볼 필요가 있다.
* 기술적 컴퓨터 기반 시스템
하드웨어와 소프트웨어 컴포넌트를 포함하나 사용자나 작업 프로세스를 시스템의 일부로 포함하지 않는다. 어떤 목적을 위해 사용하나, 목적에 대한 지식은 시스템에 포함되지 않는다.
[] 책을 저술하고자 워드프로세서를 사용하지만 워드프로세서가 책을 저술하는 것에 관해 필요가 없다
 
* 사회-기술적 시스템
-하나 또는 이상의 기술적 시스템을 포함하며 또한 기술적 시스템을 이용하는 사람과 작업 프로세스를 포함한다. 중요한 점은 시스템이 어떻게 이용되는지에 관한 지식을 시스템이 포함하고 있다는 점이다.
-시스템이 작업 프로세스(operational process) 정의하고 있으며 사람을 시스템의 일부로 포함하고 있다.
- 조직의 정책과 규칙에 지배를 받으며 법률이나 규제 정책과 같은 외적 제약사항에 의해서 영향을 받을 수도 있다.
 
* 사회-기술적 시스템의 특징
1) 창발적 속성을 가진다.
- 창발적 속성은 시스템이 조합된 후에 나타나는 속성이다.
 
2) 비결정적이다.
- 같은 입력에 대해 항상 같은 출력이 나오지는 않는다. 시스템의 행위가 부분적으로 운용자(operator) 영향을 받기 때문이다.
 
3) 조직의 목표와 복잡한 관계가 있다.
- 시스템이 조직의 목표를 얼마나 지원하고 있는가는 단지 시스템만의 문제는 아니다. 목표의 안정성, 목표들 간의 관계와 충돌여부, 목표 해석의 차이도 영향을 있다.
 
여러가지 부품들의 특성과 행위들이 복잡하게 연결되어 있는 시스템이 작동하기 위해서는 다른 부품들과의 기능이 적절하게 연결되어 있어야 합니다. 이러한 시스템의 속성을 창발적 속성(Emergent property)이라고 합니다. 창발적 속성에는 다음 3가지 특징이 있다.
- 서브 시스템이나 컴포넌트들의 경우가 아니라 전체 시스템이 구성되었을 나타나는 특성
- 시스템 컴포넌트들의 상호작용 때문에 생기는 특성
- 시스템이 통합(Integration)되기 이전에는 미리 예상하기가 어려우므로 통합된 후에 평가나 측정이 가능함.
 
* 창발적 속성의
시스템의 크기(overall weight) :
- 컴포넌트의 조합 방법에 따라 달라질 있음 
- () 신뢰도(reliability) - 개별 컴포넌트의 신뢰도뿐 아니라 컴포넌트 간의 상호작용에 대해서도 영향을 받음 
 
시스템의 보안성(security)
공격에 대한 방어 능력으로 쉽게 측정할 없은 복잡한 속성 
 
시스템의 수리성(repairability)
발견된 문제를 얼마나 쉽게 고칠 있는가를 의미 
문제를 진단하고 결함이 있는 컴포넌트에 접근하여 수정 또는 교체하는 능력에 따라 좌우됨 
 
시스템의 유용성(usability)
시스템을 얼마나 쉽게 사용할 있는가를 의미 
시스템 하드웨어나 소프트웨어뿐 아니라 조작수 사용 환경까지도 고려해야 하는 복잡한 속성
 
부품이 전체 시스템의 구성요소가 나타나는 창발적 속성(Emergent property) 다음과 같이 크게 가지 종류로 나뉠 있습니다.
기능적 속성(Functional Properties)
- 특정 목적을 달성하기 위해 시스템의 구성 요소들이 협력하는 경우에 생기는 특성
[] 자전거: 구성 요소들이 통합되면 교통도구라는 Functional Property 가지게 된다. 
 
비기능적 속성(Non-functional Properties)  
- 실제 운영 환경하에서의 시스템 행위와 관련됨
- 최소한의 수준이 만족되지 못한다면 시스템 전체가 무용지물이 수도 있다.
  [] 신뢰도(reliability), 성능(performance), 안전성(safety), 보안(security).
 
신뢰도
시스템의 신뢰도에 영향을 주는 요소는 다음 3가지 입니다.
- 신뢰도는 시스템을 둘러싼 환경에 의해서도 영향을 받습니다.
  시스템 환경은 미리 예측하기 힘들며 예측하더라도 제약하기 힘듭니다.
   ) 상온에서 정상적으로 동작하도록 설계된 시스템이 주변에 새로 놓인 에어컨때문에 정상 온도 범위를 벗어나게 되어 오동작하는 경우
 
* Shall-not 속성
앞에서 살펴본 창발적 속성의 종류 비기능적 속성에는 신뢰도, 성능, 안전성, 보안이 포함됩니다. , 성능과 신뢰도는 측정이 가능하지만, 안전성이나 보안과 같은 특성은 측정이 어렵기 때문에 시스템에 대한 제한요건으로서 표현됩니다. “shall-not” properties 시스템과 환경에 대해 살펴보면 다음과 같습니다.
- 안전성(safety) : 시스템이 사람이나 환경에 위험한 영향을 주도록 동작해서는 안된다.
- 보안(security) : 허가받지 않은 사용자나 외부의 침입에 의해 시스템이 노출되지 않아야 한다.
 
* 계층구조
시스템은 독립적일 없으며 항상 특정 환경에 속하게 된다.
시스템의 동작은 주변의 환경을 변화시킬 있다. [] 온열 시스템에 의한 주변 공기 온도 변화
환경은 시스템의 기능이나 성능에 영향을 미칠 있다. [] 환경으로부터의 전력공급, 번개에 의한 전기 자기적 충격
물리적 환경뿐 아니라 특정 기관이나 조직과 같은 사회적인 환경도 중요하다.
 
* 도시에서 건물의 시스템
- 건물은 도시(town)속의 어떤 거리(street) 위치해 있음.
- 시스템의 지역 환경(local environment)
  같은 계층(level) 상의 다른 시스템들, [] 보안 시스템(security system) 지역 환경(local environment) 건물 안에 있는 다른 시스템들
- 총체적 환경(overall environment)
  지역 환경과 그것들을 포함하는 시스템의 환경으로 구성, [] 건물(building)밖의 모든 다른 시스템들을 포함하며 날씨(weather system)까지 포함하는 개념
 
* 인간 사회적 요소
시스템이 성공적으로 운영되는데 있어서 환경은 매우 중요하며, 인간, 사회, 조직적인 요소들이 환경을 구성하고 있습니다.
 
- 인간 사회적 요소로 인한 영향력
 ; 프로세스의 변화 ->시스템이 조직의 권력구조를 변경시킬 수도 있다. 만약 시스템이 의존적인 조직이 있다면 시스템을 사용할 있는 사람들은 정치적인 권력을 획득하게 된다.
 ; 직업의 변화 -> 시스템이 사용자의 직업 능력을 변화시켜서 업무의 효율이 저하되거나 능력이 상실된다면 시스템 사용의 의미가 상실된다.
 ; 조직의 변화 -> 시스템이 조직의 권력구조를 변경시킬 수도 있다. 만약 시스템이 의존적인 조직이 있다면 시스템을 사용할 있는 사람들은 정치적인 권력을 획득하게 된다.
하지만, 엔지니어가 인간, 사회 조직적 요소와 시스템간의 영향력 정도를 미리 측정하기는 다소 어려운 감이 있습니다. 따라서 이러한 측도를 위한 방법론이 개발되었습니다.
 
Tips : 완벽을 기한다면 시스템 명세에 환경적 요인을 포함해야 하나, 사실상 불가능하므로 시스템 설계자는 상식선에서 다른 시스템들과 비교하여 가정할 밖에 없습니다.
방법론 1 Mumfords sociotechnics (Mumford, 1989)
방법론 2 Checklands Soft System Methodology
                        (Checkland,1981; Checkland and Scholes, 1990)
 
 
Q1. 시스템 엔지니어가 환경을 이해해야 하는 이유는 무엇입니까?
시스템은 환경을 바꾸어 놓을 있으며, 환경에 의해 지배받기도 합니다.
[] 전열 시스템은 온도를 변화시키며, 전력 공급이 끊기면 작동할 없다.
 
Q2.창발적 속성(Emergent properties) 의미를 설명하시오.
Emergent properties이란 서브시스템이나 컴포넌트의 경우가 아니라 전체 시스템이 구성되었을 나타나는 특성을 의미합니다. 이는 시스템 컴포넌트들의 상호작용 때문에 생기는 것으로, 주로 시스템이 통합된 후에 평가나 측정이 가능합니다.
 
시스템 공학이란?
- 사회-기술적 시스템을 명세, 설계, 구현, 확인, 배치, 그리고 유지보수하기 위한 활동 
- 시스템이 제공하는 서비스, 시스템의 개발과 작동사의 제약 사항, 그리고 시스템이 사용되는 방법을 고려해야  
 
시스템 공학 프로세스와 소프트웨어 공학 프로세스의 차이점
- 보통 폭포수 모델을 사용함. 시스템의 여러 부분들을 동시 개발해야 필요성 때문임.
- 하드웨어 변경 비용은 매우 비싸기 때문에 개발 작업을 반복하는 경우는 매우 제한적임. 이러한 이유로 시스템에서 소프트웨어의 중요성이 부각됨
- 여러 다른 분야 엔지니어들과의 공동 작업은 불가피함. 타협이 필요하기도 .
 
시스템 요구사항과 설계 활동의 결과로 전체 시스템의 구성을 보여주는 시스템 아키텍쳐 모델을 만듭니다. 시스템을 기능에 따라 서브시스템들로 분류하고 관계를 표현하는데 주로 블록 다이어그램으로 나타내고 서브시스템 별로 간단한 설명을 붙입니다.
 
- 전통적으로 시스템 아키텍쳐 모델은 병행 개발될 있는 하드웨어와 소프트웨어 컴포넌들을 구분하기 위한 것이었으나, 오늘날 시스템에서의 하드웨어와 소프트웨어의 구분이 모호해지면서 하드웨어와 소프트웨어의 trade-off 대해 결정하기 이전에 서브시스템들을 기능에 따라 구분을 하기 위한 수단으로 사용되고 있다. 
 
- 하드웨어로 개발할 것인지 소프트웨어로 개발할 것인지에 대한 결정은 기성(commercial-off-the-shelf) 컴포넌트의 가용성과 컴포넌트 개발에 허용된 시간 등을 고려해 차후에 결정
 
시스템 아키텍처 모델링의 역할
- 시스템을 구성하는 서브시스템들의 추상적인 (abstract view) 제공한다.  
- 서브시스템들 사이에서 발생하는 관계나 주요 정보의 흐름을 보여준다. 
- 주로 블록 다이어그램(block diagram)으로 표현된다. 
- 모델에서의 컴포넌트의 종류를 구분해준다.
 
시스템 아키텍처 모델링은 서브시스템들 사이에서 발생하는 관계(주로“uses/used by”관계나 다른“dependency”관계) 표현하며, 이때 정보의 흐름은 화살표로 나타냅니다.
 
시스템을 구성하는 서브시스템들은 여러가지 기능 측면을 고려하여 분류할 있습니다. 먼저, 단순한 침입 경보 시스템에 대해 살펴보겠습니다.
 
 
컴포넌트
기능
센서 컴포넌트
시스템의 환경으로부터 정보를 수집
경고 시스템에서의 동작 센서(Movement sensor)
항공 운항 통제 시스템의 레이더(radar)
레이저 프린터의 종이 위치 감지 센서 (paper position sensor)
작동기 컴포넌트
시스템의 환경에 변화를
경고 시스템에서의 사이렌(Siren)
파이프관에서 액체의 이동 속도를 조절하기 위한 밸브(valve)
비행기의 수직, 수평 조절 날개
계산 컴포넌트
주어진 입력 값에 대해 특정 연산을 수행하여 결과를 만들어
실수 계산을 위한 부동소수점 연산 프로세서 (floating-point processor)
통신 컴포넌트
시스템의 컴포넌트들이 서로 통신을 있도록
경고 시스템에서의 전화 호출기(Telephone caller)
분산 컴포넌트들을 연결시켜주는 네트워킹 관련 컴포넌트
조정 컴포넌트
컴포넌트들의 상호작용을 조정
경고 시스템에서의 경고 통제장치(Alarm controller)
실시간 시스템(real-time system)에서의 스케줄러(scheduler)
인터페이스 컴포넌트
다른 컴포넌트가 사용할 있도록 지원하는 컴포넌트
경고 시스템에서의 음성 합성기(Voice synthesizer)
사용자를 위한 디스플레이(display)

출처 : http://blog.empas.com/shone2210/21682553

'UP! > Software Engineering' 카테고리의 다른 글

개발의 중요문제  (0) 2008.08.21
시스템분석가의 역할  (0) 2008.08.21
소프트웨어와 소프트웨어 공학  (0) 2008.08.21
시스템의 특성  (0) 2008.08.21
분산시스템아키텍처  (0) 2008.08.21
Posted by 으랏차
,