SW와 HW의 차이

  1. SW는 수정이 쉽다.
  2. SW는 낡지 않고 유지보수 비용이 HW에 비해 많이 든다.
  3. SW의 비가시성으로 개발 진행 상태를 알기 어렵다.
  4. SW는 요구사항의 정의가 어렵다.

SW의 특징

  1. 인재가 소프트웨어의 핵심이다.
  2. 소프트웨어가 기기의 원가 경쟁력을 경쟁한다.
  3. 소프트웨어는 재사용이 가능하다.

SW공학의 4가지 중요 요소

  1. 방법 - 프로젝트 계획 수립, 자료구조, 알고리즘, 코딩, 테스트, 유지보수...
  2. 도구 - 생산성, 일관성을 목적으로 자동화/반자동화시킨 도구
  3. 절차 - 방법 + 도구
  4. 사람 - 사람에 대한 의존성이 큼

SW 생명주기를 선정하는 법

  1. 프로젝트의 리스크와 불확실성을 이해하고 리스크를 최소한으로 할 수 있어야 함.

SW 개발 방법

  1. 요구사항 분석
    • 사용자의 요구 파악, 무엇을 개발할 것인지 확실히 결정
    • 품질 저하, 비용 초과, 개발 기간 및 개발 비용을 감소시킬 수 있는 단계
  1. 설계
    • 물리적 실현의 첫 단계
    • 시스템의 안정감에 영향을 주는 단계
    • 서브 시스템들로 이루어지는 시스템 구조를 결정
    • 품질에 직접적 영향을 줌.
  1. 구현
    • 요구사항, 지침서에 맞게 코딩해야 함.
    • 코딩 표준을 정함
  1. 테스팅
    • 초기의 목적과 맞게 작동하는지 검사
    • 품질 보증을 위하여 결함을 찾아내는 단계

SW 관리

SW 개발이 체계적으록 가능하도록 함

  1. 소프트웨어 유지 관리
    • 고객의 변경 사항에 대응
  1. 소프트웨어 요구 관리
    • 요구사항 관리의 목적
      1. 의사소통 - 무엇을 왜 해야하는지
      2. 협업 - 협업 수단
      3. 검증 - 계획한 일의 완성도를 확인
  1. 소프트웨어 형상 관리
    • 변경의 체계적 관리
  1. 소프트웨어 품질 관리
    • 대표적인 품질 특성
      1. 기능성
      2. 신뢰성
      3. 사용성
      4. 효율성
      5. 유지보수성
      6. 이식성

나선형 모델과 애자일 모델

  1. 나선형 모델의 특징
    1. 프로토타입을 최종 소프트웨어로 지속적으로 발전시킴
    2. 위험관리가 중심인 SW생명주기 모델
    3. 대규모 시스템에 적합하며 현실적인 개발방법
  1. 나선형 모델의 수립 단계
    1. 계획 -> 위험 분석 -> 개발 -> 고객 평가
  1. 애자일 모델과 비교
    1. 나선형 모델은 문서를 통한 개발방법, 애자일은 실질적 코딩을 통한 개발 방법
    2. 나선형 모델은 위험을 관리하고 최소하하는 방법이지만 애자일은 품질의 저하 없이 변화를 수용
    3. 나선형은 대형 소프트웨어에 적합하지만 애자일은 중/소단위 소프트웨어에 적합

나선형 모델
https://bongbonge.tistory.com/entry/%EB%82%98%EC%84%A0%ED%98%95-%EB%AA%A8%EB%8D%B8Spiral-Model

애자일 모델
http://blog.rightbrain.co.kr/?p=5810