2010-04-26 4 views
11

매우 첫 번째 단계는 DFD를 만들었습니다. 그런 다음 클래스 다이어그램을 만들었습니다. 그리고 그 동안 나는 ER 다이어그램을 먼저 만들어야한다고 느꼈습니다. Class 다이어그램에서 캡처 할 수없는 많은 세부 사항이 있었기 때문에. 그럼 제 질문은 ERD first or Class Diagrams를 작성해야합니까?먼저 생성해야 할 것 ER 다이어그램 또는 클래스 다이어그램?

귀중한 의견을 보내 주신 분들께 감사드립니다 !!! 읽기 덕분에

답변

8

모델링, 나는 어떤 순서로도 수행의 관점에서 생각하는 경향이 그 당시 나에게 가장 의미가 있습니다. 가끔 클래스 다이어그램이 먼저 나옵니다. 때로는 엔티티 - 관계 다이어그램이 있습니다. 때로는 시퀀스 다이어그램이기도합니다. 기억해야 할 중요한 점은 다른 사람도 이해할 수 있도록 사물을 이해하고 쓰려고한다는 것입니다. 자신의 생각을 정리하는 최선의 방법이 무엇인지에 대해 초조해하는 것은 그저 내려 가서 그 부분을 쓰는 것만 큼 도움이되지 않습니다. do.

[편집] FWIW, 필자는 종이 또는 화이트 보드에서 모델링을 시작하고 컴퓨터 사용으로 전환하는 경향이 있습니다. (나는 컴퓨터에서 그림을 그리는 것을 좋아하지 않는다고 생각합니다.) 핵심은 모델링이 컴퓨터에 관한 것이 아니라, 컴퓨터에 관한 것입니다.

+0

좋은 통찰력. 덕분에 –

+0

그래, 나는 네가 그 당시에 할 수있는만큼 구체적이라는 데 동의한다. 아직 속성이 부족한 경우 매핑 관계가 논리적 인 첫 번째 단계라는 것을 알 수 있습니다. – Russell

0

ER 다이어그램은 객체 다이어그램보다 더 적은 정보를 포함하고 있습니다. 이는 객체 다이어그램보다 더 많은 정보를 포함하고 있으며, 객체 다이어그램과 상속 트리의 메소드에 대한 많은 정보를 포함하고 있습니다. 이와 같이

, 당신은 더 나은 개체 계층 구조 (클래스 다이어그램)와 사물의 매핑 측에 다음 MOV로 시작)

+3

덜 일반적인 정보로 시작하는 이유는 무엇입니까? 보다 높은 수준에서 시작하고 계속 진행하면서 더 자세하게 설명하는 일반적인 방법입니다. 당신은 사람이 애완 동물과 관련되어야하는지 여부와 같은 디자인 결정을 내리는 것으로 시작합니다. 우리가 소리내어 그 사람의 성과 이름을 개체 모델에 포함 시킬지 여부가 아닙니다. – Russell

+0

러셀, 생각에 감사드립니다. 이것은 의미가 있습니다. –

+1

하지만 무지가 지불하지 않습니다. 상속을 무시하면 고객 표의 객체 "고객", 직원 표의 객체 "직원"과 같은 바보 같은 디자인으로 끝납니다. – TomTom

3

OO 순수 주의자는 클래스 다이어그램을 먼저 수행하는 경향이 있습니다. 데이터베이스 배경을 가진 사람들은 ER 다이어그램을 먼저 수행하고 이에 대한 클래스 다이어그램을 "파생"합니다 (이 방법은 OO 순수 사용자가 싫어합니다)

나는 하이브리드 방식을 선호합니다.

먼저 엔티티를 식별하십시오. 이는 데이터베이스와 애플리케이션 (클래스) 관점에서 동일해야합니다.

상위 수준에서 엔티티에 동의하고 나면 클래스 다이어그램과 ER 다이어그램을 병렬 방식으로 진행하십시오. "관계"가 각각 다르기 때문입니다. (만약 당신이 그들에게 일하는 유일한 사람이라면 먼저 클래스 다이어그램부터 시작하여 ERD를 시작하십시오. 그러나 먼저 자격을 얻었습니다.)

내 생각에 상위 수준 엔티티는 데이터베이스와 응용 프로그램 (Java/C# ...) 모두에서 동일해야합니다. 공통된 기반으로 진행하는 것이 매우 쉽습니다. 특히 다른 부분 (클래스, 데이터베이스)에서 작업하는 사람들이 다른 경우 특히 그렇습니다.

2

정말 응용 프로그램에 달려 있다고 말할 수 있습니다. & UML에 대해 조금 알고 있습니다. 표준 UML 클래스 다이어그램을 사용하여 기본 키뿐만 아니라 관계 다중도를 모델링 할 수 있으므로 클래스 다이어그램으로 충분합니다. 클래스 다이어그램부터 시작하겠습니다. 객체 지향 분석 및 디자인, 유스 케이스, 유스 케이스 실현 및 분석 클래스를 사용하기 때문에. 다른 측면에서, 좋은 데이터베이스 설계는 정규화와 때로는 비정규 화, 데이터 쿼리에 대한 다른 최적화를 요구합니다. 그러나 우선, 내가 무엇을 쿼리 할 것인지, 아마도 어떻게 할 것인지를 알아야합니다. 필자는 개인적으로 저장 메커니즘으로 응용 프로그램의 대부분의 관계형 부분을 보았습니다. 나는 객체 지향 프로그래밍 측면에서 시스템에 대해 생각합니다. 이것은 예를 들어 관계형 모델에서 완전히 추상화 된 Active Record 패턴 덕분에 Ruby on Rails에서 특히 유용하므로 두 번 모델링 할 필요가 없습니다.

관련 문제