소프트웨어 분석 및 설계 도구

소프트웨어 분석 및 설계에는 요구 사항 사양을 구현으로 변환하는 데 도움이되는 모든 활동이 포함됩니다. 요구 사항 사양은 소프트웨어의 모든 기능 및 비 기능적 기대치를 지정합니다. 이러한 요구 사항 사양은 사람이 읽을 수 있고 이해할 수있는 문서의 형태로 제공되며 컴퓨터가 할 일이 없습니다.

소프트웨어 분석 및 설계는 사람이 읽을 수있는 요구 사항을 실제 코드로 변환하는 데 도움이되는 중간 단계입니다.

소프트웨어 설계자가 사용하는 몇 가지 분석 및 설계 도구를 살펴 보겠습니다.

데이터 흐름 다이어그램

데이터 흐름 다이어그램은 정보 시스템에서 데이터 흐름을 그래픽으로 표현한 것입니다. 들어오는 데이터 흐름, 나가는 데이터 흐름 및 저장된 데이터를 묘사 할 수 있습니다. DFD는 데이터가 시스템을 통과하는 방식에 대해 언급하지 않습니다.

DFD와 순서도 사이에는 현저한 차이가 있습니다. 순서도는 프로그램 모듈의 제어 흐름을 나타냅니다. DFD는 다양한 수준에서 시스템의 데이터 흐름을 나타냅니다. DFD에는 제어 또는 분기 요소가 없습니다.

DFD의 유형

데이터 흐름 다이어그램은 논리적 또는 물리적입니다.

  • Logical DFD -이 유형의 DFD는 시스템 프로세스 및 시스템의 데이터 흐름에 집중합니다 (예 : 은행 소프트웨어 시스템에서 데이터가 서로 다른 엔티티간에 이동하는 방법).
  • Physical DFD-이 유형의 DFD는 데이터 흐름이 실제로 시스템에서 어떻게 구현되는지 보여줍니다. 더 구체적이고 구현에 가깝습니다.

DFD 구성 요소

DFD는 다음 구성 요소 세트를 사용하여 소스, 대상, 스토리지 및 데이터 흐름을 나타낼 수 있습니다.

  • Entities-엔티티는 정보 데이터의 소스 및 대상입니다. 엔티티는 각각의 이름이있는 직사각형으로 표시됩니다.
  • Process -데이터에 대한 활동 및 조치는 원 또는 둥근 사각형으로 표시됩니다.
  • Data Storage -데이터 저장에는 두 가지 변형이 있습니다. 작은 변이없는 직사각형 또는 한쪽 만 누락 된 개방형 직사각형으로 표시 할 수 있습니다.
  • Data Flow-데이터 이동은 뾰족한 화살표로 표시됩니다. 데이터 이동은 원본으로 화살표 밑에서 화살표 머리 방향으로 대상으로 표시됩니다.

DFD 수준

  • Level 0-가장 높은 추상화 수준 DFD는 수준 0 DFD로 알려져 있으며 전체 정보 시스템을 모든 기본 세부 정보를 은폐하는 하나의 다이어그램으로 묘사합니다. 레벨 0 DFD는 컨텍스트 레벨 DFD라고도합니다.
  • Level 1-레벨 0 DFD는 좀 더 구체적인 레벨 1 DFD로 나뉩니다. 레벨 1 DFD는 시스템의 기본 모듈과 다양한 모듈 간의 데이터 흐름을 나타냅니다. 레벨 1 DFD는 기본 프로세스와 정보 소스도 언급합니다.
  • Level 2 -이 레벨에서 DFD는 레벨 1에서 언급 한 모듈 내부에서 데이터가 어떻게 흐르는 지 보여줍니다.

    높은 수준의 DFD는 원하는 수준의 사양이 달성되지 않는 한 더 깊은 수준의 이해를 통해보다 구체적인 낮은 수준의 DFD로 변환 될 수 있습니다.

구조 차트

구조 차트는 데이터 흐름 다이어그램에서 파생 된 차트입니다. DFD보다 더 자세하게 시스템을 나타냅니다. 전체 시스템을 가장 낮은 기능의 모듈로 나누고 시스템 각 모듈의 기능 및 하위 기능을 DFD보다 더 자세히 설명합니다.

구조 차트는 모듈의 계층 구조를 나타냅니다. 각 계층에서 특정 작업이 수행됩니다.

다음은 구조도 구성에 사용되는 기호입니다.

  • Module-프로세스 또는 서브 루틴 또는 작업을 나타냅니다. 제어 모듈은 둘 이상의 하위 모듈로 분기됩니다. 라이브러리 모듈은 모든 모듈에서 재사용 및 호출이 가능합니다.
  • Condition-모듈 하단에 작은 다이아몬드로 표시됩니다. 제어 모듈이 어떤 조건에 따라 서브 루틴을 선택할 수 있음을 나타냅니다.
  • Jump -모듈 내부를 가리키는 화살표가 표시되어 컨트롤이 하위 모듈 중간에서 점프 함을 나타냅니다.
  • Loop-곡선 화살표는 모듈의 루프를 나타냅니다. 루프에 포함 된 모든 하위 모듈은 모듈 실행을 반복합니다.
  • Data flow -끝에 빈 원이있는 방향 화살표는 데이터 흐름을 나타냅니다.
  • Control flow -끝에 채워진 원이있는 방향 화살표는 제어 흐름을 나타냅니다.

HIPO 다이어그램

HIPO (Hierarchical Input Process Output) 다이어그램은 시스템을 분석하고 문서화 수단을 제공하는 두 가지 체계적인 방법의 조합입니다. HIPO 모델은 1970 년 IBM에서 개발했습니다.

HIPO 다이어그램은 소프트웨어 시스템의 모듈 계층을 나타냅니다. 분석가는 HIPO 다이어그램을 사용하여 시스템 기능에 대한 높은 수준의보기를 얻습니다. 계층 적 방식으로 기능을 하위 기능으로 분해합니다. 시스템에서 수행하는 기능을 설명합니다.

HIPO 다이어그램은 문서화 목적에 적합합니다. 이들의 그래픽 표현은 설계자와 관리자가 시스템 구조에 대한 그림 아이디어를 쉽게 얻을 수 있도록합니다.

모듈의 제어 및 데이터 흐름을 나타내는 IPO (Input Process Output) 다이어그램과 달리 HIPO는 데이터 흐름 또는 제어 흐름에 대한 정보를 제공하지 않습니다.

HIPO 다이어그램, 계층 적 프리젠 테이션 및 IPO 차트의 두 부분은 소프트웨어 프로그램의 구조 설계 및 동일한 문서화에 사용됩니다.

구조화 된 영어

대부분의 프로그래머는 소프트웨어의 큰 그림을 인식하지 못하기 때문에 관리자가 지시하는 작업에만 의존합니다. 정확하면서도 빠른 코드를 개발하기 위해 프로그래머에게 정확한 정보를 제공하는 것은 상위 소프트웨어 관리의 책임입니다.

그래프 나 다이어그램을 사용하는 다른 형태의 방법은 때때로 다른 사람에 의해 다르게 해석 될 수 있습니다.

따라서 소프트웨어의 분석가와 디자이너는 Structured English와 같은 도구를 제공합니다. 코딩에 필요한 내용과 코딩 방법에 대한 설명 일뿐입니다. 구조화 된 영어는 프로그래머가 오류없는 코드를 작성하는 데 도움이됩니다.

그래프 나 다이어그램을 사용하는 다른 형태의 방법은 때로 사람마다 다르게 해석 될 수 있습니다. 여기서 Structured English와 Pseudo-Code는 이러한 이해 격차를 완화하려고합니다.

구조화 된 영어는 구조화 된 프로그래밍 패러다임에서 일반 영어 단어를 사용합니다. 궁극적 인 코드가 아니라 코딩에 필요한 내용과 코딩 방법에 대한 일종의 설명입니다. 다음은 구조화 된 프로그래밍의 일부 토큰입니다.

IF-THEN-ELSE,  
DO-WHILE-UNTIL

Analyst는 데이터 사전에 저장되는 동일한 변수 및 데이터 이름을 사용하므로 코드를 작성하고 이해하는 것이 훨씬 간단 해집니다.

온라인 쇼핑 환경에서 고객 인증의 동일한 예를 사용합니다. 고객 인증 절차는 다음과 같이 구조화 된 영어로 작성할 수 있습니다.

Enter Customer_Name
SEEK Customer_Name in Customer_Name_DB file
IF Customer_Name found THEN
   Call procedure USER_PASSWORD_AUTHENTICATE()
ELSE
   PRINT error message
   Call procedure NEW_CUSTOMER_REQUEST()
ENDIF

구조화 된 영어로 작성된 코드는 일상적인 영어 구어와 비슷합니다. 소프트웨어 코드로 직접 구현할 수 없습니다. 구조화 된 영어는 프로그래밍 언어와 무관합니다.

의사 코드

의사 코드는 프로그래밍 언어에 더 가깝게 작성됩니다. 주석과 설명이 가득한 증강 프로그래밍 언어로 간주 될 수 있습니다.

의사 코드는 변수 선언을 피하지만 C, Fortran, Pascal 등과 같은 실제 프로그래밍 언어의 구조를 사용하여 작성됩니다.

의사 코드에는 구조화 된 영어보다 더 많은 프로그래밍 세부 정보가 포함되어 있습니다. 마치 컴퓨터가 코드를 실행하는 것처럼 작업을 수행하는 방법을 제공합니다.

피보나치를 n 개까지 출력하는 프로그램.

void function Fibonacci
Get value of n;
Set value of a to 1;
Set value of b to 1;
Initialize I to 0
for (i=0; i< n; i++)
{
   if a greater than b 
   {
      Increase b by a;
      Print b;
   } 
   else if b greater than a
   {
      increase a by b;
      print a;
   }
}

의사 결정 테이블

의사 결정 테이블은 구조화 된 표 형식으로 조건과이를 해결하기 위해 취해야 할 각 조치를 나타냅니다.

오류를 디버그하고 방지하는 강력한 도구입니다. 유사한 정보를 단일 테이블로 그룹화 한 다음 테이블을 결합하여 쉽고 편리한 의사 결정을 제공합니다.

의사 결정 테이블 생성

의사 결정 테이블을 작성하려면 개발자는 기본 네 단계를 따라야합니다.

  • 해결할 수있는 모든 조건 식별
  • 확인 된 모든 조건에 대한 조치 결정
  • 가능한 최대 규칙 만들기
  • 각 규칙에 대한 작업 정의

의사 결정 테이블은 최종 사용자가 확인해야하며 최근에는 중복 규칙 및 작업을 제거하여 단순화 할 수 있습니다.

인터넷 연결과 관련된 일상적인 문제의 간단한 예를 들어 보겠습니다. 인터넷을 시작하는 동안 발생할 수있는 모든 문제와 각각의 가능한 해결책을 식별하는 것으로 시작합니다.

열 조건하에 가능한 모든 문제를 나열하고 조치 열에 예상 조치를 나열합니다.

조건 / 조치 규칙
정황 연결된 쇼 와이 와이 와이 와이
Ping이 작동 중입니다. 와이 와이 와이 와이
웹 사이트를 엽니 다 와이 와이 와이 와이
행위 네트워크 케이블 확인 엑스
인터넷 라우터 확인 엑스 엑스 엑스 엑스
웹 브라우저 다시 시작 엑스
서비스 제공 업체에 문의 엑스 엑스 엑스 엑스 엑스 엑스
조치하지 마십시오
표 : 의사 결정 표 – 사내 인터넷 문제 해결

엔터티 관계 모델

엔티티-관계 모델은 실제 엔티티와 이들 간의 관계 개념을 기반으로하는 데이터베이스 모델 유형입니다. 실제 시나리오를 ER 데이터베이스 모델에 매핑 할 수 있습니다. ER 모델은 속성, 제약 조건 및 이들 간의 관계를 사용하여 엔터티 집합을 만듭니다.

ER 모델은 데이터베이스의 개념 설계에 가장 적합합니다. ER 모델은 다음과 같이 나타낼 수 있습니다.

  • Entity -ER 모델의 엔티티는 실제 세계이며 attributes. 모든 속성은 해당 값 집합에 의해 정의됩니다.domain.

    예를 들어, 학교 데이터베이스를 고려하십시오. 여기에서 학생은 실체입니다. 학생은 이름, 아이디, 나이, 수업 등 다양한 속성을 가지고 있습니다.

  • Relationship -엔티티 간의 논리적 연관성을 호출합니다. relationship. 관계는 다양한 방식으로 엔터티와 매핑됩니다. 매핑 카디널리티는 두 엔터티 간의 연결 수를 정의합니다.

    카디널리티 매핑 :

    • 1-1
    • 일대 다
    • 다 대일
    • 다 대다

데이터 사전

데이터 사전은 데이터에 대한 중앙 집중식 정보 모음입니다. 데이터의 의미와 출처, 다른 데이터와의 관계, 사용을위한 데이터 형식 등을 저장합니다. 데이터 사전에는 사용자 및 소프트웨어 설계자를 용이하게하기 위해 모든 이름에 대한 엄격한 정의가 있습니다.

데이터 사전은 종종 메타 데이터 (데이터에 대한 데이터) 저장소로 참조됩니다. 소프트웨어 프로그램의 DFD (Data Flow Diagram) 모델과 함께 생성되며 DFD가 변경되거나 업데이트 될 때마다 업데이트 될 예정입니다.

데이터 사전 요구 사항

데이터는 소프트웨어를 설계하고 구현하는 동안 데이터 사전을 통해 참조됩니다. 데이터 사전은 모호성의 가능성을 제거합니다. 프로그램의 모든 곳에서 동일한 객체 참조를 사용하면서 프로그래머와 디자이너의 작업을 동기화하는 데 도움이됩니다.

데이터 사전은 한 곳에서 전체 데이터베이스 시스템에 대한 문서화 방법을 제공합니다. DFD의 유효성 검사는 데이터 사전을 사용하여 수행됩니다.

내용

데이터 사전에는 다음에 대한 정보가 포함되어야합니다.

  • 데이터 흐름
  • 데이터 구조
  • 데이터 요소
  • 데이터 저장소
  • 데이터 처리

데이터 흐름은 앞에서 연구 한 DFD를 통해 설명되고 설명 된대로 대수 형식으로 표시됩니다.

= 구성
{} 되풀이
() 선택 과목
+
[/] 또는

주소 = 집 번호 + (거리 / 지역) + 도시 + 주

과정 ID = 과정 번호 + 과정 이름 + 과정 수준 + 과정 성적

데이터 요소

데이터 요소는 데이터 및 제어 항목의 이름과 설명, 내부 또는 외부 데이터 저장소 등으로 구성되며 다음 세부 정보가 있습니다.

  • 기본 이름
  • 보조 이름 (별칭)
  • 사용 사례 (사용 방법 및 위치)
  • 내용 설명 (표기 등)
  • 보충 정보 (사전 설정 값, 제약 조건 등)

데이터 저장소

데이터가 시스템에 입력되고 시스템 외부에 존재하는 정보를 저장합니다. 데이터 저장소에는 다음이 포함될 수 있습니다.

  • Files
    • 소프트웨어 내부.
    • 소프트웨어 외부에 있지만 동일한 시스템에 있습니다.
    • 다른 컴퓨터에있는 소프트웨어 및 시스템 외부.
  • Tables
    • 명명 규칙
    • 인덱싱 속성

데이터 처리

데이터 처리에는 두 가지 유형이 있습니다.

  • Logical: 사용자가 볼 때
  • Physical: 소프트웨어가 보는대로