소프트웨어 공학 론

mtak·2023년 3월 6일
0

소프트웨어

  • 코드
    * 프로그램의 일부
  • 프로그램
    * 실행 가능한 컴퓨터 명령어
  • 소프트웨어
    * 실행가능한 컴퓨터 명령어 + 프로그램을 만들기 위해 작성한 문서 (for 분석, 디자인, 계획 etc…)

소프트웨어의 특징

  • complexity
    * 같은 모듈이 아닌 다양한 모듈들로 구성된다.
  • conformity
    * 요구사항에 맞춰서 만들어야 한다.
  • changeability
    하드웨어 성능이 업그레이드 되면서, sw도 그에 맞춰 업그레이드 된다.
    오류를 발견해서 수정
    * 새로운 변경사항 반영
  • invisibility
    * 코드만 봐서는 sw 구조를 쉽게 파악하기 어렵다
  • 물론 초기에는 오류가 많지만,
    hw는 시간이 지나면 오류가 증가하고, => wear out
    sw는 시간이 지날수록 오류가 감소하지만, 수정이 필요한 이슈가 생길 때 마다 오류의 증가와 감소가 반복해서 나타난다.

소프트웨어의 종류

  • Custom sw
    * 고객이 한명이다.
  • Package sw(commercial off the shelf. - COTS)
    * 누구나 사용 가능
  • embedded św
    * 범용이 아닌 한가지 목적을 이루기 위한 장치에 들어가는 sw
  • SaaS(Software as a Service)
    브라우저에서 어떤 웹사이트에 접속해서 사용하는 sw
    sw를 컴퓨터에 설치히지 않아도 된다.
    * ex.gmail

소프트웨어 공학이 필요한 이유

  • sw개발은 개개인의 지적 사고력에 의존적임에도 불구하고, 공학적인 방법으로 접근하자는 취지.

sw 사업에서 생기는 전형적인 문제는?

  • 높은 비용
  • 일정 미뤄짐
  • 낮은 안정성
  • 유지보수

    MM (=man-month)
    한 개발자의 한달 코드 생산력

소프트웨어 공학

  • 개발, 운영, 유지 보수, 폐기(sw 의 주기)에 대한 체계적인 접근
  • 최소한의 비용으로 최대한의 sw를 만드는 것.

소프트웨어 문제

  • scale
  • 퀄러티와 생산력
  • 지속성 & 재생산성
  • 변화에 얼마나 잘 적응되나.

소프퉤어 공학의 요수

  • 기술
  • 사람
  • 절차

소프트웨어 공학의 접근

  • 개발 절차
    요구사항 분석
    설계
    구현
    테스팅
  • 품질 보장(software quality assurance-SQA)
    verification
    설계대로 짰어?
    validation
    사용자 요구사항 만족해?
    * testing
  • 관리
    * metrics

소프트웨어 공학의 범위(software engineering body of knowledge - SWEBOK)

profile
노는게 젤 조아. 친구들 모여라!!

0개의 댓글