-
정보처리기사 기출문제 2019-1 소프트웨어 공학정보처리기사 2020. 4. 7. 12:04
61. 소프트웨어 프로젝트 관리의 주요 구성 요소인 3P에 해당하지 않는 것은?
①People
②Problem
③Process④Power62. 소프트웨어 재공학의 주요 활동 중 역공학에 해당하는 것은?
①소프트웨어 동작 이해 및 재공학 대상 선정
②소프트웨어 기능 변경 없이 소프트웨어 형태를 목적에 맞게 수정
③원시코드로부터 설계정보 추출 및 절차 설계표현, 프로그램과 데이터 구조 정보 추출
④기존 소프트웨어 시스템을 새로운 기술 또는 하드웨어 환경이 이식더보기소프트웨어 재공학
기존 소프트웨어를 버리지 않고 기능을 개선시키거나 기능을 새로운 소프트웨어로 재활용하는 등 소프트웨어 재사용 공법
- 소프트웨어의 유지보수성과 품질을 향상시킬 수 있음
- 부작용을 미연에 발견하여 위험부담 및 제거 복구비용 절감
- 예방 유지보수 측면에서 소프트웨어 위기 해결
종류
- 분석(Analysis)
- 기존 소프트웨어 명세를 확인하여 동작을 이해하고 재공학 대상을 선정
- 재공학 가치판단 및 재공학 여부 판단
- 재구성(Restructuring)
- 소프트웨어 구조를 향상시키기 위해 코드를 재구성
- 소프트웨어의 기능과 외적인 동작은 변경되지 않음
- 역공학(Reverse Engineering)
- 소프트웨어 동작 과정 및 설계 정보를 재발견 혹은 재생성
- 소프트웨어를 구성하는 원시 코드를 복구하는 작업
- 원시 코드로부터 설계정보 추출 및 절차 설계표현, 프로그램과 데이터 구조 정보 추출
- 역공학의 가장 오래된 형태는 재문서화
- 이관(Migration)
- 기존 소프트웨어를 다른 운영체제, 하드웨어, 프레임워크 등에서 사용할 수 있도록 변환
- 재구성 또는 재개발을 통한 새로운 소프트웨어에 기존 데이터를 옮겨 담는 작업
단계
- 원시코드로부터의 정보 추출 단계
- 원시코드나 데이터베이스 정보 등에서 필요한 정보들을 정보저장소에 저장
- 역공학 단계
- 정보저장소에 있는 정보들로부터 새로운 정보 도출
- 시스템의 향상과 검증단계
- 정보구조, 흐름과 같은 응용분야 성능 향상
- 순공학 단계
- 도출된 정보과 향상된 응용분야 성능을 기반으로 새로운 프로그램 명세 작성
- 설계와 최적화 단계
- 기존 파일과 데이터, 프로그램 명세를 이용하여 최적화 설계
- 원시코드의 생성 단계
- 설계를 기반으로 개발, 원시코드 생성
63. 소프트웨어 프로젝트 측정에서 신뢰할만한 비용과 노력 측정을 달성하기 위한 선택사항이 아닌 것은?
①프로젝트 비용과 노력측정을 위해 상대적으로복잡한 분해기술을 이용한다.
②프로젝트의 정확한 측정을 위해 충분한 시간을 갖고 측정한다.
③하나 이상의 자동화 측정도구들을 이용한다.
④소프트웨어 비용과 노력에 대한 실험적 모델을 형성한다.64. 소프트웨어 위기를 가져온 원인으로 가장 옳지 않은 것은?
①소프트웨어 규모 증대와 복잡도에 따른 개발 비용 증가
②프로젝트 관리기술의 부재
③소프트웨어 개발기술에 대한 훈련 부족
④소프트웨어 수요의 감소더보기소프트웨어 공학이 탄생하게 된 원인
- 소프트웨어가 하드웨어 개발 속도를 따라가지 못함
- 소프트웨어가 더이상 사용자들의 요구를 충족시킬 수가 없음
원인
- 소프트웨어 특성에 대한 이해 부족
- 소프트웨어 관리 방법론 부재
- 올바른 설계 없이 프로그래밍에만 치중
- 소프트웨어 개발에 대한 전문적 교육 부족
- 작업일정과 비용의 추정치가 부정확
결과
- 개발 인력의 부족과 인건비 상승
- 소프트웨어 성능 및 신뢰성 부족
- 개발 기간 및 비용의 증가
- 소프트웨어 품질저하 및 유지보수 비용 증가
- 소프트웨어의 생산성 저하
-> 소프트웨어 설계 및 개발에 대한 전문적인 연구 및 방법론 도출 필요:소프트웨어공학
65. 객체 지향 개념 중 하나 이상의 유사한 객체들을 묶어 공통된 특성을 표현한 데이터 추상화를 의미하는 것은?
②클래스(class)66. 객체들 간에 메시지를 주고받을 때 각 객체의 세부내용은 알 필요가 없으므로 인터페이스가 단순해지고 데이터와 데이터를 처리하는 함수를 하나로 묶는 것을 의미하는 것은?
③encapsulation
67. 소프트웨어 재공학은 어떤 유지보수 측면에서 소프트웨어 위기를 해결하기 위한 방법인가?
①Preventive maintenance 예방유지보수
②Corrective maintenance
③Perfective maintenance
④Adaptive maintenance더보기소프트웨어 재공학
기존 소프트웨어를 버리지 않고 기능을 개선시키거나 기능을 새로운 소프트웨어로 재활용하는 등 소프트웨어 재사용 공법
- 소프트웨어의 유지보수성과 품질을 향상시킬 수 있음
- 부작용을 미연에 발견하여 위험부담 및 제거 복구비용 절감
- 예방 유지보수 측면에서 소프트웨어 위기 해결
*문제 잘 읽기. 틀린 건지 맞는건지
68. 자료흐름도(DFD)의 작성 지침이라고 볼 수 없는 것은?
①자료는 처리를 거쳐 변환될 때마다 새로운 명칭을 부여해야 한다.
②자료흐름도의 최하위 처리(process)는 소단위명세서를 갖는다.③배경도(context diagram)에도 명칭과 번호를 부여해야 한다.
④어떤 처리(process)가 출력자료를 산출하기 위해서는 필요한 자료가 반드시 입력되어야 한다.더보기DFD, Data Flow Diagram
자료의 흐름 및 변환 과정과 기능을 도식화하여 기술하는 요구사항 분석 기법
- 럼바우 분석 기법 중 기능 모델링에 해당한다.
- 버블 차트(Bubble chart)라고도 한다.
작성원칙
- 자료 보존의 법칙(Conservation Rule)
- 출력 자료 흐름은 반드시 입력 자료 흐름을 이용해 생성
- 최소 자료의 원칙(Parsimony Rule)
- 출력 자료를 산출하는데 필요한 최소의 자표 흐름만 표현
- 독립성의 원칙(Independence Rule)
- 프로세스는 자신의 자료 입출력에 대해서만 인지
- 지속성의 원칙(Persistence Rule)
- 프로세스는 항상 수행되고 있음
- 순차 처리의 원칙(Ordering Rule)
- 입력 자료흐름의 순서는 출력 자료흐름에서도 지켜져야 함
- 영구성의 원칙(Permanence Rule)
- 자료저장소의 자료는 입력으로 사용해도 제거되지 않음
- 자료 변환의 원칙(Nature of Change)
- 자료 본질의 변환(Change of Nature)
- 자료 합성의 변환(Change of Composition)
- 자료 관점의 변환(Change of Viewpoint)
- 자료 구성의 변환(Change of Organization)
- 기타
- No 'Black Hole': 입력만 있고 출력이 없으면 안된다.
- No 'Miracle': 입력 없이 출력만 있으면 안된다.
- 개체 간의 데이터 흐름이 있어선 안된다.
- 데이터저장소 간의 데이터 흐름이 있어선 안된다.
- 입력 데이터 흐름은 반드시 변환 후 출력 흐름을 전제로 한다.
69. 소프트웨어 생명주기 모형 중 Spiral Model에 대한 설명으로 가장 옳지 않은 것은?
①대규모 시스템에 적합하다.
②개발 순서는 계획 및 정의, 위험 분석, 공학적 개발, 고객 평가 순으로 진행된다.
③소프트웨어를 개발하면서 발생할 수 있는 위험을 관리하고 최소화하는 것을 목적으로 한다.④개발 과정의 앞 단계가 완료되어야만 다음 단계로 넘어갈 수 있는 선형 순차적 모형이다. -> 폭포수모델더보기나선형 모델(Spiral Model)
- 폭포수 모형과 원형모형의 장점을 수용하고 위험분석을 추가한 점증적 개발모델
- 프로젝트 수행시 발생하는 위험을 관리하고 최소화하기 위한 방식
- 대규모 시스템 개발에 적합
- 계획 수립 - 위험 분석 - 개발 및 검증 - 고객평가 순으로 반복
70. 소프트웨어 공학에 대한 설명으로 가장 옳지 않은 것은?
①소프트웨어의 개발, 운영, 유지보수, 그리고 폐기에 대한 체계적인 접근이다.
②소프트웨어 제품을 체계적으로 생산하고 유지보수와 관련된 기술과 경영에 관한 학문이다.
③과학적인 지식을 컴퓨터 프로그램 설계와 제작에 실제 응용하는 것이며, 이를 개발 및 운영하고 유지보수 하는데 필요한 문서화 작성 과정이다.
④소프트웨어의 위기를 이미 해결한 학문으로 소프트웨어의 개발만을 위한 체계적인 접근이다.71. 구조적 분석에서 자료 사전(Data Dictionary)작성 시 고려할 사항으로 옳지 않은 것은?
①갱신하기 쉬워야 한다.
②이름이 중복되어야 한다.
③이름으로 정의를 쉽게 찾을 수 있어야 한다.
④정의하는 방식이 명확해야 한다.더보기자료사전(DD, Data-dictionary)
자료, 자료들의 집합, 자료의 흐름, 자료 저장소와 그들간의 관계·범위·단위들을 구체적으로 명시
- 작성 목적
- 조직 속에 있는 다른 사람들에게 특정한 자료 용어가 무엇을 의미하는지를 알림
- 자료에 관한 용어를 정의하고 취합하여 문서로 명확히 함
- 작성 지침
- 갱신하기 쉬워야 한다.
- 이름이 중복되지 않아야 한다.
- 이름으로 정의를 쉽게 찾을 수 있어야 한다.
- 정의하는 방식이 명확해야 한다.
72. 외계인코드(Alien Code)를 가장 잘 설명한 것은?
①프로그램의 로직이 복잡하여 이해라기 어려운 프로그램을 말한다.
②오류가 없어 디버깅 과정이 필요 없는 프로그램을 의미한다.
③사용자가 직접 작성한 프로그램을 의미한다.
④아주 오래되거나 참고문서 또는 개발자가 없어 유지보수 작업이 어려운 프로그램을 의미한다.더보기Alien Code
- 아주 오래되거나 참고 문서 또는 개발자가 없어 유지보수 작업이 어려운 프로그램 코드
- 프로그램 문서화(Documentation)을 통해 외계인 코드를 방지 가능
73. 다음 중 독립적인 모듈이 되기 위해서 가장 좋은 결합도 상태는?
①control coupling
②stamp coupling
③common coupling
④content coupling더보기Coupling
- 응집도(Cohension)와 함께 모듈의 독립성을 판단하는 지표
- 결합도는 모듈과 모듈간의 상호 결합 정도를 나타낸다.
- 응집도는 모듈 내부의 기능적인 응집 정도를 나타낸다.
- 결합도는 낮을수록 좋고, 응집도는 높을수록 좋다.
종류
자료 결합도 < 스탬프 결합도 < 제어 결합도 < 외부 결합도 < 공통 결합도 < 내용 결합도
- 자료 결합도(Data Coupling)
- 모듈간의 인터페이스 전달되는 파라미터를 통해서만 모듈간의 상호 작용이 일어나는 경우
- 깔끔한 Call by value
- 스탬프 결합도(Stamp Coupling)
- 모듈간의 인터페이스로 배열이나 오브젝트, 스트럭쳐등이 전달되는 경우
- 제어 결합도(Control Coupling)
- 단순히 처리를 해야할 대상인 값만 전달되는게 아니라 어떻게 처리를 해야 한다는 제어 요소(DCD, Flag등)이 전달되는 경우.
- 외부 결합도(External Coupling)
- 어떤 모듈에서 반환한 값을 다른 모듈에서 참조해서 사용하는 경우
- 공통 결합도(Common Coupling)
- 파라미터가 아닌 모듈 밖에 선언되어 있는 전역 변수를 참조하고 전역변수를 갱신하는 식으로 상호작용하는 경우
- 내용 결합도(Content Coupling)
- 다른 모듈 내부에 있는 변수나 기능을 다른 모듈에서 사용 하는 경우
75. 소프트웨어 생명주기 모형에서 프로토타입 모형의 장점이 아닌 것은?
①단기간 제작 목적으로 인하여 비효율적인 언어나 알고리즘을 사용할 수 있다.
②개발과정에서 사용자의 요구를 충분히 반영한다.
③최종결과물이 만들어지기 전에 의뢰자가 최종결과물의 일부 혹은 모형을 볼 수 있다.
④의뢰자나 개발자 모두에게 공동의 참조 모델을 제공한다.더보기- 점진적으로 시스템을 개발해 나가는 접근 방식
- 프로토타입을 만들어 고객과 사용자가 함께 평가한 후 개발될 소프트웨어의 요구사항을 정제하여 보다 완전한 요구명세서를 완성하는 방식
- 장점
- 개발과정에서 사용자의 요구를 충분히 반영한다.
- 최종결과물이 만들어지기 전에 의뢰자가 최종결과물의 일부 혹은 모형을 볼 수 있다.
- 의뢰자나 개발자 모두에게 공동의 참조 모델을 제공한다.
76. 럼바우의 객체 지향 분석에서 분석 활동의 모델링과 가장 관계없는 것은?
①객체(object) 모델링
②절차(procedure) 모델링
③동적(dynamic) 모델링
④기능(functional) 모델링더보기럼바우 분석기법 - 럼바우 객체 모델링 기술
Rumbaugh's Object Modeling Technique
소프트웨어 구성 요소를 그래픽 표기법을 이용하여 모델링하는 객체지향 분석(Object-oriented Analysis) 기법
- 순서는 1)객체 모델링, 2)동적 모델링, 3)기능 모델링 순으로 이루어짐
객체 모델링(Object Modeling)
- 객체 다이어그램을 이용
- 정보 모델링이라고도 함
- 시스템에서 요구되는 객체를 찾아내어 속성과 연산 식별 및 객체들 간의 관계를 규정
- 가장 중요하며 가장 선행되는 단계
동적 모델링(Dynamic Modeling)편집
- 상태도를 이용
- 시간의 흐름에 따른 객체들 사이의 제어 흐름, 상호 작용, 동작 순서 등의 동적인 행위를 표현
기능 모델링(Functional Modeling)편집
- 자료 흐름도(DFD)를 이용
- 다수의 프로세스들 간의 자료 흐름을 중심으로 처리 과정을 표현
- 어떤 데이터를 입력하면 어떤 결과를 구할 것인지 표현
설계 순서편집
- 입출력 결정
- 자료 흐름도 작성(기능 의존 관계를 서술)
- 기능의 내용을 상세히 기술
- 제약사항을 결정하고 최소화
77. CASE가 제공하는 기능으로 거리가 먼 것은?
①개발을 신속하게 할 수 있다.②개발 방법론을 생성할 수 있다.
③오류 수정이 쉬워 S/W 품질이 향상된다.
④S/W개발 단계의 표준화를 기할 수 있다.더보기Computer Aided Software Engineering
소프트웨어 공학의 여러 작업들을 자동화하는 도구
- 소프트웨어 부품의 재사용성을 향상시켜준다.
- 소프트웨어 품질과 일관성을 효율적으로 관리할 수 있다.
- 소프트웨어 생명 주기의 모든 단계를 연결시켜 주고 자동화시켜 준다.
- 소프트웨어의 유지보수를 용이하게 수행할 수 있도록 해준다.
- 소프트웨어 공학의 여러 작업들을 자동화하는 도구이다.
- 소프트웨어 시스템의 문서화 및 명세화를 위한 그래픽 기능을 제공한다.
- 자료흐름, 비즈니스 프로세스 등의 다이어그램을 쉽게 작성하게 해주는 소프트웨어도 CASE 도구이다.
78. 자료흐름도(DFD)의 각 요소별 표기 형태의 연결이 옳지 않은 것은?
①Process : 원
②Data Flow : 화살표
③Data Store : 삼각형 ->평행선 상하
④Terminator : 사각형더보기- 프로세스(Process)
- 동그라미
- 자료를 변환시키는 처리 과정 하나를 나타냄
- 처리/기능/변환 버블이라고도 함
- 자료 흐름(Flow)
- 화살표
- 자료의 이동을 나타냄
- 자료 저장소(Data Store)
- 평행선(아래위만 선이 그어진 사각형)
- 파일, 데이터베이스 등 자료가 저장되는 곳을 나타냄
- 단말(Terminator)
- 사각형
- 시스템과 교신하는 외부 개체
- 데이터의 입출력 주체(사용자 등)
79. S/W 각 기능의 원시 코드 라인수의 비관치, 낙관치, 기대치를 측정하여 예측치를 구하고 이를 이용하여 비용을 산정하는 기법은?
①Effort Per Task기법
②전문가 감정 기법
③델파이기법
④LOC기법80. 소프트웨어 품질 목표 중 사용자의 요구 기능을 충족시키는 정도를 의미하는 것은?
①Reliability 신뢰성
②Portability 이식성
③Correctness 기능적합성?
④Efficiency 성능효율성더보기소프트웨어 품질 특성(목표)
- 기능 적합성
- 성능 효율성
- 호환성
- 사용성
- 신뢰성
- 보안성
- 유지보수성
- 이식성
'정보처리기사' 카테고리의 다른 글
정보처리기사 2018년 2회 - 데이터베이스 (0) 2020.04.10 정보처리기사 2018-3 기출문제 - 소프트웨어 공학 (0) 2020.04.09 정보처리기사 필기 2018년 3회 - 데이터베이스 (0) 2020.04.08 정보처리기사 기출문제 풀이 2019년 1회 - DB, 자료구조 (0) 2020.04.03 [정보처리기사 필기] 데이터베이스 (0) 2020.04.03 - 분석(Analysis)