[정보처리기사_필기] 소프트웨어 공학 <2>

■ 소프트웨어 프로젝트 관리

                소프트웨어 생명주기 전체에 걸쳐 진행

                관리 대상

                                - 계획 관리 : 비용산정, 일정계획

                                - 품질 관리

                                - 위험 관리

                3대요소

                                - People : 인적자원

                                - Problem : 문제인식

                                - Process : 일정

 

  

■ 프로젝트 계획 및 예측

                계획 수립

                                - 개발 영역, 자원, 비용, 일정 등을 예측

                                - 위험성은 예측이 불가

                예측 방법

                                - 선수 유사 프로젝트 참고

                                - 프로젝트 세분화

                고려사항

                                - 규모파악 : 최우선 수행

                                - 복잡도

                비용결정 요소

                                - 프로젝트 요소 : 복잡도, 크기, 신뢰도

                                - 자원요소 : 인적자원, H/W, S/W

                                - 생산성요소 : 개발자의 능력, 개발 기간

               

 

■ 비용산정 기법

                하향식 비용 산정 기법

                                - 비과학적 방법 -> 경험에 의거

                상향식 비용 산정 기법

                                - 세부사항을 산정하여 합하는 방법

                                - LOC(원시 코드 라인수)방법

                                                프로그램의 라인수를 파악 -> 규모만 파악

                                                예측치 = [낙관치 + 기대치 * 4 + 비관치] / 6

                                -COCOMO모형

                                                복잡도도 파악해야한다.

                                                Man-Month : 한명의 프로그래머가 개발시 얼마나 걸릴지를 계산

                                                복잡도에 따른 분류

                                                                > 조직형(Organic Mode) : 업무용, 과학용

                                                                > 반분리형(Semi-Detached Mode) : 운영체제, 데이터베이스 관리

                                                                > 내장형(Embedded Mode) : 신호제어, 미사일 유도, 실시간 처리

                                                비용상식 종류

                                                                > Basic : 기본형

                                                                > Intermediate : 중간형

                                                                > Detailed : 발전형

                                                ex) 40PM = 한사람이 개발시 40개월이 걸린다

 

■ 프로젝트 조직 구성

                중앙집중식 구성

                                - 한 관리자가 책임

                                - 책임 프로그래머 : 요구분석, 설계

                                - 프로그래머 : 실제 코딩

                                - 프로그램 사서 : 일정, 문서등 관리

                분산형 구성

                                - 민주주의식 팀 구성

■ 프로젝트 일정

                PERT / CPM

                                - 프로젝트 완성에 필요한 작업을 나역하고 소요기간을 예측하는데 사용

                                - 임계경로 : 최대의 시간이 걸리는 경로

                                - PERT 는 예측이 어려울때 낙관, 비관, 가능성있는 경우로 나누어 예측

                                - CPM 은 작업 시간이 정확히 주어졌을 때

                브룩스의 법칙

                                - 일정이 지연된다고해서 인원을 추가하는것은 악영향을 가져온다.

                간트 차드

                                - 작업 일정을 수평 막대도표를 사용하여 나타내는 일정표

                                - 이정표, 작업일정, 작업기간, 산출물

                일정 계획의 순서

                                - 프로젝트 규모 추정

                                - 각 작업들을 분할(WBS)

                                - CPM 네트워크로 나타냄

                                - 간트차트작성

 

 

■ 소프트웨어 품질 보증

                품질 항목

                                - 신뢰성, 무결성, 사용용이성, 이식성(호환성)

                                - 포함되지 않은 것 : 중복성, 종속석, 복잡성, 간결성

                정형 기술검토(FTR)

                                - 소프트웨어 기술자들에 의해 수행되는 활동

                                - 목적

                                                사용자 요구사항 확인

                                                기능과 로직의 오류

                                                프로젝트 관리의 편리성

                                - 유형

                                                검토회의 : 오류 검출, 수정은 x

                                                검열 : 1~4명의 검열관이 중간 산출물 검사

                                - 지침사항

                                                논쟁과 반박 제한

                                                제품의 검토에 집중

                                                참가자수 제한

                신뢰성, 가용성

                                - 측정방법

                                                MTBF : 수리가능의 경우 고장이 고쳐진후 다시 고장나기까지 시간

                                                MTTF : 수리가 불가능(ex : 전구) 경우 수명시간

                                                MTBF = MTTR(고장수리시간) + MTTF(가동시간)

                                                가용성 =[ MTBF / (MTBF + MTTR) ] * 100%

 

 

 

 

■ 위험 관리

                위험의 종류

                                - 사용자 요구사항 변경

                                - 인력부족

                                - 예산

                                - 일정

                위험표(Risk Table)

                                - 위험내용, 위험 종류, 발생확률, 영향력, 위험 감시및 조치(해결방안)

               

 

■ 형상 관리

                형상관리 : 산출물 관리

                특징

                                - 유지보수 단계에서 행해진다.

                형상관리 항목

                                - 정의 단계 문서

                                - 개발 단계 문서, 프로그램 

                                - 유지보수 단계 변경사항

 

■ 요구사항 분석

                구조적 분석도구

                                - DFD(Data Flow Diagram) 자료 흐름도

                                                프로세스 : 원으로 표시함

                                                자료흐름 : 화살표로 표시함

                                                자료저장소 : 좌우가 뚫린 사각형

                                                단말(종착지) : 사각 박스

                                - DD(Data Dictionary) 자료사전

                                                = : 자료의 정의

                                                + : 자료의 연결

                                                () : 자료의 생략

                                                [|] : 자료의 선택

                                                {} : 자료의 반복

                                                ** : 주석

                                - Mini Specification 소단위 명세서

                                                프로세스의 처리 절차를 기술

                                - E-R Diagram

                                                데이터 구조들간의 관계를 표현

                                - 자동화 분석 도구

                                                SREM, PSL/PSA, EPOS

                                -HIPO(Hierarchy Input Process Output)

                                                분석및 설계를 문서화할 사용되는 하향식 기법

                                                히포의 종류

                                                                > 가시적도표

                                                                > 총체적 다이어그램

                                                                > 세부적 다이어그램

■ 설계

                설계  

                                - 요구사항을 실현하기 위한 알고리즘

                                - 데이터설계 -> 아키텍처 설계 -> 인터페이스 설계 -> 절차 설계

                                - 용어

                                                Fan In : 상위 모듈에 호출되어지는

                                                Fan Out : 호출하는 하위 모듈의

                                - 바람직한 설계

                                                설계는 모듈적(독립적)

                모듈화

                                - 모듈 : 기능별로 분할된 기본단위

                                - 모듈은 독립적일수록 좋다 -> 응고결저(응집도는 높고 결합도는 낮을수록 좋다)

                                - 장점 : 융통성, 경제성, 확장성

                                - 결합도

                                                [약함]데이터 - 스탬프(자료구조) - 제어 - 외부 - 공통 - 내용 [강함]

                                                데이터 결합도 : 데이터를 공유

                                                내용결합도 : 다른모듈의 내용을 참조

                                - 응집도

                                                [강함] 기능 - 순차 - 교환 - 절차 - 시간 - 논리 - 우연 [약함]

                                                Functional

                                                Sequential

                                                Communication

                                                Procedural

                                                Temporal

                                                Logical

                                                Coincidental

                설계 방법

                                - 데이터설계

                                - 아키텍처설계(구조설계)

                                - 인터페이스 설계

                                - 절차 설계

                                                N-S차트 : 반복, 순차(연속), 선택으로 이루어진 순서도

                               

■ 구현

                프로그래밍 단계

                언어 선정

                                - 업무성격

                                - 경험

                                - 새로운 언어가 무조건 좋은건 아니다

                구조적 프로그래밍

                                - Dijkstra 방법론 : 선택과 반복구조

                                - 순차, 선택, 반복                

 

 

 

■ 검사

                검사의 목적은 오류를 찾아내는 것이다.

                검사기법

                                - White Box : 코드(모듈)검사, 복잡하다, 개발자가 실행

                                                논리, 코드 오류를 검출

                                                기초 경로 검사

                                                복잡도 = 계산 화살표 - 노드수 +2

                                - Black Box : 기능 테스트, 사용자가 실행

                                                성능, 기능, 인터페이스 오류등을 검출

                                                동치 분할 검사, 경계값분석, 원인-효과검사, 오류예측검사, 비교검사

                검사 전략 : 개발은 역방향으로 테스트

                                - 분석 단계 : 시스템 테스트

                                - 설계 단계 : 통합테스트

                                                스터브 : 하위모듈을 임시 시험용모듈로 대체

                                                드라이버 : 제어모듈

                                - 구현 단계 : 단위테스트

                                - 유지보수 단계 : 시스템 테스트

                                - 알파 검사 : 사용자가 시험하고 개발자가 지켜봄

                                - 베타검사 : 실업무에서 사용자가 직접 시험

 

 

 

■ 유지 보수

                가장 많은 비용과 노력이 필요

                유지보수의 유형

                                - 수정보수 : 시스템을 운영하면서 검사단계에서 찾지 못한 오류 수정

                                - 적응보수 : 환경변화에 적응하는 유지보수 (서비스팩)

                                - 완전화보수 : 새로운기능을 추가, 성능개선, 가장 어렵다. 

                                - 예방보수

                목적

                                - 하자보수

                                - 환경적응

                                - 예방조치

                외계인코드 : 문서화과정이 없었던 유지보수가 어려운 옛날 프로그램

댓글(0)

Designed by JB FACTORY