[소프트웨어설계] 분석 모델 확인

thingzoo·2024년 1월 18일
0
post-thumbnail

모델링 기법

모델링이 주는 도움

  • 소프트웨어를 이해하는 데
  • 이해관계자들 사이에서 문제 해결에
  • 고객과 소통할 때
  • 설계, 구현, 테스팅, 유지보수에 개념적인 기준 제공

모델링 구분

기능적 모델링

  • 시스템의 기능을 사용자 관점에서 표현
  • 주로 유스케이스 다이어그램 사용

정적 모델링

  • 객체간의 관계 표현
  • 주로 클래스 다이어그램 사용

동적 모델링

  • 시간의 흐름에 따라 객체들의 동작과 상태 변화를 모델링
  • 주로 상태다이어그램 사용

구조적 분석 모델

  • 주로 하향식 분석 방법 사용

자료흐름도(DFD; Data Flow Diagram)⭐️⭐️

(20년 4회)

  • 가장 보편적 시스템 모델링 도구로서, 기능중심 시스템에 적합
  • 자료의 흐름과 처리과정을 도형 중심으로 기술
  • 자료흐름그래프 또는 버블차트라고도 함
  • 구성요소(20.6,8)

자료사전(DD; Data Dictionary)

  • 자료흐름도에 기술된 모든 자료들에 대한 사항 자세히 정의
  • 사용기호(20.6,8)
    • =: 정의(~로 구성되어 있다)
    • +: 연결(and)
    • (): 생략(optional)
    • [|]: 선택(or)
    • {}: 반복
    • **: 설명(주석)

소단위 명세서(Mini-Specification)(프로세스 명세서)

  • 자료흐름도에서 어떤일이 수행되는지 정의하기 위해, 각 처리들의 수행업무를 상세히 작성
  • 구조적 언어로, 선후조건문, 의사결정표 등 사용

개체 관계도(ERD;Entity Relationship Diagram)

  • 시스템에서 처리되는 개체의 구성과, 속성, 관계 표현하여 자료를 모델화하는데 사용
  • 구성요소

상태전이도(STD;State Transition Digram)

  • 시스템에 어던 일이 발생할 경우, 시스템의 상태와 상태 간 전이를 모델화
  • 이를 통해 개발자는 시스템의 행위를 정의

객체 지향 분석 모델

(20년 4회)

  • 동적 모델링 기법 사용
  • 상향식 방식
  • 데이터와 행위를 하나로 묶어 객체를 정의내리고 추상화시키는 작업
  • 코드 재사용에 의한 프로그램 생산성 향상 및 요구에 따른 시스템의 쉬운 변경 가능

Rumbaugh 방법⭐️

  • 가장 일반적으로 사용되는 방법
  • 분석활동을 객체/동적/기능 모델로 나누어 수행
  • 분석 절차(20.6,8)
    1. 객체모델링: 객체다이어그램(Object Diagram)
    2. 동적모델링: 상태다이어그램(State Diagram)
    3. 기능모델링: 자료흐름도(Data Flow Diagram)

Booch 방법

  • 미시적 개발 프로세스와 거시적 개발 프로세스를 모두 사용

Jacobson 방법

  • 유스케이스를 강조하여 사용

Coad&Yourdon

(20년 1회)

  • ERD를 사용하여 객체 행위 모델링

Wirfs-Brock

  • 분석과 설계간의 구분 없음
  • 고객명세서를 평가해 설계작업까지 연속적 수행

분석자동화 도구

CASE(Computer Aided Software Engineering)

  • 소프트웨어 개발과정의 일부/전체를 자동화하기 위한 도구
  • 표준화된 개발 환경 구축 및 문서 자동화 기능 제공
  • 작업 과정 및 데이터 공유를 통해 작업자간 커뮤니케이션 증대

주요기능

(20.6,8)

  • SW 라이프 사이클 전 단계의 연결
  • 시스템 문서화 및 명세화를 위한 그래픽 지원
  • 다양한 소프트웨어 개발 모형 지원

원천기술

  • 구조적 기법, 프로토타이핑, 자동프로그래밍, 정보저장소, 분산처리기술

도구의 분류

  • 상위 CASE
    • 계획수립, 요구분석, 설계 단계 지원
    • 모순검사, 오류검증, 자료흐름도 등 기능 수행
    • 요구사항 도구(Jira), 설계도구(UML)
  • 하위 CASE
    • 코드작성, 테스트, 문서화 지원
    • 구문편집기, 코드작성기 등 기능 수행
    • 프로그래밍 도구(IDE), 테스트 도구(JUnit)
  • 통합 CASE
    • 소프트웨어 생명주기 전과정 지원

HIPO(Hierarchical Input Process Output)

  • 시스템의 기능을 여러 개의 고유 모듈들로 분할하여 이들 간의 계층구조를 표현한 도표

특징

(20.6)

  • 하향식 개발에 적합
  • 분석 및 설계 도구로 사용
  • 체계적인 문서관리에 효율적
  • 기능과 자료의 의존관계 동시 표현 가능
  • 보기 쉽고 이해하기 쉬움
  • 차트 종류: 가시적 도표, 총체적 도표, 세부적 도표
profile
공부한 내용은 바로바로 기록하자!

0개의 댓글