เครื่องมือวิเคราะห์และออกแบบซอฟต์แวร์

การวิเคราะห์และออกแบบซอฟต์แวร์รวมถึงกิจกรรมทั้งหมดซึ่งช่วยในการเปลี่ยนข้อกำหนดข้อกำหนดไปสู่การนำไปใช้งาน ข้อกำหนดข้อกำหนดระบุความคาดหวังที่ใช้งานได้และไม่ใช้งานได้ทั้งหมดจากซอฟต์แวร์ ข้อกำหนดข้อกำหนดเหล่านี้มาในรูปแบบของเอกสารที่มนุษย์อ่านได้และเข้าใจได้ซึ่งคอมพิวเตอร์ไม่มีอะไรทำ

การวิเคราะห์และออกแบบซอฟต์แวร์เป็นขั้นตอนกลางซึ่งช่วยให้ข้อกำหนดที่มนุษย์อ่านได้เปลี่ยนเป็นรหัสจริง

ให้เราดูเครื่องมือวิเคราะห์และออกแบบบางส่วนที่นักออกแบบซอฟต์แวร์ใช้:

แผนภาพกระแสข้อมูล

แผนภาพกระแสข้อมูลคือการแสดงภาพกราฟิกของการไหลของข้อมูลในระบบสารสนเทศ สามารถแสดงการไหลของข้อมูลขาเข้ากระแสข้อมูลขาออกและข้อมูลที่จัดเก็บ 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: ตามที่ซอฟต์แวร์เห็น