본문 바로가기
정보과학/소프트웨어공학특론

시스템 공학

by J1소프트 2023. 11. 23.
728x90

1. 개요

①   시스템
- 특정 목적을 달성하기 위해 서로 연관되어 함께 동작하는 독립적인 목적을 가진 컴포넌트들의 집합
②   시스템 공학
- 시스템의 명세, 설계, 구현, 확인, 배포 및 유지보수 행위로 시스템 전체를 포괄적으로 고려해 야 함
- 소프트웨어뿐 아니라 하드웨어, 시스템과 사용자간의 상호작용, 환경 등도 관련된다.
③ 시스템 공학의 고려사항
- 다양한 분야의 전문지식이 서로 연관되어 있다.
- 협력이 이루어지는 과정에서 “ trade-off” 가 발생한다.
- 공학적 기법간의 이해의 부족이 발생할 수 있다.
- 변화하는 환경을 고려하여 설계되어야 한다.
④ 소프트웨어 공학의 문제가 종종 시스템 공학의 결정에 의한 경우가 많기 때문에 소프트웨어 공 학자들은 시스템 공학에 대한 이해가 필요하다.
 

2. 학습내용


1) 1절: 시스템 속성과 환경

▪ 시스템의 창발적 속성(Emergent properties of a system)
> 서브 시스템이나 컴포넌트들의 경우가 아니라 전체 시스템이 구성되었을 때 나타나는 특성
> 시스템 컴포넌트들의 상호작용 때문에 생기는 특성
> 주로 시스템이 통합(Integration)된 후에 평가나 측정이 가능 (통합되기 이전에 미리 예상하기가 어려움)

▪ 창발적 속성(Emergent properties)의 예
> 시스템의 크기(overall weight)
- 독립된 컴포넌트로부터 구할 수 있는 경우
> 시스템 신뢰도(reliability)
- 개별 컴포넌트의 신뢰도뿐 아니라 상호작용에 대해서도 영향을 받는다
> 시스템의 유용성(usability)
- 시스템 하드웨어나 소프트웨어뿐 아니라 사용자 및 주변환경까지도 고려해야 하는 복잡한 특성

▪ 창발적 속성(Emergent Properties)의 종류
> 기능적 속성(Functional Properties)
- 특정 목적을 달성하기 위해 시스템의 각 구성요소들이 함께 동작하는 경우에 생기는 특성
(예) 자전거는 각 구성요소들이 통합되면 교통도구라는 Functional Property를 가지게 된다.
> 비기능적 속성(Non-functional Properties)
- 주변의 환경의 영향도 받는다.
- 특정 수준이상 만족되지 못한다면 시스템 전체가 무용지물이 될 수도 있다.
- (예) 신뢰도(reliability), 성능(performance), 안전성(safety), 보안(security)

▪ 시스템의 신뢰도(Reliability )에 영향을 주는 요인
> 하드웨어, 소프트웨어, 사용자
이러한 요인들은 서로 밀접하게 연관되어 있다. 즉, 하드웨어에서 발생한 오동작 때문에 소프트웨어에서 기대하는 입력범위를 벗어나는 값이 들어올 수 있고, 이로 인해 소프트웨어도 에러를 발생시킬 수 있다. 이는 사용자에게 스트레스를 주게 되고, 사용자 실수로 인한 오류를 일으킬 수 있다. 이러한 악순환이 계속될 경우 서브시스템상의 간단한 오류가 전체시스템의 마비로 이어지는 심각한 상황이 벌어질 수도 있다.


> 시스템을 둘러싼 환경에 의해서도 영향을 받는다.
- 시스템 환경은 미리 예측하기 힘들며 예측하더라도 제약하기 힘듭니다
(예) 상온에서 정상적으로 동작하도록 설계된 시스템의 경우 주변에 새로 놓인 에어컨때문에 정상 온도 범위를 벗어나게 되어 오동작하는 경우가 발생할 수도 있다.

▪ “ Shall-not” properties
: 성능(performace)와 신뢰도(reliability)는 측정이 가능하지만, 안정성(safety)나 보안(security)같은 특성은 측정이 어려우며, 시스템에 대한 제한요건으로 표현된다.
- 안전성(safety): 시스템이 사람이나 환경에 위험한 영향을 주도록 동작해서는 안 된다.
- 보안(safety): 허가받지 않은 사용자나 외부의 침입에 의해 시스템이 노출되지 않아야 한다.

▪ 시스템과 환경
> 시스템은 독립적일 수 없으며 항상 특정 환경에 속하게 된다.
> 시스템의 동작은 주변의 환경을 변화시킬 수 있다.
- 예) 온열 시스템에 의한 주변 공기 온도 변화
> 환경은 시스템의 기능이나 성능에 영향을 미칠 수 있다.
- 예) 환경으로부터의 전력공급, 번개에 의한 전기 및 자기적 충격 등
> 물리적 환경뿐 아니라 특정 기관이나 조직과 같은 사회적인 환경도 중요하다.


▪ 시스템의 계층구조
아래 그림은 어떤 사무 공간에서의 시스템의 구성을 보여주고 있다. 전열 시스템(heating system), 전력 시스템(power system), 조명 시스템(lighting system), 배관 시스템(plumbing system), 쓰레기 처리 시스템(waste system)과 보안 시스템(security system)은 모두 건물의 서브 시스템(sub system)으로 볼 수 있다. 건물은 도시(town)의 거리(street)에 위치해 있다.
시스템의 지역 환경(local environment)는 같은 계층(level)상의 시스템이며, 총체적 환경(overall environment)은 지역 환경과 그것들을 포함하는 시스템의 환경으로 구성되어 있다.
예를 들어, 보안 시스템(security system)의 지역 환경(lovel environment)은 건물안에 있는 다른 시스템들이며, 총체적 환경(overall environment)는 건물(building)밖의 거리(stree)나 시(town)를 포함할 뿐 아니라 날씨(weather system)까지 포함하는 개념이다.



▪ 시스템과 인간 사회적 요소
: 시스템이 성공적으로 운영되는데 있어서 환경은 매우 중요하며, 인간, 사회, 조직적인 요소들이 환경을 구성하고 있습니다.
> 프로세스(process)의 변화
:시스템이 업무의 프로세스를 변경시킨다면 추가적인 교육이나 훈련이 필요하게 된다. 만약 그러한 변화로 인해 사람들이 업무를 잃게 된다면 시스템 사용에 대한 사람들의 저항이 발생한다.
> 직업(job)의 변화
:시스템이 사용자의 직업 능력을 변화시켜서 업무의 효율이 저하되거나 능력이 상실된다면 시스템 사용의 의미가 상실된다.
> 조직의(organizational) 변화
:시스템이 조직의 권력구조를 변경시킬 수도 있다. 만약 조직이 복잡한 시스템에 의존하게 된다면 시스템을 사용할 수 있는 사람들은 정치적인 권력을 획득하게 된다.

▪ 기타
인간, 사회, 조직적인 요소들은 시스템이 성공적으로 운영되는데 있어 중요하다. 하지만, 사회 문화적 분야에 대한 지식이 전문적이지 못한 공학자들에게 있어서 그에 따른 영향력의 정도를 미리 측정하는 것은 상당히 어려운 일이다. 그렇기 때문에 이러한 측도를 위한 여러가지 방법론이 개발되었는데, 다음과 같은 것들이 있다.
 
 Mumford’s sociotechnics(Mumford, 1989), Checkland’s Soft System Methodology
(Checkland,1981; Checkland and Scholes, 1990)
[Tip]
완벽을 기한다면 시스템 명세에 환경적 요인을 포함해야 하나, 사실상 불가능하므로 시스템 설계자는 상식선에서 다른 시스템들과 비교하여 가정할 수 밖에 없습니다.


2) 2절: 시스템 모델


▪ 시스템 아키텍쳐 모델링
> 시스템을 구성하는 서브시스템들의 추상적인 뷰(abstract view)를 제공한다.
> 서브시스템들 사이에서 발생하는 관계나 주요 정보의 흐름을 보여준다.
- 관계: 주로 “uses/used by” 관계나 다른 “dependency” 관계를 표현
- 정보의 흐름은 화살표로 나타낸다.
> 주로 블록 다이어그램(block diagram)으로 표현된다.
> 모델에서의 컴포넌트의 종류를 구분해준다.

▪ 기능 시스템 컴포넌트
> 시스템의 기능 부품을 여러가지 다른 기능적인 측면에서 분류할 수 있다.
> 아래 그림은 “ 침입 경보 시스템” 의 구성요소들을 보여주고 있다.




< 침입자 경고 시스템에서 부품유형 >
· Movement sensors : 시스템에 의해 감시되는 방에서의 움직임을 감지
· Door sensors : 건물의 외부에 있는 문의 개폐여부를 감지
· Alarm controller : 시스템의 동작을 통제
· Siren : 침입이 의심될 경우 경고 사이렌을 울림
· Voice synthesizer : 의심되는 침입의 위치 정보를 음성정보로 표현
· Telephone caller : 외부 보안업체나 경찰에게 전화를 통해 침입을 알림

블락 다이어그램(block diagram)은 큰 규모의 시스템에 대해서도 적용가능하다.
아래 그림은 항공 운항 통제 시스템에 대한 보다 큰 규모의 시스템의 아키텍쳐를 나타내고 있다.



▪ 경고 시스템(alarm system)에서의 컴포넌트의 종류
> 센서(Sensor): 동작 센서(Movement sensor)
> 작동기(Actuator): 사이렌(Siren)
> 통신(Communication): 전화 호출기(Telephone caller)
> 조정(Co-ordination): 경고 통제장치(Alarm controller)
> 인터페이스(Interface): 음성 합성기(Voice synthesizer)

▪ 기능적 시스템 컴포넌트(Functional system component)의 종류
> 센서 컴포넌트(Sensor component)
- 시스템의 환경으로부터 정보를 수집
- (예) 항공 운항 통제 시스템의 레이더(radar), 레이저 프린터의 종이 위치 감지 센서(paper position sensor) 등
> 작동기 컴포넌트(Actuator component)
- 시스템의 환경에 변화를 준다.
- (예) 파이프관에서 액체의 이동 속도를 조절하기 위한 밸브(valve), 비행기의 수직, 수평 조절 날개 등
> 계산 컴포넌트(Computation component)
- 주어진 입력 값에 대해 특정 연산을 수행하여 결과를 만들어 준다.
- (예) 실수 계산을 위한 부동소수점 연산 프로세서(floating-point processor)
> 통신 컴포넌트(Communication component)
- 시스템의 컴포넌트들이 서로 통신을 할 수 있도록 한다.
- (예) 분산 컴포넌트들을 연결시켜주는 네트워킹 관련 컴포넌트
> 조정 컴포넌트(Co-ordination component)
- 컴포넌트들의 상호작용을 조정
- (예) 실시간 시스템(real-time system)에서의 스케줄러(scheduler)
> 인터페이스 컴포넌트(Interface component)
- 다른 컴포넌트가 사용할 수 있도록 지원하는 컴포넌트
- (예) 사용자를 위한 디스플레이(display)


▪ 최근 대부분의 컴포넌트들은 소프트웨어로 통제됨

▪ 전통적으로 시스템 아키텍쳐 모델은 하드웨어와 소프트웨어 컴포넌트의 병행 개발을 위해 이를 구분하기 위한 것이었으나, 오늘날 시스템에서의 하드웨어와 소프트웨어의 구분이 모호해지면서 하드웨어나 소프트웨어의 “trade-off”에 대해 결정하기 이전에 각 서브시스템의 기능에 따라 구분을 하기 위한 수단으로 사용되고 있다.


[ 정리하기 ]


1. 요약정리
▣ 시스템 공학은 다양한 분야의 지식을 필요로 한다.
▣ 시스템 속성(Emergent Properties)은 개별 컴포넌트에서의 특성이 아닌 전체 통합된 시스템에서 생겨나는 속성을 의미한다.
▣ 시스템 아키텍쳐 모델은 주요 서브시스템과 그들간의 상호작용을 보여주며, 대부분 블록 다이어그램(block diagram)으로 표현된다.
▣ 시스템 기능적 컴포넌트의 종류에는 센서, 작동, 계산, 조정, 통신, 인터페이스가 있다.


2. 참고자료
▣ 참고1
Roger S. Pressman, Software Engineering: A Practitioner’s Approach
P265, Chapter10 System Engineering 부터 참고
▣ 참고2
Richard H. Thayer, Software System Engineering: A Tutorial, Computer,
Apr. 2002, pp. 68-73
“소프트웨어 시스템 공학"이라는 말로 소프트웨어 개발 시 시스템적으로 고려할 점을 기술

'정보과학 > 소프트웨어공학특론' 카테고리의 다른 글

요구 공학 프로세스  (2) 2023.11.25
소프트웨어 요구사항  (1) 2023.11.25
소프트웨어 프로세스(2)  (1) 2023.11.23
소프트웨어 프로세스(1)  (1) 2023.11.23
소프트웨어공학특론 개요  (3) 2023.11.23