1과목 소프트웨어 설계
1. XP의 기본원리로 볼 수 없는 것은?
->Linear Sequential Method
Pair Programming: 두 명의 프로그래머가 한 컴퓨터에서 협력하여 코드를 작성하는 방법이다.
Collective Ownership: 모든 팀원들이 코드에 대한 책임을 공유하며, 누구나 코드를 수정할 수 있는 원칙이다.
Continuous Integration: 코드 변경 사항이 지속적으로 통합되는 프로세스로, 이를 통해 품질을 유지하고 오류를 조기에 발견할 수 있다.
Linear Sequential Method는 전통적인 소프트웨어 개발 방법론으로, 일반적으로 순차적이고 단계적인 접근 방식을 따르며, XP의 본질적인 원리와는 상반된다.
2. 럼바우 객체지향 분석 기법에서 동적 모델링에 활용되는 다이어그램은?
->상태 다이어그램
객체 다이어그램: 시스템의 객체와 그들 간의 관계를 나타내며, 정적인 구조를 보여준다.
패키지 다이어그램: 시스템의 패키지 구조를 나타내고 모듈 간의 관계를 보여준다.
상태 다이어그램: 특정 객체의 상태 변화와 그 상태 변화에 영향을 주는 사건들을 나타낸다. 이 다이어그램은 객체의 동적인 행동을 모형화하는 데 사용된다.
자료 흐름도: 시스템의 내부 또는 외부 데이터 흐름을 나타내지만 객체지향 모델링과는 거리가 있다.
3. CASE의 주요기능으로 옳지 않은 것은?
-> 언어번역
4.객체지향 기법의 캡슐화에 대한 설명으로 틀린것은?
->상위 클래스의 모든 속성과 연산을 하위 클래스가 물려받는 다는 을 의미한다.
5. SW설계시 성능특성 분석에 사용되는 항목이 아닌것
->서버 튜닝
응답시간, 가용성, 사용률은 성능 분석에 필수적인 요소이며, 서버 튜닝은 성능 최적화를 위한 방법이지 측정 항목이 아니다.
1. 인터페이스가 단순화 된다.
O: 캡슐화는 내부 구현을 숨기고, 외부와의 상호작용은 잘 정의된 인터페이스를 통해 이루어지므로, 인터페이스가 단순해질 수 있다.
2. 소프트웨어 재사용성이 높아진다.
O : 캡슐화를 통해 개별 객체나 클래스를 독립적으로 사용할 수 있어, 코드 재사용성이 증가한다.
3. 변경 발생 시 오류의 파급효과가 적다.
O : 캡슐화를 통해 객체의 내부 구현을 변경하더라도, 외부에 영향을 미치지 않으므로 오류의 확산을 줄일 수 있다.
4. 상위 클래스의 모든 속성과 연산을 하위 클래스가 물려받는 것을 의미한다.
X: 이 설명은 상속의 특성을 설명하고 있으며, 캡슐화는 그것과는 별개의 개념이다. 캡슐화는 데이터와 기능을 보호하는 것이고, 상속은 클래스 간의 관계를 설명한다.
6.파이프 필터 형태의 소프트웨어 아키텍처에 대한 설명으로 옳은 것은?
-> 서브시스템이 입력데이터를 받아 처리하고 결과를 다음 서브시스템으로 넘겨주는 과정을 반복한다.
*파이프 필터 아키텍처는 데이터 처리 시스템에서 자주 사용되는 설계 패턴으로, 정보를 파이프를 통해 전송하고 필터를 통해 데이터를 처리하는 구조이다.
1. 노드와 간선으로 구성된다.
X: 이 설명은 그래프 구조에 더 적합한 설명으로, 파이프 필터에서는 주로 서브시스템과 데이터 흐름을 강조한다.
2. 서브시스템이 입력데이터를 받아 처리하고 결과를 다음 서브시스템으로 넘겨주는 과정을 반복한다.
O: 파이프 필터 구조에서 각 서브시스템(필터)은 입력 데이터를 받아 처리하고, 그 결과를 다음 서브시스템으로 전달하는 방식으로 동작한다. 이 방식은 데이터 흐름을 명확하게 하고, 시스템의 모듈화를 촉진한다.
3. 계층 모델이라고도 한다.
X : 파이프 필터 아키텍처는 계층 모델과는 구별되는 데이터 흐름 중심의 아키텍처이다. 계층 모델은 각 계층이 특정 작업을 수행하고, 그 결과를 다음 계층에 전달하는 구조이다.
4. 3개의 서브시스템(모델, 뷰, 제어)으로 구성되어 있다.
X : 이 설명은 MVC(Model-View-Controller) 패턴에 맞는 설명으로, 파이프 필터 아키텍처와는 다른 시스템 설계 방식을 나타낸다. 파이프 필터 아키텍처는 서브시스템 간의 데이터 흐름을 중점적으로 다룬다.
7. 코드화 대상 항목의 중량, 면적, 용량 등의 물리적 수치를 이용하여 만든 코드는?
->표의 숫자 코드
*표의 숫자 코드는 특정한 물리적 수치를 숫자 형식으로 변환하여 데이터를 표현하는 방법이다.
이 코드화 방식은 물리적 특성을 명확하게 나타낼 수 있어, 정보 시스템에서 데이터 정리 및 식별을 쉽게 한다.
순차 코드:
순차 코드란 자연 순서에 따라 데이터에 번호를 매기는 방식이다.
예를 들어, 학생의 시험 점수나 제품의 재고를 1, 2, 3...과 같이 정렬할 때 사용된다.
10진 코드:
10진 코드는 0부터 9까지의 숫자를 사용하여 데이터를 표현하는 방식이다.
일반적인 수치 표현에서 사용되며, 데이터 전송의 표준 형식이다.
블록 코드:
블록 코드는 특정 블록을 대표하는 숫자나 문자를 사용하는 방식이다.
예를 들어, 특정 범위의 코드가 특정 제품군이나 주문 처리를 의미할 때 사용된다.
8. 디자인 패턴 사용의 장 단점에 대한 설명으로 거리가 먼 것은?
->절차형 언어와 함께 이용될 때 효율이 극대화된다.
디자인 패턴은 객체지향 프로그래밍에서 소프트웨어 설계를 쉽게 하고 유지보수를 용이하게 하는 재사용 가능한 솔루션이다. 그러나 절차형 언어에서는 디자인 패턴의 활용이 제한적이며, 따라서 효율이 극대화된다고 보기 어렵다.
9. DFD에 대한 설명으로 틀린 것은?
->시간 흐름을 명확하게 표현할 수 있다.
DFD는 데이터 흐름을 시각적으로 표현하는 도구로, 주로 시스템의 기능이나 프로세스 간의 데이터 흐름을 보여준다. 하지만 DFD는 시간의 흐름을 나타내지 않으며, 데이터가 어떻게 이동하고 변형되는지만 표시한다.
10. 그래픽 표기법을 이용하여 소프트웨어 구성 요소를 모델링 하는 럼바우 분석 기법에 포함되지 않는 것은?
->블랙박스 분석 모델
블랙박스 분석 모델링:
블랙박스 분석은 입력과 출력의 기능적 요구를 중점적으로 조사하는 기법으로, 럼바우 기법의 범주에는 포함되지 않는다. 럼바우 모델은 시스템 내부의 상세 구조 및 동작을 시각화하는 데 초점을 맞춘다.
럼바우 분석 기법
-객체 모델링
-기능 모델링
-동적 모델
11. UML 기본 구성요소가 아닌 것
->Terminal
Things:
UML의 핵심 요소로, 객체, 클래스, 인터페이스와 같은 베이스 구조를 포함한다.
사물의 상태나 행동을 표현하는 데 사용된다.
Relationship:
UML 내의 요소들 사이의 관계를 나타내는 구성요소이다.
상속, 연관, 집합 등의 다양한 관계를 모델링할 수 있다.
Diagram:
UML의 모든 것들은 다이어그램으로 시각화된다.
다양한 방식으로 객체 및 관계를 배치하여 소프트웨어 시스템의 다양한 측면을 나타낼 수 있다.
12. SW 상위설계에 속하지 않는 것은?
->모듈 설계
아키텍처 설계:
시스템의 전체적인 구조와 상호작용을 정의한다.
하드웨어와 소프트웨어의 배치를 언급하여 구체적인 세부 사항을 포함하지 않는다.
인터페이스 정의:
시스템 구성 요소 간의 상호작용 방식과 데이터 흐름을 지정한다.
다양한 시스템 구성 요소의 통합 방법을 설계한다.
사용자 인터페이스 설계:
사용자와 시스템 간의 상호작용을 다루는 부분이다.
사용자의 필요와 사용자 경험을 중심으로 설계한다.
모듈 설계에 대한 설명
모듈 설계는 상위설계가 아닌 후속 단계임:
상위설계 단계에서 결정된 아키텍처를 기반으로 각 모듈의 기능과 구현을 상세히 설계하는 과정이다.
모듈은 프로그램의 재사용성과 유지보수를 용이하게 하기 위해 세부적으로 나누어지는 것이며, 상위에서의 큰 틀과는 별개의 작업으로 진행된다.
13. 다음 중 자료사전에서 선택의 의미를 나타내는 것은?
-> [ ]
14. 소프트웨어의 사용자 인터페이스개발시스템이 가져야 할 기능이 아닌 것은?
-> 소스 코드 분석 및 오류 복구
소프트웨어의 사용자 인터페이스 개발 시스템(UI Development System)은 사용자와 컴퓨터 간의 상호작용을 원활하게 하기 위해 필요한 다양한 기능을 포함하고 있다. 다음은 이 시스템이 일반적으로 가져야 하는 주요 기능이다:
1.사용자 인터페이스 개발 시스템의 주요 기능
O 사용자 입력의 검증
사용자가 입력하는 데이터의 유효성을 검사하여 잘못된 입력을 방지하는 기능이다.
예를 들어, 이메일 주소 형식 검증이나 필수 입력 필드 체크 등이 포함된다.
2.에러 처리와 에러 메시지 처리
O 프로그램에서 발생할 수 있는 오류를 처리하고, 사용자에게 쉽게 이해할 수 있는 에러 메시지를 제공하는 기능이다.
이는 사용자 경험을 개선하기 위한 필수적인 기능이다.
3.도움과 프롬프트 제공
O 사용자가 시스템을 사용할 때 필요한 안내 및 도움말을 제공하는 기능이다.
포괄적인 사용 설명서 및 실시간 도움을 통해 사용자 경험을 향상시키는 중요한 요소가 된다.
4.소스 코드 분석 및 오류 복구
X이 기능은 사용자 인터페이스 개발 시스템의 주요 목적과는 다른 시스템 수준의 프로그래밍 관련 기능이다.
일반적으로 코드 품질 개선을 위한 정적 분석 도구나 통합 개발 환경(IDE)에서 제공되는 기능이며, UI 개발 전반에 필요한 기능이 아니다.
15. 요구 사항 명세기법에 대한 설명으로 틀린 것은?
->비정형 명세기법은 사용자의 요구를 표현할 때 Z 비정형 명세기법을 사용한다.
비정형 명세기법
사용자 요구를 자연어를 기반으로 서술하는 방법이다.
주로 문서 형식으로 구체적인 요구사항을 작성한다.
정형 명세기법
수학적 원리와 형식적인 표기법을 사용하여 요구 사항을 명확히 하는 방법이다.
명세가 수학적으로 정확하게 표현되기 때문에 오류를 줄이는 데 도움이 된다.
Z 비정형 명세기법 사용:
Z 명세기법은 형식적인 방법론에 해당하며, 비정형 명세기법이 아니다. 비정형 명세기법은 일반적으로 자연어로 작성되며, 특정 형식을 요구하지 않는다. Z 명세기법은 수학적 기법으로, 비정형 명세기법과는 성격이 다르다.
16. 소프트웨어 개발 단계에서 요구 분석 과정에 대한 설명으로 거리가 먼 것은?
->개발 비용이 가장 많이 소요되는 단계이다.
요구 분석 과정의 주요 요소
분석 결과 문서화
분석 결과를 문서화하면 향후 유지보수 및 개발에 매우 유용하다.
이를 통해 팀 내에서 명확한 커뮤니케이션이 가능해진다.
자료 흐름도와 자료 사전 활용
요구 분석 과정에서는 데이터 흐름과 구조를 명확히 이해하기 위해 자료 흐름도(DFD)와 자료 사전을 효과적으로 활용할 수 있다.
이러한 도구는 시스템의 구조와 기능을 명확하게 시각화하는 데 도움을 준다.
소단위 명세서의 활용
보다 구체적인 명세를 위해 소단위 명세서(Mini-Spec)를 활용할 수 있는 기회가 있다.
이를 통해 각 기능에 대한 세부적인 요구를 충족할 수 있다.
17. 애자일 방법론에 해당하지 않는 것은?
-> 모듈중심 개발
기능 중심 개발
애자일 방법론은 사용자의 요구에 민감하게 반응하여 기능 중심으로 개발을 진행합니다.
이를 통해 필요한 기능을 신속하게 구현하고 사용자로부터 피드백을 받을 수 있다.
스크럼 (Scrum)
스크럼은 애자일 프레임워크 중 하나로, 짧은 주기로 반복되는 스프린트를 통해 개발을 진행합니다.
팀 내 역할 분담과 회의 구조가 명확하여 프로젝트 관리가 용이하다.
익스트림 프로그래밍 (Extreme Programming, XP)
XP는 애자일 방법론의 한 형태로, 코드 품질과 사용자 요구를 동시에 충족시키기 위해 여러 기법을 사용합니다.
지속적인 피드백과 테스트 주도 개발이 중요하다.
모듈중심 개발
모듈중심 개발은 애자일 방법론보다는 전통적인 소프트웨어 개발 방식(예: 구조적 개발 모델)을 나타냅니다.
18. 클라이언트와 서버 간의 통신을 담당하는 시스템 소프트웨어를 뭐라고 하는가
->미들웨어
웨어러블:
웨어러블 장치는 사용자가 착용할 수 있는 전자 기기로, 일반적으로 건강 모니터링이나 피트니스에 사용되는 소프트웨어를 담고 있다. 클라이언트와 서버 간의 통신과 직접적인 연관은 없다.
하이웨어:
'하이웨어'는 일반적으로 알려진 기술 용어가 아니며, 클라이언트와 서버 간의 통신을 의미하는 소프트웨어의 종류로 보기가 어렵다.
응용 소프트웨어:
응용 소프트웨어는 사용자가 직접적인 작업을 수행하기 위해 사용하는 프로그램들로, 특정 기능을 제공하는 어플리케이션을 의미한다.
19.GOF디자인 패턴 분류에 해당하지 않는 것은?
->추상 패턴
생성 패턴:
생성 패턴은 객체 생성 방식을 다루는 디자인 패턴으로, 객체를 만들 때의 복잡성을 줄이기 위한 다양한 방법론을 제공한다. 예를 들어, 싱글턴 패턴, 팩토리 메서드 패턴 등이 있다.
구조 패턴:
구조 패턴은 클래스나 객체의 조합을 다루는 디자인 패턴으로, 복잡한 구조를 간소화하고 유연성을 제공한다. 예로는 어댑터 패턴과 데코레이터 패턴이 있다.
행위 패턴:
설명: 행위 패턴은 객체 사이의 상호작용과 책임 분배를 다루는 디자인 패턴이다. 여기에는 옵저버 패턴과 전략 패턴이 포함된다.
추상 패턴:
'추상 패턴'은 GOF 디자인 패턴의 공식적인 분류에 해당하지 않는다. 실제로 GOF는 객체 지향 소프트웨어 개발에 있어 3가지로 나누어지며, 추상이라는 용어는 일반적으로 사용되지 않는다.
20. 바람직한 소프트웨어 설계 지침이 아닌 것은?
->모듈 간의 결합도는 강할수록 바람직 하다.
① 적당한 모듈의 크기를 유지한다.
O: 모듈의 크기가 적당하면 코드의 가독성이 향상되며, 유지보수가 용이해진다. 이 원칙은 소프트웨어 설계에서 기본적으로 권장되는 사항이다.
② 모듈 간의 접속 관계를 분석하여 복잡도와 중복을 줄인다.
O: 모듈 간의 의존성을 최소화하고 복잡성을 줄이는 것은 소프트웨어 설계의 핵심 원칙 중 하나로, 이는 재사용성을 높이고 버그 발생 가능성을 줄인다.
③ 모듈 간의 결합도는 강할수록 바람직하다.
X: 이는 잘못된 지침이다. 모듈 간 결합도는 낮을수록 바람직하다. 결합도가 높으면 모듈 간의 의존성이 커져서 변경이 어려워지고 시스템의 유연성이 떨어진다.
④ 모듈 간의 효과적인 제어를 위해 설계에서 계층적 자료 조직이 제시되어야 한다.
O: 계층적 자료 조직은 구조적 설계를 통해 명확한 경계를 만들어 주며, 각 모듈의 책임을 프레임워크 내에 잘 분리하도록 돕는다. 이는 매우 바람직한 설계 원칙이다.
'정보처리기사' 카테고리의 다른 글
2020년도 6월 정보처리기사 기출 분석 3과목 : 데이터베이스 구축 (0) | 2025.01.23 |
---|---|
2020년도 9월 정보처리기사 기출 분석 2과목 : 소프트웨어설계 (1) | 2025.01.22 |
2020년도 6월 정보처리기사 기출 분석 2과목 : 소프트웨어설계 (2) | 2025.01.22 |
2020년도 8월 정보처리기사 기출 분석 1과목 : 소프트웨어설계 (0) | 2025.01.21 |
2020년도 6월 정보처리기사 기출 분석 1과목 : 소프트웨어설계 (1) | 2025.01.20 |