알파카징징이 알파카징징이 코딩하는 알파카

데이터 구조 및 분석 ch_2_1 Design and Programming

» writing

KAIST 산업및시스템공학과 문일철_ 데이터 구조 및 분석 수업을 참고하여 작성하였습니다

ch_2_1 Design and Programming

정의


Design and Programming


1. objectives
- Object-oriented concepts
  (class, instance, inheritance, encapsulation . . )
- A formal representation of software design
  (Memorizing a number of UML notations)
- A number of software design patterns
  (Factor, Adapter, Bridge, composite, observer)
  (Memorizing their semantics and structures) 

2. Design and Programming
Software Design(설계도) ---개발---> Software Implementation

3. Good Software Design
1) Building Design
- Correctness : Meet owner's purpose, 성공적인 구조 without faults
- Robustness : Maintain integrity in a certain level of typhoons
- Flexibility : Enable future expansion & modifications of the structures
- Usability & Reusability : Good support for designed purpose,
  Easy to use for other purposes and other areas
- Efficiency : Easy to build, cover less area, Good mobility in the
  structures
2) Software Design
- Correctness : Meet client's purpose, 성공적 수행 without errors
- Robustness : Execute under expected overloads
- Flexibility : Enable the future updates & expansions of functions
- Usability & Reusability : Good support for the designed
  Easy to use for other purposes and other contexts
- Efficiency : Easy to implement, smaller size, Faster execution

4. Object-oriented Design
Real world concepts
Abstract ---> Customer(software design entities)
Abstract ---> Transaction(software design entities)
Abstract ---> Banking(software design entities)
: Concepts 이름 정하기 => 특징 정하기 (member variable, attitbutes)
=> 행동 정하기

5. What are Class and Instance ?
1) Class
  - Result of design & implementaion (하나의 디자인, 설계도)
  - Conceptualization
  - Corresponds to design abstractions
2) Instance
  - Result of execution (실행한 결과) 
  - Realization
  - Corresponds to real world entities