디자인 전략
하향식 전략
하향식 전략은 모듈 식 접근 방식을 사용하여 시스템 설계를 개발합니다. 최상위 또는 최상위 모듈에서 시작하여 최하위 모듈로 이동하기 때문에 그렇게 호출됩니다.
이 기술에서는 소프트웨어 개발을위한 최상위 모듈 또는 메인 모듈이 식별됩니다. 메인 모듈은 각 모듈이 수행하는 작업에 따라 더 작고 간단한 여러 하위 모듈 또는 세그먼트로 나뉩니다. 그런 다음 각 하위 모듈은 다음 하위 수준의 여러 하위 모듈로 더 세분화됩니다. 각 모듈을 여러 하위 모듈로 나누는이 프로세스는 더 이상 세분화 할 수없는 가장 낮은 수준의 모듈이 식별되지 않을 때까지 계속됩니다.
상향식 전략
상향식 전략은 모듈 식 접근 방식을 따라 시스템 설계를 개발합니다. 가장 기본적인 수준의 모듈부터 시작하여 가장 높은 수준의 모듈로 이동하기 때문에 그렇게 불립니다.
이 기술에서
가장 기본적인 또는 가장 낮은 수준의 모듈이 식별됩니다.
그런 다음 이러한 모듈은 각 모듈이 수행하는 기능에 따라 그룹화되어 다음 상위 수준 모듈을 형성합니다.
그런 다음 이러한 모듈이 추가로 결합되어 다음 상위 수준 모듈을 형성합니다.
더 높은 수준의 모듈을 형성하기 위해 더 간단한 여러 모듈을 그룹화하는이 프로세스는 시스템 개발 프로세스의 주요 모듈이 달성 될 때까지 계속됩니다.
구조화 된 디자인
구조화 된 설계는 개발 시스템의 입력 및 출력을 식별하는 데 도움이되는 데이터 흐름 기반 방법론입니다. 구조화 된 설계의 주요 목표는 복잡성을 최소화하고 프로그램의 모듈성을 높이는 것입니다. 구조화 된 디자인은 시스템의 기능적 측면을 설명하는데도 도움이됩니다.
구조화 된 설계에서 시스템 사양은 DFD의 도움을 받아 소프트웨어 개발과 관련된 데이터 흐름 및 프로세스 시퀀스를 그래픽으로 표현하기위한 기초 역할을합니다. 소프트웨어 시스템 용 DFD를 개발 한 후 다음 단계는 구조도를 개발하는 것입니다.
모듈화
구조화 된 디자인은 프로그램을 작고 독립적 인 모듈로 분할합니다. 이들은 아래에 표시된 세부 정보와 함께 하향식 방식으로 구성됩니다.
따라서 구조화 된 설계는 모듈화 또는 분해라는 접근 방식을 사용하여 복잡성을 최소화하고 문제를 더 작은 세그먼트로 세분화하여 관리합니다.
Advantages
- 중요한 인터페이스가 먼저 테스트됩니다.
- 추상화를 제공합니다.
- 여러 프로그래머가 동시에 작업 할 수 있습니다.
- 코드 재사용이 가능합니다.
- 그것은 통제를 제공하고 사기를 향상시킵니다.
- 구조를 더 쉽게 식별 할 수 있습니다.
구조화 된 차트
구조화 된 차트는 시스템 개발의 다양한 모듈과 각 모듈 간의 관계를 정의하는 모듈 식 하향식 시스템을 설계하는 데 권장되는 도구입니다. 시스템 모듈과 이들 간의 관계를 보여줍니다.
모듈, 연결 화살표 또는 선을 나타내는 직사각형 상자로 구성된 다이어그램으로 구성됩니다.
Control Module − 하위 모듈을 지시하는 상위 모듈입니다. subordinate modules.
Library Module − 재사용 가능한 모듈이며 차트의 여러 지점에서 호출 할 수 있습니다.
구조화 된 차트를 디자인하는 데는 두 가지 접근 방식이 있습니다.
Transform-Centered Structured Charts − 모든 트랜잭션이 동일한 경로를 따를 때 사용됩니다.
Transaction–Centered Structured Charts − 모든 거래가 동일한 경로를 따르지 않을 때 사용됩니다.
구조 순서도 사용의 목적
하향식 디자인을 장려합니다.
모듈의 개념을 지원하고 적절한 모듈을 식별합니다.
시스템의 크기와 복잡성을 보여줍니다.
각 기능 내에서 쉽게 식별 할 수있는 기능 및 모듈의 수를 식별합니다.
식별 가능한 각 기능이 관리 가능한 엔티티인지 또는 더 작은 구성 요소로 분할되어야하는지 여부를 나타냅니다.
시스템 복잡성에 영향을 미치는 요인
좋은 품질의 시스템 소프트웨어를 개발하려면 좋은 디자인을 개발해야합니다. 따라서 시스템 설계를 개발하는 동안 중점을 두는 것은 소프트웨어 설계의 품질입니다. 좋은 품질의 소프트웨어 디자인은 소프트웨어 개발의 복잡성과 비용 지출을 최소화하는 것입니다.
시스템의 복잡성을 결정하는 데 도움이되는 시스템 개발과 관련된 두 가지 중요한 개념은 다음과 같습니다. coupling 과 cohesion.
커플 링
커플 링은 구성 요소의 독립성을 측정하는 것입니다. 시스템 개발의 각 모듈이 서로에 대한 종속성 정도를 정의합니다. 실제로 이는 시스템에서 모듈 간의 결합이 강할수록 시스템을 구현하고 유지하는 것이 더 어려워진다는 것을 의미합니다.
각 모듈은 다른 모듈과 간단하고 깔끔한 인터페이스를 가져야하며 최소한의 데이터 요소를 모듈간에 공유해야합니다.
높은 커플 링
이러한 유형의 시스템은 서로 종속 된 프로그램 단위와 상호 연결됩니다. 한 하위 시스템을 변경하면 다른 하위 시스템에 큰 영향을 미칩니다.
낮은 커플 링
이러한 유형의 시스템은 독립적이거나 거의 독립적 인 구성 요소로 구성됩니다. 한 하위 시스템의 변경은 다른 하위 시스템에 영향을주지 않습니다.
커플 링 측정
Content Coupling − 한 구성 요소가 실제로 다른 구성 요소를 수정하면 수정 된 구성 요소는 완전히 하나의 수정에 의존합니다.
Common Coupling − 공통 데이터 저장소에서 데이터에 액세스 할 수 있도록 시스템 설계를 구성하여 커플 링 양을 다소 줄인 경우.
Control Coupling − 한 구성 요소가 다른 구성 요소의 활동을 제어하기 위해 매개 변수를 전달하는 경우.
Stamp Coupling − 데이터 구조가 한 구성 요소에서 다른 구성 요소로 정보를 전달하는 데 사용되는 경우.
Data Coupling − 데이터 만 전달되면 구성 요소가이 커플 링으로 연결됩니다.
응집력
응집력은 구성 요소 간의 관계의 친밀 성을 측정하는 것입니다. 모듈 구성 요소가 서로에 대한 종속성의 양을 정의합니다. 실제로 이것은 시스템 설계자가 다음 사항을 확인해야 함을 의미합니다.
필수 프로세스를 조각난 모듈로 분할하지 않습니다.
DFD에서 프로세스로 표현 된 관련없는 프로세스를 의미없는 모듈로 모으지 않습니다.
최고의 모듈은 기능적으로 응집 된 모듈입니다. 최악의 모듈은 우연히 응집 된 모듈입니다.
최악의 응집력
부품이 다른 부품과 관련이없는 부품에서 우연히 일치하는 응집력이 발견됩니다.
Logical Cohesion − 논리적으로 관련된 여러 함수 또는 데이터 요소가 동일한 구성 요소에 배치되는 곳입니다.
Temporal Cohesion − 시스템을 초기화하거나 변수를 설정하는 데 사용되는 컴포넌트가 여러 기능을 순차적으로 수행하지만 관련된 타이밍에 따라 기능이 관련되는 경우입니다.
Procedurally Cohesion −이 순서를 보장하기 위해 함수가 구성 요소로 함께 그룹화되는 경우입니다.
Sequential Cohesion − 컴포넌트의 한 부분에서 나온 출력이 다음 부분에 대한 입력일 때입니다.