Ch1. Introduction

chaemin·2022년 5월 28일
0

Software Engineering

목록 보기
2/4

Software engineering의 필요성

  • 모든 나라의 경제는 소프트웨어에 의존하고 있다.
  • 더 많은 시스템이 소프트웨어로 제어된다.
  • 소프트웨어의 비용(expenditure)은 GNP의 의미있는 부분이다.

Software 란?

: Computer programs and *associated documentation.

소프트웨어는 컴퓨터 프로그램과 관련된 문서를 말한다.
*관련 문서들, 라이브러리, 지원 웹 사이트, 환경 설정 데이터, 사용자 메뉴얼 등

소프트웨어 제품은 특정 고객을 위해 개발되거나, 또는 일반 시장(general market)을 위해 개발된다.

Software products

  1. Generic products
    구매를 원하는 모든 고객을 대상으로 팔기 위한 *Stand-alone systems
    *stand-alone : 다른 장치의 도움 없이 독립적으로 기능 구현
    ex) 한글, CAD software
  2. Customized products
    특정 고객의 요구를 충족하기 위한 소프트웨어
    ex) embedded control systems, air traffic control software

Product specification

Generic products와 Customized products의 가장 큰 차이점은 소프트웨어 사양(Software specification)의 제어에 있다.

  • Generic products <- by software developer
  • Customized products <- by the customer

소프트웨어의 기능과 그 기능을 바꾸는 결정을 개발자가 하는지, 아니면 고객의 요구로 하는지의 차이점이다.
*Generic products로 개발 시작 후 customized products처럼 특정 고객의 요구사항을 반영하는 경우도 있다.


Software costs

소프트웨어 비용은 컴퓨터 시스템 비용보다 우세하다.

*하드웨어 비용 < 소프트웨어 비용
*소프트웨어 비용 = 개발 비용 + 유지 보수 비용

또한 소프트웨어 비용은 개발보다 유지 비용이 더 크다. 시스템의 수명이 길 수록, 유지 비용은 개발 비용보다 여러 차례 들 수 있다.

소프트웨어 공학은 비용 효율적인 소프트웨어 개발과 관련이 있다.


Software project failure

소프트웨어 프로젝트의 실패요인

  1. 시스템 복잡성의 증가
    새로운 소프트웨어 공학 기술로 크고 더 복잡한 시스템의 개발 그리고 요구사항의 변경에 대처할 수 있다.
    시스템은 아무리 크고 복잡한 시스템일지라도 빠른 개발과 출시를 목표로 하고, 또한 시스템은 이전에 불가능하다고 여겨진 능력을 가져야 한다.
  1. 소프트웨어 공학 사용의 실패
    소프트웨어 공학 체계와 기술을 사용하지 않고 컴퓨터 프로그램을 작성하는 것이 더 쉽다. 많은 업체들이 그들의 제품과 서비스를 곧바로 소프트웨어 개발부터 시작한다. 그 결과, 소프트웨어가 더 비싸지고 신뢰성이 낮아진다.

Software engineering

  • 소프트웨어 공학은 전문적인 소프트웨어 개발을 위한 이론, 체계 그리고 도구들과 관련이 있다.
  • 소프트웨어 공학은 소프트웨어 개발의 모든 면과 관련된 공학의 한 분야이다.
  • 소프트웨어 공학 activities
    : Software specification, software development, software validation and software evolution.
profile
컴퓨터공학과 재학생

0개의 댓글