Presentation is loading. Please wait.

Presentation is loading. Please wait.

7장 소단위명세서(MiniSpec).

Similar presentations


Presentation on theme: "7장 소단위명세서(MiniSpec)."— Presentation transcript:

1 7장 소단위명세서(MiniSpec)

2 학습 목표 소단위명세서(Mini Spec)의 특성 이해 소단위명세서 작성을 위한 구조적 언어 학습
소단위명세서 작성을 위한 선/후 조건 문 학습 소단위명세서 작성을 위한 의사결정 표 학습 소단위명세서의 작성사례 검토

3 소단위명세서의 특성 1) 소단위명세서의 역할과 특성 ■ 소단위 명세서의 목적
- 입력 자료 흐름을 출력 자료 흐름으로 변환하기 위해 어떤 일이 수행되는지를 정의하기 위해 각 처리기들이 수행하는 업무 절차를 상세히 작성하는 것. ■ 소단위명세서에 사용되는 도구 - 구조적 언어, 선후 조건 문, 의사결정 표 등이 사용됨 ■ 소단위명세서의 요구사항(역할) ① 소단위 명세서는 사용자나 시스템 분석가가 검증할 수 있는 형태로 표현 되어야 한다. - 일상에서 사용하는 언어는 의사결정을 표시하고 반복되는 처리사항을 표현하는데 매우 애매모호하기 때문이다.

4 소단위명세서의 특성 1) 소단위명세서의 역할과 특성 ■ 소단위명세서의 요구상항(역할)
② 소단위 명세서에서는 여러 계층의 사람들이 효과적으로 의사소통을 할 수 있는 형태로 표현되어야 함 - 소단위 명세서를 작성하는 것은 시스템 분석가이지만, 사용자, 관리자, 감사자, 품질보증 담당자 등 다양한 사람들이 읽고 이해할 수 있어야 함 ③ 소단위 명세서에서는 설계와 구현사항에 대해 임의로 결정하지 말아야 한다. - 사용자들이 자료 흐름도의 각 처리에서 수행해야 할 사항을 그 자신이 현재 처리하는 방법대로 설명하는 경향이 있기 때문에 발생한다.

5 소단위명세서의 특성 1) 소단위명세서의 역할과 특성
■ 대부분의 시스템 분석가들이 소단위 명세서를 기술하는데 구조적 언어를 선호함. ■ 구조적 언어 선호 이유 - 대부분의 분석가들과 대부분의 조직에서 소단위 명세서를 기술하는데 한가지의 명세화 도구만 사용하는 경향이 있기 때문이다. ⇒ 한가지 도구만 사용하는 것은 바람직하지 않으며, 사용자의 선호도, 분석가의 선호도, 그리고 처리의 본질적 특성에 따라 그에 맞는 명세 도구를 선택하여야 한다.

6 소단위명세서의 특성 1) 소단위명세서의 역할과 특성 ■ 소단위 명세서 기술 방법 - 오직 최하단위 단계의 처리만 기술한다.
■ 소단위 명세서 기술 방법 - 오직 최하단위 단계의 처리만 기술한다. - 양질의 명세서는 항상 간결하고, 명료하며, 완전하고, 의미에 애매모호함이 없도록 기술하여 한다. - 배경도와 중간단계의 처리는 다시 자료 흐름도로 정의 되므로 소단위 명세서에 기술하지 않는다. - 최하위 단계 외 처리에 대해서도 소단위 명세서를 작성하는 것은 시스템을 중복 명세하게 되어 간단 명료하지 않을 뿐더러 문서의 유지에도 더욱 힘이 들게 된다.

7 소단위명세서의 특성 소단위명세서를 작성해야 하는 자료흐름도

8 구조적 언어 02 1) 구조적 언어의 개념 ■ 구조적 언어의 특징
▶ 구조적 언어는 우리가 일상 사용하는 자연어의 부분집합으로 기술하는 언어이다. ▶ 소단위 명세서의 작성에 필요한 최소한의 한정된 단어들과 문형만 사용한다. ▶ 구조적 언어는 PSL(Program Statement Language 또는 Program Specification Language)라고 한다. = 프로그램 문장 언어 / 프로그램 명세(서 )언어 ■ 구조적 언어의 사용 목적 ▶ 전형적인 프로그램 언어의 정확성과 자연어의 비정형성과 읽기 쉬운 특성 사이에 균형을 유지하는 것.

9 구조적 언어 02 1) 구조적 언어의 개념 ■ 구조적 언어의 개념 = 자연 언어 + 구조적 언어의 장점을 선택한 것
- 구조적 언어는 구조적 프로그래밍 언어에서 사용하는 순서, 선택, 반복 등의 제한된 구조를 사용한다. ● 자연 언어의 장점 - 업무 중심언어 신속한 작성 사용자와 익숙함 ● 구조적 프로그램의 장점 - 간결성 명확성 제한된 단어 제한된 문형 - 제한된 구조 ■ 제한된 단어 - 자료사전에 이미 정의되어 있는 자료명과 이외에 약간의 새로운 자료명을 필요에 따라 정의해 사용하는 것 ■ 제한된 문형 - 간단한 명령문과 산술 식으로 구성된 것

10 구조적 언어 02 구조적 언어의 특징

11 구조적 언어 02 ■ 소단위 명세서는 자료 흐름도 및 자료사전과 일치되게 처리의 서부내역을 기술한다.
◆ 좌측 : 고용자 봉급 계산 자료 흐름도 - 자료 흐름도의 처리번호, 처리 명 표시 ◆ 우측 : 자료 사전 - 자료 처리 방법을 표시 ◆ 아래 : 봉급 계산 처리 내역(소단위 명세서) - 밑줄 : 자료 사전에 정의된 자료명 - 입출력 자료를 얻기 위해 구조적 언어의 반복 문 FOR문과 선택 문인 IF문을 사용함. [자료흐름도, 자료사전, 소단위명세서의 관계]

12 구조적 언어 02 2) 구조적 언어의 구조 (1) 순서 문 : 구조적 언어의 세가지 문형 가운데 하나이고 단순히 문장들을 순서적으로 기술한 것. (기술 방법) 문장 1 문장 2 문장 3 ..... 문장 N (사용 예시) 문장(명령어) = 동사(V) + 목적어(O) 1.1 급여자료를(O) 읽는다(V),  Read(V) Payroll Data(O) 1.2 합계액을(O) 계산한다(V),  Compute(V) Pay Sum(O) 1.3 합계액을(O) 출력한다(V),  Print(V) Pay Sum(O) 문장(산술식) = 자료명 + 산술기호 봉급액 = 근무시간 x 시간당임금 수령액 = 지급액 - 공제액

13 구조적 언어 02 (2) 선택 문 : 선택 문은 IF 또는 CASE 문을 사용한다. 사용규칙은 아래와 같다. (기술 방법)
  THEN 문장 1          문장 2          문장 3 END IF   ELSE  문장 4          문장 5          문장 6 ENDIF (사용 예시) IF 급여형태 = “기술직”   THEN 봉급액 = 봉급액 + 기술수당 END IF IF 급여형태 = “연구직”   THEN 봉급액 = 근무시간 x 10,000 ELSE 봉급액 = 근무시간 x 9,000 ENDIF

14 구조적 언어 02 구조적 언어의 구조 선택 문 : CASE 문 (기술 방법) (사용 예시) DO CASE DO CASE
         문장 1          문장 2   CASE 조건 2          문장 3          문장 4      CASE 조건 N          문장 5          문장 6          문장 7   OTHERWISE          문장 8 ENDCASE (사용 예시) DO CASE   CASE 급여형태 = “연구직”         봉급액 = 근무시간 x 10,000   CASE 급여형태 = “사무직”         봉급액 = 근무시간 x 9,000   OTHERWISE         봉급액 = 근무시간 x 8,000 ENDCASE

15 구조적 언어 02 구조적 언어의 구조 (3) 반복 문 : 반복 문은 DO WHILE 또는 REPEAT UNTIL 문, 그리고 FOR문 사용. (기술 방법) DO WHILE 조건 1         문장 1         문장 2         문장 3 ENDDO REPEAT UNTIL 조건 1 (사용 예시) DO WHILE 고객주문서에 주문항목이 남아 있을 때         총액 = 총액 + 주문량 x 단가 ENDDO REPEAT UNTIL 고객주문서에 주문항목이 없을 때까지

16 구조적 언어 02 구조적 언어의 구조 반복문 (기술 방법) FOR 조건 1         문장 1         문장 2         문장 3 ENDFOR

17 구조적 언어 02 3) 구조적 언어의 작성 지침 ■ 소단위 명세서가 복잡해지면 사용자와 분석가가 이해하고 검증하기 어려워지므로
■ 소단위 명세서가 복잡해지면 사용자와 분석가가 이해하고 검증하기 어려워지므로 처리 사항의 복잡한 기술은 피하는 것이 좋다. ① 구조적 언어가 한 페이지를 초과하지 않도록 기술한다. - 구조적 언어가 한 페이지를 초과하게 되면 이해가 어려워지므로 분석가는 다른 방식으로 알고리즘을 간략히 기술하는 것을 생각해 보아야 한다. - 그러나 마땅한 대안이 없다면 처리 자체가 한 페이지로 기술하기에는 너무 복잡한 것이므로, 처리 자체를 하위단계로 분할해야 한다. ② IF 문 또는 CASE 문의 제어구조를 사용할 때는 중첩도(Nesting)가 3 단계를 초과 하지 않도록 한다. - 이러한 구조들은 두 단계 이상만 중첩되어도 이해도를 훨씬 떨어 뜰이게 되므로, 이런 때는 의사결정 표를 사용하는 것을 고려하는 것이 좋다.

18 구조적 언어 02 3) 구조적 언어의 작성 지침 ③ 제어구조를 중첩해 사용할 때는 중첩에 따라 요철 모양(Indentation)을 사용해 혼동을 피하는 것이 좋다. - 이러한 것은 적용하기가 쉬운 반면에 그 효과는 의외로 좋다. - 따라서 구조적 언어의 문서화에 익숙지 않은 사람이 이를 기술할 때는 요철 형태의 문서화를 주지시키도록 한다.

19 선후 조건문 03 1) 선후 조건 문을 작성하는 이유 ■ 선후 조건 문은 알고리즘이나 처리절차를 기술하지 않고 처리가 수행해야 할 기능을 기술하는 편리한 방법임. ■ 선후 조건 문은 아래의 경우에 유용함. ① 사용자가 자신이 오랫동안 사용해 오던 특유한 알고리즘으로 처리가 수행하는 정책을 설명하는 경향이 있을 때 ② 시스템 분석가가 합리적으로 판단해 볼 때 적용 가능한 알고리즘들이 많이 존재할 때 ③ 시스템 분석가가 적용 가능한 다수의 알고리즘을 프로그래머가 선택하길 원하고, 자신은 상세한 알고리즘에 대해 고려하기를 원하지 않으며, 사용자와 알고리즘들의 상대적 장단점을 논의하기를 원하지 않을 때

20 선후 조건문 03 ■ 선후 조건 문은 처리가 수행되기 전에 만족해야 할 사실을 기술한다.
■ 후 조건 문은 처리가 수행된 후 만족해야 할 사실을 기술한다. 선 조건 문 1     환자 퇴원자료가 발생     AND 일치하는 환자가 존재   후 조건 문 1     일치하는 검사계획이 존재하지 않음     일치하는 치료계획이 존재하지 않음     일치하는 환자에 대한 퇴원 원인이 정해짐 [선후 조건문의 간단한 예]

21 선후 조건문 03 2) 선후 조건문의 작성방법 (1) 선조건 문
(1) 선조건 문 ■ 선 조건 문은 처리가 수행되기 전에 만족해야 할 사실을 기술한다. ■ 선 조건 문에 기술해야 할 사항 ① 어떤 입력이 존재해야 하는지를 기술한다. - 이 입력은 자료흐름도에서 나타난 처리에 연결된 입력 자료흐름으로부터 도착 처리를 향해 들어오는 입력 자료흐름은 여럿일지라도 하나의 자료흐름 만이 처리의 수행을 시작시키는 역할을 할 수도 있다

22 선후 조건문 03 2) 선후 조건문의 작성방법 (1) 선조건 문 예
(1) 선조건 문 예 ■ 3가지 입력 자료흐름 가운데 오직 A만이 처리의 수행을 시작시키는 역할을 하고, 처리가 수행을 시작하면 B와 C의 입력 자료를 찾아 처리를 실시한다. - B와 C는 처리의 수행을 시작시키는데 필요한 자료가 아님.

23 선후 조건문 03 2) 선후 조건문의 작성방법 ■ 선 조건 문에 기술해야 할 사항
② 입력자료 내의 관계 또는 입력자료간의 관계를 기술한다. - 이 때 두 개의 자료 항목 사이 일치여부 또는 대소 관계를 기술하며, 어떤 자료 항목의 값이 어떤 범위에 속하는지 등을 기술한다. ③ 입력자료와 자료 저장소간의 관계를 기술한다. - 자료 저장소 내의 어떤 레코드 항목과 입력자료 항목이 일치하는 관계가 있는 지 등을 기술한다. Ex) 고객 자료 저장소의 고객번호와 고객주문서의 고객번호가 일치하는가? ④ 자료 저장소들 간의 관계 또는 자료 저장소 내에서의 관계를 기술한다. Ex) 고객 자료저장소의 고객번호와 다른 장소의 고객번호가 일치하는지, 또는 선적 자료 저장소 내의 특정 레코드의 선적일자가 어떤 날짜와 일치하는

24 선후 조건문 03 2) 선후 조건문의 작성방법 (2) 후 조건 문
(2) 후 조건 문 ■ 후 조건 문은 처리가 수행되기 후에 만족해야 할 사실을 기술한다. ■ 후 조건 문에 기술해야 할 사항 ① 처리가 산출하는 출력을 기술. ex) 상품 주문서가 산출된다. ② 출력 값과 입력 값 사이에 존재해야 하는 관계를 기술 - 출력이 입력에 어떤 수학적인 공식을 적용 하였을 경우에 대표적으로 사용. ex) 지불 총계 = 주문량 × 단위가격 ③ 출력 값과 자료저장소의 값들 간에 존재해야 할 관계를 기술 ex) 재고 자료 저장소의 재고량을 구매 량 만큼 증가시고 새로운 재고량을 출력한다. ④ 자료저장소의 변경사항을 기술하는데, 새로운 항목의 추가, 기존 항목의 수정, 기존 항목의 삭제 등을 기술. ex) 주문서를 주문 자료저장소에 추가 한다거나, 특정 카드를 고객 자료 저장소로부터 제거한다고 기술 하는 것.

25 선후 조건문 03 2) 선후 조건문의 작성방법 (3) 선후 조건 문 작성 시 고려사항
(3) 선후 조건 문 작성 시 고려사항 ① 선후 조건 문을 작성할 때 정상적인 상황을 우선적으로 기술한다. ② 여러 가지의 정상적인 상황이 존재할 때는 이들을 제각기 다른 선 조건 문 으로 기술 ③ 그리고 이들 각각의 선 조건 문에 대해 출력이 산출되었거나 자료저장소가 수정되었을 때의 처리 상황을 후 조건 문으로 기술해야 함 ④ 정상적인 처리상황이 기술되었으면 다음에는 오류의 경우나 비정상적인 경우에 대해 적절한 선후 조건 문을 작성해야 함

26 의사결정표 04 1) 의사결정 표를 작성하는 이유 ■ 상황에 따라 구조적 언어와 선후 조건 문이 소단위 명세서를 기술하는데 적절하지 않을 수 있는 경우 ■ 처리가 산출하는 출력이 복잡한 의사결정에 좌우될 때는 구조적 언어와 선후 조건 문이 복잡해지므로 적당하지 못하는 경우 ■ 의사결정이 수많은 입력 자료에 의해 좌우되고 또한 입력 자료가 광범위한 범위의 값을 가질 경우 구조적 언어나 선후 조건 문으로 기술한다면 도저히 사용자가 이해할 수 없을 정도로 난해한 경우 ※ 의사결정 표 처리방법 - 조건 : True, False 또는 Yes, No 또는 부울변수로 나타낸다. - 그 외 : 여러 가지 값(Male/Female )을 취하는 변수로도 나타냄.

27 의사결정표 04 의사결정표의 예 - Yes/No, Male/Female

28 의사결정표 04 2) 의사결정표의 장점 ■ 의사결정 표는 사용자가 전혀 생각하지 못했던 변수들의 조합을 발견할 수도
■ 의사결정 표는 사용자가 전혀 생각하지 못했던 변수들의 조합을 발견할 수도 있고, 각각의 규칙에 대해 집중 분석할 수 있다. ■ 어떤 특정의 구현방법에 대해 아무런 고려도 하지 않는다는 것이다. 즉 시스템 분석가가 자료 흐름도와 함께 의사결정 표를 시스템 설계자나 프로그래머에게 제시하면, 구현전략에 대하서는 그들이 임의로 선택할 수 있다는 것이다.

29 의사결정표 04 의사결정표의 작성절차 ① 명세할 모든 조건들과 변수들을 식별하고, 각각의 변수가 취할 수 있는 모든 값을 확인 함. ② 조건들의 조합의 수를 계산한다. - 모든 조건들이 true와 false의 두 값만을 갖는다면, n개의 변수들은 2의 n승 개의 조합을 갖게 됨. ③ 의사결정 표에 요구되는 모든 가능한 처리방법을 식별 함. ④ 표의 왼쪽에 조건들과 처리방법들을 표시하고, 표의 오른쪽에는 조건들의 조합인 규칙에 번호를 부여 한다. ⑤ 표의 세로로 이루어진 칸에 조건들의 조합을 하나씩 채워 넣음 ⑥ 각각의 규칙에 대해 적절한 처리방법을 식별함. ⑦ 의사결정 표에서 생략되는 부분, 모순되는 부분, 모호한 부분 등이 있는지 확인 함. ⑧ 사용자와 생략되는 부분, 모순되는 부분, 모호한 부분 등을 토론해 의사결정 표에 반영 시킴.

30 실습하기 04 교재 178쪽 179쪽 내용을 PPT로 작성 후 제출 교재 181쪽 연습문제를 PPT로 작성 후 제출


Download ppt "7장 소단위명세서(MiniSpec)."

Similar presentations


Ads by Google