y-seo
y-seo의 딩코 기록들
y-seo
  • 분류 전체보기 (174)
    • Computer Science (49)
      • Database Design & Query Lan.. (10)
      • Network Security (16)
      • Software Engineering (6)
      • Computer Network (17)
    • Spring (50)
      • Spring-Basic (11)
      • SpringBoot-AWS (7)
      • SpringBoot&JPA (22)
      • 토비의 스프링 (3)
      • + α (7)
    • Cloud (22)
      • AWS (4)
      • GCP (1)
      • ElasticSearch (17)
    • Test (3)
    • Project (4)
    • Algorithm (24)
      • 개념 (9)
      • 문제풀이 (15)
    • AI (3)
      • About (2)
      • AIDU ez (1)
    • Error (4)
    • ETC (1)
    • Review (8)
    • IT (5)
      • SQLD (4)
      • ADsP (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

최근 글

최근 댓글

전체 방문자
오늘
어제

태그

  • algorithm
  • 보안
  • 자바
  • 네트워크보안
  • 컴퓨터 네트워킹 하향식 접근
  • Spring
  • 스프링
  • 네트워크
  • 알기 쉬운 정보보호개론 3판
  • 파이썬
  • baekjoon
  • 김영한
  • Python
  • java
  • JPA
  • 백준
  • springboot
  • 알고리즘
  • 스프링부트
  • 인프런

티스토리

hELLO · Designed By 정상우.
y-seo

y-seo의 딩코 기록들

Computer Science/Software Engineering

[CS][소프트웨어공학]

2024. 1. 20. 00:15

 

 
 

[1] 구조 모델링 (정적 모델링)

  • 시간의 개념이 개입되지 않음
  • 객체들의 공통 구조와 동작들을 추상화 시킨 것
  • 시간이 흐르더라도 변하지 않는 정적 구조
  • 클래스 다이어그램이 대표적이다. : 도메인 개념과 속성을 표현, 여러번 반복해서 상세하고 구체적인 걸 만들어야 한다.
  1. 문제 도메인의 중요한 클래스 발견 : 초기 다이어그램의 목적
  2. 반복되며 구체화
  3. 구현/유지보수
  • 어떤 구조적 요소들이 있는지 파악하기 위해 하는 것
  • 비즈니스에서 사용되는 용어들을 이용하여 객체들 정의
  • 실세계와 소프트웨어의 의미적 차이를 줄이는 작업
  • 모델링 과정
    • 객체 식별 → CRC 카드 → 클래스 다이어그램 작성 → 행위 모델링 (여러가지 다이어그램 작성) → 클래스 다이어그램 정제(구체화)
    • 행위 모델링 ↔ 클래스 다이어그램 구체화 반복

 

 
 

[1] ① 객체 식별

  • UML에서 정의하는 클래스
    • <클래스 명, 클래스 속성, 클래스 연산> 3요소로 구성
    • 크래스 간에 어떤 상관성이 있는가를 클래스의 관계로 나타냄
  • 식별 방식
    • 문장 분석
    • 일반 객체 목록
    • 브레인 스토밍
    • 패턴 적용
  1. 문장 분석
    • 유스케이스 설명서의 정상 시나리오와 예외 처리 시나리오에 나타난 문장들의 구성 요소 분석
    • 일반 명사는 클래스로, 동사는 클래스의 연산으로, 고유 명사는 클래스 인스턴스인 객체로, 형용사는 클래스의 속성으로 매핑 → “주로 이러더라”를 바탕으로 통계학적으로 만든 규칙, 참고용
    • 존재 동사, 소유 동사는 클래스 간의 관계로, 타동사는 연산으로, 자동사는 클래스에 있는 예외 처리 연산으로, 부사는 연산 또는 관계의 속성으로 매핑
  2. 일반 객체 목록
    • 도메인별로 나타나는 일반적인 용어들을 식별하여 목록화 → 구조 모델의 클래스로 사용
    • 비즈니스 도메인에서 사용되는 객체 그룹 분류 (후보)
      • 물리적으로 존재하는 사물 (Ex. 인사과 파일)
      • 사건 : 업무 처리 과정에서 발생하는 이벤트
      • 역할 : 문제 영역에서 나타나는 역할자
      • 상호작용 : 업무수행 과정에서 발생하는 처리에 관한 것
      • 기타 : 장소/조직/정책 등과 관련 있는 것
  3. 브레인스토밍
    • 프로젝트 관련자들의 생각으로부터 객체를 추출하는 방법
    • 여러가지 방법을 다 씀 (앞의 식별 방법들)
    • 요구사항이나 유스케이스 설명서에서 누락될 수 있는 객체들을 식별하는 좋은 기회 제공
  4. 패턴 작용
    • SW 개발에서 재사용 가능한 컴포넌트 : 객체의 나열과 객체 간의 관계를 미리 정의
    • 패턴에 포함된 객체를 구조 모델의 클래스로 직접 사용 가능
    • 필요한 패턴을 찾아두고 적용 시키기 or 필요한 패턴 찾아와 적용하기

 

 
 

[1] ② CRC카드

  • 클래스 명세 : CRC (Class-Responsibility-Collaborator) 카드 활용
    • 클래스가 어떤 책임을 가져야 하는지를 찾아내는 데에 사용하는 카드
      • 특정 객체와 그 객체와 관계를 맺어야 하는 것들을 적음 → 목록을 만들어 냄
      • 클래스의 메소드가 일부 정의될 것
      • 협력해야 하는 클래스에 대한 관계가 정리될 것
    • 분석 시작할 때 찾은 객체들의 정리를 위해 사용 + 빠진 객체가 없는지 확인하기 위해 사용
    • 분석 초기에 1번만 작성

 

 
 

[1] ③ 클래스 다이어그램

  • 식별된 모든 클래스를 CRC 카드에 명세한 후에 클래스 다이어그램 작성

 

저작자표시 (새창열림)

'Computer Science > Software Engineering' 카테고리의 다른 글

[CS][소프트웨어공학] 객체지향방법론, UML, 유스케이스 다이어그램  (0) 2023.10.16
[CS][소프트웨어공학] SW 요구사항, SW 개발 방법론, DFD, 자료사전  (0) 2023.10.16
[CS][소프트웨어공학] SW 기능 산정 (기능점수, 간이법)  (0) 2023.10.16
[CS][소프트웨어공학] SW 개발 프로젝트 관리 기법(일정/비용/위험 관리), SW 개발 프로젝트 조직 유형  (0) 2023.10.14
[CS][소프트웨어공학] SW 개발 프로세스, 전통적 프로세스 모델, SW 프로세스 개선  (0) 2023.10.08
    'Computer Science/Software Engineering' 카테고리의 다른 글
    • [CS][소프트웨어공학] 객체지향방법론, UML, 유스케이스 다이어그램
    • [CS][소프트웨어공학] SW 요구사항, SW 개발 방법론, DFD, 자료사전
    • [CS][소프트웨어공학] SW 기능 산정 (기능점수, 간이법)
    • [CS][소프트웨어공학] SW 개발 프로젝트 관리 기법(일정/비용/위험 관리), SW 개발 프로젝트 조직 유형
    y-seo
    y-seo

    티스토리툴바