* 소프트웨어 위기(1960s) => 소프트웨어 공학 등장
* 소프트웨어 품질 평가기준
: 기신사효유이
(기능성, 신뢰성, 사용성, 효율성, 유지보수성, 이식성)
*3R
- 재공학 (예방유지보수관점)
: 분석(대상 선정)->재구성(리팩토링)->역공학(문서 추출)->이관,이식(Migration)
- 역공학 (프로그램>>문서로)
- 재사용 (그대로 사용) - 방법: 합성중심(조합) / 생성중심(추상화)
- 재개발(x)
- 리팩토링 : 소프트웨어 기능을 변경하지 않으면서 형태에 맞게 수정하는 활
* 소프트웨어 개발단계
: 계획(비용,일정) -> 요구사항분석(요구사항 명세서) -> 설계(그림) -> 구현(개발) -> 테스트 -> 유지보수
- 유지보수
: 수정보수(Corrective) : 오류 수정
적응보수(Adaptive) : 환경변화에 대응
향상보수, 완전유지보수(Perfective) : 기능 추가, 향상시키기 위한 변경
예방보수(=재공학)(Preventive) : 잠재적 오류를 미리 예방
- 가장 많은 비용 : 유지보수 단계
- 시스템 명세서의 유지보수 : 사용자도 최신의 명세서를 배포 받지만, 개발자의 기술적 명세서와는 다른 명세서임.
* 소프트웨어 개발방법론
1. 구조적 개발 방법론
: 절차지향 / 하향식/ DFD(자료흐름도), DD(자료사전), STD, MiniSpec(소단위 명세서) 사용
2. 정보공학 방법론
: 기업에서 사용
3. 객체 지향 개발 방법론
- 객체지향이란? 클래스(:속성,메서드) => 객체
- 객체지향 속성 : 상속성, 정보은닉, 캡슐화, 추상화(공통의 성질), 다형성(오버로딩/오버라이딩)
4. CBD 분석 방법론 (Component Based Development)
: 이미 만들어진 components 조립 >> software 재사용, 기간 단축, 기능 추가 쉬움
5. 애자일 방법론
: 고객과의 협업을 통해 빠르게 / XP, SCRUM, FDD, Crystal 방법론
- XP 특징 : 의사선생님 피존 용기에 담아주세요 (의사소통, 피드백, 존중, 용기, 단순성)
6. UP 방법론 (Unified Process) _문제-답 형태로만 기억
: 소프트웨어 개발단계를 시간의 흐름에 따라 4개의 범주(도입,상세,구축,이행)으로 나누고,
각 범주에는 요구사항 도출부터 설계, 구현, 평가까지의 개발 생명주기가 포함
* 소프트웨어 개발모델
1. 폭포수 모델 = 선형순차모델
: 순차적 접근, 문서화 중시
2. 프로토타이핑 모델 = 원형모델
: 시제품에 기능 보완 (이해도가 부족하기 때문에 고객과의 협업을 통해 완성시켜 나가려는 것)
3. 나선형 모델
: 위험분석 추가 (계획->위험분석->개발->평가)
: 보헴 제안/ 폭포수 모델과 트로토타이핑(원형) 모델의 장점을 결합
: 반복적이고 점진적인 개발 >> 비교적 대규모 시스템에 적합
4. RAD 모델 (Rapid Application Development)
: 자동화도구 CASE 도구를 활용하여 빠르게
5. V모델
: 테스트에 중점
6. 4세대 기법 : 자동으로 코드 생성
=> 이러한 방법들을 적절하게 혼합 (테일러링)
* 소프트웨어 개발 비용 산정 기법
1. 하향식 산정기법
: 경험을 바탕으로 (사람)
- 전문가 판단 기법(한명) / 델파이 기법(여러명)
2. 상향식 산정기법
1) 원시 코드 라인 수 기법 : LOC(Line of Code) = {낙관치+(4*중간치)+비관치}/6
Q. 예측치를 구하기 위해 사용 항목은? 낙관치, 중간치(=기대치), 비관치 등...
Q. LOC 기법에 의해 예측된 총 라인 수가 50,000라인, 프로그래머의 월 평균 생산성이 200라인,
개발에 참여할 프로그래머가 10인일 때, 개발 소요기간은?
>> 200라인*10인= 월 2,000라인
50,000/2,000=25개월
2) 개발 단계별 노력
3. 수학적 산정기법
1) COCOMO기법
: LOC 기반 / 보헴(Boehm)이 제안
소스코드 규모에 의한 비용 예측
- 유형
조직형Organic(5만 라인 이하)
반분리형Semi-Detached(30만 라인 이하)
내장형Embeded(30만 라인 이상)
2) Putnam 기법
- Putnam(풋남)이 제안
- Rayleigh-Norden 곡선 이용 (랠리 노든)
- 자동화 추정도구 SLIM 이용
3) 기능 점수 기법 (Function-Point 모형)
- 자동화 추정도구 ESTIMACS 이용
- 소프트웨어 기능분류
: (데이터)내부논리파일
(데이터)외부연계파일
(트렌젝션)외부입력
(트렌젝션)외부출력
(트렌젝션)외부조회
* 소프트웨어 개발 일정 계획
1) WBS (=작업 분해. 세분화)
2) PERT(불확실한 시간 추정. 작업들간의 관련성에 따라 네트워크 작성)
/ CPM(Critical Path Method)
: 시간 확실. 비용과 시간 최적화에 중점. 노드와 간선으로 표현. 이전 작업이 완료되어야 다음 작업 진행 가능.
3) 임계경로 : 최소 소요시간
>> Q. 임계경로를 구하라 = 최장시간을 구하라!
4) 간트 차트 (Gantt Chart) : 막대 바 형태 = 일정
= 시간 선 차트
'👩🏻💻TIL (Today I Learn) > 정처기' 카테고리의 다른 글
정처기 22년 4월 24일 기출 오답정리_04 (0) | 2025.01.23 |
---|---|
정처기 22년 4월 24일 기출 오답정리_03 (1) | 2025.01.22 |
정처기 22년 4월 24일 기출 오답정리_02 (0) | 2025.01.21 |
정처기 22년 4월 24일 기출 오답정리_01 (0) | 2025.01.20 |
정처기 5과목_ 1. 소프트웨어 개발 방법론 테일러링 (0) | 2025.01.16 |