결정표

Decision table
Golf dataset.png

의사결정표는 주어진 조건에 따라 수행할 작업을 지정하기 위한 간결한 시각적 표현이다.그것들은 출력이 작용의 집합인 알고리즘이다.의사결정 표에 표현된 정보는 의사결정 나무 또는 if-enseswitch-case 문장의 시리즈로서 프로그래밍 언어로 표현될 수도 있다.

개요

각 결정은 조건 대안에 가능한 값이 열거된 변수, 관계 또는 술어에 해당한다.각 동작은 수행되는 절차나 작업이며, 항목들은 항목이 대응하는 조건 대안의 집합에 대해 작업을 수행할지(또는 어떤 순서로 수행할지를 명시한다.

더 간결하게 하기 위해, 많은 의사결정 표에는 조건 대안에 상관 없음 기호가 포함되어 있다.이것은 하이픈이나[1][2][3] 빈칸일 수 있지만,[4] 단지 결정표가 완성되지 않았다는 것을 나타낼 수 있기 때문에 빈칸을 사용하는 것은 금지될 수 있다.[citation needed]의사결정표의 용도 중 하나는 어떤 입력 요인이 취해야 할 조치와 무관한 조건을 밝혀 이러한 입력 테스트를 생략할 수 있도록 하여 의사결정 절차를 합리화하는 것이다.[5]

"상관없음" 기호 시연
규칙.
조건들 활기찬 느낌? 아니요. 아니요.
비가 오나? 아니요. 아니요.
행동들 안에 있어. Maybe Maybe
뛰어가다. Maybe
정원을 가꾸다. Maybe Maybe
규칙.
조건들 활기찬 느낌? 아니요.
비가 오나? 아니요. 아니요.
행동들 안에 있어. Maybe
뛰어가다. Maybe
정원을 가꾸다. Maybe Maybe
위의 표는 동일한 정보를 전달하지만, 두 번째 표는 간결함을 위한 관리 안 함 기호로 하이픈을 사용한다.

기본적인 4사분면 구조와는 별도로, 의사결정표는 조건 대안과 조치 항목이 표현되는 방식에 따라 매우 다양하다.[6][7]어떤 결정표에서는 조건에 대한 대안을 나타내기 위해 간단한 참/거짓 값을 사용하고(만약의 경우-엘세와 유사), 다른 표는 번호가 매겨진 대안을 사용할 수 있으며(스위치-케이스와 유사), 어떤 표는 조건 대안에 퍼지 논리 또는 확률론적 표현을 사용한다.[8]유사한 방법으로, 조치 항목은 단순히 조치가 수행되어야 하는지를 나타낼 수 있다(수행할 조치의 확인), 또는 보다 발전된 의사결정 표에서 수행할 조치의 순서(수행할 조치의 번호를 매기).

결정표는 입력 변수의 가능한 모든 조합을 포함하는 경우 균형[4] 또는 완전체[3] 간주된다.즉, 균형 잡힌 의사결정표는 입력 변수가 제공되는 모든 상황에서 조치를 규정한다.[4]

제한적 진입 결정표는 설명하기 가장 간단하다.조건 대안은 단순 부울 값이며, 조치 항목은 체크 표시로, 주어진 열의 조치 중 수행할 작업을 나타낸다.

한 기술 지원 회사가 전화상으로 고객에게 설명한 증상에 따라 프린터 문제를 진단하기 위한 의사결정표를 작성한다.

다음은 균형 잡힌 결정표다.

프린터 문제 해결사
규칙.
조건들 프린터 인쇄 아니요. 아니요. 아니요. 아니요.
빨간불이 번쩍이고 있다. 아니요. 아니요. 아니요. 아니요.
프린터가 컴퓨터에서 인식됨 아니요. 아니요. 아니요. 아니요.
행동들 전원 케이블을 점검하십시오. Maybe
프린터-컴퓨터 케이블을 확인하십시오. Maybe Maybe
프린터 소프트웨어가 설치되었는지 확인 Maybe Maybe Maybe Maybe
체크/교체 잉크 Maybe Maybe Maybe
용지 걸림 확인 Maybe Maybe

물론 이것은 단순한 예에 불과하지만(그리고 그것이 반드시 프린터 문제 해결의 현실에 부합하는 것은 아니다), 그렇더라도 의사결정표가 많은 가능성을 가지고 여러 가지 조건으로 확장될 수 있는 방법을 보여준다.

소프트웨어 엔지니어링 이점

의사결정표, 특히 도메인별 언어의 사용과 결합할 경우 개발자와 정책 전문가가 동일한 정보, 즉 의사결정표 자체에서 작업할 수 있도록 한다.

전통적인 프로그래밍 언어에서 의사결정 테이블로 이어지는 문장을 디버깅 도구로도 사용할 수 있는 경우 중첩을 렌더링하는 도구.[9][10]

의사결정표는 코드보다 이해와 검토가 용이하다는 것이 입증되었으며, 복잡한 시스템에 대한 사양을 작성하는데 광범위하고 성공적으로 사용되어 왔다.[11]

역사

1960년대와 1970년대에 파일탑과 같은 다양한 "결정표 기반" 언어가 비즈니스 프로그래밍으로 인기를 끌었다.

내장된 의사 결정 테이블 프로그래밍

의사결정표는 컴퓨터 프로그램에 내장되어 프로그램의 논리를 "추진"하는 데 사용될 수 있으며, 종종 사용된다.간단한 예로는 가능한 입력 값의 범위를 포함하는 조회 테이블과 해당 입력을 처리하는 코드의 섹션에 대한 함수 포인터가 있을 수 있다.

정적결정표
입력 함수 포인터
"1" 함수 1(초기화)
"2" 함수 2(프로세스 2)
"9" 함수 9(종료)

제어 테이블

실행 가능한 결정표 또는 제어표의 형태로 전체 프로그램 로직을 캡슐화하는 유사한 방법으로 여러 조건을 코딩할 수 있다.실제로 여러 수준에서 작동하며 종종 서로 연결될 수 있는 그러한 표(점자 또는 인덱스 값)가 몇 개 있을 수 있다.

구현

  • Filetab(파일 탭)(원래 NCC)
  • DETAB/65, 1965, ACM
  • 1962년 랜드의 FOTAB, FORTRAN에[12] 임베디드 설계
  • 특정 입력값을 기반으로 정확한 동작을 찾기 위해 MapReduce를 이용한 Ruby 구현이 존재한다.[13]

참고 항목

참조

  1. ^ LI Jing (1 April 2015). "SEEM 3430 Tutorial: Decision Tables" (PDF). p. 23. Retrieved 11 November 2017.
  2. ^ "Creating a Decision Table in Business Rules". Oracle Help Center. 6 August 2017. Retrieved 11 November 2017.
  3. ^ a b Ross, Ronald G. (2005). "Decision Tables, Part 2 ~ The Route to Completeness". Business Rules Journal. 6 (8). Retrieved 11 November 2017.
  4. ^ a b c Snow, Paul (19 July 2012). "Decision Tables". DTRules: A Java Based Decision Table Rules Engine. Retrieved 11 November 2017.
  5. ^ LI Jing 2015, 페이지 24-25.
  6. ^ Rogers, William T. "Decision Table Examples: Medical Insurance". Saint Xavier University Systems Analysis and Design. Archived from the original on March 29, 2007.
  7. ^ "Archived copy". Archived from the original on 2012-05-30. Retrieved 2010-07-07.{{cite web}}: CS1 maint: 타이틀로 보관된 사본(링크)
  8. ^ Wets, Geert; Witlox, Frank; Timmermans, Harry; Vanthienen, Jan (1996). "Locational choice modelling using fuzzy decision tables". New frontiers in fuzzy logic and computing: 1996 biennial conference of the North American Fuzzy Information Processing Society – NAFIPS. Biennial Conference of the North American Fuzzy Information Processing Society. Berkeley, CA: IEEE. pp. 80–84. doi:10.1109/NAFIPS.1996.534708. ISBN 0-7803-3225-3.
  9. ^ "A Real CCIDE 예제"
  10. ^ "Experience With The Cope Decision Table Processor". Archived from the original on 2017-05-04. Retrieved 2010-07-07.
  11. ^ Udo W. Pooch, "의사결정표의 번역", ACM 컴퓨팅 조사, 제6권, 제2권 (74년 6월) 페이지: 125–151 ISSN 0360-0300
  12. ^ "FOTAB: 과학 컴퓨팅 애플리케이션을 위한 의사결정 테이블 언어", 1962년, Rand
  13. ^ 알렉산더 윌리엄스(2015년)."루비 결정 테이블 구문 분석기"

추가 읽기

  • Dwyer, B. and Hutchings, K. (1977) "Cope에서의 플로우차트 최적화, 다중 선택 의사결정표" 호주.제9권 제92호 (1977년 9월 1일)
  • 피셔, D.L. (1966) "데이터, 문서 및 의사결정 표" Comm ACM Vol. 9번 1번 (1966년 1월) 페이지 26~31번.
  • GE-225 TABSOL 참조 매뉴얼 및 GF-224 TABSOL 응용 매뉴얼 CPB-l47B(1962년 6월)
  • 그라인들리, C.B.B. (1968) "시스템학 내에서 의사결정표의 사용" 컴프.J. 제11권 제2호 128호 (1968년 8월)
  • 잭슨, M.A. (1975) 프로그램 디자인 학술 출판의 원리
  • 마이어스, H.J. (1972) "결정표에서 최적 코드 비교" IBM J. Res. & Development (1972년 9월) 페이지 489–503.
  • 폴락, S.L. (1962) "DETAB-X: 향상된 비즈니스 지향 컴퓨터 언어" 랜드 코퍼레이션.메모 RM-3273-PR (1962년 8월)
  • 슈마허·H.·세브시크·K.C.(1976년) 「결정표 전환에 대한 합성적 접근법」 통신.ACM 제19권 제6호(1976년 6월) 페이지 343–351
  • CSA, (1970): Z243.1–1970 for Decision Tables, Canadian Standards Association
  • Jorgensen, Paul C. (2009) 모델링 소프트웨어 행동: 장인의 접근법.아우어바흐 출판사, CRC 프레스.제5장.

외부 링크

  • RapidGen 소프트웨어 Windows, Unix, Linux 및 OpenVMS 버전의 의사결정 테이블 기반 프로그래밍 도구 및 컴파일러
  • LogicGem 소프트웨어 로직 및 비즈니스 규칙 완료를 위한 Windows 의사 결정 테이블 프로세서