Cohe

7장 아키텍처 설계와 패턴 본문

소프트웨어 공학

7장 아키텍처 설계와 패턴

코헤0121 2023. 3. 12. 16:15
728x90

1. 시스템 아키텍처에 대한 설명으로 옳지 않는 것은?

물리적 구성을 기반으로 정의되는 시스템의 상세 설계도이다.

② 이해당사자들과의 상호 이해, 협상, 동의 및 의사 교환을 위한 도구이다.

③ 프로젝트 초기의 설계 결정으로 시스템 개발 및 유지보수 전반에 걸쳐 지속적인 영향 력 을 갖는다

④ 시스템에 관련 있는 이해당사자들의 요구사항을 고려하여 정의하여야 한다

 

2. 다음 중 스프트페어 아키텍처에서 설계에 필수적인 요소들로만 짝지워진 것은?
💡 소프트웨어 컴포넌트 클래스 다이어그램 소프트웨어 컴포넌트 사이의 관계를 나타내는 커넥터 E-R 다이어그램
1 ㄱㄴ 2 ㄱㄷ 3ㄱㄷ 4ㄷㄹ

 

3. 소프트웨어 아키텍처의 4+1 관점(View)에 대한 설명으로 옳지 않은 것은?

 

1 유스케이스 관점에서는 외부 행위자에 의해 인식되는 시스템의 기능 요구사항을 보여주 는 데 초점을 둔다.

2논리 관점에서는 계층 구조, 제약 사항, 코드 재사용 등과 같은 시스템 구현을 위한 요 건을 보여주는 데 초점을 둔다.

3 프로세스 관점에서는 독자적인 제어 스레드를 가질 수 있는 액티브 클래스에 초점을 둔다.
4 배치 관점에서는 물리적인 시스템을 구성하고 있는 각 부분들의 분산 형태와 설치에 초점을 둔다.

 

 

4. 어떤 시스템은 다음과 같은 구성과 동작 방식으로 운영된다. 이 시스템을 통해 만족할 수 있는 품질 속성(quality attribute)은 무엇인가?[정보시스템 김리사 자격감점. 공무원]

 

💡 시스템은 사용자에게 서비스를 제공하기 위해 동일한 기능을 수행하는 컴포넌트 A와 B, 이 외에 여러 컴포넌트로 구성된다. 컴포넌트 A가 동작 중에 실패가 발생하여 대기 중이었던 컴포넌트 B가 A를 대신하여 계속 서비스를 제공한다.

 

1가용성(availability)

2 상호운용성(interoperability)

3 성능(performance)

4 적응성(adaptability)

 

 

 

5. 다음 중에서 ISO/IEC 25010 성능(pertormance eicency) 관련된 지표를 모두 른 것은?

 

 

💡 . 동시 접속 가능한 사용자수 . 네트워크 Bandwidth 사용률

. 평균 소요시간(turnaround time)

. 단위 시간당 평균 처리량 마. 지원 가능한 프로토콜

 

.

. .

.

, . .

 

6.   소프트웨어 아키텍처 스타일과 응용분야가 가장 적절하지 않게 연결된 것은? 정보시스 감리사 자격검정, 2015]

클라이언트/서버 아키텍처 - 기반의 수강 신청 시스템

N-tier 아키텍쳐 - 운영체제

계층형 아키텍쳐 - 마이크로웨이브 오븐 제어 소프트웨어

MVC 아키텍처 - 모바일 애플리케이션

 

7. 파이프 필터 형태의 소프트웨어 아키텍처에 대한 설명으로 옳은 것은?

컴포전트 사이에 복잡한 상호작용이 필요한 시스템에 가장 적합하다.

사용자가 개입하여 데이터 호흡을 전환할 경우에 사용된다.

 

서브시스템이 입력 데이터를 받아 처리하고 결과를 다른 시스템에 보내는 작업이 반복 된다

모든 필터가 동시에 작동하는 병렬처리 형식이다.

 

8    아키텍쳐 유형의 관한 설명 옳지 않은 것은?

CORBA 파이프 필터 유형의 아키텍쳐를 지원한다.

3-계층 구조는 클라이언트 서버 유형의 변형이라 있다

peer-to-peer 아키텍쳐 유형에서 각 서브시스템은 서비스를 제공하고 요청하는 능력이 있다.

계층 구조 유형에서는 하위 계층이 제공하는 서비스를 상위 제품의 서브시스템이 사용 하도록 구성된다.

 

 

9    다음 응용문제에 대하여 적합한 소프트웨어 아키텍쳐 스타일이 아닌 것은? 센서와 대이터를 처리하는 프로세스로 구성된 신호. 처리 시스템 - 파이프라인 구조 느슨하게 결합된 디자인 도구들 - 저장소 구조

분산 운영체제 - MVC 구조

웹기반 수강 신청 시스템 - 클라이언트 서버 구조

 

 

10      기반 엔터프라이즈 응용에 계층형 아키텍처를 사용하는 적합한 이유만을 모은 것은?

 

💡  코딩 이식성 시스템 관리의 용이성 성능

 

1 ㄱㄴ 2 ㄴㄷ 3 ㄴㄷㄹ 4 ㄱㄴㄷ

 

 

11     상속을 사용하지 않고도 객체의 기능을 동적으로 확장할 수 있도록 해주는 패턴은? 데코레이터 패턴 어뎁터 패턴 컴포지트 패턴 4퍼사트 패턴

 

12            Iterator 패턴에 대한 설명으로 옳지 않은 것은? [7 국가직 공무원 시험.]

집합 객체의 요소들에 대해 순서대로 접근하는 방법을 제공한다.

배열(Array), 배열리스트(Array List), 해시 테이블과 같은 객체를 처리하는 데 사용하 는 패턴이다.

서로 다른 인터페이스를 사용하기 때문에 각각의 객체를 참조하기 위한 다형성 코드

(polymorphic code) 개발하는 것이 불가능하다.

서로 다른 집합 객체 구조에 대해 동일한 방법으로 순회할 있다.

 

13        다음은 위임을 이용하여 adapter pattern을 구현한 클래스 다이어그램을 나타내고 있 . ()~ ()에 가장 적합한 클래스명은?

 

 

 

1 -adaptoe, -adapter, -target

() -adapter, ()-adaptee, ()-target

() - target. ()-adapter, () - adaptee

(가) -target, (나)-adaptee, (다)-adapter

 

 

 

14     다음에 해당하는 소프트웨어 설계 패턴은?

 

 

💡 일대다의 객체 의존 관계를 정의하며, 한 객체의 상태키 변화 되었을 때 의존 관계에 있는 다른 객체들에게 자동적으로 변화를 통지한다.

 

 

1 옵서버 패턴

팩토리 메소드 패턴

3  데코레이터 패턴

4  전략 패턴,

 

15     다음 중, 디자인 패턴에 대한 설명으로 가장 거리가 먼 것은? [정보시스템 감리사 자격 검정, 2014]

여러 객체가 한 객체에 의존하여 이것이 변경될 때 영향을 받아 작업을 수행할 경우 저버 패턴이 권장된다.

2 관련된 객체들의 매밀리를 스타일 선택에 의해서 생성할 때는 프로토타입 패턴이 권 장 된다.

오직 하나의 객체만을 생성하는 클래스의 경우에는 싱글분 패턴이 권장된다 동일한 역할은 하지만 다른 플레스의 작품을 생성할 때는 팩토리 패턴이 권장된다.

 

 

16   다음 클래스 다이어그램으로 표현한 설계에서 사용한 디자인 패턴은? [7급국가직공무 ]

1  Adapter 패턴

2   composite 패턴

observer 패턴

Factory Method 패턴

 

 

 

17     차량 네비게이션 소프트웨어에서 GPS 신호를 수신하는 경우와 수신하지 못하는 경우 에 따라의 위치를 구하는 다른 알고리즘을 선택하고자 할 때 가장 적합한 설계 패턴은?

Decorator 패턴 Adapter 패턴 composite 패턴 Stategy 패턴

 

 

18   다음 설명에 해당되는 디자인 패턴은? [7 국가직 공무원 시험.]

 

 
 
문제
(서브시스템 인에서와 같이) 이중의 구현이나 인터페이스들에 해 공통적이고 통합된 인터페이스가 필요하다. 서브시스램 안의 많 은 것들이 바람직하지 않은 결합도를 갖거나 서브시스템의 구현이 바뀔 수 있다. 어떻게 해결하여야 하는가?
 
해결책
서브시스템에 대한 단일 접촉지점을 정의한다. , 외관인 객체는 서브 시스템을 감싼다. 이 객체는 하나의 통일된 인터페이스를 제 시하고 서브시스템 컴포넌트들과 협력할 책임을 갖는다.

어댑터 패턴 퍼싸드 패턴 팩토리 패턴 싱글톤 패턴

 

 

19   다음은 사리오 기반 아키텍쳐 평가의 작업들이다 순서를 올바로 나일한 것은?

 

💡 . 시나리오 우선순위 매김

. 시나리오에 대하여 아키텍처 평가

. 시나리오 도출

. 아키텍처 기술

. 결과 해석과 발표

 

1

2

3

4

 

 

20       ATAM에 기법을 적용하기 위하여 유틸리티 트리와 시나리오가 바르게 언결되지 않은 것은?

1 유지보수성 - 데이터베이스 용량 초과로 인한 로그기록 불가

성능 - 수강 과목 검색 기능의 속도 향상

보안성 - 다른 시스템에서 접근할 제어하는 기능 .

사용용이성 - 수강 신청 오류 처리 기능에서 도움말 기능 보완

 

 

21   소프트웨어 아키텍처란 무엇이며/ 소프트웨어 개발 단계에서 중요한가? 270

a.      SW시스템에서 높은 추상 수준의 구성요소

b.      시스템의 구조를 확립하는 SW개발의 중심축으로, 요구분석, 설계, 구현, 테스트까 지 아키텍처가 뼈대의 역할을 하므로

 

 

22      아키텍처를 UML로 표현하는 방법을 설명하고/ 패키지로 분할하는 원칙은 무엇인가? 274

a.      클래스를 논리적으로 그루핑하는 패키지 다이어그램으로 표현한다.

b.      기능적으로 관련있는 객체를 같은 서브시스템 안에 묶는다.

 

 

23   아키텍처를 설계할 때 스타일의 선정은 시스템의 타입이 고려되어야 한다. 다음 타입의

스템은 어떤 특징을 보이는지 설명하라. 275

 

(1)  대화형 시스템

a.      대화형 시스템의 상태를 파악하는 것은 곧 비즈니스 프로세스를 반영하는 것이다. 대화형 시스템을 모델링하고 설계하려면 액터가 구동시키는 비즈니스 프로세스를 나타내는 유스캐이스를 찾아내고 명세화하는 일부터 시작해야 한다. 그리고 시스템 객체들이 이를 위해 어떻게 협력, 상호작용하는지 상세하게 모델링한다.

 

(2)  이벤트 중심 시스템

a.      상태에 의존적이며 반응 동작을 보인다. 주로 임베디드 시스템에서 찾아볼 있다.

 

 

(3)  변환 시스템

a.      컴파일러 등의 엔지니어링 계산, 과학 계산 분야에서 많이 볼 수 있다. 작업에 따른 정보를 받아 작업의 흐름을 결정한다.

 

(4)  객체 영속 시스템

a.      저장 미디어를 숨기고 DB나 파일 시스템에 객체를 저장하고 검색할 수 있는 능력을 가짐. 분산시스템이라고도 부름. DB 시스템에서 숨기고 DB구현에 대한 변경을 시스템이 잘 모르도록 보호함

 

 

24  디자인 패턴이란 무엇이며/ 알면 어떤 이로운 점이 있는가? 285 286

a.      아키텍처 수준보다 낮은 수준의 설계 문제에 재사용 가능한 솔루현을 제공한다.

b.      쉽게 재사용 가능, 쉬운 설계 작업, 설계관련 지식 정리, 디자인을 논의하기 위한 의 사소통이 쉬워짐

 

 

25    싱글톤 패턴이 해결하는 문제는 무엇이며/ 가능하게 하는 해결 방법을 설명하라.

a.      해당 클래스에 대해 작성된 오브젝트 수를 제어할 있음

b.      클래스 안에 자신을 정적 속성으로 갖게 하여 객체가 유일하게

유일한 객체를 반환하는 정적 메서드를 사용해서만 접근하게

 

 

 

26. 그림판 같은 프로그램을 작성하려 한다 . 이미 직사각형을 위한 클래스
(LegacyRectangle) 작성되어 있다. LegacyRectangle 클래스 안에 있는 display() 메소드는  가지  라미
 x. y(왼쪽 위 꼭지점 좌표). w(). h(높이)를 받는다. 그러나 클라이언트 프로그램에 서 이
와는 다르게 왼쪽 위 꼭지점 좌표 x1 . y1과 오른쪽 아래 꼭지점 좌표 x2. y2를 매개변수  호출하고 싶다. 어댑터 패턴을 이용하여 설계하되 클래스 다이어그램으로 그려라.
 나중에 풀기

 

 

 

 

27.      성적을 출력하는 기능 예를 들면 입력된 성적 값을 출력하는 프로그램을 작성하고 . 입력된 점수를 저장하느 c ScoreRecord 클래스와 점수를 목록의 형태로 출력하는 DataView 클래스를 설계 하였다. 성적을 출력하는 형태를 다양하게 하기 위하여 이 문

가장 알맞은 패턴은 무엇인가? 이유는?

a.      데코레이터 패턴

b.      입력에 장식 요소를 추가하는 기존 클래스의 동작을 가볍고 유연하게 확장함

 

 

28.      다음 해결하려는 문제에 적용할 가장 적합한 디자인 패턴은 무엇인가?

 

 

(1)  전체와 부분 관계의 구조를 동일하게 취급하게 하려고

a.      컴포지트 패턴 (교재에 안나오는데 구글링함)

 

 

(2)  인스턴스 개를 유지하면서 전역적인 접근을 허용하려고

a.      싱글톤

 

(3)  어떤 객체와 그 객체의 상태의 변화를 통지 받고 싶은 객체들 사이에 대다(1-to-many) 관계를 정의하려고

a.      옵저버(Observer)

 

 

(4)  복잡한 패키지 안에 손쉬운 API 제공할

a.      Facade 패턴 (교재에 . 구글링하니까 최승훈교수님나옴 ㅋㅋㅋㅋ)

 

 

(5)  타겟 객체와 handshaking 있도록 인터페이스를 제공하되 타겟 객체를 손대지

 

않고 새로운 인터 페이스를 정의할

a.      어댑터

 

(6)  객체들 사이의 다대다(many-to-many) 인터랙션 관계를 캡슐화할

a.      중재자 패턴 (교재에 없는데 구글링)

 

 

(7)  핵심적인 부분과 부수적인 부분으로 나누어 객체를 잘게 분할할

a.      Fly Weight 패턴 (교재에 없는데 구글링)

 

 

 

29. SaleOrder 클래스의 상태는 NewOrder(주문), Registered(접수). Granted(환불). Shipped(배송), Invoiced(견적). Cancelled(취소) 나눈다. 상태 패턴을 적용하여 UMLJ로 설계하라.
나중에 풀기

 

 

 

30.      아키텍처 평가 기법 SAAM의 주요 입력물과 산출물은 무엇인지 나열하고 작업 과정을

명하라.

a.      입력물 : 시나리오

b.      산출물 : 시나리오 실행여부

c.       작업 과정 : 객관식 19 참고

아키텍처 기술 시나리오 도출 시나리오 우선순위 시나리오에 대해 아키텍 평가 결과 발표

 

 

'소프트웨어 공학' 카테고리의 다른 글

6장 설계 원리  (2) 2023.03.12
5장 요구 모델링  (0) 2023.03.12
4장 요구분석 연습문제  (0) 2023.03.01
4장 설계 원리  (1) 2023.03.01
3장 프로젝트 관리와 계획 연습문제  (0) 2023.03.01