본문 바로가기
자격증/정보처리기사

[실기] 소프트웨어 구축 - 요구사항 분석

by D.O.T 2024. 7. 25.

요구사항

어떤 문제를 해결하기 위해 필요한 조건, 제약사항을 요구

SW 개발/유지 보수 과정에 필요한 기준과 근거를 제공

 

  • 요구사항의 유형
    • 기능적 요구사항
    • 비기능적 요구사항: 성능, 보안, 품질, 안정성 등 기능의 부가적인 것
  • 요구사항 개발 프로세스
    • 도출/추출 : 이해관계자 간 요구사항을 정의 (식별 및 이해)
      • 인터뷰, 설문, 브레인스토밍, 청취, 프로토타이핑, 유스케이스
    • 분석: 사용자 요구사항에 타당성 조사 및 비용 및 일정에 대한 제약 설정
      • 관찰, 개념 모델링, 정형 분석, 요구사항 정의 문서화
    • 명세: 요구사항을 체계적으로 분석 후 '승인가능하도록 문서화'
    • 확인/검증 : 명세서를 검토
  • 요구사항 분석 도구
    • 요구사항 분석 CASE(Computer Aided SW Engineering)
      • SADT : 구조적 분석 및 설계 분석, 블록 다이어 그램
      • SREM : 실시간 처리 시스템에서 요구사항을 명확하게 기술
      • PSL/PSA : 문제 기술언어/요구사항 분석 보고서 출력
      • TAGS: 시스템 공학 방법 응용에 대한 자동 접근, 개발 주기 전 과정에 이용 가능

구조적 분석 모델

  • 데이터/자료 흐름도 (DFD, Data Flow Diagram)
    • 원 - 프로세스
    • 화살표 - 흐름
    • 평행선 - 자료 저장소 (DB, Memory)
    • 단말 - Terminator (done)
    • 시간 흐름을 명확하게 표현할 수 없음 버블 차트라고도 부른다.
+-----------------+     +-----------------+
| External Entity |-->--|     Process     |-->--[Data Store]
+-----------------+     +-----------------+
       ^
       |
+-----------------+
| Data Flow       |
+-----------------+
  • 자료 사전 (DD, Data Dictionary)
    • 자료 흐름도의 내용을 상세 정의/상세 설명
    • [] : 선택
    • () : 생략
    • {} : 반복
    • + : 구성
    • = : 정의
    • ** : 주석
    • DFD의 소단위 명세서이며 ERD와 STD와 같이 사용된다.
External Entity: 고객(Customer)
Process: 주문 처리(Order Processing)
Data Store: 주문 데이터베이스(Order Database)
Data Flow: 주문 요청(Order Request)
  • ERD
+----------------+     +----------------+
|     Customer   |-----|      Order     |
|----------------|  1  |----------------|
| CustomerID     |     | OrderID        |
| Name           |     | CustomerID     |
| Address        |     | OrderDate      |
+----------------+     +----------------+
  • STD
+-------------+     +-------------+     +-------------+
|  상태: 대기  |----|  이벤트: 주문  |----|  상태: 처리 중 |
+-------------+     +-------------+     +-------------+
                         |
                    +-------------+
                    |  이벤트: 취소  |
                    +-------------+
                         |
                    +-------------+
                    |  상태: 취소됨  |
                    +-------------+

 


객체지향 분석 모델

  • Booch(부치) : 미시적, 거시적 개발 프로세스를 모두 사용해서 클래스 분석 및 식별 거시적

거시적
+---------------------------+
|  온라인 도서 판매 시스템   |
+---------------------------+
|  사용자 인터페이스         |
|  주문 처리 시스템          |
|  결제 시스템               |
|  데이터베이스              |
+---------------------------+
미시적
Class: User
Attributes: userID, name, email, password
Methods: register(), login(), updateProfile()

Class: Book
Attributes: bookID, title, author, price
Methods: addBook(), updateBook(), deleteBook()

Class: Order
Attributes: orderID, userID, bookID, orderDate, status
Methods: createOrder(), updateOrder(), cancelOrder()
  • Jacobson(제이콥슨): Use Case를 사용 (사용자와 외부 시스템이 시스템과 상호 작용)
사용자 기능 명세
+---------------------------+
|  온라인 도서 판매 시스템  |
+---------------------------+
| 1. 책 검색                |
| 2. 책 주문                |
| 3. 결제 처리              |
| 4. 주문 확인              |
+---------------------------+

유스케이스
          +------------+
          |  사용자    |
          +------------+
                |
                v
  +---------------------------+
  | 온라인 도서 판매 시스템   |
  +---------------------------+
  | 1. 책 검색                |
  | 2. 책 주문                |
  | 3. 결제 처리              |
  | 4. 주문 확인              |
  +---------------------------+
  • Coad-Yourdon : E-R 다이어그램, 객체의 행위
E-R 다이어그램
+------------+            +------------+          +------------+
|    User    |            |    Book    |          |   Order    |
+------------+            +------------+          +------------+
| userID     | <--------- | bookID     | <--------|  orderID   |
| name       | 1 : M      | title      | N : M    |  userID    |
| email      |            | author     |          |  bookID    |
| password   |            | price      |          |  orderDate |
+------------+            +------------+          |  status    |
                                                  +------------+
  • Wirfs-Brock : 분석, 설계 간 구분이 없다. 고객 명세서 평가 후 설계 작업까지 수행
+---------------------------+
|  고객 명세서 평가 후 설계 |
+---------------------------+
| - 책 검색 기능            |
| - 책 주문 기능            |
| - 결제 처리 기능          |
| - 주문 확인 기능          |
+---------------------------+
  • Rumbaugh (럼바우) : 가장 일반적으로 사용한다. 객체/동적/기능 모델
    • 객체 모델링 -> Object Diagram 객체 간의 관계
    • 동적 모델링 -> Dynamic, 상태 다이어그램 / 시스템의 동적인 행위
    • 기능 모델링 -> 자료 흐름도 DFD / 다수의 프로세스 처리 과정
객체 모델링
+------------+            +------------+            +------------+
|    User    |            |    Book    |            |   Order    |
+------------+            +------------+            +------------+
| userID     | <--------- | bookID     | <--------- |  orderID   |
| name       |   1 : N    | title      |   N : M    |  userID    |
| email      |            | author     |            |  bookID    |
| password   |            | price      |            |  orderDate |
+------------+            +------------+            |  status    |
                                                    +------------+
동적 모델링
[Order Created] --> [Order Confirmed] --> [Order Shipped] --> [Order Delivered]
     |                      |                     |                  |
     v                      v                     v                  v
[Order Cancelled]    [Payment Failed]     [Order Returned]    [Order Completed]

기능 모델링

+-----------------+
|  Search Books   |
+-----------------+
       |
       v
+-----------------+       +-----------------+
|  Select Book    | <---> |  Add to Cart    |
+-----------------+       +-----------------+
       |
       v
+-----------------+       +-----------------+
|  Create Order   | <---> |  Payment Process |
+-----------------+       +-----------------+
       |
       v
+-----------------+
|  Confirm Order  |  --->  [ Data Stroe ]
+-----------------+

  • 요구사항 명세
    • 정형 명세 
      • 수학적 원리
      • 정확하고 간결한 요구사항이 표현 됨
      • 대신 어려워서 사용자가 이해하기 어려움
    • 비정형 명세
      • 자연어랑 그림 중심
      • 의사소통은 용이하나 일관성이 없음