Seongwon Lim

소프트웨어 프로세스(Software Process)란? 본문

Architecture

소프트웨어 프로세스(Software Process)란?

limsw 2022. 5. 9. 20:34
반응형

소프트웨어 프로세스란?

소프트웨어 개발 프로세스(software development process)는 소프트웨어 제품을 개발하기 위해 필요한 과정 또는 구조로 쉽게 설명하면 소프트웨어 제품이 만들어지는 일련의 단계라고 생각할 수 있다.

프로세스 구성 요소

  1. 사람 → 누가 참여하는지 구성
  2. 전반적인 프로세스 → 어떤 과정으로 진행될 것인지 구성
  3. 중간 산출물 → 중간중간 서비스 산출물을 나타내야 한다.
  4. 프로세스 단계 → 어디서 어떤 것을 할건지 정의한다.

일반적인 프로세스 단계

이전의 output은 다음 단계의 input이 될 수 있으며 다른 여러 input도 물론 들어올 수 있다.

STEP1 : 요구사항 정의

  • 현실 세계에서 사용자(고객)이 원하는 것이 무엇인지를 정의하는 것
  • 여러 사람들이 모여서 계약 기반의 합의를 하는 과정
  • 요구사항 정의 단계의 한계점
    • 사용자들이 개발이 불가능한 수준의 요구를 하기도 한다.
    • 요구사항 자체가 불완전하고 모순적인 것들이 존재한다.

STEP2 : 요구사항 분석 (What)

  • 문제 도메인과 사용자가 수행하길 원하는 작업을 이해하는 과정이다.
    • 어떻게 사용자를 만족시킬 수 있을지 고민해보는 과정이라고 생각하면 편하다.
    • 또한, 반론을 통해 실제로 무엇이 필요한지 계속해서 이끌어내는 과정이 중요하다.
  • 개념 클래스(conceptual class)와 그 class 간 관계를 식별
    • 예를 들면, 제공하려는 기능들이 어떤 컨셉을 가지고 있는지, 어떤 데이터를 필요로 하는지를 분석한다.
    • 계좌 이체를 예시로 들면 인증, 금액, 비밀번호, 상대 계좌, 거래 내역등과 같은 것들이 필요하다는 것을 생각해볼 수 있다.

STEP3 / STEP4 : 아키텍처 (Architecture) (How) / 설계

  • 분석 모델을 구현 가능한 상태로 재정의하는 작업으로 아키텍처 및 설계를 동일 단계로 두는 경우가 많다.
  • 아키텍처 구현 시 고려사항
    • 요구사항, Programming Language, Re-use Models, GUI, DB ..
    • 기능 요구사항 및 비기능 요구사항(품질, 제약)
      • 제약? → 실제로 개발자가 구현할 수 있는지 분석 (겉만 번지르르하면 안된다는 뜻)

STEP5 : 구현

  • 실제 개발자들이 프로그래밍을 통해 기능을 만들어가는 과정
  • 개발자들은 개발 가이드를 지켜 개발을 해야 함
    • 요구사항에 맞는 기능, 제한을 지키면서 개발

STEP6 : 테스팅

  • 모든 종류의 오류 및 실패를 검출하고 그것을 제거하는 과정
  • 테스팅을 언제 설계할까? : 주로 요구사항 분석 단계 후 테스트 계획을 세운다.

BONUS STEP : 유지보수

  • 릴리즈 이후 발생하는 모든 개발과 관련된 활동을 처리하는 과정
  • 환경 변화, 새로운 기술의 등장 등의 이유로 유지보수는 지속적으로 필요하다.

'Architecture' 카테고리의 다른 글

소프트웨어 프로세스 3가지 모델 비교하기  (0) 2022.05.09
Comments