[ 1과목:소프트웨어 설계 ]
1. UML 다이어그램 중 순차 다이어그램에 대한 설명으로 틀린 것은?
① 객체 간의 동적 상호작용을 시간 개념을 중심으로 모델링 하는 것이다.
② 주로 시스템의 정적 측면을 모델링하기 위해 사용한다.
③ 일반적으로 다이어그램의 수직 방향이 시간의 흐름을 나타낸다.
④ 회귀 메시지(Self-Message), 제어블록(Statement block) 등으로 구성된다.
UML 다이어그램은 크게 [ 구조 / 행위 ] 다이어그램으로 나뉩니다.
위 구조/행위 다이어그램은 각각 [ 정적 / 동적 ] 모델링 방식입니다.
순차 다이어그램(Sequence Diagram)은 이름 그대로 시간적 순서를 보여주는 다이어그램입니다.
순차 다이어그램은 행위 다이어그램에 포함되므로, 동적 모델링 방식입니다.
시간적 개념을 중심으로 객체 간의 "동적 상호작용"을 보여줍니다. (시간은 수직적으로, 위에서 아래로 흐릅니다.)
2. 메시지 지향 미들웨어(Message-Oriented Middleware, MOM)에 대한 설명으로 틀린 것은?
① 느리고 안정적인 응답보다는 즉각적인 응답이 필요한 온라인 업무에 적합하다.
② 독립적인 애플리케이션을 하나의 통합된 시스템으로 묶기 위한 역할을 한다.
③ 송신측과 수신측의 연결 시 메시지 큐를 활용하는 방법이 있다.
④ 상이한 애플리케이션 간 통신을 비동기 방식으로 지원한다.
"미들웨어"란 클라이언트와 서버간의 통신을 담당하는 시스템 소프트웨어를 말합니다.
미들웨어 솔루션의 유형과 특징은 아래와 같습니다.
1) Database
2) TP-Monitor : 혼합(분산) 환경에서 "트랜잭션" 감시
3) ORB : 객체지향, CORBA 표준 스펙 구현
4) RPC : 원격 프로시저를 로컬 프로시저처럼 호출 (분산 처리 시스템을 구현하기 위함)
5) MOM : 메시지 기반, 비동기형 메시지 전달, 데이터 동기화에 주로 사용
6) WAS : "HTTP 사용", Web Client =[정적 콘텐츠]=> Web Server =[동적 컨텐츠]=> WAS
7) OTM : "TP-Monitor + ORB"
MOM은 온라인 업무보다는 DataBase System에서 데이터 동기화에 주로 사용합니다.
즉각적인 응답이 필요한 온라인 업무에 적합한 것은 TP-Monitor라고 볼 수 있습니다.
3. 익스트림 프로그래밍에 대한 설명으로 틀린 것은?
① 대표적인 구조적 방법론 중 하나이다.
② 소규모 개발 조직이 불확실하고 변경이 많은 요구를 접하였을 때 적절한 방법이다.
③ 익스트림 프로그래밍을 구동시키는 원리는 상식적인 원리와 경험을 최대한 끌어 올리는 것이다.
④ 구체적인 실천 방법을 정의하고 있으며, 개발 문서 보다는 소스코드에 중점을 둔다.
대표적인 소프트웨어 개발 방법론 종류는 아래와 같습니다.
1) 구조적 방법론
2) 정보공학 방법론
3) 객체지향 방법론
4) 컴포넌트 기반 방법론
5) 애자일 방법론
6) 제품 계열 방법론
익스트림 프로그래밍(eXtreme Programming; XP)은 애자일(Agile) 방법론에 속합니다.
애자일 방법론은 고객과의 협업에 초점을 두어 빠르게 개발하기 위한 방법이며,
특히 애자일에 속하는 XP 방법은 소규모 개발조직이 불확실하고 변경이 많은 요구를 접했을 때 적절한 방법입니다.
4. 유스케이스(Use Case)의 구성 요소 간의 관계에 포함되지 않는 것은?
① 연관
② 확장
③ 구체화
④ 일반화
Use Case Diagram은 UML Diagram의 한 종류로, 동적 모델링 방식인 행위 다이어그램에 속합니다.
UML 관계 표현의 종류는 아래와 같습니다.
1) 연관 ( ------------> , ------------ )
2) 의존 ( - - - - - )
3) 일반화 ( ------------▷)
4) 집합/포함( ------------◇ / ------------◆ )
5) 실체화 ( - - - - -▷)
Use Case Diagram의 요소의 종류는 아래와 같습니다.
1) 시스템 경계
2) 액터
3) 유스케이스
4) 접속 관계
5) 사용 관계
6) 확장 관계
소프트웨어 개발은 보통 [ 요구 분석 - 설계 - 구현 - 테스트 - 유지보수 ] 단계로 나눌 수 있으며,
Use Case 관계는 요구분석 단계에서 정의되나, 구체화는 구현 단계에서 사용됩니다.
5. 요구사항 분석에서 비기능적(Nonfunctional) 요구에 대한 설명으로 옳은 것은?
① 시스템의 처리량(Throughput), 반응 시간 등의 성능 요구나 품질 요구는 비기능적 요구에 해당하지 않는다.
② '차량 대여 시스템이 제공하는 모든 화면이 3초 이내에 사용자에게 보여야 한다'는 비기능적 요구이다.
③ 시스템 구축과 관련된 안전, 보안에 대한 요구사항들은 비기능적 요구에 해당하지 않는다.
④ '금융 시스템은 조회, 인출, 입금, 송금의 기능이 있어야 한다'는 비기능적 요구이다.
SWEBOK에 따른 요구사항 개발 프로세스는 다음과 같습니다.
1) 도출 (Elicitation)
2) 분석 (Analysis)
3) 명세 (Specification)
4) 확인 (Vaildation)
요구사항 분석은 요구사항 개발 프로세스의 두 번째 단계(분석, Analysis)로 볼 수 있으며 요구사항 분석 수행 단계는
[ 문제 인식 - 전개 - 평가/종합 - 검토 - 문서화 ] 순입니다.
요구사항의 분류 기준에서 기능/비기능 (functional / nonfunctional) 요구사항을 구분해야 합니다.
기능적 요구 사항은 "시스템이 실제 어떻게 동작하는가?"에 대한 요구사항이며,
비기능적 요구 사항은 "시스템 구축에 대한 성능, 보안, 품질, 안정성 등"의 보조적 요구사항을 말합니다.
6. 정보공학 방법론에서 데이터베이스 설계의 표현으로 사용하는 모델링 언어는?
① Package Diagram
② State Transition Diagram
③ Deployment Diagram
④ Entity-Relationship Diagram
Package Diagram은 UML Diagram의 구조 다이어그램에 포함 (1-6. 패키지)
State Transition Diagram은 UML Diagram의 행위 다이어그램에 포함 (2-2. 활동)
Deployment Diagram은 UML Diagram의 구조 다이어그램에 포함 (1-4. 배치)
정보공학 방법론의 절차는 [ SC - BSD - BAA - ISP ] 로 나눌 수 있으며,
Entity-Relationship Diagram은 BSD 단계에서 사용하는 도구 중 하나입니다.
(ER Diagram 내지는 ERD로 불립니다.)
7. 미들웨어(Middleware)에 대한 설명으로 틀린 것은?
① 여러 운영체제에서 응용 프로그램들 사이에 위치한 소프트웨어이다.
② 미들웨어의 서비스 이용을 위해 사용자가 정보 교환 방법등의 내부 동작을 쉽게 확인할 수 있어야 한다.
③ 소프트웨어 컴포넌트를 연결하기 위한 준비된 인프라 구조를 제공한다.
④ 여러 컴포넌트를 1대 1, 1대 다, 다대 다 등 여러 가지 형태로 연결이 가능하다.
"미들웨어"란 클라이언트와 서버간의 통신을 담당하는 시스템 소프트웨어를 말합니다.
여러 컴포넌트를 여러 형태로 연결 가능하고, 표준화된 연결을 도와주며,
표준화된 인터페이스를 통해 데이터 교환에서 일관성을 제공합니다.
또한, 분산 업무를 동시 처리가 가능하여 자료의 일관성을 유지할 수 있습니다. (부하의 분산이 가능한 이유가 됩니다.)
8. UI의 설계 지침으로 틀린 것은?
① 이해하기 편하고 쉽게 사용할 수 있는 환경을 제공해야 한다.
② 주요 기능을 메인 화면에 노출하여 조작이 쉽도록 하여야 한다.
③ 치명적인 오류에 대한 부정적인 사항은 사용자가 인지할 수 없도록 한다.
④ 사용자의 직무, 연령, 성별 등 다양한 계층을 수용하여야 한다.
UI 설계 지침은 아래와 같습니다.
1) 사용자 중심 (쉽게 사용 가능한가?)
2) 일관성 (빠른 습득이 가능한가?)
3) 단순성 (조작 방법이 간단한가?)
4) 가시성 (주요 기능이 메인화면에 있는가?)
5) 표준화 (디자인이 표준화되어 쉽게 사용 가능한가?)
6) 접근성 (다양한 계층을 수용 가능한가?)
7) 결과 예측 가능 (기능만으로 결과 예측이 가능한가?)
8) 명확성 (사용자 관점에서 개념적으로 쉽게 인지 가능한가?)
9) 오류 발생 해결 (오류 발생 시 사용자가 상황을 정확히 인지 가능한가?)
추가로 UI 설계 단계는 다음과 같습니다.
1) 문제 정의
2) 사용자 모델 정의
3) 작업 분석
4) 컴퓨터 오브젝트 및 기능 정의
5) 사용자 인터페이스 정의
6) 디자인 평가
9. 객체지향 개념에서 다형성(Polymorphism)과 관련한 설명으로 틀린 것은?
① 다형성은 현재 코드를 변경하지 않고 새로운 클래스를 쉽게 추가할 수 있게 한다.
② 다형성이란 여러 가지 형태를 가지고 있다는 의미로, 여러 형태를 받아들일 수 있는 특징을 말한다.
③ 메소드 오버라이딩(Overriding)은 상위 클래스에서 정의한 일반 메소드의 구현을 하위 클래스에서 무시하고 재정의할 수 있다.
④ 메소드 오버로딩(Overloading)의 경우 매개 변수 타입은 동일하지만 메소드명을 다르게 함으로써 구현, 구분할 수 있다.
객체지향은 아래의 다섯 가지 특징을 가집니다.
1) 캡슐화 (Encapsulation)
2) 정보은닉 (Information Hiding)
3) 추상화 (Abstraction)
4) 상속성 (Inheritance)
5) 다형성 (Polymorphism)
이 중 다형성은 객체가 다양한 모양을 가지는 성질을 말합니다.
현재 코드를 변경하지 않고 새로운 클래스를 쉽게 추가할 수 있으며, 오버로딩과 오버라이딩이 있습니다.
오버로딩 : 같은 클래스 내에서 이름을 재사용하는 것
오버라이딩 : 슈퍼클래스의 메서드를 서브클래스에서도 재정의하는 것
10. 소프트웨어 개발 영역을 결정하는 요소 중 다음 사항과 관계있는 것은?
- 소프트웨어에 의해 간접적으로 제어되는 장치와 소프트웨어를 실행하는 하드웨어 - 기존의 소프트웨어와 새로운 소프트웨어를 연결하는 소프트웨어 - 순서적 연산에 의해 소프트웨어를 실행하는 절차 |
① 기능(Function)
② 성능(Performance)
③ 제약 조건(Constraint)
④ 인터페이스(Interface)
소프트웨어 영역 결정 사항에는 [ 기능, 성능, 신뢰도, 인터페이스, 제약 조건 ] 등이 있으며,
해당 설명과 관계있는 것은 인터페이스(Interface)입니다.
11. 객체에 대한 설명으로 틀린 것은?
① 객체는 상태, 동작, 고유 식별자를 가진 모든 것이라 할 수 있다.
② 객체는 공통 속성을 공유하는 클래스들의 집합이다.
③ 객체는 필요한 자료 구조와 이에 수행되는 함수들을 가진 하나의 독립된 존재이다.
④ 객체의 상태는 속성값에 의해 정의된다.
객체는 상태, 동작, 고유 식별자를 가진 모든 것으로 볼 수 있습니다.
필요한 자료 구조와 이에 수행되는 함수들을 가지는 독립된 존재이며, 객체의 사애는 속성값에 의해 정의됩니다.
또한, 공통 속성을 공유하는 객체들의 집합을 "클래스"라고 합니다.
12. 속성과 관련된 연산(Operation)을 클래스 안에 묶어서 하나로 취급하는 것을 의미하는 객체지향 개념은?
① Inheritance
② Class
③ Encapsulation
④ Association
객체지향 구성 요소는 아래와 같습니다.
1) Class : 유사한 객체를 정의한 집합
2) Object : Class에 속한 Instance (데이터와 함수를 묶어 캡슐화하는 대상이 됨)
2-1) Attribute : Object가 가진 데이터 값
2-2) Method : Object의 행위인 함수
3) Message : Object 간 주고받는 통신
즉, 유사한 객체를 묶어서 하나로 취급하는 것은 "Class"로 볼 수 있으나,
객체가 아닌 속성과 관련된 연산을 묶어 하나로 취급하는 것은 "Encapsulation"으로 볼 수 있습니다.
Encapsulation(캡슐화)는 객체지향의 5가지 특징 중 하나이며,
관련성이 높은 데이터(속성)와 기능(메소드, 함수)을 묶는 기법입니다.
13. 애자일(Agile) 프로세스 모델에 대한 설명으로 틀린 것은?
① 변화에 대한 대응보다는 자세한 계획을 중심으로 소프트웨어를 개발한다.
② 프로세스와 도구 중심이 아닌 개개인과의 상호소통을 통해 의견을 수렴한다.
③ 협상과 계약보다는 고객과의 협력을 중시한다.
④ 문서 중심이 아닌, 실행 가능한 소프트웨어를 중시한다.
애자일 방법론은 고객과의 협업에 초점을 두어 빠르게 개발하기 위한 방법입니다.
또한 설계 변경에 신속히 대응하기 위한 방법이며, 문서 중심이 아니라 실행 가능한 S/W를 중시합니다.
14. 명백한 역할을 가지고 독립적으로 존재할 수 있는 시스템의 부분으로 넓은 의미에서는 재사용되는 모든 단위라고 볼 수 있으며, 인터페이스를 통해서만 접근할 수 있는 것은?
① Model
② Sheet
③ Component
④ Cell
모듈과 컴포넌트에 대한 설명은 아래와 같습니다.
모듈 : 자신만으로 동작할 수 있는 명령의 집합, 정의하지 않으면 바로 재활용 X
컴포넌트 : SW 시스템에서 독립적인 업무/기능을 수행하는 모듈, 교체가능한 부품, 인터페이스를 통해 연결
15. GoF(Gang of Four) 디자인 패턴을 생성, 구조, 행동 패턴 의 세 그룹으로 분류할 때, 구조 패턴이 아닌 것은?
① Adapter 패턴
② Bridge 패턴
③ Builder 패턴
④ Proxy 패턴
GoF(Gangs of Four) 디자인 패턴은 [ 생성 / 구조 / 행위 ] 패턴으로 분류됩니다.
생성 패턴의 구성 : Abstraction Factory, Singleton, Prototype, Builder
구조 패턴의 구성 : Adapter, Bridge, Composite, Decorator, Facade, Flyweight, Proxy
행위 패턴의 구성 : Chain of Responsibility, Iterator, Command, Interpreter, Memento, Observer, State, Strategy, Visitor, Template Method, Mediator
16. UI와 관련된 기본 개념 중 하나로, 시스템의 상태와 사용자의 지시에 대한 효과를 보여주어 사용자가 명령에 대한 진행 상황과 표시된 내용을 해석할 수 있도록 도와주는 것은?
① Feedback
② Posture
③ Module
④ Hash
해당 설명과 관련된 것은 Feedback(피드백)입니다.
피드백은 시스템의 5대 구성(기본) 요소 중 하나로, 처리된 결과를 측정하고 목표에 도달했는지를 확인하는 역할을 합니다.
추가로 시스템의 구성 요소는 입력, 출력, 처리, 제어, 피드백이 있습니다.
17. UI의 종류로 멀티 터치(Multi-touch), 동작 인식(Gesture Recognition) 등 사용자의 자연스러운 움직임을 인식하여 서로 주고받는 정보를 제공하는 사용자 인터페이스를 의미하는 것은?
① GUI(Graphical User Interface)
② OUI(Organic User Interface)
③ NUI(Natural User Interface)
④ CLI(Command Line Interface)
UI의 종류는 아래와 같습니다.
1) GUI (Graphical)
2) OUI (Organic)
3) NUI (Natural)
4) CLI (Command Line)
5) VUI (Voice)
위 설명과 관련한 UI는 NUI로, 사용자의 말이나 행동으로 기기를 조작하는 인터페이스입니다.
18. 소프트웨어 모델링과 관련한 설명으로 틀린 것은?
① 모델링 작업의 결과물은 다른 모델링 작업에 영향을 줄 수 없다.
② 구조적 방법론에서는 DFD(Data Flow Diagram), DD(Data Dictionary) 등을 사용하여 요구 사항의 결과를 표현한다.
③ 객체지향 방법론에서는 UML 표기법을 사용한다.
④ 소프트웨어 모델을 사용할 경우 개발될 소프트웨어에 대한 이해도 및 이해 당사자 간의 의사소통 향상에 도움이 된다.
모델링은 데이터를 추상화하여 컴퓨터로 옮기는 변환 과정으로 볼 수 있습니다.
이와 관련하여 소프트웨어 모델링이란 요구사항(기능, 성능)을 만족하는 S/W의 내부 구조/동적 행위를 모델링하여
표현, 분석, 검증하는 과정을 의미합니다. (해당 과정에서 만들어진 산출물도 포함)
관점을 [ What ] 에서 [ How ]로 전환하는 것이 목적입니다.
모델링 작업의 결과물은 다른 모델링 작업에 영향을 줄 수 있습니다.
19. 유스케이스 다이어그램(Use Case Diagram)에 관련된 내용 으로 틀린 것은?
① 시스템과 상호작용하는 외부시스템은 액터로 파악해서는 안된다.
② 유스케이스는 사용자 측면에서의 요구사항으로, 사용자가 원하는 목표를 달성하기 위해 수행할 내용을 기술한 다.
③ 시스템 액터는 다른 프로젝트에서 이미 개발되어 사용되고 있으며, 본 시스템과 데이터를 주고받는 등 서로 연 동되는 시스템을 말한다.
④ 액터가 인식할 수 없는 시스템 내부의 기능을 하나의 유스케이스로 파악해서는 안된다.
Use Case Diagram은 객체지향 초반기 분석 작업에 작성되는 사용자의 요구를
기능적 측면에서 기술할 때 사용하는 도구로, Actor와 Use Case로 구성됩니다.
Use Case Diagram의 요소의 종류는 아래와 같습니다.
1) 시스템 경계
2) 액터
3) 유스케이스
4) 접속 관계
5) 사용 관계
6) 확장 관계
액터(Actor)는 시스템과 상호작용하는 모든 외부 요소를 포함하는 개념으로,
시스템과 상호작용하는 외부시스템은 액터로 파악해야 합니다.
20. 소프트웨어 아키텍처 모델 중 MVC(Model-View-Controller) 와 관련한 설명으로 틀린 것은?
① MVC 모델은 사용자 인터페이스를 담당하는 계층의 응집도를 높일 수 있고, 여러 개의 다른 UI를 만들어 그 사이에 결합도를 낮출 수 있다.
② 모델(Model)은 뷰(View)와 제어(Controller) 사이에서 전달자 역할을 하며, 뷰마다 모델 서브시스템이 각각 하나씩 연결된다.
③ 뷰(View)는 모델(Model)에 있는 데이터를 사용자 인터페이스에 보이는 역할을 담당한다.
④ 제어(Controller)는 모델(Model)에 명령을 보냄으로써 모델의 상태를 변경할 수 있다.
소프트웨어 아키텍처 패턴의 종류는 아래와 같습니다.
1) Layered
2) MVC
3) Client Server
4) Pipe-Filters
5) Peer To Peer
6) Broker
7) Black Board
8) Event-Bus
9) Interpreter
10) Master-Slave
이 중 MVC(Model-View-Controller)는 대화형 애플리케이션을 [ Model / View / Controller ]로 분류한 모델로,
같은 모델에서 다수의 뷰를 생성할 수 있으며 실행시간에 동적으로 연결/해제가 가능합니다.
그러나 사용자 행동에 대한 불필요 업데이트가 발생 가능하고, 복잡성이 증가할 수 있다는 것이 단점입니다.
Model : 핵심 기능 + 데이터
View : 사용자에게 정보 표시
Controller : 사용자로부터 입력 처리
같은 모델에서 다수의 뷰를 생성할 수 있으므로, 뷰마다 보델 서브시스템이 하나씩 연결되는 것은 옳지 않은 설명입니다.
또한, Controller가 사용자로부터 입력을 처리하기 때문에, View와 Model 사이에서 전달자 역할을 합니다.
'정보처리기사 필기' 카테고리의 다른 글
정보처리기사 22_04_24 필기 [4과목] (1) | 2023.05.16 |
---|---|
정보처리기사 22_04_24 필기 [3과목] (1) | 2023.05.15 |
정보처리기사 22_03_05 필기 [2과목] (0) | 2023.05.04 |
정보처리기사 22_04_24 필기 [2과목] (0) | 2023.05.03 |
정보처리기사 22_03_05 필기 [1과목] (0) | 2023.05.02 |