2012년 11월 18일 일요일

What are the relationships among principles? - Software Engineering

2. 정의
   ① formality and modularity
   실질적으로 모듈을 나눠 seperation 세세하게 잘라내어 명확하게 표현하여 모호함을 줄일 있도록 하는 방식.
   ② formality and separation of concerns
   단계별, 크기별, 역할별, 품질별로 분리하여 문제를 해결하는데, 명확하게 표현하여 모호함을 줄여, 해결해야할 문제를 효과적으로 다룰 있도록 해야 한다. 프로세스의 모호한 정의는 다양하게 해석될 있기 때문에 재사용성은 어렵다.
   ③ separation of concerns and modularity
   복합성을 축소시킨 독립적인 문제로써, 실질적으로 모듈을 나눠서 겹치는 것이 없이 서로의 연계성을 높게 만드는데, 결합도를 낮추고, 응집도를 높일 있도록 파트별로 분리하여 문제를 해결한다.
   ④ modularity and abstraction
   관심 목적에 따라 필요한 부분만을 정보화하여 모듈간의 정보 공유나 정보 교환의 횟수를 적게 설계하는 것으로, 목적이나 관점에 따라 달라진다.
   ⑤ modularity and anticipation of change
   미래에 예상되는 변화를 미리 예측하여, 재사용성을 높여 설계하여 후에 시스템과의 통합 등의 변화를 신속히 수용할 있도록 해야 한다.
   ⑥ anticipation of change and generality
   3-Tier Client/Server, 이기종 통합/연계를 위한 SOA 미래에 예상되는 변화를 예측하여, 문제를 일반화를 시켜 미래에 재사용성을 용이하게끔 설계를 한다.
   ⑦ abstraction and generality
   중요한 것은 확대하고, 디테일한 부분은 축소시키면서, 특정 문제보다는 일반화를 시켜 모듈이나 컴포넌트 등의 재사용 가능성을 높이는 관계로 하나의 Abstraction으로 여러 개를 만든다.
   ⑧ modularity and incrementality
   모듈 간의 정보 공유나 정보 교환 횟수를 적게 하며, 소프트웨어 개발을 점진적으로 완성하는데, 서로의 연계성을 높게 하는 관계.
   ⑨ anticipation of change and incrementality
   미래에 예상되는 변화를 미리 예측을 하며 프로젝트를 진행하는데, 환경의 변화나, 시스템과의 연계 등을 신속히 수용할 있도록, 하나하나 점진적으로 완성해 나가는 관계로써, 단위 테스트가 끝난 모듈은 점진적으로 통합을 한다.
   ⑩ generality and incrementality
   소프트웨어 개발을 점진적으로 항상 체크하고 리뷰를 해가며 전체적으로 계획을 가지며 프로젝트를 진행시키는데, 문제를 특정화시키기 보다는 일반화를 시켜 비용을 생각해가며, 여러 가지 문제를 동시에 해결하여 답의 활용도를 높이는 관계.
3. 출처
  - blog.naver.com/sharon0a SW 모듈성
  - booksummary.tistory.com/

댓글 없음:

댓글 쓰기