เครื่องมือวิเคราะห์และออกแบบซอฟต์แวร์
การวิเคราะห์และออกแบบซอฟต์แวร์รวมถึงกิจกรรมทั้งหมดซึ่งช่วยในการเปลี่ยนข้อกำหนดข้อกำหนดไปสู่การนำไปใช้งาน ข้อกำหนดข้อกำหนดระบุความคาดหวังที่ใช้งานได้และไม่ใช้งานได้ทั้งหมดจากซอฟต์แวร์ ข้อกำหนดข้อกำหนดเหล่านี้มาในรูปแบบของเอกสารที่มนุษย์อ่านได้และเข้าใจได้ซึ่งคอมพิวเตอร์ไม่มีอะไรทำ
การวิเคราะห์และออกแบบซอฟต์แวร์เป็นขั้นตอนกลางซึ่งช่วยให้ข้อกำหนดที่มนุษย์อ่านได้เปลี่ยนเป็นรหัสจริง
ให้เราดูเครื่องมือวิเคราะห์และออกแบบบางส่วนที่นักออกแบบซอฟต์แวร์ใช้:
แผนภาพกระแสข้อมูล
แผนภาพกระแสข้อมูลคือการแสดงภาพกราฟิกของการไหลของข้อมูลในระบบสารสนเทศ สามารถแสดงการไหลของข้อมูลขาเข้ากระแสข้อมูลขาออกและข้อมูลที่จัดเก็บ 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 ซึ่งแสดงถึงระบบข้อมูลทั้งหมดเป็นแผนภาพเดียวที่ปกปิดรายละเอียดพื้นฐานทั้งหมด DFD ระดับ 0 เรียกอีกอย่างว่า DFD ระดับบริบท
- Level 1- DFD ระดับ 0 แบ่งออกเป็น DFD ระดับ 1 ที่เฉพาะเจาะจงมากขึ้น DFD ระดับ 1 แสดงถึงโมดูลพื้นฐานในระบบและการไหลของข้อมูลระหว่างโมดูลต่างๆ DFD ระดับ 1 ยังกล่าวถึงกระบวนการพื้นฐานและแหล่งที่มาของข้อมูล
Level 2 - ในระดับนี้ DFD จะแสดงวิธีการไหลของข้อมูลภายในโมดูลที่กล่าวถึงในระดับ 1
DFD ระดับที่สูงขึ้นสามารถเปลี่ยนเป็น DFD ระดับล่างที่เฉพาะเจาะจงมากขึ้นพร้อมกับความเข้าใจที่ลึกซึ้งยิ่งขึ้นเว้นแต่จะบรรลุระดับข้อกำหนดที่ต้องการ
แผนภูมิโครงสร้าง
แผนภูมิโครงสร้างเป็นแผนภูมิที่ได้มาจาก Data Flow Diagram แสดงรายละเอียดของระบบมากกว่า DFD แบ่งระบบทั้งหมดออกเป็นโมดูลที่มีฟังก์ชันต่ำสุดอธิบายฟังก์ชันและฟังก์ชันย่อยของแต่ละโมดูลของระบบให้มีรายละเอียดมากกว่า DFD
แผนภูมิโครงสร้างแสดงถึงโครงสร้างลำดับชั้นของโมดูล ในแต่ละชั้นจะมีการดำเนินการเฉพาะ
นี่คือสัญลักษณ์ที่ใช้ในการสร้างแผนภูมิโครงสร้าง -
- Module- แสดงถึงกระบวนการหรือรูทีนย่อยหรืองาน โมดูลควบคุมแตกแขนงไปยังโมดูลย่อยมากกว่าหนึ่งโมดูล โมดูลไลบรารีสามารถใช้ซ้ำได้และเรียกใช้จากโมดูลใดก็ได้
- Condition- แสดงด้วยเพชรเม็ดเล็กที่ฐานของโมดูล แสดงให้เห็นว่าโมดูลควบคุมสามารถเลือกรูทีนย่อยใดก็ได้ตามเงื่อนไขบางประการ
- Jump - ลูกศรจะแสดงขึ้นชี้ภายในโมดูลเพื่อแสดงให้เห็นว่าตัวควบคุมจะกระโดดไปตรงกลางของโมดูลย่อย
- Loop- ลูกศรโค้งแสดงถึงการวนซ้ำในโมดูล โมดูลย่อยทั้งหมดที่ครอบคลุมโดยการดำเนินการซ้ำแบบวนซ้ำของโมดูล
- Data flow - ลูกศรกำกับที่มีวงกลมว่างที่ท้ายหมายถึงการไหลของข้อมูล
- Control flow - ลูกศรกำกับที่มีวงกลมเต็มที่ส่วนท้ายหมายถึงการควบคุม
แผนภาพ HIPO
HIPO (Hierarchical Input Process Output) แผนภาพเป็นการรวมกันของวิธีการจัดระเบียบสองวิธีเพื่อวิเคราะห์ระบบและจัดเตรียมเอกสาร โมเดล HIPO ได้รับการพัฒนาโดย IBM ในปี 1970
แผนภาพ HIPO แสดงลำดับชั้นของโมดูลในระบบซอฟต์แวร์ นักวิเคราะห์ใช้แผนภาพ HIPO เพื่อให้ได้มุมมองระดับสูงของฟังก์ชันระบบ มันสลายฟังก์ชันออกเป็นฟังก์ชันย่อยในลักษณะลำดับชั้น แสดงถึงฟังก์ชันที่ดำเนินการโดยระบบ
แผนภาพ HIPO เหมาะสำหรับวัตถุประสงค์ในการจัดทำเอกสาร การแสดงภาพกราฟิกช่วยให้นักออกแบบและผู้จัดการได้รับแนวคิดภาพของโครงสร้างระบบได้ง่ายขึ้น
ตรงกันข้ามกับแผนภาพ IPO (Input Process Output) ซึ่งแสดงถึงการไหลของการควบคุมและข้อมูลในโมดูล HIPO ไม่ได้ให้ข้อมูลใด ๆ เกี่ยวกับกระแสข้อมูลหรือกระแสการควบคุม
ตัวอย่าง
ทั้งสองส่วนของแผนภาพ HIPO การนำเสนอตามลำดับชั้นและแผนภูมิ IPO ใช้สำหรับการออกแบบโครงสร้างของโปรแกรมซอฟต์แวร์รวมทั้งเอกสารที่เหมือนกัน
ภาษาอังกฤษที่มีโครงสร้าง
โปรแกรมเมอร์ส่วนใหญ่ไม่ทราบถึงภาพรวมของซอฟต์แวร์ดังนั้นพวกเขาจึงต้องพึ่งพาสิ่งที่ผู้จัดการสั่งให้ทำเท่านั้น เป็นความรับผิดชอบของการจัดการซอฟต์แวร์ที่สูงขึ้นในการให้ข้อมูลที่ถูกต้องแก่โปรแกรมเมอร์เพื่อพัฒนาโค้ดที่ถูกต้องและรวดเร็ว
วิธีการในรูปแบบอื่นซึ่งใช้กราฟหรือแผนภาพบางครั้งอาจตีความแตกต่างกันไป
ดังนั้นนักวิเคราะห์และนักออกแบบซอฟต์แวร์จึงคิดค้นเครื่องมือต่างๆเช่น Structured English ไม่มีอะไรนอกจากคำอธิบายสิ่งที่จำเป็นในการเขียนโค้ดและวิธีการเขียนโค้ด ภาษาอังกฤษที่มีโครงสร้างช่วยให้โปรแกรมเมอร์เขียนโค้ดที่ปราศจากข้อผิดพลาด
วิธีการในรูปแบบอื่นซึ่งใช้กราฟหรือแผนภาพบางครั้งอาจตีความแตกต่างกันไป ที่นี่ทั้ง Structured English และ Pseudo-Code พยายามลดช่องว่างความเข้าใจดังกล่าว
Structured English คือการใช้คำภาษาอังกฤษธรรมดาในกระบวนทัศน์การเขียนโปรแกรมเชิงโครงสร้าง ไม่ใช่รหัสขั้นสูงสุด แต่เป็นคำอธิบายประเภทที่จำเป็นในการเขียนโค้ดและวิธีการเขียนโค้ด ต่อไปนี้เป็นโทเค็นบางส่วนของการเขียนโปรแกรมเชิงโครงสร้าง
IF-THEN-ELSE,
DO-WHILE-UNTIL
นักวิเคราะห์ใช้ตัวแปรและชื่อข้อมูลเดียวกันซึ่งเก็บไว้ใน Data Dictionary ทำให้ง่ายต่อการเขียนและทำความเข้าใจโค้ดมากขึ้น
ตัวอย่าง
เราใช้ตัวอย่างเดียวกันของการรับรองความถูกต้องของลูกค้าในสภาพแวดล้อมการช็อปปิ้งออนไลน์ ขั้นตอนนี้ในการรับรองความถูกต้องของลูกค้าสามารถเขียนเป็น Structured English เป็น:
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
โค้ดที่เขียนด้วย Structured English เหมือนกับภาษาอังกฤษแบบวันต่อวันมากกว่า ไม่สามารถนำไปใช้เป็นรหัสของซอฟต์แวร์ได้โดยตรง ภาษาอังกฤษที่มีโครงสร้างไม่ขึ้นอยู่กับภาษาโปรแกรม
รหัสหลอก
รหัสเทียมถูกเขียนใกล้เคียงกับภาษาโปรแกรมมากขึ้น อาจถือได้ว่าเป็นภาษาโปรแกรมเสริมซึ่งเต็มไปด้วยความคิดเห็นและคำอธิบาย
รหัส Pseudo หลีกเลี่ยงการประกาศตัวแปร แต่ถูกเขียนโดยใช้โครงสร้างของภาษาโปรแกรมจริงเช่น C, Fortran, Pascal เป็นต้น
รหัสเทียมมีรายละเอียดการเขียนโปรแกรมมากกว่าภาษาอังกฤษที่มีโครงสร้าง มีวิธีการดำเนินการเช่นถ้าคอมพิวเตอร์เรียกใช้รหัส
ตัวอย่าง
โปรแกรมพิมพ์ Fibonacci ได้สูงสุด 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 กำลังทำงาน | น | น | ย | ย | น | น | ย | ย | |
เปิดเว็บไซต์ | ย | น | ย | น | ย | น | ย | น | |
การดำเนินการ | ตรวจสอบสายเคเบิลเครือข่าย | X | |||||||
ตรวจสอบเราเตอร์อินเทอร์เน็ต | X | X | X | X | |||||
รีสตาร์ทเว็บเบราว์เซอร์ | X | ||||||||
ติดต่อผู้ให้บริการ | X | X | X | X | X | X | |||
ไม่ต้องดำเนินการใด ๆ |
แบบจำลองเอนทิตี - ความสัมพันธ์
แบบจำลองเอนทิตี - ความสัมพันธ์เป็นรูปแบบฐานข้อมูลประเภทหนึ่งตามแนวคิดของเอนทิตีในโลกแห่งความเป็นจริงและความสัมพันธ์ระหว่างกัน เราสามารถแมปสถานการณ์จริงบนแบบจำลองฐานข้อมูล ER ER Model สร้างชุดของเอนทิตีที่มีแอตทริบิวต์ชุดของข้อ จำกัด และความสัมพันธ์ระหว่างกัน
ER Model เหมาะที่สุดสำหรับการออกแบบฐานข้อมูลตามแนวคิด ER Model สามารถแสดงได้ดังนี้:
Entity - เอนทิตีใน ER Model คือสิ่งมีชีวิตในโลกแห่งความเป็นจริงซึ่งมีคุณสมบัติบางอย่างที่เรียกว่า attributes. ทุกแอตทริบิวต์ถูกกำหนดโดยชุดค่าที่เกี่ยวข้องเรียกว่าdomain.
ตัวอย่างเช่นพิจารณาฐานข้อมูลโรงเรียน ที่นี่นักเรียนเป็นนิติบุคคล นักเรียนมีคุณสมบัติที่หลากหลายเช่นชื่อรหัสอายุและชั้นเรียนเป็นต้น
Relationship - เรียกการเชื่อมโยงทางตรรกะระหว่างเอนทิตี relationship. ความสัมพันธ์ถูกแมปกับเอนทิตีในรูปแบบต่างๆ การแมปคาร์ดินัลลิตีกำหนดจำนวนการเชื่อมโยงระหว่างสองเอนทิตี
การทำแผนที่คาร์ดินัลลิตี:
- หนึ่งต่อหนึ่ง
- หนึ่งต่อหลายคน
- หลายต่อหนึ่ง
- หลายต่อหลายคน
พจนานุกรมข้อมูล
พจนานุกรมข้อมูลคือการรวบรวมข้อมูลเกี่ยวกับข้อมูลจากส่วนกลาง จัดเก็บความหมายและที่มาของข้อมูลความสัมพันธ์กับข้อมูลอื่นรูปแบบข้อมูลสำหรับการใช้งานเป็นต้นพจนานุกรมข้อมูลมีคำจำกัดความของชื่อทั้งหมดอย่างเข้มงวดเพื่ออำนวยความสะดวกให้กับผู้ใช้และนักออกแบบซอฟต์แวร์
พจนานุกรมข้อมูลมักอ้างถึงเป็นที่เก็บข้อมูลเมตาดาต้า (ข้อมูลเกี่ยวกับข้อมูล) ถูกสร้างขึ้นพร้อมกับโมเดลซอฟต์แวร์ DFD (Data Flow Diagram) และคาดว่าจะได้รับการอัปเดตเมื่อใดก็ตามที่ DFD มีการเปลี่ยนแปลงหรืออัปเดต
ข้อกำหนดของพจนานุกรมข้อมูล
ข้อมูลจะอ้างอิงผ่านพจนานุกรมข้อมูลในขณะที่ออกแบบและใช้งานซอฟต์แวร์ พจนานุกรมข้อมูลช่วยขจัดโอกาสของความคลุมเครือ ช่วยให้การทำงานของโปรแกรมเมอร์และนักออกแบบตรงกันในขณะที่ใช้การอ้างอิงวัตถุเดียวกันทุกที่ในโปรแกรม
พจนานุกรมข้อมูลมีวิธีการจัดทำเอกสารสำหรับระบบฐานข้อมูลที่สมบูรณ์ในที่เดียว การตรวจสอบความถูกต้องของ DFD ดำเนินการโดยใช้พจนานุกรมข้อมูล
สารบัญ
พจนานุกรมข้อมูลควรมีข้อมูลเกี่ยวกับสิ่งต่อไปนี้
- กระแสข้อมูล
- โครงสร้างข้อมูล
- องค์ประกอบข้อมูล
- ที่เก็บข้อมูล
- การประมวลผลข้อมูล
โฟลว์ข้อมูลอธิบายโดยใช้ DFD ตามที่ศึกษาก่อนหน้านี้และแสดงในรูปแบบพีชคณิตตามที่อธิบายไว้
= | ประกอบด้วย |
---|---|
{} | การทำซ้ำ |
() | ไม่จำเป็น |
+ | และ |
[/] | หรือ |
ตัวอย่าง
ที่อยู่ = บ้านเลขที่ + (ถนน / พื้นที่) + เมือง + รัฐ
รหัสหลักสูตร = หมายเลขหลักสูตร + ชื่อหลักสูตร + ระดับหลักสูตร + เกรดหลักสูตร
องค์ประกอบข้อมูล
องค์ประกอบข้อมูลประกอบด้วยชื่อและคำอธิบายของข้อมูลและรายการควบคุมที่เก็บข้อมูลภายในหรือภายนอกเป็นต้นโดยมีรายละเอียดดังต่อไปนี้:
- ชื่อหลัก
- ชื่อรอง (นามแฝง)
- กรณีใช้งาน (ใช้อย่างไรและที่ไหน)
- คำอธิบายเนื้อหา (สัญกรณ์ ฯลฯ )
- ข้อมูลเสริม (ค่าที่ตั้งไว้ล่วงหน้าข้อ จำกัด ฯลฯ )
ที่เก็บข้อมูล
จัดเก็บข้อมูลจากจุดที่ข้อมูลเข้าสู่ระบบและมีอยู่นอกระบบ ที่เก็บข้อมูลอาจรวมถึง -
- Files
- ภายในซอฟต์แวร์
- ภายนอกกับซอฟต์แวร์ แต่อยู่ในเครื่องเดียวกัน
- ภายนอกกับซอฟต์แวร์และระบบที่อยู่ในเครื่องอื่น
- Tables
- หลักการตั้งชื่อ
- การจัดทำดัชนีคุณสมบัติ
การประมวลผลข้อมูล
การประมวลผลข้อมูลมีสองประเภท:
- Logical: ตามที่ผู้ใช้เห็น
- Physical: ตามที่ซอฟต์แวร์เห็น