sa09 การเขียนคำอธิบายกระบวนการทำงาน...
TRANSCRIPT
1
บทท 9 การเขยนค าอธบายกระบวนการท างาน
(Process Specification)
2
การเขยนค าอธบายกระบวนการท างาน
วตถประสงคการเรยนร
เพอใหทราบถงวตถประสงคและจดมงหมายในการเขยนค าอธบายการ
กระบวนการท างาน
เพอใหทราบถงวธการเขยนค าอธบาย การการประมวลผลไดอยางถกตอง
เพอใหรจกเครองมอทใชในการอธบายขอมลแบบตาง ๆ เชน โครงสรางภาษา,
ตารางการตดสนใจ, ผงตนไม เปนตน
เพอใหเหนความสมพนธกนระหวางแผนภาพแสดงการไหลของกระแสขอมล
พจนานกรมขอมล และค าอธบายกระบวนการท างาน
3
การเขยนค าอธบายกระบวนการท างาน
หลกการเขยนค าอธบายกระบวนการท างาน
หลงจากทมการสรางแผนภาพแสดงการไหลของขอมล หรอแผนภาพ
DFD และสรางพจนานกรมขอมลเพออธบายถงขอมลตาง ๆ ทปรากฏอยใน
แผนภาพแลว สวนทนกวเคราะหจะตองจดท ากคอ การสรางค าอธบายถง
รายละเอยดในสวนของการประมวลผลหรอของโปรเซสตาง ๆ ทปรากฎอยใน
แผนภาพ DFD ซงการอธบายกระบวนการท างานนกเพอใชเปนสอในการสราง
ความเขาใจทตรงกนระหวางนกวเคราะหระบบกบผใชระบบ หรอนกวเคราะห
ระบบกบโปรแกรมเมอร ทจะเปนผน าเอารายละเอยดทไดจากการวเคราะหระบบ
เหลาน ไปสรางเปนโปรแกรมคอมพวเตอรขนมาใชงานในอนาคต
4
การเขยนค าอธบายกระบวนการท างาน
วตถประสงคในการเขยนค าอธบายกระบวนการท างาน
เพอสรางความชดเจนในรายละเอยดการท างานของโปรเซสหรอ
ขนตอนของการประมวลผล
เพอชวยใหเกดความเขาใจทตรงกนระหวางนกวเคราะหระบบและ
ผพฒนาโปรแกรม
เพอชวยใหข นตอนการออกแบบระบบท าไดงายขน และถกตองตาม
ความตองการของผใช ท งในสวนของการออกแบบสวนแสดงผล
สวนรบขอมล สวนของฐานขอมล และสวนของโปรแกรม
5
การเขยนค าอธบายกระบวนการท างาน
ประเภทของโปรเซสทไมตองเขยนค าอธบายกระบวนการท างาน
ในบางกรณการเขยนค าอธบายโปรเซส กไมจ าเปนทจะตองเขยนอธบายทกโปรเซสท
เปนไพมทฟโปรเซส เนองจากในบางโปรเซสสามารถสอความเขาใจไดตรงกน ระหวาง
นกวเคราะหระบบและผพฒนาโปรแกรมไดโดยไมตองมค าอธบาย หรออกกรณหนง คอ
ไดมการอธบายถงโปรเซสในลกษณะเดยวกนมาแลวครงหนงกไมจ าเปนทจะตองเขยน
ค าอธบายอก ซงสามารถสรปลกษณะของโปรเซสทไดรบการยกเวนการเขยนค าอธบาย
ไดดงน
โปรเซสของการรบขอมลหรอสงออกขอมลทไมซบซอน เชน การรบรหสนกศกษา หรอ
การพมพขอความแสดงการผดพลาด เปนตน
โปรเซสเกยวกบการตรวจสอบความถกตองของขอมล(data validation)
โปรเซสทมการเรยกใชกระบวนการท างานเหมอนกบโปรเซสทมเคยอธบายไวแลวกอน
หนาน
6
การเขยนค าอธบายกระบวนการท างาน
การเขยนแบบฟอรมอธบายกระบวนการท างาน (Process Specification Form)
หมายเลขโปรเซส (Process Number) เปนหมายเลขของโปรเซสทแสดงไวใน
แผนภาพแสดงการไหลของกระแสขอมล
ชอโปรเซส (Process Name) เปนชอของโปรเซส โดยจะตองเหมอนกบชอทการเขยน
ไวในสญลกษณของโปรเซสในแผนภาพแสดงการไหลของกระแสขอมล
ค าอธบายรายละเอยด (Description) เปนค าอธบายรายละเอยดทเกยวกบโปรเซส
โดยจะตองเขยนใหมรายละเอยดเพยงพอทจะท าใหผอานค าอธบายกระบวนการท างาน
สามารถเขาใจไดวาโปรเซสนนมหนาทในการประมวลผลเกยวกบสงใด
รายการขอมลเขา (Input Data Flow) เปนรายชอของเสนกระแสขอมลทไหลเขาส
โปรเซส
7
การเขยนค าอธบายกระบวนการท างาน
การเขยนแบบฟอรมอธบายกระบวนการท างาน (ตอ) รายการขอมลออก (Output Data Flow) เปนรายชอของเสนกระแสขอมล
ทไหลออกจากโปรเซส
ประเภทของโปรเซส (Process Type) เปนการระบถงประเภทของโปรเซส
วาเปนโปรเซสชนดออนไลน (On-line) ,แบบแบตซ (Batch) หรอเปน
กระบวนการท างานดวยบคคล (Manual)
ข นตอนการท างานของโปรเซส (Process Logic) เปนการเขยนค าอธบาย
ถงข นตอนกระท างานของโปรเซส โดยสามารถเขยนอธบายอยในลกษณะของ
โครงสรางภาษาองกฤษ(Structure English) , ตารางการตดสนใจ
(Decision Table) หรอผงการตดสนใจ (Decision Tree)
8
(Process Specification Form)
(Process Number)
(Process Name)
(Description)
________________________
________________________
____________________________________________________________________________________________________________________________________________________________________________________________________________________________________
(Input Data Flow)
________________________________________________
(Process Type)
________________________
(Process Logic)
________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
(Output Data Flow)
9
การเขยนค าอธบายกระบวนการท างาน
เทคนคทใชในการอธบายข นตอนการท างานของโปรเซส
โครงสรางภาษาองกฤษ (Structure English)
ตารางการตดสนใจ (Decision Table)
ผงตนไมในการตดสนใจ (Decision Tree)
10
โครงสรางภาษาองกฤษ (Structure English)
ข นตอนการเขยนโครงสรางภาษาองกฤษ
จะเขยนอธบายโครงสรางของล าดบขนตอนการท างานในลกษณะตาง ๆ ไดแก ข นตอน
การท างานแบบเรยงล าดบ(Sequential Structure), การท างานแบบตามเงอนไข
(Decision Structure) ,การท างานแบบเลอกปฏบตตามกรณ (Case
Structure) และการท างานแบบท าซ า(Iteration)
การเขยนค าอธบายจะใชค าในภาษาองกฤษทส าคญ ๆ อธบายการท างาน เชน IF,
THEN, ELSE, DO, DO WHILE, DO UNTIL และ PERFORM เปนตน
จะเขยนในลกษณะประโยคภาษาองกฤษทเรยงล าดบลงมา และมการจดยอหนาเพอแสดง
ใหถงระดบช นของขนตอนการท างาน หรอขนตอนการท างานทซอนกนอย (nesting
statement)
11
โครงสรางภาษาองกฤษ (Structure English)
ข นตอนการเขยนโครงสรางภาษาองกฤษ (ตอ)
การใชค าศพทจะตองตรงกบชอของขอมลทปรากฏอยในแผนภาพแสดงการ
ไหลของกระแสขอมล หรอปรากฏอยในพจนานกรมขอมล
ควรระมดระวงในการใชค า “AND” และ “OR” ใหมาก เนองจากทงสอง
ค ามความหมายแตกตางกนโดยสนเชง และการใชค าอน ๆ กควรเลอกใชค า
ทถกตองกบความหมาย เชน ค าวามากกวาจะใชค าวา “greater than”
สวนค าวามากกวาหรอเทากบจะใชค าวา “greater than or equal” เปน
ตน
12
ตวอยางการเขยนโครงสรางภาษาองกฤษ
โครงสรางแบบเรยงล าดบ (Sequential Structure)
รปแบบAction #1Action #2Action #3
ตวอยางGET Order RecordGET Customer RecordMove Order Number to shipping
statementGET Hour_workGET Pay_rateMultiply Hour_work by Pay_rate giving
Net_payPrint Net_pay
13
ตวอยางการเขยนโครงสรางภาษาองกฤษ
โครงสรางแบบท างานตามเงอนไข (Decision Structure)
รปแบบIF Condition A is True
THEN implement Action AELSE implement Action BENDIF
ตวอยางIF Salary greater than 2000
THEN Tax_rate = 20 %ELSE Tax_rate = 30 %ENDIFMultiply Salary by Tax_rate givingNet_SalaryPrint Net_Salary
14
ตวอยางการเขยนโครงสรางภาษาองกฤษ
โครงสรางแบบเลอกปฏบตตามกรณ (Case Structure)
รปแบบSELECT CASE (Item)CASE #1 : Action #1A
Action #1BCASE #2 : Action #2A
Action #2BCASE #3 : Action #3A
Action #3BENDCASE
ตวอยางSELECT CASE (Salary) CASE Less than 10000 :
Tax_rate = 10 %CASE Greater than or Equal 10000
and Less then 20000 : Tax_rate = 20 %
CASE Greater than or Equal 20000 :Tax_rate = 30 %
ENDCASE
15
ตวอยางการเขยนโครงสรางภาษาองกฤษ
โครงสรางแบบท าซ า (Iteration)
รปแบบDO WHILE there are
customersAction #1Action #2
ENDDO
ตวอยางCustomer_item = 0DO WHILE Customer_item not Equal 10
IF Salary greater than 2000 THEN Tax_rate = 20 %
ELSE Tax_rate = 30 %ENDIFMultiply Salary by Tax_rate giving
Net_SalaryPrint Net_Salary Add 1 to Customer_item
ENDDO
16
ตารางการตดสนใจ (Decision Table)
หลกการเขยนตารางการตดสนใจ
ตารางการตดสนใจจะถกน ามาใชในการอธบายถงขนตอนการ
ท างานของโปรเซสแบบมเงอนไข(Decision Structure) และเลอก
ปฏบตตามกรณ โดยในตารางการตดสนใจจะถกแบงเปนคอลมน
คอลมนแรกจะใชแสดง เงอนไขการตดสนใจ(Condition) และ
กจกรรมทตองท าหลงการตดสนใจ(Action) สวนคอลมนทเหลอจะใช
แสดง กฎเกณฑ(Rule) ทเปนตวระบวาจะตองท ากจกรรมใดบางตาม
ผลของเงอนไขใด
17
ตารางการตดสนใจ (Decision Table)
ข นตอนการเขยนตารางการตดสนใจ
ก าหนดจ านวนเงอนไขในการตดสนใจ และเขยนรายชอเงอนไขเหลานนลงใน
คอลมนแรก โดยจะเขยนแถวละหนงเงอนไขตามล าดบจากบนลงลาง
ก าหนดจ านวนกจกรรมทตองกระท า และเขยนรายชอกจกรรมตาง ๆ ลงใน
คอลมนแรกในแถวตอจากเงอนไขสดทาย โดยเขยนแถวละหนงกจกรรม
ตามล าดบจากบนลงลาง
ก าหนดทางเลอก(alternative)ของเงอนไขทกเงอนไข โดยแตละเงอนไขจะม
ทางเลอกทเปนไปไดเพยง 2 ทางเลอกเทานน คอ ใช(Y) หรอไมใช(N)
18
ตารางการตดสนใจ (Decision Table)
ข นตอนการเขยนตารางการตดสนใจ(ตอ)
ค านวณหาจ านวนคอลมนทใชแสดงทางเลอกทกทางเลอกเมอน าเงอนไขทก
เงอนไขมาพจารณารวมกน โดยค านวณจากสมการ จ านวนทางเลอก = 2n เมอ n เปนจ านวนของเงอนไขทงหมด หลงจากนนใหก าหนดจ านวน
คอลมนเทากบจ านวนทางเลอกทค านวณได
ท าการเขยนผลของเงอนไขลงไปในคอลมนทกคอลมนตามแถวของเงอนไข
ทกเงอนไขโดยเขยนใหสมพนธกบจ านวนของเงอนไขดงน
เงอนไขท 1 : Y Y Y Y Y Y Y Y N N N N N N N N
เงอนไขท 2 : Y Y Y Y N N N N Y Y Y Y N N N N
เงอนไขท 3 : Y Y N N Y Y N N Y Y N N Y Y N N
เงอนไขท 4 : Y N Y N Y N Y N Y N Y N Y N Y N
19
ตารางการตดสนใจ (Decision Table)
ข นตอนการเขยนตารางการตดสนใจ(ตอ)
ใสเครองหมายกากบาท „X‟ ลงไปในแถวของกจกรรมทตองกระท า โดยใส
ใหตรงกบคอลมนทมผลของทางเลอกตามทก าหนดไว
ท าการรวมคอลมนทมกจกรรมตองกระท าไมวาผลของเงอนไขจะเปนเชนไร
และหลกจากทท าการรวมคอลมนกนแลวใหใสเครองหมาย „-‟ ลงในชองทางเลอกของเงอนไขแทน
เงอนไขท 1 : Y Y
เงอนไขท 2 : Y N
กจกรรม 1 : X X
เงอนไขท 1 : Y
เงอนไขท 2 : -
กจกรรม 1 : X
เปลยนเปน
20
ตารางการตดสนใจ (Decision Table)
ข นตอนการเขยนตารางการตดสนใจ(ตอ)
ท าการตรวจสอบตารางการตดสนใจเพอไมใหเกดปญหาเกยวกบเงอนไขไม
นาจะเปนไปได (Impossible Situation) , ปญหาเกยวกบความขดแยงกน
ของกฎเกณฑบางขอ (Contradictions) หรอปญหาเกยวกบความซ าซอน
ของเงอนไข (Redundant)
21
ตวอยางการเขยนตารางการตดสนใจ
ในการตดสนใจของนายสมชายทจะไปเทยวในวนหยดสดสปดาห จะ
ขนอยกบเงอนไข 3 เงอนไขไดแก ในวนหยดฝนจะตกลงมาหรอไม, นาย
สมปองทเปนเพอนของนายสมชายจะวางหรอไม และจะตองเหลอเงนอย
ในกระเปาสตางคไมนอยกวา 2,000 บาท โดยนายสมชายจะเลอกปฏบต
ตวตามผลของเงอนไขตอไปน
ถามเงนไมนอยกวา 2,000 บาท และฝนไมตก นายสมชายจะไปเทยวเขา
ใหญ
แตถามเงนนอยกวา 2,000 บาท และฝนไมตก และนายสมปองวาง นาย
สมชายกจะไปเขาใหญ
แตถาฝนตกนายสมชายจะอยบานเทานน
และถาฝนไมตก และนายสมปองไมวาง และมเงนนอยกวา 2,000 บาท
นายสมชายจะไปพนทพ
22
ตวอยางการเขยนตารางการตดสนใจ
เงอนไข และการกระท ากฎเกณฑ
1 2 3 4 5 6 7 8
ฝนตกหรอไม Y Y Y Y N N N N
สมปองวางหรอไม Y Y N N Y Y N N
มเงนไมนอยกวา 2,000 บาท Y N Y N Y N Y N
ไปเทยวเขาใหญ X X X
อยบาน X X X X
ไปพนทพ X
23
ตวอยางการเขยนตารางการตดสนใจ
เงอนไข และการกระท ากฎเกณฑ
1 2 3 4
ฝนตกหรอไม Y N N N
สมปองวางหรอไม - Y N N
มเงนไมนอยกวา 2,000 บาท - - Y N
ไปเทยวเขาใหญ X X
อยบาน X
ไปพนทพ X
24
หลกการเขยนผงตนไมในการตดสนใจ
เปนวธการอธบายการท างานของโปรเซสดวยการเขยนเปนผง
ตนไม เพอใชแทนเสนทางการตดสนใจ โดยในการเขยนแผนภาพจะ
เหมอนกบการเขยนโครงสรางของตนไมทมกงกานอยทางขวามอของ
แผนภาพ สวนของโคนตนไมจะอยทางซายมอของแผนภาพ โดยใน
การอธบายโครงสรางของการตดสนใจจะเหมอนกบโครงสรางของ
ตารางการตดสนใจ แตจะตางกนทรปแบบของแผนภาพเทานน
ผงตนไมในการตดสนใจ (Decision Tree)
25
ข นตอนการเขยนผงตนไมในการตดสนใจ
เรมเขยนแผนภาพโดยการเกดโนด(Node) ของรากตนไมหนงโนด โดย
ก าหนดใหเปนโนดหมายเลข 1 หรอ โนดของราก(Root Node)
ท าการแตกเปนกงกานตามคาทจะเปนไปไดของของเงอนไขแรก โดยในกง
กานระดบแรกจะใชแสดงถงคาทเปนไปไดของเงอนไขในระดบทหนง(ตองม
อยางนอย 2 คาทเปนไปได)
ก าหนดกจกรรม(Action) ทเปนผลจากทางเลอกของเงอนไขในแตละระดบ
ถาหลงจากเกดกจกรรมแลวมเงอนไขเกดขนอก กจะตองท าการแตก
แผนภาพออกเปนกงกานของตนไมซอนลงไปอกระดบหนง และจะท าเชนนไป
เรอยโดยการยอนกลบไปท าในขนตอนท 2 และ 3 ตามล าดบ จนกวาจะ
หมดเงอนไข
ผงตนไมในการตดสนใจ (Decision Tree)
26
ตวอยางการเขยนผงตนไมในการตดสนใจ
27
ตวอยางการเขยนค าอธบายกระบวนการท างาน
(Process Specification Form)
(Process Number)
(Process Name)
(Description)
7
3000
(Input Data Flow)
(Process Type)
Batch Processing
(Process Logic)
Get Customer_RecordIF Customer_Payment_Total Greater than or Equal to 3000 THEN
Print Yearly_Bonus_LetterENDIF
(Output Data Flow)