[Beyond SW] 3일차_소프트웨어 개발 프로세스

이경민·2025년 9월 22일

한화시스템 Beyond SW

목록 보기
7/40

20250922

소프트웨어 개발 프로세스

소프트웨어 : 컴퓨터에서 실행되는 모든 종류의 프로그램
시스템 소프트웨어 : 운영체제(OS)
응용 소프트웨어 : ex. 워드프로세서
프로세스 : 주어진 일을 해결하기위한 일련의 절차

소프트웨어 개발: 고객이 원하는 것(요구)을 SW 시스템으로 구현하기 위한 활동

폭포수 모델 (<->애자일 모델)

  • 요구사항분석 → 시스템 설계 → 구현 → 테스트 → 배포 및 유지보수 → 문서로 정리
  • 단계 사이사이 검증
  • 이전단계가 완료된 후에만 다음단계로 넘어감
  • 문서화가 잘되는 장점
  • 변화 대응에 어렵고 유연성이 부족하다는 단점

설계 : 요구사항을 토대로 소프트웨어의 구조, 동작방식을 설계

MSA : 작고, 독립적으로 배포 가능한 각각의 기능을 수행하는 서비스로 구성된 프레임워크
(<-> Monolithic Architecture는 소프트웨어의 모든 구성요소가 한 프로젝트에 통합되어 있는 형태)

애자일 소프트웨어 개발 선언 (변화에 유연하고 빠르게 대응!)

  • 공정과 도구보다 개인과 상호작용을
  • 포괄적인 문서보다 작동하는 소프트웨어을
  • 계약 협상보다 고객과의 협력를
  • 계획을 따르기보다 변화에 대응하기를
    우선시한다
    -> 짧은 개발 사이클(스프린트)를 통해 지속적으로 제품 개선

TDD (Test-Driven Development, 테스트 주도 개발) : 테스트를 먼저 작성하고 그다음에 실제 코드를 작성하는 방식


지속적 통합 (CI: Continuous Integration) : 코드를 자주 병합하고 자동으로 빌드/테스트, 코드가 잘 합쳐졌는지 빠르게 확인 가능
지속적 배포 (CD: Continuous Delivery/Deployment : 빌드된 애플리케이션을 자동으로 배포 (서버, 클라우드, 컨테이너 등)
Infrastructure as Code(IaC) : 수동 프로세스가 아닌 코드를 통해 인프라를 관리하고 프로비저닝하는 것

요구사항

: 사용자 또는 이해관계자가 시스템이나 소프트웨어로부터 기대하는 기능.

  • 기능적 요구사항
  • 비기능적 요구사항

요구사항 분석

페르소나가 필요함
시나리오가 필요함
시나리오흫 기반해 UI/UX가 나옴
위 내용을 바탕으로 스토리보드, 사이트를 만들수있음

요구사항 분석절차

  1. 요구사항 정리 및 분류 : 기능적, 비기능적 요구사항 분류. 사용자 스토리 형식으로 정리.
  2. 요구사항 검토 및 우선순위 결정
  3. 모델링 및 분석 : 유스케이스, 시퀀스 다이어그램 생성
  4. 검증 및 승인
  5. 명세서 작성 : 승인된 사용자 스토리를 요구사항 명세서에 포함. 이 문서는 개발 및 테스트의 기준이 됨. +WBS(해야 할 일들을 구조적으로 나눈 트리)
  6. 반복 및 정제

명세서 작성 시 지킬 사항

  • 명확성 : 모든 이해관계자가 이해할 수 있도록 명확하고 구체적인 언어 사용
  • 완전성 : 모든 필수 요구사항 포함, 누락된 내용 없어야함. (우리는 완벽할수는 없다~)
  • 일관성 : 문서 내의 정보가 서로 모순되지 않아야 함.
  • 추적 가능성 : 각 요구사항이 원본 출처로 추적될 수 있도록 함.
  • 검증 가능성 : 요구사항이 실제로 검증 가능해야하며, 측정 가능한 기준을 포함해야 한다.

요구사항 검증 및 유지보수

  • 리뷰
  • 테스트 케이스 : 각 요구사항에 대해 테스트 케이스를 작성, 해당 테스트를 실행하여 요구사항이 충족되는지 검증.
  • 프로토타입
  • 시뮬레이션 : 주단위로 한번씩 통합한 다음 테스트 해봐야함. (Docker이용)

UML (Unified Modeling Language)

  • 소프트웨어공학에서 사용되는 표준화된 범용 모델링 언어로 소프트웨어의 개념을 다이어그램으로 그리기 위해 사용되는 시각적인 표기법
  • 유스케이스 다이어그램, 클래스 다이어그램, 시퀀스 다이어그램

UML의 V프로세스

유스케이스 다이어그램

  • 액터 : 사용자
  • 유스케이스 : 기능
  • 관계
  • 헷갈리는 부분
    • 포함관계 : A를 해야만 = A에 도달하는 include 화살표
      • 위 표 예시) '로그인'을 해야만 개인정보 조회가 가능하다
    • 확장관계 : A를 할수도 = A에서 출발하는 extend 화살표
      • 위 표 예시) 게시판 등록 시 '파일 업로드'를 할수도

0개의 댓글