관리 메뉴

나구리의 개발공부기록

1장 - 소프트웨어 개발 방법론 활용 핵심 요약 본문

2024정보처리기사 준비 정리(필기 - 시나공, 실기 - 수제비)/필기 5강 - 정보시스템 구축 관리

1장 - 소프트웨어 개발 방법론 활용 핵심 요약

소소한나구리 2024. 5. 7. 20:00

2024년도 시나공 필기 책 내용 정리 


섹션1. 소프트웨어 개발 방법론

 

1. 구조적 방법론

 

  • 정형화된 분석 절차에 따라 사용자 요구사항을 파악하여 문서화하는 처리(Process) 중심의 방법론
  • 복잡한 문제를 다루기 위해 분할과 정복(Divide and Conquer)원리를 적용함

2. 정보공학 방법론

 

  • 정보 시스템의 개발을 위해 계획, 분석, 설계 구축에 정형화된 기법들을 상호 연관성 있게 통합 및 적용하는 자료(Data)중심의 방법론
  • 업무 영역과 업무 시스템 설계 과정에 데이터베이스 설계를 위한 데이터 모델링으로 개체 관계도(E-R Diagram)을 사용함

3. 컴포넌트 기번(CBD)방법론

 

  • 기존의 시스템이나 소프트웨어를 구성하는 컴포넌트를 조합하여 하나의 새로운 애플리케이션을 만드는 방법론
  • 컴포넌트의 재사용(Reusability)이 가능하여 시간과 노력을 절감할 수 있음
  • 새로운 기능을 추가하는 것이 간단하여 확장성이 보장됨
  • 유지 보수 비용을 최소화하고 생산성 및 품질을 향상시킬 수 있음
  • 분석 단계에서 사용자 요구사항 정의서가 산출됨

섹션2. S/W 공학의 발전적 추세

 

1. 소프트웨어 재사용의 이점

 

  • 개발 시간과 비용 단축
  • 소프트웨어 품질 향상
  • 소프트웨어 개발의 생산성 향상
  • 시스템 명세, 설계 코드 등 문서 공유

2. 소프트웨어 재사용 방법

 

  • 합성 중심 : 전자 칩과 같은 소프트웨어 부품(블록, 모듈)을 만들어서 끼워 맞추어 소프트웨어를 완성시키는 방법
  • 생성 중심 : 추상화 형태로 쓰여진 명세를 구체화하여 프로그램을 만드는 방법

3. 소프트웨어 재공학의 주요 활동

 

  • 분석(Analysis) : 기존 소프트웨어의 명세서를 확인하여 소프트웨어의 동작을 이해하고 재공학할 대상을 선정하는 활동
  • 재구성(Restructuring) : 기존 소프트웨어의 구조를 향상시키기 위하여 코드를 재구성하는 활동
  • 역공학(Reverse Engineering) : 기존 소프트웨어를 분석하여 소프트웨어 개발 과정과 데이터 처리 과정을 설명하는 분석 및 설계 정보를 재발견하거나 다시 만들어 내는 활동
  • 이식(Migration) : 기존 소프트웨어를 다른 운영체제나 하드웨어 환경에서 사용할 수 있도록 변환하는 활동

4. CASE 사용의 이점

 

  • 소프트웨어 개발 기간을 단축하고 개발 비용을 절감할 수 있음
  • 자동화된 기법을 통해 소프트웨어 품질이 향상됨
  • 소프트웨어의 유지보수를 간편하게 수행할 수 있음
  • 소프트웨어 모듈의 재사용성이 향상됨

5. CASE의 주요 기능

 

  • 소프트웨어 생명 주기 전 단계의 연결
  • 다양한 소프트웨어 개발 모형 지원
  • 그래픽 지원
  • 모델들의 모순 검사 및 오류 검증
  • 자료 흐름도 작성

6. CASE의 원천 기술

 

  • 구조적 기법
  • 프로토타이핑
  • 자동 프로그래밍
  • 정보 저장소
  • 분산처리

섹션3. 상향식 비용 산정 기법

 

1. LOC 기법

 

  • 소프트웨어 각 기능의 원시 코드 라인 수의 비관치, 낙관치, 기대치를 측정하여 예측치를 구하고 이를 이용하여 비용을 산정하는 기법
  • 산정공식
노력(인월) 개발 기간 X 투입인원, LOC / 1인당 월 평균 생산 코드 라인 수
개발 비용 노력(인월) X 단위 비용(1인당 월평균 인건비)
개발 기간 노력(인월) / 투입 인원
생산성 LOC / 노력(인월)

섹션4. 수학적 산정 기법

 

1. 수학적 산정 기법의 종류

 

  • COCOMO(COnstructive COst MOdel)모형
  • Putman 모형
  • 기능 점수(Function Point) 모형

2. COCOMO 모형 개요

 

  • 보헴(boehm)이 제안한 것으로 원시 프로그램의 규모(LOC)에 의한 비용 산정 기법
  • 비교적 작은 규모의 프로젝트 기록을 통계 분석하여 얻은 결과를 반영한 모델
  • 비용 산정 결과는 프로젝트를 완성하는데 필요한 노력(Man-Month)으로 나타남

3. COCOMO의 소프트웨어 개발 유형

 

  • 조직형(Organic Model) : 기관 내부에서 개발된 중/소 규모의 소프트웨어로 일괄 자료 처리나 과학기술 계산용, 비즈니스 자료 처리용으로 5만(50KDSI)라인 이하의 소프트웨어를 개발하는 유형
  • 반분리형(Semi-Detached Model) : 조직형과 내장형의 중간형으로 트랜잭션 처리 시스템이나 운영체제, 데이터 베이스 관리 시스템 등의 30만(300KDSI) 라인 이하의 소프트웨어를 개발하는 유형
  • 내장형(Embedded Model) : 내장형은 초대형 규모의 트랜잭션 처리 시스템이나 운영체제 등의 30만(300KDSI)라인 이상의 소프트웨어를 개발하는 유형

4. Putman 모형

 

  • 소프트웨어 생명 주기의 전 과정 동안에 사용될 노력의 분포를 가정해 주는 모형
  • 시간에 따른 함수로 표현되는 Rayleigh-Norden 곡선의 노력 분포도를 기초로 함

5. 기능 점수(FP) 모형 - 가중치 증대 요인

 

  • 자료 입력(입력 양식)
  • 정보 출력(출력 보고서)
  • 명령어(사용자 질의수)
  • 데이터 파일
  • 필요한 외부 루틴과의 인터페이스

6. 자동화 추정 도구 - SLIM

 

  • Rayleigh-Norden 곡선과 Putman 예측 모델을 기초로 하여 개발된 자동화 추정 도구

섹션5. 프로젝트 일정 계획

 

1.PERT(프로그램 평가 및 검토 기술)

 

  • 프로젝트에 필요한 전체 작업의 상호 관계를 표시하는 네트워크로 각 작업별로 낙관적인 경우, 가능성이 있는경우, 비관적인 경우로 나누어 각 단계별 종료 시기를 결정하는 방법
  • 결정 경로, 작업에 대한 경계 시간, 작업 간의 상호관련성 등을 알 수 있음

2. CPM(임계 경로 기법)

 

  • 프로젝트 완성에 필요한 작업을 나열하고 작업에 필요한 소요 기간을 예측하는데 사용하는 기법
  • 경영층의 과학적인 의사 결정을 지원
  • 효과적인 프로젝트의 통제를 가능하게 해줌

3. 임계 경로 소요 기일

 

  • 임계 경로는 최장 경로(굵은 선)을 의미함

4. 간트 차트(Gantt Chart)

 

  • 프로젝트의 각 작업들이 언제 시작하고 언제 종료되는지에 대한 작업 일정을 막대 도표를 이용하여 표시하는 프로젝트 일정표
  • 수평 막대의 길이는 각 작업(Task)의 기간을 나타냄

섹션6. 소프트웨어 개발 방법론 결정

 

1. 프로젝트 관리

 

  • 주어진 기간 내에 최소의 비용으로 사용자를 만족시키는 시스템을 개발하기 위한 전반적인 활동을 의미

2. 위험 관리

 

  • 프로젝트 추진 과정에서 예상되는 각종 돌발 상황(위험)을 미리 예상하고 이에 대한 적절한 대책을 수립하는 일련의 활동을 의믜
  • 위험 관리 절차 : 위험 식별 -> 위험 분석 및 평가 -> 위험 관리 계획 -> 위험 감시 및 조치

섹션7. 소프트웨어 개발 표준

 

1. ISO/IEC 12207

 

  • 기본 생명 주기 프로세스 : 획득, 공급, 개발, 운영, 유지 보수 프로세스
  • 지원 생명 주기 프로세스 : 품질 보증, 검증, 확인, 활동 검토, 감사, 문서화, 형상 관리, 문제 해결 프로세스
  • 조직 생명 주기 프로세스 : 관리, 기반 구조, 훈련, 개선 프로세스

2. CMMI의 소프트웨어 프로세스 성숙도 5단계

 

  • 초기(Initail)
  • 관리(Managed)
  • 정의(Defined)
  • 정량적 관리(Quantitatively Managed)
  • 최적화(Optimizing)

3. SPICE(소프트웨어 처리 개선 및 능력 평가 기준)

 

  • 정보 시스템 분야에서 소프트웨어의 품질 및 생상선 향상을 위해 소프트웨어 프로세스를 평가 및 개선하는 국제 표준

4. SPICE의 프로세스 수행 능력 단계

 

  • Level 0 - 불완전(Incomplete)
  • Level 1 - 수행(Performed)
  • Level 2 - 관리(Managed)
  • Level 3 - 확립(Established)
  • Level 4 - 예측(Predictable)
  • Level 5 - 최적화(Optimizing)

섹션8. 소프트웨어 개발 방법론 테일러링

 

1. 소프트웨어 개발 방법론 테일러링의 개요

 

  • 프로젝트 상황 및 특성에 맞도록 정의된 소프트웨어 개발 방법론의 절차, 사용기법 등을 수정 및 보완하는 작업
  • 관리적 측면 : 최단기간에 안정적인 프로젝트 진행을 위해 사전 위험을 식별하고 제거하는 작업
  • 기술적 측면 : 프로젝트에 최적화된 기술 요소를 도입하여 프로젝트 특성에 맞는 최적의 기법과 도구를 찾아가는 작업

2. 소프트웨어 개발 방법론 테일러링 고려사항

 

  • 내부적 기준

    • 목표 환경 : 시스템의 개발 환경과 유형
    • 요구사항 : 개발, 운영, 유지보수 등
    • 프로젝트 규모 : 비용, 인력, 기간 등
    • 보유 기술 : 프로세스, 개발 방법론, 산출물, 구성원의 능력 등
  • 외부적 기준

    • 법적 제약사항 : 프로젝트별로 적용될 IT Compliance
    • 표준 품질 기준 : 금융, 제도 등 분야별 표준 품질 기준

섹션9. 소프트웨어 개발 프레임워크

 

1. 소프트웨어 개발 프레임워크

 

  • 프레임워크(Framework)는 소프트웨어 개발에 공통적으로 사용되는 구성 요소와 아키텍처를 일반화하여 손쉽게 구현할 수 있도록 여러 가지 기능들을 제공해주는 반제품 형태의 소프트웨어 시스템임
  • 선행 사업자의 기술에 의존하지 않은 표준화된 개발 기반으로 인해 사업자 종속성이 해소됨
  • 개발해야 할 애플리케이션의 일부분이 이미 내장된 클래스 라이브러리로 구현되어 있어 개발자는 이미 존재하는 부분을 확장 및 이용하는 것으로 소프트웨어를 개발할 수 있음

2. 프레임워크의 특성

 

  • 모듈화
  • 재사용성
  • 확장성
  • 제어의 역흐름