본문 바로가기
cs/sw 개발 프로세스

소프트웨어

by 귀월 2022. 11. 24.

1. 정의

 - 일을 처리할 순서와 방법을 지시하여 컴퓨터를 동작시키는 프로그램과 프로그램 수행 절차와 규칙, 관련 문서들의 통칭.

 - 소프트웨어는 크게 두가지로 나뉜다.

  • 응용 소프트웨어 : 사용자의 목적에 맞게 개발된 소프트웨어. ex) 한글, 워드, 엑셀 등..
  • 시스템 소프트웨어 : 하드웨어를 관리하고 응용 소프트웨어를 지원하는 소프트웨어. ex) linux, windows 등..

2. 특성

  • 비가시성(invisibility)

       - 완제품의 구조가 코드 내에 숨어있어 쉽게 파악하기 힘듦.

 

  • 무형의 논리적 요소

        - 개발 과정과 진행 상황을 쉽게 파악하기 어려움.

 

  • 개발 과정 중 최종 산출물을 확인 불가

        - 오류 발견 시기를 놓치거나 오류 해결책 불명을 야기.

 

3. 소프트웨어 개발에 연관된 역할

  •  고객(client)

       - 개발자에게 기본적인 요구사항과 비용을 전달.

 

  •  사용자(user)

       - 사용자마다 니즈가 다름. 불특정 다수의 사용자는 개발자에게 수많은 요구사항을 전달함.

 

  •  개발자(developer)

       - 고객의 요구사항을 통해 기본적인 소프트웨어 개발과 유지보수를 수행. 사용자의 니즈를 분석해                                   추가적인 기능을 구현. 요구사항을 정확히 이해하지 못하면 프로젝트 실패 가능성 존재.

 

4. 소프트웨어 개발 실패 원인

  • 불명확한 요구사항 

       - pm, 고객, 사용자, 개발자, 디자이너 등 프로젝트 참여자 간 이해가 다를 수 있음. 각 역할별 요구사항에 대한 이해를 검증하는 절차를 필요로 한다.

 

  • 프로젝트 후원자의 참여 부족

       - 프로젝트 후원자가 중간 점검을 통해 요구사항이 철저히 반영되고 있는지 지속적으로 검증하는 절차를 필요로 한다.

 

  • 프로젝트 목표 변경

      - 트렌드의 빠른 변화를 따라가지 못해, 진행중인 프로젝트를 일부 혹은 전체를 변경하는 경우가 존재한다. 

 

  • 부정확한 추정

      - 과거에 예측했던 미래의 트렌드가 실제와 다른 경우 프로젝트 실패를 야기한다.

 

  • 예측하지 못한 위험

      - covid-19 대유행 등 예측 범위 이외의 변수들에 의해 프로젝트 실패 가능성이 존재한다.

 

  • 의존 경로의 지연

      - 단계 별로 진행해야하는 요구사항을 제대로 파악하지 못해 다른 산출물을 만들어내는 경우가 존재한다.

 

  • 충분하지 못한 자원

      -  개발 산출물에 필요한 비용이나 시간 등의 자원이 부족한 경우 프로젝트 실패를 야기한다. 

 

 

반응형
LIST

'cs > sw 개발 프로세스' 카테고리의 다른 글

Agile Framework - XP  (0) 2022.12.01
Agile Framework - Scrum  (0) 2022.11.30
SW 개발 생명주기(SDLC)  (0) 2022.11.28
SW 개발 프로세스  (0) 2022.11.25
소프트웨어 공학(SW Engineering)  (0) 2022.11.24

댓글