Information Technology

소프트웨어 개념과 소프트웨어 개발 단계(Software Life Cycle)

coinAA 2021. 5. 8.

 

목차

    소프트웨어 이해하기

    소프트웨어의 정의

    소프트웨어의 사전적 의미는 컴퓨터 시스템을 효율적으로 운영하고 제어하기 위해 개발된 프로그램의 총칭이며, 컴퓨터를 관리하는 시스템 소프트웨어와 문제 해결에 이용되는 다양한 형태의 응용 소프트웨어가 있다.


    소프트웨어의 개념

    소프트웨어는 현재 사회에 대부분의 분야의 자동화, 편리함을 제공하기 위해 사용되고 있으며, 많은 비용을 들여 하드웨어만으로 설계하여 사용하던 과거와는 다르게 소프트웨어를 하드웨어와 접목시킴으로써 많은 비용을 절감하고 있다.

     

    소프트웨어란 기계(하드웨어)의 단순 동작을 적은 자본을 사용하여 좀 더 복잡하며 세밀하고 정규하게 작업할 수 있도록 해주는 것을 소프트웨어라고 생각하면 된다.

     

    소프트웨어의 특징

    소프트웨어의 4가지 대표 특징 : 복잡성, 순응성 변경성, 비가시성으로 분류된다.

    • 복잡성
      • 자동화하려는 대상이 복잡할 뿐만 아니라 수많은 내부 요소들로 이루어져 상호작용이 많고 복잡하다.
    • 순응성
      • 요구나 환경, 데이터 변화에 따라 적절히 변형되는 특징이 있다.
    • 변경성
      • 문자로 구성된 프로그램이므로 쉽게 변경할 수 있고 개발 과정에 자주 변경됨 하지만 복잡한고 규모가 커지면 간단한 수정이라도 관련된 요소를 연쇄적으로 변경해야 하므로 여려운 작업이 될 수 있다.
    • 비가시성
      • 종이나 자기 디스크와 같은 유형 매체에 저장하지만, 개념적이고 무형적이다. 빌딩이나 자동차는 그 생산물을 보고 그 구조를 쉽게 파악할수 있지만 소프트웨어는 그 구조가 코드 안에 숨어 있어서 쉽게 드러나지 않는다. 

    그 밖에 특징은 극히 적은 비용으로 소프트웨어를 복제할 수 있는 특징이 있고, 만들어진 소프트웨어는 언제나 오류 수정과 기능 추가 등이 가능하며, 시간이 지날수록 소모되고 노후되는 하드웨어와는 다르게 소프트웨어는 저장되어 있는 저장공간에 이상이 생기지 않는다면 마모되거나 소멸되지 않는다.


    소프트웨어의 종류

    소프트웨어의 종류는 총 3가지의 종류로 분류된다.

    • 주문형 소프트웨어
      • 특정 고객의 수요를 만족하기 위해 개발된 소프트웨어이며, 다른 사용자 또는 다른 기관에서 사용 시에는 불필요하게 된다.
      • 개발, 의뢰 당시에 해당 용도 환경 등에 맞게 설계하여 제작하기 때문에 다른 사용자들에게는 불필요하다.
    • 페키지형 소프트웨어
      • 공개된 사장에 내놓고 판매하기 위한 것으로 범용 컴퓨터에서 실행되어 기능을 수행한다. 패키지형 소프트웨어는 전적으로 시장의 요구에 의하여 제작되며, 범용으로 사용되기 위해 만들어지기 때문에 특정 기관에 용도가 알맞지 않을 수 있다.
      • 다른 말로는 COTS(Commerial Off-The-Self) 소프트웨어라고 불리기도 한다.
    • 임베디드 소프트웨어
      • 하드웨어 시스템에 내장되어 결합되는 펌웨어를 뜻하며 일반적인 소프트웨어와 유사하지만 개발 방법과 프로세스가 달라 별도의 분야로 분류한다.

     

    시스템의 사전적 정의

    필요한 기능을 실현 시키기 위해 관련 요소를 어떠한 법칙에 따라 조합한 집합체이다.

     

    시스템의 성질

    시스템은 아래의 4가지의 중요한 성질을 가지고 있다.

    • 서브 시스템
      • 시스템은 밀접히 관련된 여러 서브 시스템들로 구성된다.
    • 기능적 분할
      • 시스템은 규모가 작은 부속 서브 시스템들로 나눌 수 있다.
    • 시스템 경계
      • 시스템은 어떤 것이건 시스템과 주변 환경을 구분할 수 있는 경계가 있다.
      •  시스템과 주변 환경을 구분할 수 있는 경계가 입력과 출력이 만나는 곳이다.
    • 자동화 경계
      • 시스템의 자동화된 부분과 수동 작업 부분을 나누는 경계이다.

    소프트웨어 개발 단계

    소프트웨어 개발은 명세화 > 구현 > 검증 > 유지보수 순으로 4가지의 단계로 이루어진다. 

    • 명세화
      • 소프트웨어가 작동해야할 기능이나 성능뿐만 아니라 제품의 원가, 위험 및 일정 등 요구사항을 구체화 함으로써 개발 실패의 확률을 현저히 줄여준다.
    • 구현
      • 명세 조건에 맞게 설계하여 프로그래밍 작업을 하는 단계이다. 이 작업을 코딩이라고 일컫는다.
    • 검증
      • 구현된 소프트웨어가 고객의 안전성, 성능 등 요구조건이 일치하는지 확인한다.
    • 유지보수
      • 개발된 이후 사용자가 사용함에 있어 환경에 변화나 결함(오류)가 있다면 결함문제를 파악하여 수정하거나 환경에 맞게 수정하기도 한다.

    댓글