티스토리 뷰

Genralization: An existing desciprtion of a set of obejects can be further generalizaed by adding new objects to the set and modifying the description to take these new objects into account.

Specialization: The inverse operation to generalization is specialization. sepcializing the description of a set of objects involves the reduction of the set to a subset.

Abstraction: An existing description of a set of objects can be further abstracted using a new focus and filtering away all parts of the description that are not relevant with respect to the new focus.

Concretization: The inverse operation to absraction is concretion(also called refinement). Concretization results in the increase of detail per obejct.

Generative Programming에서는 위와 같이 각 개념들을 요약해 두었다. 하지만 보면 직역해 보면, Generalization이나 Abstraction을 보면 같은 단어를 통해서 의미를 정리하고 있어서 어떤 개념인지 잘 이해가 안될 수도 있다.

나의 입장(사실을 나도 잘 이해하기 위해서 선배님께 물어 봤음)에서 일반화와 추상화를 다시 설명하면 아래와 같다.

일반화: 여러가지 객체로 부터 공통된 점을 추출하여 새로운 객체를 만들어 내는 것. 예를 들어 남학생과 여학생을 일반화 한다면 학생 이라는 개념으로 일반화 시킬 수 있다.

추상화: 어떤 실제 객체로 부터 관심이 있는 부분만을 추출하고 나머지 부분은 무시하는 것(또는 숨기는 것). 대표적인 추상화의 예로 지하철 노선도를 들 수 있다. 지하철 노선도는 실제 지하철 노선 지도로 부터 각 지하철역의 위치 관계만을 추출한 것이다.  

                                                                              
Reference : Krzysztof Czarnecki, Ulrich W.Eisenecker. Generative Programming, Addison Wesley, 2000. pp 733~735, Appendix A, Conceptual modeling
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/12   »
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