정보처리기사 필기 2011년3월 10회 4과목 소프트웨어 공학(1)

61. 자료 흐름도의 요소 중 다음 설명에 해당하는 것은?
- 시스템에서 처리되는 자료의 흐름을 추적한다.
- 방향은 화살표로 표시한다.
- 자료의 연관관계를 나타낸다.
가. Process
나. Data Store
다. Data Flow
라. Terminator

풀이
Process : 자료를 변환시키는 시스템의 한 부분(처리 과정)을 나타내며, 처리, 기능, 변환, 버블이라고 한다.
Data Store : 자료의 이동을 나타낸다.
Data Flow : 시스템에서의 자료 저장소(파일, 데이터베이스)를 나타낸다.
Terminator : 시스템과 교신하는 외부 개체로, 입력 데이터가 만들어지고, 출력 데이터를 받는다(정보의 생산자와 소비자).


62. 소프트웨어 재공학 활동 중 소프트웨어 기능을 변경하지 않으면서 소프트웨어를 형태에 맞게 수정하는 활동으로서, 상대적으로 같은 추상적 수준에서 하나의 표현을 다른 표현 형태로 바꾸는 것은?
가. 분석
나. 역공학
다. 이식
라. 재구성

풀이
분석(Analysis) : 기존 소프트웨어의 명세서를 확인하여 소프트웨어의 동작을 이해하고, 재공학 대상을 선정한다.
개조(재구조, 재구성, Restructuring) : 상대적으로 같은 추상적 수준에서 하나의 표현을 다른 표현 형태로 바꾼다. 기존 소프트웨어의 구조를 향상시키기 위하여 코드를 재구성하는 것으로 소프트웨어의 기능과 외적인 동작은 바뀌지 않는다.
역공학(Reverse Engineering) : 기존 소프트웨어를 분석하여 소프트웨어 개발 과정과 데이터 처리 과정을 설명하는 분석 및 설계 정보를 재발견하거나 다시 만들어내는 작업이다. 정공학과 반대되는 의미로 기존 코드를 복구하는 방법이다. 대상 소프트웨어가 있어야 하며 이로부터 작업이 시작된다. 역공학의 가장 단순하고 오래된 형태는 재문서화이다.
이식(Migration) : 기존 소프트웨어를 다른 운영체제나 하드웨어 환경에서 사용할 수 있도록 변환하는 작업이다.


63. 정형 기술 검토(FTR)의 지심 사항으로 옳지 않은 것은?
가. 의제를 제한한다.
나. 논쟁과 반박을 제한한다.
다. 문제 영역을 명확히 표현한다.
라. 참가자의 수를 제한하지 않는다.

풀이
정형 기술 검토는 소프트웨어 기술자들에 의해 수행되는 소프트웨어 품질 보증 활동으로, 참가자의 수를 제한해야 한다.

정형 기술 검토에 대한 지침 사항
- 제품의 검토에만 집중하라.
- 의제를 제한하여 진행하라.
- 논쟁과 반박을 제한하라.
- 문제 영역을 명확히 표현하라.
- 해결책이나 개선책에 대해서는 논하지 말아라.
- 참가자의 수를 제한하고 사전 준비를 강요하라.
- 검토될 확률이 있는 각 제품에 대한 체크리스트를 개발하라.
- 자원과 시간 일정을 할당하라.
- 모든 검토자들을 위해 의미있는 훈련을 행하라.
- 검토자들은 사전에 작성한 메모들을 공유하라.
- 검토의 과정의 결과를 재검토하라.


64. 다음 설명에 해당되는 결합도는?
두 모듈이 동일한 자료구조를 조회하는 경우 결합도이며 자료구조의 어떠한 변환, 즉 포맷이나 구조의 변화는 그것을 조회하는 모든 모듈 및 변화하는 필드를 실제로 조회하지 않는 모듈에까지도 영향을 미치게 된다.
가. Control Coupling
나. Content Coupling
다. Stamp Coupling
라. Common Coupling

풀이
Stamp Coupling
- 모듈 간의 인터페이스로 배열이나 레코드 등의 자료 구조가 전달될 때의 결합도이다.
- 두 모듈이 동일한 자료 구조의 어떠한 변화, 즉 포맷이나 구조의 변화는 그것을 조회하는 모든 모듈 및 변화되는 필드를 실제로 조회하지 않는 모듈에까지도 영향을 미치게 된다.

Control Coupling
- 어떤 모듈이 다른 모듈 내부의 논리적인 흐름을 제어하기 위해 제어 신호를 이용하여 통신하거나 제어요소를 전달하는 결합도이다.
- 제어 요소에는 Function Code, Switch, Tag, Flag가 있다.
- 상위 모듈이 하위 모듈의 상세한 처리 절차를 알고 있어 이를 통제한 경우나 처리 기능이 두 모듈에 분리되어 설계된 경우에 발생한다.
- 하위 모듈에서 상위 모듈로 제어 신호가 이동하여 상위 모듈에게 처리 명령을 부여하는 권리 전도현상이 발생한다.

External Coupling
- 어떤 모듈에서 외부로 선언한 데이터(변수)를 다른 모듈에서 참조할 때의 결합도이다.
- 참조되는 데이터의 범위를 각 모듈에서 제한할 수 있다.

Common Coupling
- 공유되는 공통 데이터 영역을 여러 모듈이 사용할 때의 결합도이다.
- 공통 데이터 영역의 내용을 조금만 변경하여도 이를 사용하는 모들 모듈에 영향을 미치므로 모듈의 독립성을 약하게 만든다.

Content Coupling
- 한 모듈이 다른 모듈의 내부 기능 및 그 내부 자료를 직접 참조하거나 수정할 때의 결합도이다.
- 한 모듈에서 다른 모듈의 내부로 제어가 이동하는 경우 발생한다.


65. 객체 지향 기법에서 하나 이상의 유사한 객체들을 묶어서 하나의 공통된 특성을 표현한 것을 무엇이라고 하는가?
가. 함수
나. 메소드
다. 메시지
라. 클래스


66. 효과적 모듈 설계를 위한 유의사항으로 옳지 않은 것은?
가. 모듈의 기능을 예측할 수 있도록 정의한다.
나. 모듈은 단일 입구와 단일 출구를 갖도록 설계한다.
다. 결합도는 강하게, 응집도는 약하게 설계하여 모듈의 독립성을 확보할 수 있도록 한다.
라. 유지보수가 용이해야 한다.

풀이
모듈 간 결합도는 약하게, 응집도는 강하게 설계해야 모듈의 독립성을 확보할 수 있다.

효과적인 모듈화 설계 방안
- 결합도는 줄이고 응집도는 높여허 모듈의 독립성을 높인다.
- 모듈의 제어 영역 안에서 그 모듈의 영향 영역을 유지시킨다.
- 복잡도와 중복성을 줄이고 일관성을 유지시킨다.
- 모듈의 기능은 예측이 가능해야 하며 지나치게 제한적이어서는 안 된다.
- 유지보수가 용이해야 한다.
- 모듈 크기는 시스템의 전반적인 기능과 구조를 이해하기 쉬운 크기로 분해한다.
- 하나의 입구와 하나의 출구를 갖도록 해야 한다.
- 인덱스 번호나 기능 코드들이 전반적인 처리 논리 구조에 예기치 못한 영향을 끼치지 않도록 모듈 인터페이스를 설게해야 한다.


67. 다음 설명에 해당하는 것은?
세분화된 자료 흐름도에서 최하위 단계 프로세스의 처리 절차를 기술한 것으로, 작성 툴에는 서술문장, 구조적언어, 의사결정나무, 의사결정표, 그래프 등이 있다.
가. ERD
나. Mini-Spec
다. DD
라. STD

풀이
Mini-Spec(소단위 명세서)에 대한 설명이다.


68. 화이트 박스 시험(White Box Testing)의 설명으로 옳지 않은 것은?
가. 프로그램의 제어구조에 따라 선택, 반복 등의 부분들을 수행함으로써 논리적 경로를 점검한다.
나. 모듈안의 작동을 직접 관찰할 수 있다.
다. 소프트웨어 산물의 각 기능별로 적절한 정보영역을 정하여, 적합한 입력에 대한 출력의 정확성을 점검한다.
라. 원시 코드의 모든 문장을 한번 이상 수행함으로써 진행된다.

풀이
소프트웨어 산물의 각 기능별로 적절한 정보영역을 정하여, 적합한 입력에 대한 출력의 정확성을 점검하는 것은 블랙 박스 시험에 대한 설명이다.

화이트 박스 테스트
-모듈의 원시 코드를 오픈시킨 상태에서 원시 코드의 논리적인 모든 경로를 검사하여 검사 사례를 설계하는 방법이다.
- 설계된 절차에 초점을 둔 구조적 테스트로, 프로시저 설계의 제어 구조를 사용하여 검사 사례를 설계하며, 테스트 과정의 초기에 적용된다.
- 모듈 안의 작동을 직접 관찰할 수 있다.
- 원시 코드의 모든 문장을 한 번 이상 수행함으로써 수행된다.
- 프로그램의 제어 구조에 따라 선택, 반복 등의 부분들을 수행함으로써 논리적 경로를 제어한다.
- 각 조건에서의 참과 거짓의 모든 논리적 결정이 적어도 한 번 이상 실행된다.
- 논리 흐름도, 루프 구조, 순환 복잡도에 관한 오류를 찾을 수 있다.


69. 소프트웨어 비용 산정 기법 중 개발 유형으로 Organic, Semi-Detach, Embedded로 구분되는 것은?
가. PUTNAM
나. COCOMO
다. FP
라. SLIM

풀이
COCOMO(비용 산정 기법)
- Boehm이 제안한 것으로 원시 프로그램의 규모(LOC)에 의한 비용 산정 기법이다.
- 개발할 소프트웨어의 규모를 예측한 후 이를 소프트웨어 종류에 따라 다르게 책정되는 비용 산정 방정식에 대입하여 비용을 산정한다.
- 비용 견적의 강도 분석 및 비용 견적의 유연성이 높아 소프트웨어 개발비 견적에 널리 통용되고 있다.
- Organic, Semi-Detach, Embedded로 구분된다.


70. 객체지향 기법에서 캡슐화(Encapsulation)에 대한 설명으로 옳지 않은 것은?
가. 캡슐화를 하면 객체 간의 결합도가 높아진다.
나. 캡슐화된 객체들은 재사용이 용이하다.
다. 프로그램 변경에 대한 오류의 파급효과가 적다.
라. 인터페이스가 단순해진다.

풀이
캡슐화를 파면 객체 간의 결합도가 낮아진다.

캡슐화
- 데이터와 데이터를 처리하는 함수를 하나로 묶는 것이다.
- 캡슐화된 객체의 세부 내용이 외부의 은폐되어, 변경이 발생해도 오류의 파급효과가 적다.
- 캡슐화된 객체들은 재사용이 용이하다.
- 인터페이스가 단순해지고 객체 간의 결합도가 낮아진다.

댓글 없음: