ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 정보처리기사 기출문제 2019-1 소프트웨어 공학
    정보처리기사 2020. 4. 7. 12:04

    61. 소프트웨어 프로젝트 관리의 주요 구성 요소인 3P에 해당하지 않는 것은?
    ①People
    ②Problem
    ③Process
    ④Power

    62. 소프트웨어 재공학의 주요 활동 중 역공학에 해당하는 것은?
    ①소프트웨어 동작 이해 및 재공학 대상 선정
    ②소프트웨어 기능 변경 없이 소프트웨어 형태를 목적에 맞게 수정
    원시코드로부터 설계정보 추출 및 절차 설계표현, 프로그램과 데이터 구조 정보 추출
    ④기존 소프트웨어 시스템을 새로운 기술 또는 하드웨어 환경이 이식

     

    더보기

    소프트웨어 재공학

    기존 소프트웨어를 버리지 않고 기능을 개선시키거나 기능을 새로운 소프트웨어로 재활용하는 등 소프트웨어 재사용 공법

    - 소프트웨어의 유지보수성과 품질을 향상시킬 수 있음

    - 부작용을 미연에 발견하여 위험부담 및 제거 복구비용 절감

    - 예방 유지보수 측면에서 소프트웨어 위기 해결

     

    종류

    • 분석(Analysis)
      • 기존 소프트웨어 명세를 확인하여 동작을 이해하고 재공학 대상을 선정
      • 재공학 가치판단 및 재공학 여부 판단
    • 재구성(Restructuring)
      • 소프트웨어 구조를 향상시키기 위해 코드를 재구성
      • 소프트웨어의 기능과 외적인 동작은 변경되지 않음
    • 역공학(Reverse Engineering)
      • 소프트웨어 동작 과정 및 설계 정보를 재발견 혹은 재생성
      • 소프트웨어를 구성하는 원시 코드를 복구하는 작업
      • 원시 코드로부터 설계정보 추출 및 절차 설계표현, 프로그램과 데이터 구조 정보 추출
      • 역공학의 가장 오래된 형태는 재문서화
    • 이관(Migration)
      • 기존 소프트웨어를 다른 운영체제, 하드웨어, 프레임워크 등에서 사용할 수 있도록 변환
      • 재구성 또는 재개발을 통한 새로운 소프트웨어에 기존 데이터를 옮겨 담는 작업 

    단계

    1. 원시코드로부터의 정보 추출 단계
      • 원시코드나 데이터베이스 정보 등에서 필요한 정보들을 정보저장소에 저장
    2. 역공학 단계
      • 정보저장소에 있는 정보들로부터 새로운 정보 도출
    3. 시스템의 향상과 검증단계
      • 정보구조, 흐름과 같은 응용분야 성능 향상
    4. 순공학 단계
      • 도출된 정보과 향상된 응용분야 성능을 기반으로 새로운 프로그램 명세 작성
    5. 설계와 최적화 단계
      • 기존 파일과 데이터, 프로그램 명세를 이용하여 최적화 설계
    6. 원시코드의 생성 단계
      • 설계를 기반으로 개발, 원시코드 생성

    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

    자료의 흐름 및 변환 과정과 기능을 도식화하여 기술하는 요구사항 분석 기법

    작성원칙

      • 자료 보존의 법칙(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)를 이용
    • 다수의 프로세스들 간의 자료 흐름을 중심으로 처리 과정을 표현
    • 어떤 데이터를 입력하면 어떤 결과를 구할 것인지 표현

    설계 순서편집

    1. 입출력 결정
    2. 자료 흐름도 작성(기능 의존 관계를 서술)
    3. 기능의 내용을 상세히 기술
    4. 제약사항을 결정하고 최소화

    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  성능효율성

     

    더보기

    소프트웨어 품질 특성(목표)

    • 기능 적합성
    • 성능 효율성
    • 호환성
    • 사용성
    • 신뢰성
    • 보안성
    • 유지보수성
    • 이식성
Designed by Tistory.