티스토리 뷰

728x90
반응형
콱 씨

목차
166. 소프트웨어 개발 방법론 (★★☆)
167. SW 공학 발전적 추세 (★★★)
168. 비용 산정 기법 (★☆☆)
169. 비용 산정 기법 - 하향식 (★☆☆)
170. 비용 산정 기법 - 상향식 (★★★)
171. 수학적 산정 기법 (★★★)
172. 프로젝트 일정 계획 (★★☆)
173. 소프트웨어 개발 방법론 결정 (★★☆)
174. 소프트웨어 개발 표준 (★★★)
175. 소프트웨어 개발 방법론 테일러링 (★★☆)
176. 소프트웨어 개발 프레임워크 (★★★)

166. 소프트웨어 개발 방법론 (★★☆)

  • 효율적으로 수행하려는 과정에서 필요한 각종 기법, 도구 체계적으로 정리해 표준화 한 것 / 목적 - SW 생산성, 품질 향상 / 구조적 방법론, 정보공학 방법론, 객체지향 방법론, 컴포넌트 기반 방법론, 애자일 방법론, 제품 계열 방법론 등
  • 구조적 방법론 : 정형화된 분석 절차에 따라 요구사항 파악해 문서화하는 처리 중심 방법론 / ~1960 많이 쓰임 / 쉬운 이해, 검증 가능한 프로그램 코드 생성 목적 / 분할&정복 원리 적용
    • 타당성 검토 → 계획 → 요구사항 → 설계 → 구현 → 시험 → 운용/유지보수
  • 정보공학 벙법론 : 정보 시스템 개발 위해 계획, 분석, 설계, 구축에 정형회된 기법들을 상호 연관성 있게 통합, 적용하는 자료 중심 방법론 / 대규모 정보시스템 구축에 적합 / 개체 관계도(ERD) 사용
    • 정보 전략 계획 수립 → 업무 영역 분석 → 업무 시스템 설계 → 업무 시스템 구축
  • 객체지향 방법론) 현실 개체를 기계 부품처럼 하나의 객체로 만들어 개발 시 조립하듯이 객체들을 조립해 필요한 SW 구현하는 방법론 / 구조적 기법 문제점 해결책 / 자주 사용되는 모델링 언어 - 패키지 다이어그램, 배치 다이어그램, 상태 전이도 등
    • 요구 분석 → 설계 → 구현 → 테스트, 검증 → 인도
  • 컴포넌트 기반(CBD, Component Dased Design) 방법론 : 기존 시스템, SW 구성하는 컴포넌트 조합 ~> 하나의 새로운 앱 만드는 방법론 / 재사용 가능, 비용 절감 / 새로운 기능 추가 간단... 확장성 보장
    • 개발 준비 → 분석 → 설계 → 구현 → 테스트 → 전개 → 인도
  • 애자일 방법론 : 요구사항 유연히 대응할 수 있게 일정한 주기 반복하며 개발과정 진행
    • 사용자 스토리 → [계획 → 개발 → 승인테스트] 반복
  • 제품 개열 방법론 : 특정 제품에 적용하고픈 공통 기능 정의해 개발 / 임베디드 SW에 적합 / 영역&응용 연계를 위해 제품의 요구사항, 아키텍처, 조립 생산 필요
    • 영역 공학) 여역 분석, 영역 설계, 핵심 자산 구현
    • 응용 공학) 제품 요구 분석, 제품 설계, 제품 구현

167. SW 공학 발전적 추세 (★★★)

  • SW 재사용 개요) 이미 개발되어 인정받은 SW의 전체/일부분을 다른 SW 개발, 유지에 사용 / 생산성, 품질 굿 / 비용, 위험 감소 / 지식 공유
  • 재사용 방법
    • 합성 중심(Composition-Based) : 블록(전자 칩과 같은 SW 부품)을 만들어 끼워 맞춰 SW 완성... 블록 구성 방법이라고도 함
    • 생성 중심(Generation-Based) : 추상화 형태로 쓰여진 명세 구체화해 프로그램 만듦... 패턴 구성 방법
  • 재공학의 개요) 새로운 요구에 ㅁ자도록 기존 시스템을 이용해 보다 나은 시스템 구축, 성능 향상 / 개조&개선 통해 유지보수성, 품질 향상 ~> 예방 유지보수 측면에서 SW위기 해결 방법 / 수명 연장 / 오류, 비용 절감
    • 분석 : 기존 SW의 명세서 확인 ~> SW 동작 이해, 재공학할 대상 선정하는 활동
    • 재구성 : 기존 SW의 구조 햐상 위해 코드 재구성하는 활동... 기능, 외적 동작은 안 바뀜
    • 역공학(Reverse Engineering) : 기존 SW 분석 ~> SW 개발 과정, 데이터 처리 과정 설명하는 분석&설계 정보 ㅈ재발견&다새 생성 / 기존 코드 복구, 기존 SW 구성요소와 그 관계 파악해 설계도 추출
    • 이식(Migration) : 다른 OS, HW 환경에서 사용할 수 있도록 변환
  • CASE 개요(Computer Aided SW Engineering) : SW 개발 과정에서 사용되는 요구 분석, 설계, 구현, 검사&디버깅 과정 전체/일부를 컴퓨터 전용 SW 도구 사용해 자동화 하는 것 / 공통 모듈 사용 ~> 재사용성 굿 / 모듈관리 자동 수행 ~> 유지보수 간편 / SW개발도구 + 방법론 => 정형화된 구조, 방법을 개발에 적용해 생산성, 품질향상 구현하는 기법 / 자동화 도구 지원, 개발의 표준화 지향, 자동화 이점 얻을 수 있다!
    • 주요 기능) SW 생명주기 전 단계의 연결, 다양한 SW 개발 모형 지원, 그래픽 지원, 모델들의 모순 검사&오류검증, 자료흐름도 작성 등
    • 원천 기술) 구조적 기법, 프로토타이핑, 자동 프로그래밍, 정보 저장소, 분산처리

168. 비용 산정 기법 (★☆☆)

  • 결정 요소) 소프트웨어, 투입 자원, SW 생산성에 따라 결정
    • 프로젝트 요소) 제품 복잡도 / 시스템 크기 / 요구되는 신뢰도
    • 자원 요소) 인적 자원 / 하드웨어 자원 / 소프트웨어 자원
    • 생산성 요소) 개발자 능력 / 개발 기간

169. 비용 산정 기법 - 하향식 (★☆☆)

  • 프로젝트 전체 비용 산정 후 각 작업별로 비용 세분화 / 비과학적 방법 / 전문가 감정 기법, 델파이 기법
  • 전문가 감정 기법) 경험 많은 여러 명의 전문가한테 비용 산정 의뢰 / 장 - 편리&신속, 새 프로젝트엔 전 프로젝트와 다른 요소가 있다는 것을 간과 가능 / 단 - 관련 프로젝트 없을 수 있음, 주관적일 수 있음
  • 델파이 기법) 주관적 편견 보완 ~> 많은 전문가 의견 종합해 산정... 한명의 조정자도 필요

170. 비용 산정 기법 - 상향식 (★★★)

  • 세부 작업 단위별로 비용 산정 후 집계 해 전체 비용 산정하는 것 / LOC, 개발 단계별 인월수 기법, 수학적 산정 기법
  • LOC(원시 코드 라인수, source Line of Code) : SW 각 기능의 원시 코드 라인 수의 비관치(많이 측정된 코드 라인 수), 낙관치(적게), 기대치(측정 평균) 측정해 예측치 구함... 측정 쉬움 / 생산성, 노력, 개발 기간 등의 비용 산정
    • 예측치 = (a+4m+b)/6 [a:낙관치, b:비관치, m:기대치(중간치)
    • 노력(인월) = 개발기간 X 투입 인원 = LOC / 1인당 월평균 생산 코드 라인 수
    • 개발 비용 = 노력(인월) X 단위 비용(1인당 월평균 인건비)
    • 개발 기간 = 노력(인월) / 투입
    • 인원
    • 생산성 = LOC / 노력(인월)
  • 개발 단계별 인월수(Effort Per Task) 기법 : LOC 보완, 각 기능 구현시키는데 필요한 노력을 생명 주기의 각 단계별로 산정... LOC보다 정확함

171. 수학적 산정 기법 (★★★)

  • 개요) 상향식 비용 산정 기법 / 경험적 추정 모형, 실험적 추정 모형이라고도 함 / 개발 비용 산정의 자동화 목표 / COCOMO모형, Putnam모형, 기능 점수(FP) 모형 등
  • COCOMO모형(코코몽?) : 보헴이 제안, 원시 프로그램 규모 LOC에 의한 산정 기법 / LOC 예측 후 이를 SW 종류에 따라 다르게 책정되는 비용 산정 방정식에 대입해 비용 산정 / 비교적 작은 규모 프로젝트(중소규모)에 적합 / 같은 프로그램이어도 성격에 따라 비용 다르게 선정 / 비용 산정 결과 - 프로젝트를 완성하는데 필요한 노력(Man-Month)로 나타남
    • 개발 유형
      • 조직형(Organic Mode) : 기관 내부에서 중/소 규모의 SW로 일괄 자료 처리, 과학 기술 계산용, 비즈니스 자료 처리용으로 5만라인 이하 SW 개발하는 유형 / 사무처리, 업무, 과학 응용 SW용에 적합
        • 노력(MM) = 2.4 * (KDSI)^1.05
        • 개발 기간(TDEV) = 2.5 * (MM)^0.38 
          • KDSI : 전체 라인 수를 1000단위로 묶은 것
      • 반분리형(Semi-Detached Mode) : 조직형과 내장형의 중간형... 트랜젝션 처리 시스템, OS, DBMS 등 30만 라인 이하의 SW를 개발하는 유형 / 컴파일러, 인터프리터 같은 유틸리티에 적합
        • 노력(MM) = 3.0 * (KDSI)^1.12
        • 개발 기간(TDEV) = 2.5 * (MM)^0.35
      • 내장형(Embedded Mode) : 초대형 규모 트랜잭션 처리 시스템, OS 등의 30만 이상 SW 개발하는 유형 / 신호기 제어 시스템, 미사일 유도 시스템, 실시간 처리 시스템 등의 시스템 프로그램 개발에 적합
        • 노력(MM) = 3.6 * (KDSI)^1.20
        • 개발기간(KDSI) = 2.5 * (KDSI)^0.32
  • Putnam 모형 : SW 생명 주기의 전 과정 동안에 사용될 노력의 분포를 가정해주는 모형 / 생명 주기 예측 모형 / Rayleigh-Norden 곡선의 노력 분포도 기초 / 대형프로젝트 / 개발 기간 늘수록 인원 노력 감소
    • 개발노력(MM) = L^3 / (Cvk)^3 * Td^4 (L:원시코드라인수, Td:개발기간, Cvk:환경상수)
  • 기능 점수(FP) 모형 : 알브레히트가 제안, SW기능을 증대시키는 요인별로 가중치 부여&합산 ~> 총 기능 점수 산출해 총 기능 점수, 영향도 이용해 FP 구한 후 이용해서 비용 산정
    • 기능점수(FP) = 총 기능 점수 * [0.65 + (0.1 * 총 영향도)]
    • SW 기능 증대 요인) 자료입력(입력양식) / 정보 출력(출력 보고서) / 명령어(사용자 질의수) / 데이터 파일 / 필요한 외부 루틴&인터페이스
  • 자동화 추정 도구) SLIM : Rayleigh-Norden곡선 + Putnam 예측 모델 기초 / ESTIMACE : FP모형 기초

172. 프로젝트 일정 계획 (★★☆)

  • PERT(Program Evaluation and Review Technique, 프로그램 평가 및 검토 기술) : 프로젝트에 필요한 전체 작업의 상호관계를 표시하는 네트워크 / 과거 경험이 없어 예측하기 어려운 SW에서 사용 / 간선에 낙관, 기대, 비관치 표시 / 결정 경로, 작업에 대한 경계 시간, 작업 간의 상호 관련성을 알 수 있음
    • 작업 예측치 = {(비관치+4) x 기대치 + 낙관치} / 6
    • 평방 편차 = [(비관치-낙관치) / 6]^2
  • CPM(Critical Path Method, 임계 경로 기법) : 프로젝트 완성에 필요한 작업 나열, 소요기간 예측 시 사용하는 기법/ 병행 작업 가능하도록 계획 가능, 이를 위한 자원 할당도 가능 / 임계경로 - 최장 경로(굵은선)
    • 일정 계획 순서) 프로젝트 규모 추정 → 각 단계에서 필요한 작업 분할 → 각 작업의 상호 의존 관계를 CRM 네트워크로 나타냄 → 일정 계획을 간트 차트로 나타냄
  • 간트 차트(Gantt Chart) : 프로젝트의 각 작업들이 언제 시작되고 종료되는지에 대한 작업 일정을 막대 도표를 이용해 표시하는 프로젝트 일정표... 시간선 차트 / 중간 목표 미달성 시 이유&기간 예측 가능 / 사용자와 문제점, 예산 초과 지출 등 관리 가능 / 자원배치, 인원계획에 유용히 / CPM 넷 데이터를 바탕으로 간트차트 제작 ㄱㄴ / 주관적 수치에 기울어지기 쉬움

173. 소프트웨어 개발 방법론 결정 (★★☆)

  • 투입 자원, 일정, 비용, 품질, 위험 관리 등을 확인해 어떤 방법론으로 sW를 개발할지 결정하는 것
  • 프로젝트 관리) 일정, 비용, 인력, 위험, 품질 관리 => 기간 내 최소 비용으로 만족스런 개발을 위한 활동
  • SW 개발 방법론 결정 절차
    1. 프로젝트 관리, 재사용 현황을 SW 개발 방법론에 반영
    2. 개발 단계별 작업, 절차를 SW 생명주기에 맞춰 수립
    3. 결정된 SW 개발 방법론의 개발 단계별 활동 목적, 작업 내용, 산출물에 대한 매뉴얼 작성

174. 소프트웨어 개발 표준 (★★★)

  • ISO/IEC 12207 : ISO에서 만든 표준 SW 생명 주기 프로세스... SW 개발, 운영, 유지보수 등을 체계적으로 관리하기 위한 SW 생명 주기 표준 제공
    • 기본 생명 주기 프로세스 - 획득, 공급, 개발, 운영, 유지보수 프로세스
    • 지원 생명 주기 프로세스 - 품질 보증, 검증, 확인, 활동 검토, 감사, 문서화, 형상관리, 문제해결 프로세스
    • 조직 생명 주기 프로세스 - 관리, 기반 구조, 훈련, 개선 프로세스
  • CMMI(능력 성숙도 통합 모델, Capability Maturity Model Integration) : SW 개발 조직의 업무 능력, 조직의 성숙도 평가하는 모델.. 미국 카네기 멜론 대학 SW 공학 연구소(SEI)에서 개발
    • 초기(initial, 정의된 프로세스X) : 작업자 능력에 따라 성공여부 결정
    • 관리(Managed, 규칙화된 프로세스) : 특정한 프로젝트 내의 프로세스 정의, 수행
    • 정의(Defined, 표준화된 프로세스) : 조직 표준 프로세스 활용해 업무 수행
    • 정량적 괸리(Quantitatively Managed, 예측 가능한 프로세스) : 프로젝트를 정량적으로 관리, 통제
    • 최적화(Optimizing, 지속적 개선 프로세스) : 프로세스 역량 향상을 위해 지속적인 프로세스 개선
  • SPICE(소프트웨어 프로세스 개선 및 능력 평가) : 정보시스템 분야에서 SW 품질, 생산성 향상을 위해 SW 프로세스를 평가&개선하는 국제 표준... ISO/IEC 15504
    • 목적) 프로세스 개선 / 기관에서 지정한 가드라인을 개발 조직 스스로 평가 / 계약 체결 위해 수탁 기관의 프로세스 평가하는 것
      • 고객-공급자 프로세스 / 공학 프로세스 / 지원 프로세스 / 관리 프로세스 / 조직 프로세스
    • 프로젝트 수행 능력 단계) 0(불완전) / 1(수행) / 2(관리) / 3(확립) / 4(예측) / 5(최적화)

175. 소프트웨어 개발 방법론 테일러링 (★★☆)

  • 개요) 프로젝트 상황, 특성에 맞도록 정의된 SW 개발 방법론의 절차, 사용기법 등을 수정, 보완하는 작업... 예상되는 변화를 고려해 진행해야 함!
    • 관리적 측면) 최단기간에 안정적인 프로젝트 진행 위해 사전 위험 식별, 제거하는 작업
    • 기술적 측면) 최적화된 기술 요소를 도입해 프로젝트 특성에 맞는 최적의 기법, 도구 찾아감
    • 프로젝트 특징 정의 → 표준 프로세스 선정&검증 → 상위 수준의 커스터마이징 → 세부 커스터마이징 → 테일러링 문서화
  • 고려사항
    • 내부적 기준) 목표환경 / 요구사항 / 프로젝트 규모 / 보유기술
    • 외부적 기준) 법적 제약사항 / 표준 품질 기준
  • 테일러링 기법) 프로젝트 규모&복잡도에 따른 / 프로젝트 구성원 / 팀내 방법론 지원 / 자동화

176. 소프트웨어 개발 프레임워크 (★★★)

  • 개요) SW개발에 공통적으로 사용되는 구성요소, 아키텍처 일반화해 쉽게 구현할 수 있도록 여러가지 기능들 제공해주는 반제품 형태 SW / 선행 사업자 기술 의존 않는 표준화된 개발 기반... 사업자 종속성 해소 / 내장 클래스로 기능 구현되어 있음 / 예외처리, 트랜잭션 처리, 메모리공유, 데이터 소스 관리, 서비스 관리, 쿼리 서비스, 로깅 서비스, 사용자 인증 서비스 등 / 스프링 프레임워크, 전자정부 프레임워크, 닷넷 프레임워크 등
    • 스프링 프레임워크) 자바 플랫폼 위한 오픈 소스 경량형 애플리케이션 프레임워크  / 동적 웹사이트 개발 위함 / 전자정부 표준 프레임워크 기반 기술로 사용
    • 전자정부 프레임워크) 공공부문 정보화 사업 시 효율적인 정보 시스템의 구축을 지원하기 위해 필요한 기능, 아키텍처를 제공하는 프레임워크 / 표준화, 품질&재사용성 향상 목적
    • 닷넷 프레임워크) 윈도우즈 프로그램 개발, 실행환경 제공하는 프레임워크
  • 특성) 모듈화(Modularity) / 재사용성(Reusabiity) / 확장성(Extensibility) / 제어의 역흐름(Inverse of Control)

 

728x90
반응형
최근에 올라온 글
최근에 달린 댓글
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Total
Today
Yesterday
반응형