소프트웨어공학 4

LeemHyungJun·2023년 4월 22일
0

Lecture #4. 기능적 모델링

1. 분석 단계의 작업

  • 기능을 잘 정리하고 표현하는 방법
    • 프로토타입
    • 유스케이스
    • 자연어
  • 유스케이스 기반의 분석작업 과정
  • 유스케이스 개념
    • 외부에서 본 시스템의 뷰
    • 시스템에 무슨 서비스가 있는지 사용자의 관점으로 본 것
    • 시스템과 외부 액터 사이에 일어나는 목표지향적 상호작용의 집합
  • 의도된 작업
    • 누가 무엇을 한다. (주어 목적어 동사)
  • 시스템과 외부 액터와의 사이 예시
  • 목표 지향적 인터랙션의 집합
  • 유스케이스 작성 목적
    • 시스템의 범위를 정하는데 도움이 됨
    • 개발 과정을 계획하는데도 사용됨
    • 요구를 개발하고 검증하는데 사용 됨
    • 테스트케이스를 정의하는데 기초가 됨
    • 사용자 매뉴얼 구성하는데 사용될 수 있음
    • "요구 정의 단계 -> 분석 단계 -> 설계 단계 -> 구현 단계 -> 테스트 단계" 가 잘 이루어지도록 묶어주는 역할

2. 시나리오

  • 유스케이스
    • 일반적인 이벤트의 흐름을 모아 놓은 것
  • 시나리오
    • 유스케이스의 인스턴스
    • 구체적인 sample이 있어야 함

3. 유스케이스 다이어그램

  • 유스케이스에 대한 목차 성격의 그림
  • 구성 요소 : 액터, 유스케이스, 관계
  • 과제에서 맨 처음으로 했던 것

3-1. 액터

  • 시스템으로부터 서비스를 받을 필요가 있는 외부 요소
  • 예시) 사람, 시스템 등..
  • 액터를 찾는 요령
    • 주어를 찾자!
    • 시스템의 주된 사용자는?
    • 시스템과 상호작용하는 다른 시스템은?

3-2. 유스케이스

  • 액터에게 서비스를 제공하기 위하여 시스템이 수행하는 주요 프로세스
  • 작업
  • 예시) 책 주문, 주문 취소 등

3-3. 관계

  • 커뮤니케이션 관계
    • 액터와 유스케이스 사이 화살표로 표시
    • 화살표가 없이 표시되는 것은 양방향으로 화살표가 구성될 때 사용
  • 포함 관계
    • 다른 유스케이스를 호출
    • 공통되는 유스케이스를 별도로 정의
    • <<include>> 로 표기
  • 확장 관계
    • 존재하는 사용 사례의 동작을 조건적으로 확장
    • 이벤트의 추가나 예외적인 케이스
    • <<exclude>> 로 표기 (반대방향 화살표)

3-4. 유스케이스 다이어그램 작성 방법

1) 주요 액터 및 사용사례 파악
2) 사용 사례 확장
3) 사용 사례 확인
4) 사용 사례 다이어그램 작성

3-5. UML ( Unified Modeling Language)

  • 객체지향 소프트웨어를 모델링 하는 표준 그래픽 언어
  • UML 모델링 과정
    중요??

4. 유스케이스 작성

4-1. Intro

  • 유스케이스 안의 동작을 자세히 글로 서술하는 것
  • 유스케이스를 작성하는 형식
    • 사용사례 이름
    • 액터
    • 목표
    • 시작 조건
    • 정상적인 사건의 흐름 / 대안 흐름
  • 과제에서 글로 쓴 내용 (이걸 기반으로 액티비티 다이어그램 그렸음)

4-2. 사건의 흐름

  • 사건
    • 전형적인 유스케이스들에 대하여 사용자와 시스템의 동작을 마치 사건 일지처럼 기록

4-3. 유스케이스 작성 tip

  • 소프트웨어가 제공할 기능에 집중하라
  • 사용자 관점으로 작성하라
  • 목표 지향적으로 작성하라
  • 시스템 흐름도와는 다르다
  • 읽기 쉽게 작성하라

4-4. 유스케이스의 규모와 수준

  • 스카이 레벨 : summary
  • 카이트 레벨 : 사용자 goal
  • 씨 레벨 : sub function

5. 액티비티 다이어그램

5-1. Intro

  • 분석 단계의 워크플로우를 표현하는 방법
  • 사용 사례 안의 복잡한 흐름을 나타내기도 함

5-2. 액티비티 다이어그램의 요소

6. 기능적 모델 검증

  • 기능 모델이 비즈니스 프로세스를 잘 나타내고 있는지 검토
  • 빠진 요구가 없는지 검토
  • 포함되지 않는 내용
    • 성능요구
    • 비즈니스 규칙
    • UI 설계
    • 자료의 설정
    • 유한 상태 머신
    • 우선 순위
  • 기능 모델 사이의 불일치가 있는지...
  • 예시
    • 유스케이스의 경우 : 한 문장으로 간결하게 표현되었는가?
    • 시나리오의 경우 : 3~9개의 적당한 스텝으로 구성되어 있나?

0개의 댓글