SW 설계할 때, OO의 관점으로 바라 보았다.
교수님이 보내주신다는 CBD 책을 한번 더 읽어보고, 블로그에 좀 더 구체적으로 정리해볼 생각이다.
-> 컴포넌트1 - 포트1 - 인터페이스 - 포트2 - 컴포넌트2
* 포트라는 개념은 현재 언어에서 지원되는 것이 없다. 비슷하게 흉내내어 구현해야 한다.
* 포트라는 개념은 기존에 없던 새로운 개념이다.
* 포트를 예를 들어 설명하자면, 컴퓨터 본체에 있는 Keyboard포트, 모니터포트, 프린터 포트등을 생각하면 된다.
-> [ 모니터에 있는 D-SUB포트 ] 와 [ 본체에 있는 D-SUB 포트 ] 는 [ 모니터 Connecter ] 로 [ 서로 약속된 Data Interface ] 통해 GUI가 화면이 Display되는 것이다.
* 부가적인 설명으로, OO에서 일고 있던 인터페이스 개념과 유사하다, 하지만 포트와 맞물려 사용되기 때문에 OO에서 사용된 인터페이스와 같다고 할 수 없다. 새로운 관점에서 접근해야 한다.
[ Component RM ]
* 기존 OOAD 기법과 유사하게 적용할 수 있다.
* 용어 선택에 주의해야 한다.
* UseCase를 사용하면 좋다.
* Actor와 UseCase의 개념을 잘 알아야 한다.
[ Component 설계 ]
* 필요에 따라 Class, Sequence, Community 등의 여러 다이어그램을 사용해서 분석하고 설계하는 게 좋다.
* Class, Method, Attribute, Stereo type 등을 명시 할 때, 추상적 / 명시적 / 묵시적인 단어를 적절히 사용해야 한다. 이 부분이 생각보다 어렵다.
* 단어 선택에 미숙할 때에는 리팩토링 관련 ( Refactorying ) 책을 참고하는 것이 도움이 된다. 그 종류의 책에서 이름 명명과 고치는 방법에 대해서 자세히 나와있다.
[ Component 설계 검증 ]
* 코드를 작성한 뒤에만 검증 하는 것이 아니다.
* 요구 사항 및 설계 단계도 검증이 필요하다.
* 일반적으로 Sequence나 Community를 사용해 기능적인 흐름에서 이상이 없는 지 파악한다.
* class 이름, method이름, stereo type의 명칭을 보았을때, 다른 사람이 내 생각과 일치 하는지 확인해야 한다.
* 설계도는 추상적이지 않으며, 매우 구체적으로 나와야 한다. 또한 모든 사람이 공통으로 보아야 하는 내용이므로 명확하고 이해하기 좋은 용어와 다이어그램이 구체적으로 상세히 작성되어야 한다.
* 필요에 따라 각 다이어그램에는 설명을 해주는 메모가 필수적으로 있어야 한다.
[ Component 구현 ]
* Component 는 OO( Object Oriented ) 를 적용하여 적용 가능하다.
* Component 는 OO가 필수적인 요소는 아니다. 구현 수단의 한가지다.
* OO의 구현의 경우, 예를 들어 설명하면,
OO를 구현하기 위해 C++은 추상클래스와 Virtual Method를 주로 이용한다.
OO를 구현하기 위해 C는 Structure와 Static 연산자 그리고 함수 포인터를 사용한다.
* Component의 경우, 예를 들어 설명하면,
CBD를 구현하기 위해 C++은 Virtual Method를 주로 이용할 수 있다.
CBD를 구현하기 위해 C는 함수 포인터를 사용할 수 있다.
[ Component 배포 ]
* CASE Tool에서 지원해주는 Generate 를 사용하여 각 개발 환경에 맞는 언어로 배포할 수 있다. 블랙박스 테스트 수준의 코드가 작성되며, 그 이상은 구현자가 실행 플랫폼에 맞게 구현해 주어야 한다.
***
확실히 전공 교수님이라 정확한 개념과 상세한 설명을 해주시는 것 같다.
부족하고 모호했던 부분들을 채워 주신점에 대해 감사의 말씀을 전하고 싶다.
정말 즐겁고 유익한 한주였다.
'소프트웨어 공학 > 설계' 카테고리의 다른 글
[POSA1] Broker Architecture Pattern (0) | 2011.10.07 |
---|---|
Bada App - FrameWork Concept (0) | 2011.09.21 |