innn

2022.06.28 본문

카테고리 없음

2022.06.28

33삼 2022. 6. 29. 09:03

객체지향 모델링 설계 어떻게 설계 하는지.

클래스 설계 훈련

클래스 다이어그램 보고 예외나 오류를 짚어줌. 설계가 무조건 우선.

코더가 되지 말아야한다.(신입사원땐 할 수 없지만) 

 

ERD  (디비 테이블 디자인) Entity Relationship Diagram

아키텍트 목표를 잘잡아야함.

 

 

눈에 보이는 걸 개발 = 유지보수

눈에 안보이는 걸 개발 = 모델링

 

specification 기술 

behavior = 행위 = 메소드(모델링에선 메소드라고 하지 않음)

시스템 구조 = 필요한 필드 생각하는 것 

 

학생이라하면 어떤 추상화를 할지, 뭘 설계를 해야할지를 추상화하는 것이 중요

어떤 데이터가 어떻게 필요하지를 생각하는 것이 중요하다.

제일 중요한 건 클래스 다이어그램

포트폴리오에 클래스 다이어그램을 그려놔야함.

 

어떤 화면에서 어떤 화면으로 넘어가고 >>> 순차 다이어그램

여기서 말하는 시스템은 application과 같은 뜻

현장에선 시스템 == application 임.

동일한 속성을 가지고 있으니 우리가 필드로 표현하겠다 >>> 이게 클래스

내가 클래스를 만든 다는 것은 다른 클래스와 뭔가 관계가 있는것임.

응집도가 높은 프로그램은 좋은 프로그램.

결합도 얘하고 다른 애하고의 관계가 느슨한게 좋은것 .(encapsulation 캡슐화로  private로결합도 낮게 함)

공통적인 필드가 뭔지, 그리고 그걸 끌어당기는 관계에 대해서 생각해서 설계를 하는 것이다.

 

공통적인 속성이 뭔지 추출해는 능력 = 이게 설계

 

분산되어 있는 여러가지 중에 공통적으로 끌어 댕기는 것이 동일한 속성인 것임.

모르는 것을 하는 것임. 

모델링에선 필드를 안씀. 필드는 자바에서만 씀. 

속성이라고 말함.

연산은 메소드를 말함. behavior 안보이는 것을 메소드로 

 

연결되어있다 = 사용하고 있다는 관계 = 얘네들은 실선으로 표시 

관계가 강한 결합도로 있는 것은 실선 ________ (상속)

약한 결합도로 있는 것은 점선 ===== (인터페이스)

일반화 관계 = 상속 관계  ; is a / is a kind of 관계라고도 함 다른 말로는 

C is a kind of P 자식은 부모의 하나일 뿐

가전제품 밑에는 n개가 들어올 수 있지 그러니까 상위. 

속빈 화살 >>>>> 일반화 관계 

 

의존관계는 일시적으로 메소드가 끝나면 관계가 끝남

실체화 관계 = 

인터페이스 = 꼭 해야만하는 거, 할 수 있는 것을 정의해놓은 거, 

가령 비행기라는 인터페이스는? 나는 것이 꼭 해야만 하는 것이다. 나는 것을 선언해놓은것을 인터페이스다. 

인터페이스 설계할 때 책임이라는 것을 명심하자.

 

관계는 잘 안쓰는 경우가 많음. 우리가 처음 보는 관계는 써주긴함.

1:n의 관계 이런 것이 다중성 

실습1
실습2

 

n개 이상 ..*

(couse Course) = (Course course) 모델링에선 같다.