결정표
Decision table의사결정표는 주어진 조건에 따라 수행할 작업을 지정하기 위한 간결한 시각적 표현이다.그것들은 출력이 작용의 집합인 알고리즘이다.의사결정 표에 표현된 정보는 의사결정 나무 또는 if-ense 및 switch-case 문장의 시리즈로서 프로그래밍 언어로 표현될 수도 있다.
개요
각 결정은 조건 대안에 가능한 값이 열거된 변수, 관계 또는 술어에 해당한다.각 동작은 수행되는 절차나 작업이며, 항목들은 항목이 대응하는 조건 대안의 집합에 대해 작업을 수행할지(또는 어떤 순서로 수행할지를 명시한다.
더 간결하게 하기 위해, 많은 의사결정 표에는 조건 대안에 상관 없음 기호가 포함되어 있다.이것은 하이픈이나[1][2][3] 빈칸일 수 있지만,[4] 단지 결정표가 완성되지 않았다는 것을 나타낼 수 있기 때문에 빈칸을 사용하는 것은 금지될 수 있다.[citation needed]의사결정표의 용도 중 하나는 어떤 입력 요인이 취해야 할 조치와 무관한 조건을 밝혀 이러한 입력 테스트를 생략할 수 있도록 하여 의사결정 절차를 합리화하는 것이다.[5]
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
위의 표는 동일한 정보를 전달하지만, 두 번째 표는 간결함을 위한 관리 안 함 기호로 하이픈을 사용한다. |
기본적인 4사분면 구조와는 별도로, 의사결정표는 조건 대안과 조치 항목이 표현되는 방식에 따라 매우 다양하다.[6][7]어떤 결정표에서는 조건에 대한 대안을 나타내기 위해 간단한 참/거짓 값을 사용하고(만약의 경우-엘세와 유사), 다른 표는 번호가 매겨진 대안을 사용할 수 있으며(스위치-케이스와 유사), 어떤 표는 조건 대안에 퍼지 논리 또는 확률론적 표현을 사용한다.[8]유사한 방법으로, 조치 항목은 단순히 조치가 수행되어야 하는지를 나타낼 수 있다(수행할 조치의 확인), 또는 보다 발전된 의사결정 표에서 수행할 조치의 순서(수행할 조치의 번호를 매기).
결정표는 입력 변수의 가능한 모든 조합을 포함하는 경우 균형[4] 또는 완전체로[3] 간주된다.즉, 균형 잡힌 의사결정표는 입력 변수가 제공되는 모든 상황에서 조치를 규정한다.[4]
예
제한적 진입 결정표는 설명하기 가장 간단하다.조건 대안은 단순 부울 값이며, 조치 항목은 체크 표시로, 주어진 열의 조치 중 수행할 작업을 나타낸다.
한 기술 지원 회사가 전화상으로 고객에게 설명한 증상에 따라 프린터 문제를 진단하기 위한 의사결정표를 작성한다.
다음은 균형 잡힌 결정표다.
규칙. | |||||||||
---|---|---|---|---|---|---|---|---|---|
조건들 | 프린터 인쇄 | 아니요. | 아니요. | 아니요. | 아니요. | 네 | 네 | 네 | 네 |
빨간불이 번쩍이고 있다. | 네 | 네 | 아니요. | 아니요. | 네 | 네 | 아니요. | 아니요. | |
프린터가 컴퓨터에서 인식됨 | 아니요. | 네 | 아니요. | 네 | 아니요. | 네 | 아니요. | 네 | |
행동들 | 전원 케이블을 점검하십시오. | ![]() | — | ||||||
프린터-컴퓨터 케이블을 확인하십시오. | ![]() | ![]() | — | ||||||
프린터 소프트웨어가 설치되었는지 확인 | ![]() | ![]() | ![]() | ![]() | — | ||||
체크/교체 잉크 | ![]() | ![]() | ![]() | — | |||||
용지 걸림 확인 | ![]() | ![]() | — |
물론 이것은 단순한 예에 불과하지만(그리고 그것이 반드시 프린터 문제 해결의 현실에 부합하는 것은 아니다), 그렇더라도 의사결정표가 많은 가능성을 가지고 여러 가지 조건으로 확장될 수 있는 방법을 보여준다.
소프트웨어 엔지니어링 이점
의사결정표, 특히 도메인별 언어의 사용과 결합할 경우 개발자와 정책 전문가가 동일한 정보, 즉 의사결정표 자체에서 작업할 수 있도록 한다.
전통적인 프로그래밍 언어에서 의사결정 테이블로 이어지는 문장을 디버깅 도구로도 사용할 수 있는 경우 중첩을 렌더링하는 도구.[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]
참고 항목
참조
- ^ LI Jing (1 April 2015). "SEEM 3430 Tutorial: Decision Tables" (PDF). p. 23. Retrieved 11 November 2017.
- ^ "Creating a Decision Table in Business Rules". Oracle Help Center. 6 August 2017. Retrieved 11 November 2017.
- ^ a b Ross, Ronald G. (2005). "Decision Tables, Part 2 ~ The Route to Completeness". Business Rules Journal. 6 (8). Retrieved 11 November 2017.
- ^ a b c Snow, Paul (19 July 2012). "Decision Tables". DTRules: A Java Based Decision Table Rules Engine. Retrieved 11 November 2017.
- ^ LI Jing 2015, 페이지 24-25.
- ^ Rogers, William T. "Decision Table Examples: Medical Insurance". Saint Xavier University Systems Analysis and Design. Archived from the original on March 29, 2007.
- ^ "Archived copy". Archived from the original on 2012-05-30. Retrieved 2010-07-07.
{{cite web}}
: CS1 maint: 타이틀로 보관된 사본(링크) - ^ 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.
- ^ "A Real CCIDE 예제"
- ^ "Experience With The Cope Decision Table Processor". Archived from the original on 2017-05-04. Retrieved 2010-07-07.
- ^ Udo W. Pooch, "의사결정표의 번역", ACM 컴퓨팅 조사, 제6권, 제2권 (74년 6월) 페이지: 125–151 ISSN 0360-0300
- ^ "FOTAB: 과학 컴퓨팅 애플리케이션을 위한 의사결정 테이블 언어", 1962년, Rand
- ^ 알렉산더 윌리엄스(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 의사 결정 테이블 프로세서