5. Modeling

정나영·2023년 4월 16일
0
post-custom-banner

Modeling

  • simplification of reality
  • SW 시스템의 모델
    • (분석 단계에서) 만들고자 하는 시스템 표현 : input과 ouput의 관계
    • (설계 단계에서) input과 ouput을 구현하기 위한 내부 구조에 대한 설명

=> SW 시스템의 모델은 분석 단계에서도, 설계 단계에서도 만들어 활용할 수 있다.

  • input이 주어졌을 때 ouput으로 맵핑을 하기 위해서, 필요한 시스템이 무엇인지 표현
  • 각각의 기능적 요구사항들을 input과 ouput으로 맺기 위해 필요한 요소를 모아놓은 것이 모델
  • element를 찾고 정의하는 것이 모델링

SW 시스템의 요소

: 모델링 하는 두 가지 방법의 차이는 요소의 타입

Software Development Methodology

  1. Structured Methods (Function)
  • SP : Structured prgramming
  • SD : Structured design
  • SA : Structured analysis
  • SA 단계에서 모델링하는 방법
    1) Data flow diagram (DFD)
    2) Data dictionary
  1. Object-Oriented Methods (Class/Object)
  • OOP : OO programming
  • OOD : OO design
  • OOA : OO analysis
  • UML :객체지향 분석과 설계에서 사용하는 모델

객체지향 분석

  • 모델의 요소가 Class/Obejct
  • 객체가 중심이 되는 분석

Q. 객체지향이 무엇인가요?

  • Data over function (함수와 데이터를 합한 것)
  • Information hiding(encapsulation) : 함수가 다루는 데이터가 외부에서 알 필요가 없어 숨김
  • Inheritance (상속) : 함수를 재사용

Objects and classes

  • Object : attributes (state) + operation (methods)
  • Class : 같은 attributes와 operations의 object를 모아놓은 것

  • class와 object를 주요 요소로 요구사항 정리, 모델링
  • 표기법 : UML (Unified Modeling Language)

UML Diagram

  • 정적인 특징을 기술하기에 편리한 다이어그램 (Static)
    : 프로그램이 실행되더라도 변하지 않는 속성
    • 클래스 구성
  • 동적인 특징을 기술하기에 편리한 다이어그램 (Dynamic)
    : 프로그램을 실행하면서 변하는 속성
    • 실행 흐름 (입력 데이터에 따라 달라짐)

Roadmap

  • UML은 개발 절차 전 주기에 걸쳐서 사용

Structured Analysis

Structured Programming (구조적 프로그래밍)
: 구조를 조합하여 프로그램을 작성하는 행위
Edger W. Dijkstra : 분석 방법론은 제안한 컴퓨터 과학자

  • Sequence : 문장 나열
  • Selection : 조건문 구조 (if-then-else)
  • Iteration : 반복문 구조 (for, while)
    cf) spaghetti code : 구조화되지 않은 코드, 위 방법을 쓰더라도 복잡한 코드를 뜻하기도 함

DFD (Data flow diagram)

  • 구조적 방법론에서 사용
  • Sequence, Selection, Iteration 방법으로 모델링하는 방법
  • 전체 시스템의 기본 기능을 식별하고 세분화
  • input과 output을 단어로 표시

Data dictionary

  • input과 output의 상세한 데이터 구성
  • Sequencing data types : 항목을 다 모아놓는 것
    • ex) name + category + class
  • Repeating data types : 반복 가능한 항목
    • ex) { no + stock number + quantity + unit price }
  • Selecting one from several types : 선택 사항
    • ex) [ vacuum cleaner order | jet engine order]

UML

Class Diagram

  • 남들이 작성한 클래스 다이어그램을 읽을 수 있어야 하고, 작성할 수 있어야 한다.
  • Static, structural view
  • Class 간의 관계
  • 클래스에 대한 관계
    • Association : X has a Y (X 클래스가 Y클래스의 인스턴스를 가지고 있다.)
      • X 클래스 안에 Y클래스의 멤버변수가 있다.
    • Inheritance : X is a Y (X클래스가 Y클래스의 자식 클래스이다.)
      • Realization : 클래스와 인터페이스의 관계
    • Dependency : X uses a Y (X클래스가 Y클래스를 임시로 사용한다.)

Class Diagram : Class

클래스 표현방법

Class Diagram : Relationship aming classes

Association

Inheritance

Aggregation/Composition (포함/합성)

  • 공통점 : 전체 - 부분 관계
  • 차이점 : 포함관계는 부분 객체가 사라져도 전체 객체가 남아있지만, 합성관계는 함께 사라진다.

UML 클래스 다이어그램 작성

1) 클래스 찾기

  • 자연어로 작성된 문장에서 명사(클래스), 형용사(attribute), 동사(operation) 찾기

2) attributes와 operations 지정
3) 클래스 간의 연관 관계 찾기

클래스 유형

  • Entity class : ⭐️ persistent (유지의 의미) things -> 데이터 저장소로 사용할만한 클래스
  • Boundary class : 사용자와의 인터페이스를 위한 클래스
  • Control class
    • Entity class의 내용을 만들거나 업데이트 역할
    • Boundary class의 제어 역할
post-custom-banner

0개의 댓글