[정의] 소프트웨어 생산성, 유지보수 용이성 향상을 위해 모듈의 외부적 기능은 수정하지 않고, 내부적인 구조, 관계 등을 단순화하여 소프트웨어 코드의 단순성, 명확성을 향상시키는 소프트웨어 코드 개선 기법 [절차] 대상선정 > 테스트 코드 작성 > 리팩토링 수행 > 테스트 수행 > 종료 [대상] 중복된 코드, 긴 메소드, 큰 클래스, 긴 파라미터 리스트, 산탄총 수술 [기법] 이동(Move), 분리(Extract), 일반화, 통합 [Good SW 조건] 단순성, 명확성, 일반성, 자동화
Refactoring, Pullup Method, Extract Interface, Move Method 내부 기능만 변경, 외부는 변화는 없음 , bad smell, 수행 절차
[절차] 데코리테종 [대상] 중긴큰긴산 [기법] 이분(에) 일통 [조건] 단명일자
토픽 이름
소프트웨어 리팩토링 (Refactoring)
분류
SW > 유지관리(유지보수변경)
키워드(암기)
Inline Class, Inline Method Extract Class, Extract Method, Extract Interface Move Class, Move Method, Move Field Pull Up Method, Pull Up Field, / Push Down Method, Push Down Field Rename Method
암기법(해당경우)
기출문제
번호
문제
회차
1
5. 은행에서계좌의당좌대월액을 계산하는 프로그램이다. 새로운계좌타입이몇가지추가될예정이고, 이들은당좌대월액을계산하는각각의규칙이필요하여메소드 overdraftCharge()를클래스 AccountType으로옮기려고한다. 리팩토링기법중의하나인 Move 메소드의개념과절차를설명하고 이를 활용하여 리팩토링한 코드를 작성하시오.
110.관리.3교시
2
3. DB Refactoring에대하여다음질문에 답하시오. (1) DB Smell에대하여설명하시오. (2) DB Refactoring 유형및절차에대하여 설명하시오.
95.관리.4교시
3
2. 리팩토링기법중 Extract Interface에대해설명하시오.
합숙_17.08.3일차.공통
4
12. 디자인패턴과리팩토링을 설명하시오.
모의_18.05.관리.1
5
12. 리팩토링의목적과기법을 설명하시오.
합숙_14.07.3일차.관리
6
리팩토링에서의 Pull Up Method에대하여설명하시오.
합숙_14.01.5일차.공통
7
데이터베이스 냄새(DB Smell)와 DB 리팩토링의분류에대해설명하시오.
합숙_12.08.4일차.공통
8
2. 리팩토링기법중 Extract Interface에대해설명하시오.
합숙_17.08.3일차.공통
9
7. 리팩토링의목적과기법을 설명하시오
모의_09.05.공통.1
10
소프트웨어 리팩토링(Refactoring)에대해설명하시오.
모의_15.05.응용.1
11
소프트웨어 리팩토링(Refactoring)에서 Pullup Method와 Extract Interface에대해설명하시오.
- 테스트를만들어내는방법을익혀야한다. - 테스트프레임워크를선택하고, 이를이용해서단위테스트를구축해서자동화까지하도록만들어야한다. - 중간에 Mock과 같은 것을 이용할 수 있어야 하기에, 대부분경우 TDD(Test Driven Development)와같은곳에서사용하는방법을같이적용해볼수있다.
시간확보
- 리팩토링을할수있는시간을확보 - 작게시작하려고노력 - 리팩토링테크닉이익숙해지기전에는대규모로할수 있다는 생각은 잠시 접어두는 것이 좋다.
리팩토링 적용시점
시점
적용사유
삼진규칙
- 비슷한중복이세번째나타나는경우수행 -> 기본가이드제공
기능추가시
- 기존코드의구조를개선으로이해향상 -> 기능추가를쉽고빠르게수행
버그수정시
- 버그수정전에더깊은이해를제공 -> 버그수정용이
코드리뷰중
- 코드의명확성유지,더 나은 설계 아이디어가 제안 -> 품질향상
[참고]
Pull up Method
- 동일기능중복해서구현되었을경우, 확산적변경현상이발생할확률 농후
- 중복된기능(메소드, 클래스)를상위로올리는것
Extract Interface
- 두클래스에공통적인기능(메소드, 클래식)이있을경우인터페이스로분리하여참조받는방식
Move Method
- 메소드가자신이정의된클래스보다다른클래스의 기능을 더 많이 사용하고 있다면 이 메소드를 가장 많이 사용하고 있는 클래스에 비슷한 몸체를 가진 새로운 메소드를 만들어라
[정의] 소프트웨어의 기획, 현 운영 등 수명 주기 전 단계에 대한 사업을 추진함에 있어 이에 대한 예산 수립, 사업 발주, 계약 시 적정 대가를 산정하기 위한 가이드 [대가산정기준 개발비 산정 절차] 사기보보직소 사전준비, 기능점수 산정, 보정전 개발원가 산정, 보정후 개발원가 산정, 직접경비 및 이윤산정, SW개발비 산정 [SW개발비] 개발원가 + 이윤 + 직접경비 ※ 이윤은 개발원가의 25% 이내에서 산정 ※ 보정전 개발원가 산정 (2021 년 현재 553,114 원) [보정계수] 규모산정, 연계복잡성, 성능 요구사항, 운영환경 호환성, 보안성 수준 ※ 보정계수 규모(500미만 1.28%, 3000이상 1.1530), 연계시스템, 성능, 운용성, 보안
[개발원가] 보정 후 개발원가 2021년 개정
사기보보직소
토픽 이름 (상)
SW사업대가산정가이드
분류
SW 규모산정(원가산정) > SW사업대가산정가이드
키워드(암기)
ISO12207 기반, 소프트웨어 생명주기, 사업유형 식별(기획, 구현, 운영), 대가산정 시점 식별(예산확보, 사업발주, 사후정산), 대가산정 모형 선정(컨설팅지수방식, 투입공수방식, 기능점수방식, 재개발비 등) 데이터베이스 구축비 산정 가이드 추가, 투입공수방식의 Man-Hours 적용사례 추가
암기법(해당경우)
기출문제
번호
문제
회차
1
2017년 6월 한국소프트웨어산업협회에서 "SW 사업대가산정가이드(2017년 개정판)"을공표하였다. 개정내용중에데이터베이스 구축비의 구성요소와 투입공수방식에 의한 데이터베이스 구축비 산정절차에 대해 설명하시오
합숙_2017.08.2일차.공통.4
2
4. A사는공공소프트웨어개발프로젝트규모를산정하기 위해 기능점수(Function Point)를사용하고자한다. 다음에 대하여 설명하시오. (단, "SW사업대가산정 가이드 2018년개정판" 기준) 가. 기능점수방식의 정의 및 특징 나. 기능점수산정방식의 종류 및 소프트웨어 개발비의 구성요소 다. 기능점수방식에 의한 소프트웨어 개발비 산정절차, 개발원가보정의필요성, 5가지 보정원가 계수
[정의] 정보처리 규모와 기능의 복잡도 요인에 의거한 SW 규모산정방식 [등장배경(LOC문제점)] 추정의 어려움, 환경의 영향, 파라미터 영향 [특징] 최종 사용자 입장, 사전 개발 소요공수 예측모델, 기능설계시 개발중에도 측정 가능, 생산성과 품질척도 활용가능 [절차] 측정유형결정, 측정범위 어플리케이션 경계식별, 데이터 기능측정, 트랜잭션 기능측정, 미조정 기능점수 결정, 조정인자 결정, 조정 기능점수 결정 [지표] ILF, EIF, EI, EO, EQ, DET, REF, FTR
유범(이의)데(이)트 미조기
토픽 이름 (상)
Function Point
분류
SW 규모산정(원가산정) > Function Point
키워드(암기)
기능점수, 절차, 특징 트랜잭션 유형, EI, EO, 데이터 기능 유형, EQ, ILF, EIF 측정유형결정, 측정범위 어플리케이션 경계식별, 데이터 기능측정, 트랜잭션 기능측정, 미조정 기능점수 결정, 조정인자 결정, 조정 기능점수 결정
암기법(해당경우)
유범이의 데이트
기출문제
번호
문제
회차
1
S/W프로젝트의규모척도인기능점수(Function Point)의장단점을설명하고, LOC(Line Of Code)와 COCOMO(Constructive Cost Model)와의차이를설명하시오.
107.컴시응.4.2
2
6. 비용산정모델에대한다음물음에답하시오. (1) 비용산정을위한 COCOMO(Constructive Cost Model)와기능점수의특징과장점을비교설명하시오. (2) 네개의모듈로구성된프로젝트가있다. LOC(Line of Code)를기반으로한각모듈의규모추정이아래와같을때, 이프로젝트의총 규모는 몇 LOC 인지계산하시오.
87.관리.3.6
소프트웨어 복잡도에 의한 규모 산정방식, FP의개요
가. FP(Function Point, ISO/IEC 14143-1)의정의
정보처리 규모와 기능의 복잡도 요인에 의거한 SW 규모산정방식
소프트웨어 크기를 결정하는 소프트웨어 기능 유형별 수량과 성능 및 품질요인들의 영향도 고려하여 계산되는 SW 규모산정방식
[정의] 소프트웨어 규모파악(양적 크기, 질적 수준) 통한 소요공수와 투입자원 및 소요기간 파악하여 실행 가능한 계획 수립하기 위한 비용 산정하는 과정 [비용산정방법] - 상향식 ( 전문가 감정, 델파이 방식 ) - 하향식 ( LOC 기법, Man/Month ) - 수학적 ( 기능점수(FP), COCOMO, Parametric Estimation )
2. 소프트웨어비용산정방법중상향식비용산정방법, 하향식 비용 산정 방법에 대하여 설명하시오.
117 관리 2교시
2
6. 비용산정모델에대한다음물음에답하시오. (1) 비용산정을위한 COCOMO(Constructive Cost Model)와기능점수의특징과장점을비교설명하시오. (2) 네개의모듈로구성된프로젝트가있다. LOC(Line of Code)를기반으로한각모듈의규모추정이아래와같을때, 이프로젝트의총 규모는 몇 LOC 인지계산하시오.
87 관리 3교시
3
4.1. Function Point의특징및요구분석단계이후의 Function Point를 이용한 소프트웨어 비용산정 절차와 활성화 방안에 대해 기술하시오.
84 컴시응 4교시
4
소프트웨어 비용 산정 방식에 대해 상세히 설명하시오. 가. SW Metrics 유형과대상에따른분류 나. 개발비용산정시고려항목 다. 기능점수방식절차와데이터기능과트랜잭션기능설명
합숙2011.2월.D3
I. 소프트웨어의적정한비용산정통한대가산정방식, 소프트웨어비용 산정의 개요
가. 개발비용산정의정의
소프트웨어 규모파악(양적크기, 질적수준) 통한소요공수와투입자원및소요기간파악하여실행가능한계획수립하기위한 비용 산정하는 과정
- “감리보고서”에는감리대상사업단계별점검결과를명시한“감리수행결과보고서”와시정조치사항을확인한결과를 명시한 “시정조치확인보고서”가 있다
II. 감리수행결과보고서의주요목차구성및주요목차설명
가. 감리수행결과보고서의 주요목차 구성
감리계획서
관련근거
감리목표
감리적용기준
사업개요
감리단계
감리영역별 점검항목
감리일정
투입인력편성
감리계획서 및 보고서 통보 기관
기타 행정사항
감리수행결과보고서
I. 종합의견
1. 전제조건
2. 총평
3. 감리영역별 세부점검결과 요약
II. 과업내용반영여부 점검결과
1. 점검현황
2. 점검결과
3. 세부점검결과
III. 감리영역별 점검결과
1. 점검항목별 점검결과
2. 상세점검결과
별첨
감리계획서
나. 감리보고서의주요목차설명
목차
내용
I. 감리계획서
- 근거공문: 감리의뢰인이 발송한 감리의뢰공문 명시 - 감리목적: 감리의 목적 및 감리대상 사업 범위의 명시 - 감리기준: 감리 시 적용할 감리기준을 명시 - 감리대상: 감리대상기관, 대상사업, 감리의범위에대해정의 - 감리중점사항기술: 프로젝트 방법론, 기술사항, 대상사업의목적, 개발단계, 범위, 환경요인, 감리의뢰인의 요청사항 (사업관리 및 품질보증, 응용시스템, 데이터베이스, 시스템구조) - 감리기간: 감리 시행 시 단계별 상세일정 명기 - 감리절차요약: 감리업무 프로세스의 주요사항을 기술 - 감리인편성: 중점검토사항에 따른 전문 감리인 구성