정보처리기사_요점정리_소프트웨어공학(10년.pdf


정보처리기사_요점정리_소프트웨어공학(10년.pdf


정보처리기사_요점정리_소프트웨어공학(10년.pdf


필기
권우석 샘의 정보처리기사

[ 5. 소프트웨어 공학 ]
요점정리집 & 핵심기출


소프트웨어 공학은 ‘기사’만 해당됩니다.
1
정보처리기사 필기 기사퍼스트(www.gisafirst.com)
[SE 1강]-소프트웨어 공학, 생명주기 [출제빈도 ‘상']
1. 소프트웨어 공학(Software Engineering) 이해하기
*
정의 : 가장 경제적으로 신뢰도 높은 S/W를 만들기 위한 방법, 도구와 절차들의 체계화 한 학문 -프로그램 코딩(X) -> 프로그램을 잘 만드는 방법 연구 -> 목표 : 투자 대비 성능 우수

*
 나는 개발부 팀장입니다. 조금 전, 고객만족팀으로 부터 고객관리프로그램 개발 의뢰를 받았습니다. 어떻게 프로그램을 개발해야 할까요?

*
 S/W (프로젝트) 개발 절차 : 요구 분석 -> 설계 -> 구현(코딩) -> 테스트(시험) -> 유지보수

1) 요구 분석 : 어떻게 만들어 줄까? (무엇) -> 분석도구

2) 설계 : 요구 분석 결과를 가지고 구체적인 기능과 구조를 체계화 (어떻게) -> 설계기법

3) 구현 : 프로그램 언어를 선정하고, 설계 명세서를 컴퓨터가 이해할 수 있도록 표현 -> 프로그램 언어 선정 기준, 코딩 표준화

4) 테스트 : 요구 사항에 맞게 작동하는가? -> 테스트 기법

5) 유지보수 : 버전 업데이트 및 새로운 기능 추가 (S/W 개발 비용 70% 차지) -> 유지보수 과정 (유지보수 요구 -> 현 시스템 이해 -> 수정, 테스트)


3
정보처리기사 필기 기사퍼스트(www.gisafirst.com)
[소프트웨어공학-출제경향 분석]

1. 소프트웨어공학 강의 목차 2. 기출문제 출제경향 분석 ( ’99 ~ ’08)
SE01-소프트웨어공학, 생명주기
12%
SE02-프로젝트 관리 24%
SE03-구조적 개발 방법론 36%
SE04-객체지향 개발 방법론 15%
SE05-발전적 주제 13%
2
정보처리기사 필기 기사퍼스트(www.gisafirst.com)


[SE 1강]-소프트웨어 공학, 생명주기

2. 소프트웨어 위기
1) 정의 : 소프트웨어 개발 속도가 하드웨어 개발 속도를 따라가지 못해 소프트웨어에 대한 사용자들의 요구 사항을 처리할 수 없는 문제가 발생함을 의미 -> 소프트웨어 공학이 나타나게 된 배경

2) 위기의 결과 -개발인력의 부족 -> 인건비 상승 -> 개발기간 지연 및 개발 비용 증가 -성능 및 신뢰성 부족 -> 품질 저하 -유지보수의 어려움

3) 좋은 소프트웨어의 조건 -남이 알아보기 쉬워야 한다. -경제적, 문서화가 잘 되어 있어야 한다. -독창적 (X)

4) 소프트웨어 공학의 기본 원칙 -현대적인 프로그래밍 기술 적용 -지속적인 검증 시행 -결과에 대한 명확한 기록 유지 -충분한 인력 투입 (X)


4


[SE 1강]-소프트웨어 공학, 생명주기 [SE 1강]-소프트웨어 공학, 생명주기
1. 소프트웨어 생명 주기  2. 폭포수 모형 : 순차적(고정) -> 요구분석 불만족 
1) 정의 : 소프트웨어를 개발하기 위해 정의, 개발, 유지보수 과정을 각 단계별로 나눈 것  1) 개발 단계 
-표현 형태 : 폭포수 모형, 프로토타입 모형, 나선형 모형, 4G T  : 타당성 검토 -> 계획 -> 요구 분석 -> 설계 -> 구현(코딩) -> 시험(검사,테스트) -> 운용 -> 유지보수 
2) 소프트웨어 생명 주기 단계  2) 특징 
① 정의단계 : 타당성 검토 단계, 계획 단계, 요구사항분석 단계  -가장 오래되고 폭넓게 사용된 전통적인 소프트웨어 생명주기 
② 개발단계 : 설계 단계, 구현 단계, 테스트 단계  -물이 위에서 아래로 떨어지듯이 단계가 순차적으로 진행되고 단계별 정의가 분명 
③ 유지보수단계 : 가장 비용이 많이 요구되는 단계  -두 개 이상의 과정이 병행 수행되거나 이전 단계로 넘어가는 경우가 없음 
-개발 과정 중에 발생하는 새로운 요구나 경험을 설계에 반영하기 어려움 (요구사항 변경 X) 
3) 역할  -제품의 일부가 될 매뉴얼 작성 필요 
-프로젝트 비용산정과 개발 계획수립의 기본 골격  -각 단계가 끝난 후 결과물이 명확히 나옴 
-프로젝트 진행방향을 명확히 한다 
-용어, 기술의 표준화 가능 -> 일관성 유지  * 사용자의 요구사항 분석 작업이 어려운 이유 
-문서화가 충실한 프로젝트 관리 용이  -개발자와 사용자 간의 지식이나 표현의 차이가 커서 상호 이해가 쉽지 않다. 
-단계별 종료 시점은 변동될 수 있음 ( 명확 X)  -사용자의 요구사항이 모호하고 부정확하며, 불완전하다. 
-개발하고자 하는 시스템 자체가 복잡하다. 

5
정보처리기사 필기 기사퍼스트(www.gisafirst.com)


[SE 1강]-소프트웨어 공학, 생명주기
3. 프로토타입 모형 : 모형(가변) -> 요구분석 만족
*
 개념 이해하기 : 모델하우스를 고객에게 보여주고 요구에 맞도록 건물을 시공한다.

1) 정의 : 시스템의 일부 혹은 시스템의 모형을 만드는 과정으로서 요구된 소프트웨어의 일부를 구현하며, 추후 구현단계에 사용될 골격코드가 되는 모형

2) 개발 단계 요구 수집 -> 빠른 설계 -> 프로토타입 구축 -> 고객평가 -> 프로토타입 조정 -> 구현

3) 특징 -실제 상황이 나오기 전에 가상으로 시뮬레이션을 통해 최종 결과물에 대한 예측을 할 수 있음 -개발 단계에서 오류 수정을 할 수있음 -요구사항을 충실히 반영 -실제 개발된 시스템 견본을 미리 만들어 최종 결과물을 예측하는 모형 -> 비용 증가


7 6
정보처리기사 필기 기사퍼스트(www.gisafirst.com)


[SE 1강]-소프트웨어 공학, 생명주기
4. 나선형 모형 : 폭포수 장점 + 프로토타입 장점
1) 개발 단계 : Planning → Risk Analysis → Engineering → Customer Evaluation
계획수립 위험분석
고객평가 공학적개발
2) 특징 -점증적 생명주기 모델 -위험분석 단계에 초점 -Boehm(보헴) 제안 -비용이 많이 들고, 시간이 많이 소요되지만 완성도 높으므로 대규모 프로젝트에 유리 -개발 단계에서 유지보수 (X) 8

[SE 1강]-소프트웨어 공학, 생명주기

[SE 1강]-소프트웨어 공학, 생명주기
5. 4GT (4th Generation Techniques) : 4세대 기법
1) 개발 단계 : 요구사항 분석 -> 설계, 구현 -> 제품화

2) 특징 -4세대 언어(비주얼 베이직) 이용 -> 원시 코드를 자동으로 생성 -설계 단계 단축 -> 개발 시간 감소(소규모 개발 시 효율적)

3) 개념 이해하기


9
정보처리기사 필기  기사퍼스트(www.gisafirst.com)


[SE 1강]-소프트웨어 공학, 생명주기
7. 소프트웨어 라이프 사이클 단계 중 가장 오랜 시간이 10. 폭포수 모델에 대한 설명으로 옳지 않은 것은? 걸리며, 대부분의 비용을 차지하는 단계는?
가. 소프트웨어 개발 과정의 각 단계가 순차적으로 진행 가. 타당성검토단계 나. 운용및유지보수단계 된다. 다. 기본설계단계 라. 실행단계 나. 앞단계에서발견하지못한오류를다음단계에서
발견 했을 때 오류 수정이 용이하다. 다. 두 개 이상의 과정이 병행 수행되거나 이전 단계로
8. 현재 소프트웨어 개발 중 가장 많은 비용이 넘어가는 경우가 없다.
요구되는 단계는? 라. 개발 과정 중에 발생하는 새로운 요구나 경험을

설계에 반영하기 힘들다. 가. 분석 나. 설계 다. 구현 라. 유지보수
11. 시스템의 일부 혹은 시스템의 모형을 만드는 과정 으로서, 요구 된 소프트웨어의 일부를 구현하여, 추후
9.소프트웨어수명주기모형중폭포수모형 구현단계에서사용될골격코드가되는모형은? (Waterfall Model)의 개발 단계로 옳은 것은?
가. 폭포수모형 나. 점층적모형 가. 계획-분석-설계-시험-구현-유지보수 다. 프로토타입모형 라. 계획수립모형 나. 계획 -분석 -설계 -구현 -시험 -유지보수 다. 계획 -설계 -분석 -구현 -시험 -유지보수
라. 계획-분석-설계-구현-시험-설치  12.다음은프로토타입(원형) 모형의개발에필요한작업을 기술한 것이다. 작업 순서대로 옳게 나열한 것은?
① 빠른 설계 ② 프로토타입 구축 ③ 프로토타입 조정

④요구수집 ⑤구현 ⑥고객평가


가. ④ -②-①-③-⑥-⑤
나. ④ -①-②-⑤-⑥-③
[정답]   7.나 8.라 9.나 10.나 11.다 12.라 다. ④ -①-②-③-⑥-⑤
라. ④ -①-②-⑥-③-⑤ 11

1. 시스템의 구성 요소에 해당되지 않는 것은?

가. 입력 나. 출력 다. 제어 라. 상태

2. 컴퓨터의 발달 과정에서 소프트웨어의 개발 속도가 하드웨어의 개발 속도를 따라가지 못해 사용자들의 요구사항을 감당할 수 없는 문제가 발생함을 의미 하는 것은?

가. 소프트웨어의 위기(Crisis) 나. 소프트웨어의 오류(Error) 다. 소프트웨어의 버그(Bug) 라. 소프트웨어의 유지보수(Maintenance)

3. 소프트웨어의 위기 현상과 거리가 먼 것은?


가. 유지보수의 어려움 나. 개발인력의급증 다. 성능및 신뢰성부족 라. 개발 기간의 지연 및 개발비용의 증가
[정답]   1.라 2.가 3.나 4.다 5.라 6.나
정보처리기사 필기
4. 공학적으로 잘 작성 된 소프트웨어의 특성이 아닌 것은 ?
가. 소프트웨어는 신뢰성이 높아야 하며 효율적이어야 한다.
나. 소프트웨어는 사용자가 원하는 대로 동작해야 한다.
다. 소프트웨어는 편리성이나 유지보수성에 점차 비중을 적게 두는 경향이 있다.
라. 소프트웨어는 잠재적인 에러가 가능한 적어야 하며 유지 보수가 용이해야 한다.
5. 좋은 소프트웨어의 조건이라고할수없는 항목은?

가. 남이 알아보기 쉬워야 한다. 나. 경제적이어야 한다. 다. 문서화가 잘 되어 있어야 한다. 라. 프로그램이 독창적이어야 한다.

6. 소프트웨어 공학이 나타나게 된 배경과 관계가 먼 것은 ?


가. S/W 비용의 증가 나. 유지보수 비용의 감소 다. S/W 품질과 생산성의 재고 라. 특정 개인에 의존한 시스템 개발
기사퍼스트(www.gisafirst.com)


[SE 1강]-소프트웨어 공학, 생명주기
13. 실제 상황이 나오기 전에 가상으로 시뮬레이션을 통해 최종 결과물에대한 예측을 할 수 있는 소프트웨어 수명 주기 모형은?

가. 집중적 모형(Spiral Model) 나. 프로토타입 모형(Prototype Model) 다. 코코모 모형(Cocomo Model) 라. 폭포수 모형(Waterfall Model)

14. 프로토타입 모형의 장점으로 가장 적절한 것은?


가. 프로젝트 관리가 용이하다 나. 노력과 비용이 절감된다. 다. 요구사항을 충실히 반영한다. 라. 관리와 개발이 명백히 구분된다.
[정답]   13.나 14.다 15.나 16.다
15. 소프트웨어 수명 주기 모형 중 나선형(Spiral) 모형의 단계와 그 순서가 올바르게 구성된 것은?
가. Planning → Requirement Analysis → Development
→Maintenance 나. Planning → Risk Analysis → Engineering

→ Customer Evaluation 다. Requirement Analysis → Planning → Design

→Maintenance 라. Requirement Analysis → Risk Analysis


→ Development → Maintenance
16. Boehm이 제안한 나선형 모델의 태스크(Task)에 해당되지 않는 것은?
가. 계획 수립(Planning) 나. 위험 분석(Risk Analysis) 다. 객체 구현(Object Implementation) 라. 고객 평가(Customer Evaluation)


[SE 1강]-소프트웨어 공학, 생명주기  [SE 2강]-프로젝트 관리 [출제빈도 '상']
17. 소프트웨어 생명주기(Life Cycle) 모델 중 아래 18. 프로토타이핑 모형(Prototyping Model)에 대한 1. 프로젝트 관리 : 계획대로 완료될 수 있도록 관리 보기가 설명하는 모형은? 설명으로 옳지 않은 것은?
a. 고객과의 의사소통(Communication)을 통해 가. 최종 결과물이 만들어지기 전에 의뢰자가 최종  -목적 : 주어진 기간 내에 최소의 비용으로 사용자를 만족시키는 시스템 개발

결과물의 일부또는 모형을 볼 수 있다.
계획수립과 위험분석, 구축, 고객평가의 과정을 나. 개발단계에서 오류 수정이 불가하므로 유지보수 1) 프로젝트 관리 대상 : 계획, 개발팀 관리, 비용 관리, 일정 관리, 위험 관리, 형상 관리, 품질 관리
거쳐 소프트웨어를 개발한다. 비용이 많이 발생한다. => 고객 관리 (X)


b. 가장 큰 장점인 위험분석 단계에서 기술과  다. 프로토타입은 발주자나 개발자 모두에게 공동의
참조 모델을 제공한다.


관리의 위험요소들을 하나씩 제거해 나감으로써 라. 프로토타입은 구현단계의 구현 골격이될수있다. 2) 효과적인 프로젝트 관리를 위한 3대 요소 (3P)
완성도 높은 소프트웨어를 만들 수 있다. ① 사람(people) : 인적 자원


c. 반복적인 작업을 수행하는 점증적 생명주기 ② 문제(problem) : 문제 인식
모델이다. 19. 다음 중 전통적인 소프트웨어 개발 방법론이 ③ 프로세스(process) : 작업 계획


d. 비용이 많이 들거나 시간이 많이 소요되는 폭포수형(waterfall) 모델에서 개발 순서가 옳은 것은?


대규모프로젝트나큰시스템을구축할때 가. 타당성검토→계획→분석→구현→설계 1. 프로젝트 계획 : 수행 전 예측하는 작업
유리하다. 나. 타당성검토→분석→계획→설계→구현

가. 프로토타입(Prototype) 모델 다. 타당성 검토 → 계획 → 분석 → 설계 → 구현  -프로젝트가 수행되기 전에 소프트웨어 개발 영역(범위) 결정, 필요한 자원, 비용, 일정 등을 예측
라. 타당성 검토 → 분석 → 계획 → 구현 → 설계
나. 폭포수(Waterfall) 모델

1) 프로젝트 계획수립시예측 대상 다. 나선형(Spiral) 모델
-범위, 비용, 일정, 성능, 유지보수비용 (X), 위험성 (X) : 돌발 상황 라. RAD 모델 2) 프로젝트 계획 수립 시 소프트웨어 영역 결정 사항

-기능, 성능, 제한조건, 신뢰도, 위험성 (X) [정답]   17.다 18.나 19.다
13  14
정보처리기사 필기  기사퍼스트(www.gisafirst.com) 정보처리기사 필기 기사퍼스트(www.gisafirst.com)

[SE 2강]-프로젝트 관리  [SE 2강]-프로젝트 관리
1.개발팀관리  1.비용관리
1) 비용 결정 요소

① 중앙 집중형 (책임 프로그래머 팀) : 한 사람에 의하여 통제 -> 소규모 프로젝트 적합 -개발자의 능력, 요구되는 신뢰도, 개발 제품의 복잡도 -책임 프로그래머 : 분석, 설계, 작업 지시 등 모든 기술적 판단 -보조 프로그래머 : 책임 프로그래머 업무 지원 -하드웨어 성능 (X) -프로그래머 : 코딩, 검사, 디버깅, 문서 작성 등 2) 비용을 정확하게 예측하기 위한 방법 -프로그램사서: 프로그램리스트, 설계문서, 검사계획등 -예측을가능한한뒤로미룸(현실성X )

② 분산형 (민주주의식) : 링 모양 구조  -이미 수행된 유사 프로젝트 참고


-프로젝트를 상대적으로 잘게 분리하여 예측

-모든팀구성원이동등한위치에서의사결정-> 장기프로젝트적합 -경험적예측모델을활용: 실험에의한결과활용 -서로의 일을 검토하고 결과에 대해 같은 그룹의 일원으로 책임짐 -의사 교류를 활성화 -> 구성원의 작업 만족도 증대
3) 개발비용과 개발기간 상관 관계
책임 프로그래머  구성원
개발

구성원 구성원  비용 -> 개발완료기간을 앞당기면 비용은 더 증가 보조 프로그래머 프로그램
프로그래머 사서 구성원  개발기간
15  16


[SE 2강]-프로젝트 관리
2. 비용 예측 기법 > LOC 기법
1) 용어 정리

① LOC : Line Of Code (원시코드 라인 수)

② 인월 (PM) : 개발에 소요되는 기간을 1개월로 고정할 경우 필요한 총 인원수 -ex) 12인월 : 12명이 1개월 동안 작업해야 하는 작업의 양

2) 기출문제 두 명의 개발자가 5개월에 걸쳐 10,000 라인의 코드를 개발하였을 때, 월별(Person Month) 생산성 ? => 10,000 / 5 * 2 = 1,000


어떤 소프트웨어 개발을 위해 10명의 개발자가 10개월 동안 참여되었다. 그런데 그 중 7명은 10개월 동안 계속
참여했지만 3명은 3개월 동안만 부분적으로 참여했다. 이 소프트웨어 개발을 위한 인월(Man Month) ?
=> 7 * 10 + 3 * 3 = 79

LOC 기법에 의하여 예측된 총 라인수가 25,000 라인일 경우 개발에 투입될 프로그래머의 수가 5명이고,
프로그래머들의 평균 생산성이 월당 500 라인일 때, 개발에 소요되는 기간 ?
=> 25,000 / 5 * 500 = 10

개발에 소요되는 노력이 40PM(Programmer Month)으로 계산되었다. 개발에 소요되는 기간이 5개월이고,
1인당 인건비가 100만원이라면 이 프로젝트에 소요되는 총 인건비 ?
=> 40 * 100 = 4,000

17
정보처리기사 필기 기사퍼스트(www.gisafirst.com)


[SE 2강]-프로젝트 관리
1. 일정 관리
1) 프로젝트 일정 계획 기법 : WBS(작업 분해), PERT/CPM, Gantt Chart

2) 브룩스(Brooks) 법칙 -새로운 개발 인력이 진행 중인 프로젝트에 투입될 경우 작업 적응 기간과 부작용으로 인해 빠른시간 내에 프로젝트는 완료될 수 없다.

3) 일정 계획의 순서

① 프로젝트 규모 추정

② 소단위 작업 분해

③ 각 작업의 상호관계를 CPM 네트워크로표현( PERT, CPM)

④ Gantt Chart로표현


19
정보처리기사 필기 기사퍼스트(www.gisafirst.com)


[SE 2강]-프로젝트 관리
3. 비용 예측 모형 > COCOMO 모형
1) 특징 -Bohehm이 제안한 원시 프로그램의 규모에의한비용예측 모형 (인월: man-month) -소프트웨어의 종류에 따라 다르게 책정되는 비용신장 방정식을 이용 -같은 규모의 프로그램이라도 그 성격에 따라 비용이 다르게 생성 -비용 견적의 강도 분석 및 비용견적의 유연성이 높아 소프트웨어 개발비 견적에 널리 통용

2) COCOMO 모형

① Basic COCOMO (기본형)

② Intermediate COCOMO (중간형)

③ Detailed COCOMO (진보형)

3) COCOMO 유형(모드) : 기본(Basic) 모형은 단순히 소프트웨어의 크기와 개발 모드에 의해서 구해진다

① Organic 프로젝트 (유기형) : 5만 라인 이하 규모 (일괄처리, 과학 기술 계산용 등)

② Semi-Detached 프로젝트 (반분리형) : 30만 라인 이하 규모 (운영체제 등)

③ Embedded 프로젝트 (내장형) : 30만 라인 이상의 최대형 규모 (운영체제 등)

*
 그 외 비용 예측(추정) 모형 -Putnam 모형, Function-Point 모형


18
정보처리기사 필기 기사퍼스트(www.gisafirst.com)


[SE 2강]-프로젝트 관리
2. 작업 분해
-프로젝트를 여러 개의 작은 소단위로 분해하여 계층 구조로 표현
프로젝트
ABC D
EFG HIJ

3. PERT/CPM 개념 이해하기
2,3,4 2,3,4 23
2,4,5 2
1,2,3EF G 1EF G

DD
A A4
221,2,3 B 2,3,4 B
2,4,5 3
2
CHIJ CHIJ 13 1
2,3,4 2,3,4 2,3,4
20


[SE 2강]-프로젝트 관리
4. PERT/CPM 특징
-CPM (Critical Path Method, 임계 경로 기법) -프로젝트의 지연을 방지하고 계획대로 진행되게 하기 위한 일정 계획 방법 -대단위 계획의 조직적인 추진을 위해 자원의 제약 하에 비용을 적게 사용하면서 초단기간 내 계획 완성을 위한 프로젝트 일정 방법 -병행작업이 가능하도록 계획할 수 있음 -노드에서 작업을 표시하고 간선은 작업 사이의 전후 의존 관계를 나타냄 -프로젝트 완성에 필요한 작업을 나열하고 작업에 필요한 소요 기간을 예측하는 데 사용 -박스 노드는 프로젝트 중간 점검을 뜻하는 이정표로이노드위에는 예상 완료 시간을표시 -프로젝트 작업 사이의 관계를 나타내며 최장경로(임계 경로)를파악할수있음 -정확한 예측, 노력과 비용 (X)

5. Gantt Chart
작업 일정 작업 단계  1  2  3  4  5  76 이정표  8  9  10  11  12  산출물 
A  AA 
B  BB 

-포함되는 내용 : 이정표, 작업 일정, 작업 기간, 산출문, 작업 경로 (X)
21
정보처리기사 필기 기사퍼스트(www.gisafirst.com)


[SE 2강]-프로젝트 관리
2. 품질관리 위원회
: 소프트웨어 품질 향상을 목적으로 구성
1) 정형 기술 검토 (FTR : Formal Technical Review) -가장 일반적인 검토 방법으로 소프트웨어 품질 보증 활동 -목적 : 기능과 로직의 오류 발견, 사용자 요구사항의 확인, 프로젝트 관리의 편리성 등 -지침사항: 의제 제한성, 논쟁과 반박의 제한성, 제품 검토의 집중성, 참가 인원의 제한성 등

2) 워크스루 (Walkthrough) -각 단계가 끝나면 검토 회의 -오류 검출에 초점을 두고 해결책은 나중으로 미룬다. -발견된 오류는 문서화 -검토를 위한 자료를 사전에 배포하여 검토


3. 신뢰성(가용성) 측정
A-가동 B-고장 C-가동 D-고장 E-가동 F-고장
8294 41
기출) 어떤 시스템의 운용 기간이 다음과 같을 때 신뢰도를 계산하면 얼마인가 => (A+C+E)/(A+B+C+D+E+F) = (8+9+4)/(8+2+9+4+4+1) = 0.75
23
정보처리기사 필기 기사퍼스트(www.gisafirst.com)


[SE 2강]-프로젝트 관리
1. 품질 관리
1) 품질 보증 : 어떤 항목이나 제품이 설정된 기술적 요구사항과 일치하는가를 적절하게 확인하는데 필요한 체계적이고도 계획적인 유형의 활동

2) 품질 목표의 항목 -정확성 : 사용자요구기능 충족 정도 -신뢰성 : 옳고 일관된 결과를 얻기 위해 요구되는 기능 -이식성 : 다른 H/W 환경에서 운용 가능 -상호운용성 : 다른S/W와 정보를 교환할 수 있는 기능 -유지보수성 : 변경 시 수정에 대한 노력의 최소화 정도 -효율성 : 기능 수행 시 필요한 자원의 소요정도 -무결성 : 허용되지 않는 사용이나 자료의 변경을 제어 -사용용이성 : 사용하기 쉬운 정도 -유연성 : 쉽게 수정할 수있는 정도 -시험용이성 : 평가를쉽게해주는 정도 -재사용성 : 전체나 일부 소프트웨어가 다른 응용 목적으로 사용 가능 -S/W 종속성, 중복성, 복잡성, 최적화 (X)


22
정보처리기사 필기 기사퍼스트(www.gisafirst.com)


[SE 2강]-프로젝트 관리
1. 위험 관리
-프로젝트 추진 과정에서 예상되는 각종 돌발 상황을 미리 예상하고 이에 대한 적절한 대책을 수립하는 활동
1) 위험관리 절차 : 위험 식별-> 위험 분석 및 평가 (위험표작성) -> 위험 관리 계획 -> 위험 감시 및조치

2) 위험표에 포함될 사항: 위험 내용, 위험 종류, 위험 발생 확률, 위험에 따른영향력, 위험 감시 및 조치 -위험 발생 시간 (X)

3) 위험 요소 : 사용자 요구 사항 변경(가장 대표적), 인력부족, 예산부족

4) 위험 모니터링(monitoring) : 위험 요소 징후들에 대하여 계속적으로 인지하는 것


1. 형상 관리
1) 형상 정의 : 소프트웨어 개발 단계의 각 과정에서 만들어지는 프로그램, 문서, 데이터 등을 통칭

2) 형상 관리 : 소프트웨어의 생산물을 확인하고 소프트웨어 통제, 변경 상태를 기록하고 보관하는 일련의 작업 -유지보수 단계에서 행해진다

3) 형상 관리 항목 : 정의 단계의 문서, 개발 단계의 문서와 프로그램, 유지보수 단계의 변경 사항, 비용 (X)


24


[SE 2강]-프로젝트 관리

[SE 2강]-프로젝트 관리
1. 프로젝트 관리의 대상으로 거리가 먼 것은?

가. 비용관리 나. 일정관리 다. 고객관리 라. 품질관리

2. 효과적인 소프트웨어 프로젝트 관리를 위한 3P에 해당되지 않는 것은?

가. People(사람) : 인적 자원 나. Product(생산물) : 생산 일정 다. Problem(문제) : 문제 인식 라. Process(프로세스) : 작업 계획

3. 분산형 팀구성에 관한 설명 중 옳지 않은 것은?


가. 의사 결정을 민주주의 식으로 하며 팀 구성원의 작업 만족도를 높이고 이직률을 낮게 한다.
나. 팀 구성원 각자가 서로의 일을 검토하고 다른 구성원이 일한 결과에 대하여 같은 그룹의 일원으로 책임을 진다.
다. 팀 구성원 사이의 의사 교류를 활성화시키므로 복잡한 장기 프로젝트에 적합하지 않다. 라. 링 모양의 구조는 계층 없이 전체 팀 구성원이 동등한 레벨에 있다는 것을 나타낸다.
[정답]   1.다 2.나 3.다 4.라 5.라 6.가
정보처리기사 필기
4. 중앙집중형 팀 구성에서역할 분담에 관한설명 중 옳지 않은 것은?
가. 책임프로그래머: 분석및설계, 기술적 판단, 작업
지시와 배분을 담당 나. 보조 프로그래머 : 책임 프로그래머의 업무 지원 다. 프로그래머 : 원시 코드 작성, 검사, 디버깅, 문서
작성 담당 라. 프로그램 사서 : 컴파일, 디버깅, 목적 프로그램 작성
5. 프로젝트계획수립을 시작할 때 제일 먼저 해야 하는 작업은?

가. 개발 완료날짜파악 나. 과거의 데이터를 분석하는 일 다. 개발비용 산정 라. 프로젝트의 규모 파악

6. S/W 프로젝트를 신뢰성 있게 예측하는 방법 중 현실성이 부족한 것은?


가. 예측을 가능한 뒤로 미룬다.
나. 이미 수행된 유사 프로젝트를 참고 한다.
다. 프로젝트를 상대적으로 잘게 분리하여 예측한다.
라. 경험적 예측 모델을 활용한다.

25
기사퍼스트(www.gisafirst.com)

[SE 2강]-프로젝트 관리
12. COCOMO (COnstructive COst MOdel) 모형에 대한 설명으로 옳지 않은 것은?
가. 산정 결과는 프로젝트를 완성하는데 필요한 Man-Month로 나타난다.
나. Boehm이 고안한 개발비 산정 모델로 프로젝트의 예상되는 크기와 유형에 관한 정보가 주로 사용된다.
다. 프로젝트 특성을 15개로 나누고 각각에 대한 승수 값을 제시 하였다.
라. 각 모델 별로 개발되어지는 프로젝트 개발 유형에 따라 Object Mode, Dynamic Mode, Function Mode의 3가지 모드로 구분한다.
13. 소프트웨어 프로젝트 관리를 효과적으로 수행 하는데 필요한 3P와 거리가 먼 것은?
가. People 나. Power 다. Problem 라. Process
[정답]   12.라 13.나
7. 프로젝트의 개발비용 산정 시 결정에 영향을 주는 요소로서 거리가 먼 것은?

가. 비용산정기법 나. 시스템의크기 다. 시스템의 신뢰도 라. 제품의 복잡도

8. 소프트웨어 개발비용은 다른 여러 가지 요소들과 일정한 상관관계가 있다. 다음 그래프의 y축을 개발비용이라고 했을 때, x축은 어떤 요소라고 보는 것이 가장 타당한가?


가. 시스템크기 나. 개발기간 다. 신뢰도 라. 투입인력
[정답]   7.가 8.나 9.라 10.다 11.나
정보처리기사 필기

[SE 2강]-프로젝트 관리
9. 소프트웨어 추정 모형(Estimation Model)이 아닌 것은?
가. COCOMO           나. Putnam 다. Function-Point   라. PERT
10. COCOMO의 프로젝트 모드가 아닌 것은?

가. Organic Mode           나. Semi-detached Mode 다. Medium Mode           라. Embedded Mode

11. COCOMO 모델에 대한 설명으로 옳지 않은 것은?


가. Boehm이 제시한 비용 추정 모델이다.
나. 비용 추정 단계 및 적용 변수의 구체화 정도에 따라 기본(Basic), 중간(Intermediate), 진보(Advanced)형 모델로 구분할 수 있다.
다. 비용견적의 강도 분석및 비용견적의 유연성이높아 소프트웨어 개발비 견적에 널리 통용되고 있다. 라. 기본(Basic) 모형은 단순히 소프트웨어의 크기와 개발 모드에 의해서 구해진다.
기사퍼스트(www.gisafirst.com)
14. S/W Project 일정이 지연된다고 해서 Project 말기에 새로운 인원을 추가 투입하면 Project는 더욱 지연되게 된다고 주장하는 법칙은?

가. Putnam의 법칙 나. Mayer의 법칙 다. Brooks의 법칙 라. Boehm의 법칙

15. Gantt Chart에 포함되지 않는 사항은?

가. 이정표 나. 작업일정 다. 작업기간 라. 주요작업경로

16. 브룩스(Brooks) 법칙의 의미로 가장 적절한 것은?


가. 프로젝트 개발에는 많은 개발자가 필요하지 않다.
나. 새로운 개발 인력이 진행 중인 프로젝트에 투입될 경우 작업 적응 기간과 부작용으로 인해 빠른 시간 내에 프로젝트는 완료될수없다.
다. 프로젝트에는 많은 비용이 투입되어야 한다. 라. 프로젝트에 개발자가 많이 참여 할수록 프로젝트의 준공 기간은 지연된다.
[정답]   14.다 15.라 16.나 17.다 18.가 19.라
17. 일정 계획과 관계가 먼 것은?

가. 작업 분해 나. CPM 네트워크 다. 프로그램 명세서 라. 간트 차트(Gannt Chart)

18. 프로젝트 관리 중 일정 계획에 필요한 작업들을 기술한 것이다. 순서대로 나열 된 것은?


① 각 작업의 상호 의존 관계를 CPM 네트워크로 나타 낸다.

② 일정 계획을 간트 차트로 나타낸다.

③ 프로젝트의 규모를 추정한다.

④ 각 단계에 필요한 작업들을 분리한다.


가. ③-④-①-② 나. ④-③-①-② 다. ③-④-②-① 라. ④-①-③-②
19. CPM(Critical Path Method) 네트워크에 대한 설명으로 옳지 않은 것은?
가. 노드에서 작업을 표시하고 간선은 작업 사이의 전후 의존 관계를 나타낸다. 나. 프로젝트 완성에 필요한 작업을 나열하고 작업에 필요한 소요 기간을 예측하는 데 사용한다. 다. 박스 노드는 프로젝트의 중간 점검을 뜻하는 이정표로 이 노드 위에는 예상 완료 시간을 표시한다. 라. 한 이정표에서 다른 이정표에 도달하기 전의 작업은 모두 완료되지 않아도 다른 작업을 진행할 수 있다. 28
27

[SE 2강]-프로젝트 관리

[SE 2강]-프로젝트 관리
20. 소프트웨어 품질 관리 기술에서 품질 목표의 항목과 거리가 먼 것은?

가. 정확성 나. 유지보수성 다. 무결성 라. S/W 종속성

21. 소프트웨어 품질 목표에 대한 설명으로 옳지 않은 것은?


가. 신뢰성(Reliability) : 정확하고 일관된 결과를 얻기 위해 요구된 기능을 수행하는 정도
나. 이식성(Portability) : 다양한 하드웨어 환경에서도 운용 가능하도록 쉽게수정될수 있는정도
다. 상호 운용성(Interoperability) : 다른 소프트웨어와 정보를 교환할 수 있는 정도
라. 사용 용이성(Usability) : 전체나 일부 소프트웨어가 다른 응용 목적으로 사용 될 수 있는 정도
[정답]   20.라 21.라 22.라 23.가 24.가
정보처리기사 필기
22. 워크스루(Walkthrough)의 특징으로 거리가 먼 것은?
가. 발견된 오류는 문서화 한다.
나. 오류 검출에 초점을 두고 해결책은 나중으로 미룬다.
다. 검토를 위한 자료를 사전에 배포하여 검토하도록 한다.
라. 정해진 기간과 비용으로 프로젝트를 완성시키기 위한

대책을 수립한다.
23. 소프트웨어 품질 보증 활동 중 정형 검토 (Formal Review)의 목적이라고 할 수 없는 것은?

가. 적정인력의 투입 확인 나. 기능과 로직의 오류 발견 다. 사용자 요구사항의 확인 라. 프로젝트 관리의 편리성

24. 소프트웨어의 신뢰성과 가용성에 대한 설명 중 잘못된 것은?


가. 소프트웨어의 신뢰성은 과거와 개발상의 자료를 이용하여 측정과 예측이 불가능하다. 나. 소프트웨어의 간단한 신뢰성 측정은 MTBF로 가능 하다. 다. 소프트웨어의 가용성은 프로그램이 요구사항에 따라 운영되는 확률이다. 라. 가용성은 {MTTF/(MTTF+MTTR)}× 100%로 정의 된다.
29
기사퍼스트(www.gisafirst.com)


[SE 2강]-프로젝트 관리
[SE 2강]-프로젝트 관리
26. 신뢰도를 평가하는 MTBF(Mean Time Between Failure)는 가동된 평균 시간을 나타내며, MTTR (Mean Time To Repair)은 평균 수리 시간을 의미한다. 이 두 가지 척도를 사용하여 신뢰도를 구하는 식을 바르게 나타낸 것은?
가. MTTR / (MTBF + MTTR) 나. MTTR / MTBF 다. MTBF / (MTBF + MTTR) 라. MTBF / MTTR
[정답]   25.가 26.다 27.가 28.가 29.다
정보처리기사 필기
30. 소프트웨어 형상 관리(Configuration Managment) 란?

가. 소프트웨어 구성 항목을 관리하는 것 나. 개발 과정의 변화되는 사항을 관리하는 것 다. 테스트 과정에서 소프트웨어를 통합하는 것 라. 개발 인력을 관리하는 것

31. 소프트웨어에 대한 변경을 관리하기 위해 개발된 일련의 활동을 나타내며 이런 변경에 의해 전체 비용이 최소화되고 최소한의 방해가 소프트웨어의 현 사용자에게 야기되도록 보증하는 것을 목적으로 하는 것은?


가. 위험관리 나. 형상관리 다. 프로젝트 관리 라. 유지보수 관리

32. 형상 관리(Configuration Management)의 관리 항목으로 거리가 먼 것은?
가. 정의 단계의 문서 나. 개발 단계의 문서와 프로그램 다. 유지보수 단계의 변경 사항 라. 소프트웨어 개발비용
[정답]   30.나 31.나 32.라 33.라 34.나
33. 소프트웨어 형상 관리(Software Configuration Management)의 설명으로 가장 적합한 것은?
가. 소프트웨어 개발 과정을 문서화하는 것이다.
나. 하나의 작업 산출물을 정해진 시간 내에 작성하도록 하는 관리이다.
다. 수행 결과의 완전성을 점검하고 프로젝트의 성과 평가척도를 준비하는 작업이다.
라. 소프트웨어의 생산물을 확인하고 소프트웨어 통제, 변경 상태를 기록하고 보관하는 일련의 관리 작업이다.
34. 소프트웨어 형상 관리(Configuration management)의 의미로 가장 적절한 것은?
가. 비용에 관한 사항을 효율적으로 관리하는 것 나. 개발 과정의 변경 사항을 관리하는 것 다. 테스트 과정에서 소프트웨어를 통합하는 것 라. 개발 인력을 관리하는 것 25. 어떤 시스템의 운용 기간이 다음과 같을 때 신뢰도를 계산하면 얼마인가?
가동  고장 
중  중 
(8)  (2) 

가. 0.75    나. 0.25
가동  고장  가동  고장 
중  중  중  중 
(9)  (4)  (4)  (1) 
다. 9.3    라. 7 

[기-08년5월]
35. 프로젝트 일정을 관리하는 PERT 차트로 알 수 있는 사항이 아닌 것은?
가. 결정경로
나. 태스크의 시작/종료 시간 다. 태스크에 대한 경계시간 라. 태스크간의 상호관련성
[기-08년9월]
36. 어떤 소프트웨어 개발을 위해 10명의 개발자가 20개월동안 참여되었다. 그 중 7명은 20개월 동안 계속 참여했고 3명은 5개월 동안만 참여했다. 이 소프트웨어 개발에 필요한 MM(Man-Month)은 얼마인가?
가. 5 나. 20 다. 79 라. 155
[정답]   35.나 36.라 37.라
31
27. 프로젝트 추진 과정에서 예상되는 각종 돌발 상황을 미리 예상하고 이에 대한 적절한 대책을 수립하는 일련의 활동을 무엇이라고 하는가?

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

가. 위험관리 나. 일정관리 다. 코드관리 라. 모형관리

28. 위험 관리의 일반적인 절차로 적합한 것은?


가. 위험 식별→위험 분석 및 평가→위험 관리 계획
→위험 감시 및조치 나. 위험 분석 및 평가→위험 식별→위험 관리 계획

→위험 감시 및조치 다. 위험 관리 계획→위험 감시 및 조치→위험 식별

→위험 분석 및평가 라. 위험 감시 및 조치→위험 식별→위험 분석 및 평가


→위험 관리 계획
29. 소프트웨어 품질 보증을 위한 정형 기술 검토의 지침 사항으로 옳지 않은 것은?
가. 논쟁과 반박을 제한한다.
나. 각 체크 리스트를 작성하고, 자원과 시간 일정을

할당한다. 다. 의제와 참가자의 수를 제한하지 않는다. 라. 검토의 과정과 결과를 재검토 한다.
기사퍼스트(www.gisafirst.com)
[기-08년3월]
37. 소프트웨어 프로젝트를 계획하려면 먼저 소프트 웨어 범위를 결정해야 한다. 다음 사항과 관계가 되는 범위 결정 요소는 무엇인가?
-소프트웨어에 의해 간접적으로 제어되는 장치와 소프트웨어를 실행하는 하드웨어 -순서에 의거 절차적 운영상 소프트웨어 실행 절차 -기존의 소프트웨어나 새로운 소프트웨어를 연결하는 소프트웨어 -키보드나 기타 I/O 장치들을 통하여 소프트웨어를 사용하는 사람
가. 기능 나. 성능 다. 제약조건 라. 인터페이스


[SE 3강]-구조적 개발 방법론 [출제빈도 ‘상'] [SE 3강]-구조적 개발 방법론
1. 소프트웨어 개발 방법론 2. 자료흐름도 (DFD : Data Flow Diagram)
: 과거 경험을 토대로 성공적으로 평가되는 소프트웨어를 분석 및 설계방법들을 모아 하나의 개발 방법으로 정형화한것 학생정보 -구조적 개발 방법론, 객체 지향 개발 방법론
성적 리스트 성적표


1. 구조적 개발 방법론 입력장치 석차 출력장치
처리 : 개발 순서 : 요구사항분석 -> 설계 -> 구현 -> 검사 -> 디버깅 -> 유지보수
1. 요구사항 분석 1) 기호와의미 자료이름 자료의 흐름
1) 요구사항분석기법: 사용자면접, 현재사용중인문서검토, 설문조사를통한의견수렴 ① 단말 자료의출처, 도착지 ②

2) 분석가가 갖추어야 할 가장 중요한 능력 -거시적 관점에서 세부적인 요소를 관찰할 수 있는 능력 (가장 중요) ③ 처리 프로세스, 기능, 변환, 버블 ④ 자료 저장소

3) 구조적 분석 기법(도구) -자료의 흐름과 처리를 중심으로 하는 요구사항 분석 방법 -종류 : 자료 흐름도, 자료 사전, 소단위 명세서, 개체 관계도, 상태 전이도


33 34
정보처리기사 필기 기사퍼스트(www.gisafirst.com) 정보처리기사 필기 기사퍼스트(www.gisafirst.com)


[SE 3강]-구조적 개발 방법론 [SE 3강]-구조적 개발 방법론
2) 특징 4. HIPO (Hierarchy Input Process Output) -시스템내의 모든 자료 흐름은 4가지의 기본 기호로 표시된다. -각 각의 변환(처리)에 대하여 개별적인 상세화가 가능하다 1) 특징 -자료는 처리를 거쳐 변환될 때마다 새로운 명칭을 부여해야 한다 -분석, 설계, 문서화에 사용되는 도구이며, 기본 시스템 모델은 입력, 처리, 출력으로 구성됨 -자료흐름도의 최하위 처리(process)는 소단위명세서를 갖는다. -하향식 소프트웨어 개발을 위한 문서화 도구로서 이해하기 쉬움 -어떤 처리(process)가 출력자료를 산출하기 위해서는 필요한 자료가 반드시 입력되어야 한다. -변경, 유지보수 용이 -상위단계의 처리(Process)와 하위 자료흐름도의 자료 흐름은 서로 일치돼야 한다.   -Bubble Chart 라고도 부른다 2) HIPO 종류 프로젝트
3. 자료사전 (DD : Data Dictionary) ① 가시적 도표 (Visual Table of Contents) = 구조도 -시스템 전체적인 기능과 흐름을 보여주는 계층 구조도 A B C D
1) 특징 가시적도표
-DFD에 있는 자료를 더 자세히 정의하고 기록한 것 ② 총체적 다이어그램 (Overview Diagram) = 개요 도표 집합 -데이터를 설명하는 데이터 (메타 데이터) -입력, 처리, 출력에 대한 전반적인 정보를 제공하는 도표
기출) 고객명세는 고객성명, 고객번호, 고객주소로 구성되어 있으며, 고객성명과 고객번호는둘중하나만 ③ 세부적 다이어그램 (Detail Diagram) = 상세 도표 집합 선택이 가능함 => 고객명세 =[고객성명 | 고객번호]+ 고객주소 -총체적 다이어그램를 상세 기술하는 도표 입력 처리 출력
2) 기호와 의미 기호  의미  기호  의미  기호  의미  총체적 다이어그램 
=  정의  +  연결  [  |  ]  선택 
{    }  반복  *  *  주석, 설명  (  )  생략  35  36 

정보처리기사 필기  기사퍼스트(www.gisafirst.com
[SE 3강]-구조적 개발 방법론 
1. 구조적 설계 

1) 소프트웨어 설계 모형


(d) 절차 설계 : 모듈이 수행할 기능을 절차적 기술로 바꾸는 것

(c) 인터페이스 설계 : 시스템과 사용자가 어떻게 통신하는가

(b) 아키텍처(구조) 설계 : 모듈간의 관계와 프로그램 구조 정의

(a) 데이터 설계 : 요구사항분석단계에서 생성된 정보를 소프트웨어 구현하는데 필요한 자료구조로 변환하는 것


2) 분석 -> 설계 -> 구현 개념 이해하기 (ex. 계산기)

①분석자료(DFD) 더하기

② 데이터 설계 -입력 A, 입력 B, 결과, ….

37
정보처리기사 필기 기사퍼스트(www.gisafirst.com)


[SE 3강]-구조적 개발 방법론
3) 설계의 기본 원리


① 모듈화
-소프트웨어를 모듈 단위로 나누는 것 (작업 단위, 소프트웨어 내의 프로그램, 부 시스템, 서브루틴)


② 추상화 : 전체적이고 포괄적인 개념을 설계한 후 세분화 구체화 시켜나가는 방법
-추상화의 종류 : 기능 추상화, 제어 추상화, 자료 추상화


③ 정보 은닉 : 모듈 내부에 포함된 절차와 자료들의 정보를 숨겨서 다른 모듈이 접근하거나 변경하지 못하도록
하는 기법


④ 구조화
-공유도( Fan-In) : 어떤 모듈을 제어(호출)하는 상위 모듈의 개수
-제어도( Fan-out) : 어떤 모듈에 의해 제어(호출)되는 하위 모듈의 개수


기출) 다음은 프로그램 구조를 나타낸다.
모듈 F에서의 Fan-In과 Fan-Out의 수는 얼마인가?
(정답) Fan-In : 3, Fan-Out : 2

39
정보처리기사 필기 기사퍼스트(www.gisafirst.com)

[SE 3강]-구조적 개발 방법론
③구조설계
계산기
더하기 빼기 곱하기 나누기
④ 인터페이스 설계 입력 A : 더하기
입력B : 빼기
곱하기
결과: 나누기
⑤ 절차(프로시져) 설계 a = Text1 a = Text1 a = Text1 a = Text1

b = Text2 b = Text2 b = Text2 b = Text2 Text3 = a + b Text3 = a -b Text3 = a * b Text3 = a / b

⑥구현


38
정보처리기사 필기 기사퍼스트(www.gisafirst.com)


[SE 3강]-구조적 개발 방법론
4) 좋은 설계 기준 -설계는 모듈적이어야 함 -설계는 자료와 프로시저에 대한 분명하고 분리된 표현을 포함 -소프트웨어는 논리적으로 특별한 기능과 부기능을 수행하는 요소들로 나누어져야 한다. -소프트웨어 요소들 간의 효과적인 제어를 위해 설계에서 계층적 조직이 제시되어야 함

5) 자료흐름중심설계

① 정보 흐름의 유형 설정 (데이터 설계)

② 흐름의 경계를 표시

③ 자료흐름도를 프로그램 구조로 사상 (구조 설계)

④ 제어 계층을 분해시켜서 정의 (절차 설계)

⑤ 경험적 방법으로 구체화


2. N-S 차트 (Nassi-Schneiderman Chart)
-절차설계기법 -논리의 기술에 중점을 둔 도형을 이용한 표현 방법으로 박스 다이어그램이라고 함 -순차(Sequence), 선택 및다중선택 (If ~ then ~ else, Case), 반복(Repeat ~ until, While, for) 등의 제어 논리 구조를표현
40


[SE 3강]-구조적 개발 방법론 [SE 3강]-구조적 개발 방법론
3. 모듈화  3) 응집도 (Cohesion) : 모듈 안의 요소들이 서로 관련되어 있는 정도 
-모듈이 독립적인 기능으로 잘 정의되어 있는 정도 
1) 모듈화 목적  -독립적인 모듈이 되기 위해서는 응집도가 강해야 함 
-소프트웨어 복잡도가 감소하고, 변경이 쉬우며 프로그램 구현이 용이  -종류 : 우연적 < 논리적 < 시간적 < 절차적 < 교환적 < 순차적 < 기능적 
-개념 이해하기 : OSI 7계층 설명에서 자동화 부품화에 대한 개념 
(각 단계는 독립적이며 상호 의존도는 낮아야 한다.)  ① 우연적 응집도(Coincide ntal) : 서로 관련 없는 요소로만 구성 
② 논리적 응집도(L ogical) : 유사한 성격 또는 처리 요소들로 구성 
2) 결합도 (Coupling) :모듈간에상호의존도  ③ 시간적 응집도(Temporal) : 특정 시간에 처리되는 몇 개의 기능을 모아 구성 
-독립적인 모듈이 되기 위해서는 결합도가 약해야 함  ④ 절차적 응집도(Procedural) : 구성 요소들이 그 기능을 순차적으로 수행할 경우 
-종류 : 데이터 < 스탬프 < 제어 < 외부 < 공통 < 내용  ⑤ 교환적 응집도(Communication) : 동일한 입력과 출력을 사용하여 서로 다른 기능을 수행하는 구성 요소들이 
모였을 경우 
① 데이터 결합도(Data) : 데이터 요소(파라미터,인수,매걔변수)로만 구성된 경우  ⑥ 순환적,순차적 응집도(Sequential) : 출력 데이터를 그 다음 활동의 입력 데이터로 사용할 경우 
② 스탬프 결합도(Stamp) : 배열이나 레코드 등의 자료구조가 전달될 경우  ⑦ 기능적 응집도(F u nctional) : 단일 문제와 연관되어 수행될 경우 
③ 제어 결합도(Control) : 제어 요소가 전달된 경우 
④ 외부 결합도(External) : 외부로 선언한 데이터(변수)를 참조할 경우  1. 구현 
⑤ 공통 결합도(Common) : 공통 데이터 영역을 사용할 경우 
⑥ 내용 결합도(Content) : 내부 기능 및 내부 자료를 참조할 경우  1) 정의 : 설계단계에서 생성된 내용을 컴퓨터가 알 수 있는 형태로 변환하는 과정 (코딩) 
2) 프로그램 언어 선택 기준 
-대상 업무 성격, 개발 담당자의 경험과 지식, 과거의 개발 실적 등, 4 세대언어여부( X) 
3) 구조적 프로그래밍 : 컴퓨터 프로그램을 여러 갈래로 분기하여 복잡하게 하지 않고, 순서대로, 선택적으로 반복 
41  42문장을 사용하는 제어구조만을 사용한 프로그램 (Dijkstra 제안) 

정보처리기사 필기 기사퍼스트(www.gisafirst.com)


[SE 3강]-구조적 개발 방법론
1. 검사 (Test)
1) 소프트웨어 품질 보증 활동의 하나로써 오류를 발견하기 위하여 프로그램 수행하는 과정

2) 검사 기법

① 화이트 박스 테스트 : 구조 테스트
-모듈 안의 작동을 자세히 관찰할 수 있으며, 프로그램 원시 코드의 논리적인 구조를 커버하도록
테스트 케이스를 설계하는 프로그램 테스트 방법
-프로그램의 제어 구조에 따라 선택, 반복 등의 부분들을 수행함으로써 논리적 경로를 제어
-모듈 안의 작동을 직접 관찰
-원시 코드의 모든 문장을한번이상수행함
-종류 : 기초 경로 검사(Basic Path Testing, McCabe 제안), 조건 검사(Condition Testing),
루프 검사(Loop Testing), 데이터 흐름 검사(Data Flow Testing)


②블랙박스 테스트 : 기능테스트
-소프트웨어가 수행할 특정 기능을 알기 위해서 각 기능이 완전히 작동되는 것을 입증하기 위한 검사
-발견할 수 있는 오류 : 성능, 부정확한 기능, 인터페이스 오류, 논리 구조상의 오류 (X)
-종류 : 동치분할검사(Equivalence Partitioning), 경계값 분석(Boundary Value Analysis),
원인-효과 그래프 검사(Cause-Effect Graphing Testing), 오류예측검사(Fault Based Testing),
비교검사(Comparison Testing)


43
정보처리기사 필기 기사퍼스트(www.gisafirst.com)


[SE 3강]-구조적 개발 방법론
* McCabe 의 소프트웨어 복잡도 측정
기출)McCabe 방법에의한다음그래프의 V(G)의크기는? 1 4 -정답: 3
2 56
37
2. 검사 전략
1) 검사 순서 : 단위(코드) -> 통합(설계) -> 검증(요구사항) -> 시스템

2) 단위검사 : 모듈에대한 검사 (화이트박스 테스트 기법 사용)

3) 통합 검사 : 모듈들을 결합하여 검사

① 하향식 : 상위 모듈에서 하위 모듈 방향으로 통합하면서 검사하는 기법 -Stub 필요 : 모듈 간에 통합 시험을 하기 위해 일시적으로 제공되는 시험용 모듈

② 상향식 : 하위 모듈에서 상위 모듈 방향으로 통합하면서 검사하는 기법 -절차 : 하위 모듈을 클러스터로 결합 -> 드라이버라는 제어 프로그램 작성 -> 클러스터 검사 -> 드라이버 제거하고 클러스터를 상위로 결합



[SE 3강]-구조적 개발 방법론
4) 검증 검사 : 요구사항을 충족하는지 검사 (블랙 박스 테스트 기법 사용)

①형상검사

② 알파 검사 : 개발자의 장소에서 사용자가 시험하고 개발자는 뒤에서 결과를 지켜보는 검사

③ 베타 검사 : 실업무를 가지고 사용자가 직접 시험하는 검사

5) 시스템 검사 : 해당 컴퓨터 시스템에서 수행 되는지를 검사


3. 디버깅
: 오류 수정 과정 (검사기법 X) -성공적인 테스팅의 결과로 발생 -징후로부터 원인을 찾아 수정하는 과정 -심리적인 요소가 많이 관여하기 때문에 힘듦 -접근법 : 맹목적 강요, 역추적, 원인 제거
45
정보처리기사 필기  기사퍼스트(www.gisafirst.com)


[SE 3강]-구조적 개발 방법론
1. 구조적 분석 도구와 거리가 먼 것은? 3. 분석가(Analyst)가 갖추어야 할 능력 중 가장 중요한
것은? 가. 자료사전 나. 자료 흐름도 가. 추상적인 개념을 파악하여 논리적인 구성요소로 다. 프로그램 명세서 분해할수있는 능력 라. 소단위 명세서 나. 서로 상반되고 모호한 정보로부터 필요한 사항을
수렴할수있는 능력 다. 관련된 하드웨어와 소프트웨어에 관한 최신 기술
2. 시스템 개발을 위한 첫 단계는 사용자의 요구나 라. 거시적 관점에서 세부적인 요소를 관찰할 수 있는
시스템에대한분석이라고할수있다. 이중사용자의 능력 요구 분석을 위해 주로 사용하는 기법이 아닌 것은?
가. 사용자 면접 나. 현재 사용중인각종문서검토 다. 설문조사를통한 의견 수렴 라. 통제및 보안 분석
[정답]   1.다 2.라 3.라
47
정보처리기사 필기  기사퍼스트(www.gisafirst.com)

[SE 3강]-구조적 개발 방법론
1. 유지 보수
: 가장 많은 비용이 투입되는 단계로써 인수, 설치된 후 발생하는 모든 공학적 작업
1) 유지보수 활동
-수정보수(Corrective) : 오류 수정
-적응 보수 (Adaptive) : 환경 변화(하드웨어, 운영체제 등) 반영
-완전화 보수, 기능 보수 ( Perfective ) : 기능 개선, 가장 큰 비중 차지(Win98 -> Win 2000 -> Win XP)
-예방보수(Preventive)


2) 유지보수 비용계산식 (M = P +Ke(c-d) )
-P : 생산적인활동에 드는 비용, K : 통계값에서 구한상수, c : 복잡도, d : 지식의정도


3) 외계인 코드
-아주 오래되어(15년 이상) 유지보수 작업이 어려운 프로그램 (방지법 : 문서화)


4) 유지보수 부작용
-코딩 부작용 : 코딩내용변경에 따른 문제
-자료 부작용 : 자료구조변경에 따른 문제
-문서화 부작용 : 변경에 대한 내용이 문서에 적용되지 않을 경우


46
정보처리기사 필기  기사퍼스트(www.gisafirst.com)


[SE 3강]-구조적 개발 방법론
4. 자료 흐름도의 구성 요소가 아닌 것은? 6. 자료 흐름도(DFD, Data Flow Diagram)의 구성
요소 중 자료 출처와 도착지를 나타내는 기호는? 가. 소단위 명세서 나. 단말 다. 프로세스 라. 자료 저장소
가. 나.
5. 자료 흐름도(DFD)를 작성하는데 지침이 될 수 없는 항목은? 다. 라.
가. 자료흐름은 처리(Process)를 거쳐 변환 될 때마다 새로운 이름을 부여한다. 나. 어떤 처리(Process)가 출력자료를 산출하기
위해서는 반드시 입력 자료가 발생해야 한다.  7. 자료 사전(Data Dictionary)에 사용되는 기호의
의미를 올바르게 나타낸 것으로 짝지어진 것은?

다. 자료저장소에 입력 화살표가 있으면 반드시 출력 화살표도 표시되어야 한다. 라. 처리(Process)와 하위 자료흐름도의 자료 흐름은 가. { } : 자료의 생략 가능, ( ) : 자료의 선택
서로일치되어야한다.  나. ( ) : 자료의설명, * * : 자료의선택
다. = : 자료의 설명, * * : 자료의 정의
라. + : 자료의 연결, ( ) : 자료의 생략 가능

[정답]   4.가 5.다 6.라 7.라
48

[SE 3강]-구조적 개발 방법론
정보처리기사 필기 기사퍼스트(www.gisafirst.com)

[SE 3강]-구조적 개발 방법론
8. HIPO(Hierarchy Input Process Output)에 대한 설명으로 옳지 않은 것은?
가. HIPO 다이어그램에는 가시적 도표(Visual Table of Contents), 총체적 다이어그램(Overview Diagram), 세부적 다이어그램(Detail Diagram)의 세 종류가 있다.
나. 가시적 도표(Visual Table of Contents)는 시스템 에 있는 어떤 특별한 기능을 담당하는 부분의 입력, 처리, 출력에 대한 전반적인 정보를 제공 한다.
다. HIPO다이어그램은 분석 및 설계 도구로서 사용 된다.
라. HIPO는 시스템의 설계나 시스템 문서화용으로 사용되고 있는 기법이며, 기본 시스템 모델은 입력, 처리,출력으로 구성된다.
9. 프로그램을 구성하는 기능을 기술한 것으로 입력, 처리, 출력을 기술하는 HIPO패키지에 해당하는 것은?
가. Overview Diagram 나. Detail Diagram 다. Visual Table of contents 라. Index Diagram
[정답]   8.나 9.가 10.다 11.나
정보처리기사 필기
10. 데이터 흐름도(DFD)의 구성요소에 포함되지 않는 것은?

가. 처리 공정(process) 나. 자료 흐름(data flow) 다. 자료 사전(data dictionary) 라. 자료 저장소(data store)

11. 자료 사전(Data Dictionary)에서 반복을 의미하는 기호는?


가. = 나. {} 다. + 라. ()
49
기사퍼스트(www.gisafirst.com)

[SE 3강]-구조적 개발 방법론
[SE 3강]-구조적 개발 방법론
15. 결합도(Coupling)가 강한 순서대로 옳게 나열된 것은?
가. 내용 결합도 > 공통결합도 > 제어 결합도 > 스탬프 결합도 > 데이터 결합도
나. 공통 결합도 > 내용결합도 > 제어 결합도 > 데이터 결합도 > 스탬프 결합도
다. 데이터결합도 > 내용 결합도 > 제어 결합도 > 공통 결합도 > 스탬프 결합도
라. 공통 결합도 > 내용결합도 > 제어 결합도 > 스탬프 결합도 > 데이터 결합도
16. 시스템을 설계할 때 필요한 설계 지침으로 두 모듈 간의 의존도를 나타내는 것은?
가. 결합도 나. 응집도 다. 신뢰도 라. 종합도
[정답]   15.가 16.가 17.다 18.다
17. 데이터 설계에 있어서 응집도(Cohesion)의 의미로 가장 적절한 것은?
가. 데이터 구조들이 시스템 전반에 얼마나 연관 관계를 가지고 있는가 하는 정도
나. 모듈이 개발 단계 별로 얼마나 잘 정의되어 있는가 하는 정도
다. 모듈이 독립적인 기능으로 잘 정의되어 있는 정도
라. 모듈들 간의 상호 연관성의 정도
18. 응집도가 강한 것부터 약한 순서로 옳게 나열된 것은?
가. Sequential→Functional→Procedural→Coincidental
→Logical 나. Procedural→Coincidental→Functional→Sequential

→Logical 다. Functional→Sequential→Procedural→Logical

→Coincidental 라. Logical→Coincidental→Functional→Sequential


→Procedural
51
12. 다음은 소프트웨어 설계 모형의 구조도이다.
(a), (b), (c), (d)에 들어갈 항목을 순서대로 나열한 것은?
가. 데이터 설계-아키텍처 설계-절차 설계 -인터페이스 설계
나. 아키텍처 설계-데이터 설계-절차 설계 -인터페이스 설계
다. 아키텍처 설계-데이터 설계-인터페이스 설계 -절차 설계
라. 데이터 설계-아키텍처 설계-인터페이스 설계 -절차 설계
[정답]   12.라 13.라 14.나
정보처리기사 필기
13. 설계 품질을 평가하기 위해서는 반드시 좋은 설계에 대한 기준을 세워야 한다. 다음 중 좋은 기준이라고 할 수 없는 것은?

가. 설계는 모듈적 이어야 한다. 나. 설계는 자료와 프로시저에 대한 분명하고 분리된 표현을 포함해야 한다. 다. 소프트웨어 요소들 간의 효과적인 제어를 위해 설계 에서 계층적 조직이 제시 되어야 한다. 라. 설계는 서브루틴이나 프로시저가 전체적이고 통합적이 될 수 있도록 유도되어야 한다.

14. 다음은 프로그램 구조를 나타낸다. 모듈 F에서의 Fan-In과 Fan-Out의 수는 얼마인가?


가. Fan-In : 2,  Fan-Out : 3 나. Fan-In : 3,  Fan-Out : 2 다. Fan-In : 1,  Fan-Out : 2 라. Fan-In : 2,  Fan-Out : 1
기사퍼스트(www.gisafirst.com)
19. 효과적인 모듈화 설계 방안이 아닌 것은 어느 것인가?

가. 응집도를 높인다.
나. 결합도를 낮춘다.
다. 복잡도와 중복을 피한다.
라. 모듈의 기능은 예측 불가능하도록 정의한다


20. 자료 흐름 중심 설계 절차를 올바른 순서로 나열한 것은?

1. 자료 흐름도를 프로그램 구조로 사상한다.

2. 흐름의 경계를 표시한다.

3. 정보 흐름의 유형을 설정한다.

4. 제어 계층을 분해(Factoring)시켜서 정의한다.

5. 경험적 방법으로 구체화시킨다.


가. 1-2-3-4-5        나. 3-2-1-4-5 다. 4-5-3-2-1        라. 4-5-1-2-3
[정답]   19.라 20.나 21.다 22.다
21. N-S(Nassi-Schneiderman) Chart에 대한 설명으로 거리가 먼 것은?

가. 논리의 기술에 중점을 둔 도형식 표현 방법이다. 나. 연속, 선택 및다중 선택, 반복 등의 제어 논리 구조로 표현한다. 다. 주로 화살표를 사용하여 논리적인 제어 구조로 흐름을 표현한다. 라. 조건이 복합되어 있는 곳의 처리를 시각적으로 명확히 식별하는데 적합하다.

22. 나씨-슈나이더만(Nassi-Schneiderman)도표는 구조적 프로그램을 표현하기 위해 고안되었다. 이 방법 에서 알고리즘의 제어구조는 3가지로 충분히 표현될 수 있는데 이에 속하지 않는 것은 어느 것인가?


가. 선택, 다중 선택(If~then~else, Case) 나. 반복(Repeat~until, While, for) 다. 분기(Goto, Return) 라. 순차(Sequence)

[SE 3강]-구조적 개발 방법론
23. 소프트웨어 개발 방법론에서 구현(Implementation) 26. 화이트 박스 시험(White Box Text)의 설명으로 옳지 에 대한 설명으로 가장 적절한 것은? 않은 것은 어느 것인가?

가. 요구사항 분석 과정 중 모아진 요구사항을 가. 프로그램의 제어 구조에 따라 선택, 반복 등의 부분 옮기는 것 들을 수행함으로써 논리적 경로를 제어한다. 나. 시스템이 무슨 기능을 수행하는지에 대한 나. 모듈 안의 작동을 직접 관찰할 수 있다. 시스템의 목표 기술 다. 소프트웨어 산물의 각 기능별로 적절한 정보 영역을 다. 프로그래밍 또는 코딩이라고 불리며 설계 명세서가 정하여 적합한 입력에 대한 출력의 정확성을 점검한다. 컴퓨터가 알 수 있는 모습으로 변환되는 과정 라. 원시 코드의 모든 문장을 한 번 이상 수행함으로써 라. 시스템이나 소프트웨어 요구사항을 정의하는 과정 수행된다.

24. 구조적 프로그래밍에서 사용하는 기본적인 제어  27. 제품이 수행할 특정 기능을 알기 위해서 각 기능이


구조에 해당하지 않는 것은?  완전히 작동되는 것을 입증하는 검사로서, 기능 검사라고도 하는 것은?
가. 순차(Sequence) 나. 반복(Iteration)
다. 호출(Call)             라. 선택(Selection) 가. 블랙 박스 검사 나. 그린 박스 검사

다. 블루박스검사 라. 화이트박스검사
25. 블랙 박스 검사에 해당하지 않는 것은?
28. 소프트웨어의 시험 중 화이트 박스 시험의 과정이
가. 데이터 흐름 검사(Data Flow Testing) 아닌 것은?
나. 동치 분할 검사(Equivalence Partitioning Testing)
다. 원인 효과 그래픽 기법(Cause-effect 가. 조건 테스트 나. 모든 실행문 테스트

Graphing-testing)  다. 경계 값 분석 라. 분기점 테스트
라. 비교 검사(Comparison Testing)
[정답]   23.다 24.다 25.가 26.다 27.가 28.다
53
정보처리기사 필기  기사퍼스트(www.gisafirst.com)


[SE 3강]-구조적 개발 방법론
34. 소프트웨어 유지보수에 관련된 설명으로 옳지 36. 유지보수(Maintenance) 작업의 분류상 가장 큰 않은 것은? 비중(업무량 및 비용)을 차지하는 부분은?
가. 유지보수는 소프트웨어가 인수, 설치된 후 발생 가. 교정 정비(Corrective Maintenance) 하는 모든 공학적 작업을 말한다. 나. 조정 정비(Adaptive Maintenance)
나. 유지보수는 원인에 따라 수리(Corrective) 보수, 다. 예방 정비(Preventive Maintenance) 적응(Adaptive)보수, 완전화(Perfective) 보수, 라. 완전 정비(Perfective Maintenance) 예방(Preventive)보수 등이 있다.
다. 소프트웨어에 가해지는 변경을 제어 관리하는 37. 외계인 코드(Alien Code)에 대한 설명으로 옳은 것은? 것을 형상 관리(Configuration Management)라고 한다. 가. 프로그램의 로직이 복잡하여 이해하기 어려운 라. 소프트웨어 비용 중 유지보수 비용은 개발비용보다 프로그램을 의미한다. 적다. 나. 아주 오래되어(15년 정도 이상) 유지보수 작업이 어려운 프로그램을 의미한다. 다. 오류(Error)가 없이 완벽하게 수정된 프로그램을

35. 소프트웨어 유지보수의 유형에 해당하지 않는 것은? 의미한다.
라. 4세대 언어로 사용자가 직접 작성한 프로그램을

가. 수정 보수(Corrective Maintenance) 의미한다.
나. 기능 보수(Functional Maintenance)
다. 완전화 보수(Perfective Maintenance)
라. 예방 보수(Preventive Maintenance) 38. 소프트웨어 유지보수의 부작용 중 자료코드에 대한

변경이 설계문서나 사용자가 사용하는 매뉴얼에 적용되지 않을 때에 발생하는 부작용은 무엇인가?
가. 코딩부작용 나. 자료부작용 다. 문서화 부작용 라. 유지보수 부작용
[정답]   34.라 35.나 36.라 37.나 38.다
55
정보처리기사 필기  기사퍼스트(www.gisafirst.com)


[SE 3강]-구조적 개발 방법론
29. 소프트웨어 검사 단계를 올바른 순서로 나열한 32. 상향식 통합 테스트(Bottom -up Integration Test)의 것은? 과정이 옳게 나열된 것은?
㉠ 설계 검사 ㉡ 요구사항 검사 ① 드라이버라는 제어 프로그램의 작성
㉢코드검사 ㉣ 시스템검사 ② 낮은 수준의 모듈들을 클러스터로 결합

가. ㉠→㉡→㉢→㉣  ③클러스터의검사
나. ㉢→㉠→㉡→㉣  ④드라이버를제거하고클러스터를상위로결합
다. ㉡ →㉢→㉣→㉠ 라. ㉡→㉣→㉢→㉠ 가. ①→②→③→④ 나. ② →①→③ →④
30.
하향식통합에있어서모듈간의통합시험을하기 다. ②→③→①→④ 위해 일시적으로 필요한 조건만을 가지고 임시로 라. ① → ②→④ →③ 제공되는 시험용 모듈을 무엇이라고 하는가?

가. Driver 나. Stub 33. 디버깅에 대한 설명 중 거리가 먼 것은? 다. Sub-Program 라. Dummy-Program 가. 디버깅은 성공적인 테스팅의 결과로 발생한다.

31. 화이트 박스(WHITE BOX) 테스트 기법이 아닌 나. 디버깅은 징후로부터 원인을 찾아 수정하는 과정이다. 것은? 다. 디버깅이 힘든 이유는 심리적인 요소가 많이 관여하기


때문이다. 가. 데이터 흐름 검사(DATA FLOW TEST) 라. 디버깅에 대한 체계적인 접근은 아직까지 제안되고 나. 루프 검사(LOOP TEST) 있지 않다. 다. 기초 경로 검사(BASIC PATH TEST) 라. 동치 분할 검사(EQUIVALENCE PARTITIONING TEST)
[정답]   29.나 30.나 31.라 32.나 33.라
54
정보처리기사 필기  기사퍼스트(www.gisafirst.com)

[SE 4강]-객체지향 개발 방법론 [출제빈도 ‘상']
1. 구조적 개발 VS 객체지향 개발
[장점]
모듈 구조단순-> 이해O, 수정O, 정확O (C언어) 

[단점]
소프트웨어 재사용, 유지보수 어려움 -> 소프트웨어 위기 해결 안됨
모듈 모듈

[객체]
데이터 [장점]
연산자 현실 세계를 프로그램에 반영

소프트웨어 재사용, 유지보수 향상 -> 소프트웨어 위기 해결 방안
[관련 용어]
데이터 데이터 기본 : 객체, 클래스, 메시지
연산자 연산자 원칙 : 캡슐화, 정보 은폐, 추상화, 상속성, 다형성
[객체] [객체] 데이터 = 상태, 속성(Attribute), 변수, 자료구조

연산자 = 행위, 메소드(Method), 동작(Operation)
56


[SE 4강]-객체지향 개발 방법론
2. 객체, 클래스, 메시지 -개념 이해하기
클래스 (자동차)  클래스 (인간) 
[자가용]  [버스]  [택시]  [동양인]  [흑인]  [백인] 
바퀴 4개  바퀴 4개  바퀴 4개  팔2개  팔2개  팔2개 
엔진 1개  엔진 1개  엔진 1개  눈2개  눈2개  눈2개 
좌석 5개  좌석 20개  좌석 5개  다리 2개  다리 2개  다리 2개 
휘발유 사용  경유 사용  LPG 사용  피부 황색  피부 검은색  피부 흰색 
:  :  :  :  :  : 
전진  전진  전진  메시지  문열기  문열기  문열기 
후진  후진  후진  시동 걸기  시동 걸기  시동 걸기 
좌회전  좌회전  좌회전  변속 하기  변속 하기  변속 하기 
우회전  우회전  우회전  페달 밟기  페달 밟기  페달 밟기 
:  :  :  :  :  : 
객체  객체  객체  객체  객체  객체 

1) 객체 (Object)
-현실 세계의 개체며 객체들 간의 상호작용은 메시지를 통해 이루어짐


① 데이터 : 객체가 가지고 있는 상태 (속성, Attribute, 변수, 자료구조)


② 연산자 : 객체의 데이터를 처리하는 행위 (메소드, Method, 동작, Operation, 함수, 프로시져)


57
정보처리기사 필기 기사퍼스트(www.gisafirst.com)


[SE 4강]-객체지향 개발 방법론
3) 메시지 (Message) -객체들 간에 상호작용을 하는데 사용되는 수단 -객체에서 객체로 메시지가 전달되면 메소드(행위)를 시작함

4) 메소드(method) -객체지향 시스템에서 전통적 시스템의 함수(function) 또는 프로시저(procedure)에 해당하는 연산기능 -객체지향 개념에서 객체가 메시지를 받아 실행해야 할 객체의 구체적인 연산


3. 캡슐화 (Encapsulation)

-자료 부분과 연산(또는 함수) 부분 등 정보처리에 필요한 기능을 한테두리로묶는것 -왜? 정보 은폐 -> 외부에서 변경 X -> 프로그램 변경에 대한 오류의 파급효과가 적다 (결합도 낮아짐) -> 재사용 용이, 객체간의 인터페이스 단순화, 응집도 향상

4. 정보은폐 (Information Hiding)


-객체는 다른 객체로부터 자신의 자료를 숨기고 자신의 연산만을 통하여 접근을 허용하는 것 -왜? 고려되지 않은 영향들을 최소화하기 위해
59
정보처리기사 필기 기사퍼스트(www.gisafirst.com)
[SE 4강]-객체지향 개발 방법론
2) 클래스 (Class)
-하나 이상의 유사한 객체들을 묶어 공통된 특성을 표현한 데이터 추상화(모델링)를의미
-공통된 속성과 연산을 갖는 객체의 집합 (객체의 일반적인 타입)
-인스턴스 (Instance) : 클래스에 속한 각각의 객체 (객체는 클래스의 인스턴스)

[자가용]  [버스]  [택시]  [자동차] 
바퀴 4개  바퀴 4개  바퀴 4개  바퀴 4개 
엔진 1개  엔진 1개  엔진 1개  엔진 1개 
좌석 5개  좌석 20개  좌석 5개  추상화  : 
휘발유 사용  경유 사용  LPG 사용  : 
:  :  :  : 
전진  전진  전진  전진 
후진  후진  후진  후진 
좌회전  좌회전  좌회전  인스턴스  좌회전 
우회전  우회전  우회전  우회전 
:  :  :  : 
객체  객체  객체  클래스 

58
정보처리기사 필기 기사퍼스트(www.gisafirst.com)
[SE 4강]-객체지향 개발 방법론
5. 상속 (Inheritance)

-상위 클래스의 메소드와 속성을 하위 클래스가 물려받는 것 -다중 상속은 한 클래스가 여러 상위 클래스로부터 상속 받는 것 (상위 클래스 : 비행기, 자동차) -> 재사용

6. 다형성 (Polymorphism)


-한메시지가 객체에따라다른 방법으로응답할 수 있는 것 -많은 상이한 클래스들이 동일한 메소드명을 이용하는 능력
[자가용] 응답 : 휘발유 주유
[버스]
메시지: 주유 응답: 경유주유
[택시] 응답 : LPG 주유
60
[SE 4강]-객체지향 개발 방법론
1. 객체지향 프로그램 특징
-재사용율이 높다 -> 자연적인 모델링이 가능
-유지보수성이 향상된다.
-사용자 중심, 대화식 프로그램 등 대형 프로젝트 개발에 적합
-실행 속도가 빨라진다. (X)
2. 객체지향 개발 단계

: 계획 -> 분석 -> 설계 -> 구현 -> 테스트 및 검증 -분석과 설계, 구현 작업이 폭포수 모형과 같이 순서가 뚜렷하게 구별되지 않음

3. 객체지향 분석 (OOA : Object Oriented Analysis)


-모델링 구성요소인 클래스, 객체, 속성 , 연산들을 표현해서 문제를 모형화 (ERD)
-모형화 표기법의 전후관계에서 객체의 분류, 속성들의 상속, 그리고 메시지의 통신 등을 결합한 것이다.
-주요 목적 : 객체는 클래스로부터 인스턴스화 되고, 이 클래스를 식별
-기법 : Rumbaugh(럼바우)

61
정보처리기사 필기 기사퍼스트(www.gisafirst.com)
[SE 4강]-객체지향 개발 방법론
5. 객체지향 설계
-객체지향 설계에 있어 가장 중요한 문제는 시스템을 구성하는 객체와 속성, 연산을 인식하는 것이다.

-객체지향 설계를 문서화할 때 객체와 그들의 부객체(sub-object)의 계층적 구조를 보여주는 계층차트를
그리면 유용하다.
-객체는 순차적으로(Sequentially) 또는 동시적으로(Concurrently) 구현될 수 있다.
-객체의 속성과 자료구조를 표현한다.
-서브 클래스와 메시지 특성을 세분화하여 세부사항을 정제화한다.

6. 객체지향 구현

-객체지향 프로그래밍 언어에는 Smalltalk, C++ 등이 있다. -절차 중심 프로그래밍 기법이다. (X)

7. 테스트


-테스트 순서 : 단위(class)  테스팅 -> 통합 테스팅 -> 검증과 시스템 테스팅
63
정보처리기사 필기 기사퍼스트(www.gisafirst.com)
[SE 4강]-객체지향 개발 방법론
4. Rumbaugh 분석 기법
[문제 : 중고차 상사]
판매자는 자동차를 중계자에게 판매하고,
중계자는 자동차를 관리하면서 구매자에게
다시 판매한다.
:

[동적 모델링 : dynamic modeling]
-판매자는 자동차를 중계자에게 판매한다.
-구매자는 자동차를 중계자에게 구매한다.
-중계자는 자동차를 관리한다.
:

* 절차: 객체 모형-> 동적모형 -> 기능 모형 [객체 모델링 : object modeling] -객체(명사) : 판매자, 자동차, 중계자, 구매자 -속성 : 판매자(주소, 전화번호, …) -연산(동사) : 판매자(판매한다. 흥정한다. 등) :
[기능 모델링 : functional modeling] -동적 모델링 결과를 자료흐름도 표현
-객체 모델링 : 시스템에서 요구되는 객체를 찾아내어 객체들의 특성을 규명 -동적모델링 : 상태도를 이용하여 객체들의 제어 흐름, 상호 반응 연산 순서를 나타내주는 과정 -기능모델링 : 자료흐름도(DFD)를 이용하여 각 객체에서 수행되는 동작들을 기술
정보처리기사 필기 기사퍼스트(www.gisafirst.com)
[SE 4강]-객체지향 개발 방법론
1. 객체지향 기법에서 오브젝트의 상태는 무엇을 파악함으로써 알 수 있는가?
가. 오퍼레이션(Operation) 나. 어트리뷰트(Attribute) 다. 트리거(Trigger) 라. 메소드(Method)
2. 객체지향 시스템에서 전통적 시스템의 함수 (Function) 또는 프로시저(Procedure)에 해당하는 연산 기능을 무엇이라고 하는가?

가. 메소드(Method)        나. 메시지(Message) 다. 모듈(Module)           라. 패키지(Package)

3. 객체지향 개념에 관한 설명 중 잘못된 것은?


가. 객체들 간의 상호작용은 메시지를 통해 이루어 진다. 나. 클래스는 인스턴스(Instance)들이 갖는 변수들과 인스턴스들이 사용할 메소드(Method)를 갖는다. 다. 다중 상속(Multiple Inheritance)은 두 개 이상의 클래스가 한 클래스로부터 상속 받는 것을 말한다. 라. 객체가 갖는 데이터를 처리하는 알고리즘을 연산 (Operation) 또는 메소드(Method)라 한다.
[정답]   1.나 2.가 3.다 4.나 5.나 6.나
4. 모든 객체들은 더 큰( )의멤버이고, 그( )에 대하여 이미 정의된 개별 자료 구조와 연산이 상속된다. 그 때문에 개별 객체는 ( )의 인스턴스가 된다. 다음 중 ( )안에 공통으로 들어갈 내용은?

가. 메시지 나. 클래스 다. 상속성 라. 정보

5. 객체지향 개념 중 하나 이상의 유사한 객체들을 묶어 공통된 특성을 표현한 데이터 추상화를 의미하는 것은?

가. 메소드(Method)         나. 클래스(Class) 다. 상속성(Inheritance)    라. 추상화(Abstraction)

6. 객체지향 프로그램의 장점으로 거리가 먼 것은?


가. 자연적인 모델링이 가능하다. 나. 실행 속도가 빨라진다. 다. 소프트웨어의 재사용 율이 높아진다. 라. 소프트웨어의 유지보수성이 향상된다.
[SE 4강]-객체지향 개발 방법론
정보처리기사 필기 기사퍼스트(www.gisafirst.com)
[SE 4강]-객체지향 개발 방법론
12. 객체지향 소프트웨어 개발 모형의 개발 단계로 14. 객체지향 분석에 대한 설명으로 옳지 않은 것은? 옳은 것은?
가. 분석가에게 주요한 모델링 구성 요소인 클래스, 객체, ㉠설계 ㉡구현 ㉢계획 속성, 연산들을 표현해서 문제를 모형화 시킬 수 있게 ㉣분석 ㉤테스트 및 검증 해준다.
나. 객체지향 관점은 모형화 표기법의 전후 관계에서 가. ㉢→㉠→㉣→㉡→㉤ 객체의 분류, 속성들의 상속, 그리고 메시지의 통신 나. ㉢→㉣→㉡→㉠→㉤ 등을 결합한 것이다. 다. ㉢→㉡→㉣→㉠→㉤ 다. 객체는 클래스로부터 인스턴스화 되고, 이 클래스를 라. ㉢→㉣→㉠→㉡→㉤ 식별하는 것이 객체지향 분석의 주요한 목적이다.
라. E-R 다이어그램은 객체지향 분석의 표기법으로는 적합하지 않다.
13. 객체지향 분석 기법의 하나로 객체 모형, 동적 모형, 기능 모형의 3개 모형을 생성하는 방법은?
15. 럼바우(Rumbaugh)의 객체 지향 분석절차를 바르게
가. Wirfs-block Method 나열한 것은?
나. Rumbaugh Method 다. BoochMethod 가. 객체모형→동적모형→기능모형 라. Jacobson Method 나. 객체 모형 → 기능 모형 → 동적 모형
다. 기능 모형 → 동적 모형 → 객체모형 라. 기능 모형 → 객체 모형 → 동적모형
[정답]   12.라 13.나 14.라 15.가
66
정보처리기사 필기 기사퍼스트(www.gisafirst.com)
[SE 5강]-발전적 주제 [출제빈도 ‘상']
1. 소프트웨어 재사용
1) 특징
-이미 개발된 소프트웨어 전체 혹은 일부분을 다른 소프트웨어 개발이나 유지에 이용
-이미 만들어진 프로그램을 사용
-재사용 부품의 크기가 작을수록 재사용률이 높음
-클래스, 객체 등의 소프트웨어 요소는 소프트웨어 재사용성을 크게 향상시킴
-소프트웨어 재사용에 가장 많이 이용되는 것 : 소스 코드
-재사용 컴포넌트(Component)들이 많이 있어도 그들을 찾아내는 것이 어려울 경우 : 분류의 문제


2) 이점
-개발시간과 비용의 단축
-소프트웨어 품질 향상
-생산성 향상
-시스템 구축방법에 대한 지식 공유
-시스템 명세, 설계, 코드 등의 문서 공유
-소프트웨어 프로그래밍 언어의 종속 (X)
-고급 프로그래머 배출이 용이 (X)
-새로운 개발 방법론의 도입이 쉽다. (X)
-사용자의 책임과 권한부여 (X)
-표준화의 원칙을 무시할 수 있다. (X)
-응용소프트웨어의 보안 유지 (X)


68
7. 기존의 소프트웨어 공학 기법들과 차별화될 수 있는 객체지향 개념이 아닌 것은 어느 것인가?
가. 캡슐화(Encapsulation)
나. 상속성(Inheritance)
다. 다형성(Polymorphism)
라. 모듈화(Modularity)

8. 객체지향의 기본 원리인 정보은폐와 가장 밀접한 관계가 있는 것은?

가. 캡슐화(Encapsulation) 나. 클래스(Class) 다. 메시지(Message) 라. 상속성(Inheritance)

9. 객체는 다른 객체로부터 자신의 자료를 숨기고 자신의 연산만을 통하여 접근을 허용하는 것을 무엇이라 하는가?


가. Abstraction 나. Information Hiding 다. Modularity 라. Typing
[정답]   7.라 8.가 9.나 10.다 11.라
정보처리기사 필기
10. 객체지향 기법에서 상속(Inheritance)의 결과로서 얻을 수있는가장 주요한 이점은?

가. 모듈 라이브러리의 재이용 나. 객체지향DB를 사용할수있는 능력 다. 클래스와 오브젝트들을 재사용할 수 있는 능력 라. 프로젝트들을 보다 효과적으로 관리할 수 있는 능력

11. 객체지향 기술에서 다형성(Polymorphism)의 의미로 가장 적절한 것은?


가. 다중 메시지를 수행하기 위하여 이용되는 기술
나. 동일한 일을 수행하기 위하여 상이한 메소드 이름을 이용하는 능력
다. 상이한 일을 수행하기 위하여 동일한 메시지 형태를 이용하는 능력
라. 많은 상이한 클래스들이 동일한 메소드명을 이용하는 능력
65
기사퍼스트(www.gisafirst.com)
[SE 4강]-객체지향 개발 방법론
16. 객체지향 설계 방법론에 대한 설명 중 옳지 않은 것은?
가. 구체적인 절차를 표현한다. 나. 형식적인 전략으로 기술한다. 다. 객체의 속성과 자료 구조를 표현한다. 라. 서브 클래스의 메시지 특성을 세분화하여 세부
사항을 정제화 한다.

17. 객체지향 프로그래밍(OOP, Object-Oriented Programming)개발 기법에 대한 설명으로 옳지 않은 것은?
가. 절차 중심 프로그래밍 기법이다.
나. 객체지향 프로그래밍 언어에는 Smalltalk, C++등이 있다.
다. 객체 모델 주요 요소는 추상화, 캡슐화, 모듈화, 계층 등이다.
라. 설계 시 자료와 자료에 가해지는 프로세스를 묶어 정의하고 관계를 규명한다.
[정답]   16.나 17.가 18.나
18. 람바우의 객체 지향 분석에서 분석활동의 모델링과 관계없는 것은?
가. 객체(object) 모델링 나. 절차(procedure) 모델링 다. 동적(dynamic) 모델링 라. 기능(functional) 모델링
67
[SE 5강]-발전적 주제
2. 소프트웨어 재공학 (Re-engineering)
1) 특징 -기존 시스템을 이용하여 보다 나은 시스템을 구축하고 새로운 기능을 추가하여 소프트웨어 성능을 향상시키는 것 -기존에 있던 소프트웨어를 파기하지 않고 변경된 사용자의 요구사항이나 수정된 환경으로 기존 소프트웨어를 수정 보완하여 재구축 -소프트웨어의 위기를 해결하기 위해 개발의 생산성이 아닌 유지보수의 생산성으로 해결하려는 방법 -목적 : 유지보수성 용이성 향상 (주된 목적), 생산성, 품질의 향상 -재공학 활동 : 분석, 재구성, 역공학, 이식 등이 있음 -재공학 대상 : 자사 소프트웨어뿐만 아니라 모든 소프트웨어 -CASE(자동화 도구)의 정보 저장소와는 무관함 (X)
3. 소프트웨어 역공학 (reverse engineering)
-소프트웨어를 분석하여 소프트웨어 개발 과정과 데이터 처리 과정을 설명하는 분석 및 설계 정보를 재발견 하거나 다시 만들어 내는 작업 -현재 프로그램으로부터 데이터, 아키텍처, 그리고 절차에 관한 분석 및 설계 정보를 추출하는 과정
69
정보처리기사 필기 기사퍼스트(www.gisafirst.com)
[SE 5강]-발전적 주제
5. CASE (Computer Aided Software Engineering)
: 소프트웨어 개발 과정에서 사용되는 요구 분석, 설계, 구현, 검사 및 디버깅 과정을 컴퓨터와 전용의 소프트웨어 도구를 사용하여 자동화하는 작업
1) 특징 -소프트웨어 생명 주기의 전체 단계를 연결시켜 주고 자동화시켜 주는 통합된 도구를 제공해 주는 기술 -개발 비용 절약, 품질 향상, 개발 기간 감소, 유지보수 간편 -모듈의 재사용성이 향상 -도구와 방법론의 결합 -개발 단계의 표준화 -CASE는 아직 표준화 되지 않아서 CASE 툴들은 호환이 안됨 -CASE의 정보 저장소 : 개발 과정 동안에 모아진 정보를 보관하여 관리하는 곳 -> 유지보수 용이 -> 시스템 표준화와 소프트웨어 재사용성의 기본

-개발 방법론 생성 (X)
-설계지식이 없을 때 CASE 를 사용하면 효과적이다 (X)


2) 분류 -상위 CASE : 요구분석과 설계 단계 지원 -하위 CASE : 코드 작성하고 테스트하며 문서화하는 과정 지원 -통합CASE : 개발 주기전체 과정 지원


71
정보처리기사 필기 기사퍼스트(www.gisafirst.com)
[SE 5강]-발전적 주제
4. 클라이언트/서버 시스템
: 분산 시스템의 가장 대표적인 모델 (클라이언트:서비스 요구, 서버:서비스 제공) -사용자의 요구사항은 서버의 데이터베이스 시스템에 영향을 미친다 -병목현상을 없애기 위해 비즈니스 로직을 분리하여 관리할 수 있다 -대부분 네트워크로 연결되어 있고 인증 작업을 필요로 한다. -소프트웨어 요소 : 애플리케이션, 데이터베이스, 프리젠테이션/상호작용
-미들웨어의 사용은 서버와 클라이언트의 작업량을 증가시켰다. (X)
* 미들웨어 : 분산 컴퓨팅 환경에서 서로 다른 기종의 하드웨어나 프로토콜, 통신환경 등을 연결하여, 응용프로그램과 그 프로그램이 운영되는 환경 간에 원만한 통신이 이루어질 수 있게 하는 소프트웨어를 말한다.
70
정보처리기사 필기 기사퍼스트(www.gisafirst.com)
[SE 5강]-발전적 주제
1. 소프트웨어 재사용에 대한 설명으로 옳은 것은? 3. 소프트웨어 재사용을 통한 장점이라고 볼 수 없는 것은 ?
가. 기계 중심 언어는 주기억장치를 매우 효과적으로 가. 개발 시간과 비용을 감소시킨다. 사용할 수 있고, 실행 속도를 최적화시킬 수 나. 소프트웨어 품질을 향상시킨다. 있다는 점에서 재사용성이 가장 뛰어난 프로그래밍 다. 생산성을 증가시킨다. 언어이다. 라. 고급 프로그래머 배출이 용이하다.
나. 1990년대의 클래스, 객체 등의 소프트웨어 요소는 소프트웨어 재사용성을 크게 향상시켰다. 다. 노호된 시스템에 대한 재분석, 문서화 작업을 통해 4. 소프트웨어 재공학에 관한 설명으로 옳지 않은 것은? 공학적으로 우수한 시스템을 만드는 것을 의미한다. 라. 소프트웨어 재사용은 경제성을 고려하여 사용자의 가. 소프트웨어 재공학은 CASE의 정보 저장소와는 무관 요구가 있을 때만 적용하는 것이 바람직하다. 하다. 나. 재공학 활동은 분석, 재구성, 역공학, 이식 활동 등 으로 구분할 수 있다.
2. 소프트웨어 재사용의 이점에 속하지 않는 것은? 다. 소프트웨어 재공학도 자동화된 도구를 사용하여
소프트웨어를 분석하고 수정하는 과정을 포함한다. 가. 소프트웨어 품질 향상 라. 소프트웨어 재공학의 일반적인 개념은 데이터와 나. 소프트웨어의 개발 시간과 비용감소 기능들의 개조 및 개선을 가해 유지보수 용이성을
다. 소프트웨어 생산성 증가 향상시키자는 것이다. 라. 소프트웨어 프로그래밍 언어의 종속
[정답]   1.나 2.라 3.라 4.가
72




본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED