정보처리기사/필기 3

독립성이 높은 모듈, 결합도(Coupling)와 응집도(Cohesion)

※ 모듈화 : 소프트웨어를 성능 향상이나 수정, 재사용이 용이하도록 모듈 단위로 분해하여 나누는 것 - 모듈은 단독으로 컴파일이 가능한 최소 단위 - 각 모듈의 독립성이 높을 수록 좋은 모듈이다. - 결합도가 약할 수록, 응집도가 높을 수록 좋은 모듈이다. (결합도가 약하면 다른 모듈과 별개로 단독 사용가능) (응집도가 높으면 모듈 내부 요소가 서로 관련성이 높아 일처리가 효율적이다) 1. 결합도(Coupling) : 약할 수록 좋은 모듈 - 모듈간 상호 의존 정도, 두 모듈 사이의 연관 관계 - 결합도가 강하면 모듈 수정 및 유지보수가 어려워짐 결합도 약함 ↑ ↓ 결합도 강함 자료 결합도 (Data Coupling) 모듈 간 인터페이스가 자료 요소로만 구성되는 결합도, 다른 모듈 호출 시 매개변수나 인..

소프트웨어 아키텍처

1. 개념 외부에서 인식할 수 있는 특성이 담긴 소프트웨어의 골격이 되는 기본 구조 시스템 전체에 대한 큰 밑그림 2. 특징 - 개발할 소프트웨어에 대한 전체적인 구조를 다룸 - 소프트웨어를 이루고 있는 여러 구성 요소 (서브 시스템, 컴포넌트)를 다룸 - 구성 요소들이 인터페이스를 통해서 어떻게 상호작용하는지를 정의 - 세부 내용 보다는 중요한 부분을 다룸 - 시스템 설계와 개발 시 적용되는 원칙과 지침이 있어야 함 3. 아키텍처 설계 시 고려사항 - 모든 이해관계자의 이해를 도울 수 있는 의사소통 도구로 활용할 수 있어야 함 - 개발 비용, 기간, 조직의 역량 등의 제약 사항을 정의해야 함 - 시스템 품질 속성(성능성, 사용성, 보안성, 안전성, 검증성, 변경성 등)의 우선순위를 결정해야 함 - 소프..

UML(Unified Modeling Language) 다이어그램

1. 개념 요구분석, 시스템 설계, 시스템 구현 등의 시스템 개발 과정에서, 개발자간의 의사소통을 원활하게 이루어지게 하기 위하여 표준화한 모델링 언어 소프트웨어 개발 시 산출물들을 비주얼하게 제공하여 개발자와 고객 또는 개발자 상호 간의 의사소통을 원활하게 할 수 있다. 2. 다이어그램의 구성 1) 액터 : 시스템 외부에서 시스템과 상호작용을 하는 사람이나 다른 시스템 (사용자) 2) 시스템 : 개발하고자 하는 어플리케이션 3) 유스케이스 : 시스템이 액터에게 제공해야 하는 기능 4) 관계 : 액터와 유스케이스들 사이의 의미있는 관계 3. 다이어그램의 종류 1) 구조 다이어그램 (정적 모델링) - 시스템의 정적 구조와 다양한 추상화 및 구현 수준에서 시스템의 구성 요소, 구성 요소들 간의 관계를 보여줌..