일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 데이터베이스
- C언어
- 오픈소스웹소프트웨어
- 벡터
- OS
- 파싱
- 언어모델
- 스케줄러
- 자연어처리
- 소프트웨어공학
- 프로세스
- Linear Algebra
- 컴파일러
- Agile
- 컴파일
- React
- 데이터분석
- css
- DB
- 객체지향설계
- 웹소프트웨어
- 애자일
- 정보검색
- 운영체제
- 랩실일기
- NLP
- 836
- 클래스
- 파싱테이블
- 가상메모리
Archives
- Today
- Total
observe_db
[객체지향설계] 9. Moving on To Design 본문
5/12
설계란?
- 목적: 어떻게 system을 만들 것인지 결정
- 요구사항 프로세스를 software domain으로 변경(translate)
- 문제에 대한 해답 제시
Good Design이란?
- 유지 가능한(maintainable)
- Cohesion(응집력): 기능적 관련성이 강하고
- Coupling(결합력): 상호연결의 힘이 약하고
- Understandability(이해가능): 정보의 제공
- Adaptability(적용성)
- +모듈화가 잘 되어야한다.
Design은 크게
- Management Aspect(관리)
- Preliminary design(기본 설계): 요구사항을 데이터와 소프트웨어 구조/구성으로 변환
- Detail design(상세 설계): 구조의 세부사항과 데이터 구조 및 소프트웨어 알고리즘 재정의
-Technical Aspect(기술)
- Data Design(자료)
- Architectural design(구조)
- Procedural design(알고리즘)
- (User) Interface design(GUI 등)
기능모델링과 구조 모델링
구조 모델링의 분석파트. 설계 파트.(ui, db등이 다루어짐)
Evolving to Design Models
설계 concepts
- Abstraction(추상화)
- Stepwise refinement
- Modularity
- Information hiding(정보 은닉)
- Separation of concerns
- Top-down VS Bottom-up
피해야할 기본적인 설계 실수/문제
- 설계 시간이 감소되는 것(Reducing design time)
- 계속되는 작은 수정(Feature creep)
- 은탄 신드롬(Silver bullet syndrome)
- 툴 변경(Switching tools in mid-project)
Facotring(수학에서는 인수분해)
- 유사성과 차이점 시반으로 새로운 클래스 만들기
- Generalization(일반화) 관계, Aggregation(집합) 관계
- Abstracting이나 Refinement 방식.
Partitions and Collaboration
- 여러 클래스를 partition으로 묶는 방법
- class 간의 관계를 고려해야한다.(communication diagram 참고)- 클래스간 상호작용이 많으면 같은 partition으로 넣는다.
- (2번째 방식)
Layers
- Model-view-controller(MVC) 구조
- 층들
- Foundation
- Physical Architecture
- Human Computer Interaction
- Data Management
- Problem Domain
- 보통은 위에서 HCI~PD layer까지 3개 층을 사용한다.
Package&Package Diagram
Package
- 고수준의 논리적 구조체
- 관계된 element들끼리 묶음
- 관계(relationship)
- 의존적(dependency) 관계
- aggregation/association
Syntax
Package
- UML 원소의 논리적 그룹
- UML 다이어그램을 관련된 원소를 하나의 고레벨 원소로 묶어서 간소화
Dependency Relationship
- 패키지간의 의존 관계를 보여줌
- 종속 패키지에서 종속패키지로
- 하나의 변경이 다른 패키지에 영향을 끼친다.
Creating Package Diagram
- 문맥 설정
- 공유하는 관계에 기반하여 클래스를 묶음.(일반화 계층이 있으면 하나에 묶음)
- 묶인 클래스들을 패키지로
- 패키지 사이의 의존 관계 식별
- 패키지간 dependency 관계 위치시킴
- 특별한 상황에서 사용되는 dependency관계 확인
Design 전략 선택
고민요소
- Business Need
- In-house Experience(자체 경험)
- Project Skills
- Project Management
- Timeframe
전략 3가지
- 자체 개발(Custom Developement)
- Packaged System(COTS등)
- 외부 Outsourcing
'학교 공부 > 객체지향설계(3-1)' 카테고리의 다른 글
[객체지향설계] 11. Data Layer Design (0) | 2023.06.06 |
---|---|
[객체지향설계] 10. Class & Method Design (0) | 2023.06.03 |
[객체지향설계] 8. Verifying Models (0) | 2023.05.19 |
[객체지향설계] 7. Behavioral Modeling (0) | 2023.05.17 |
[객체지향설계] 6. Structure Modeling (0) | 2023.04.10 |
Comments