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/

댓글 없음:

댓글 쓰기