กลยุทธ์การออกแบบ

กลยุทธ์จากบนลงล่าง

กลยุทธ์จากบนลงล่างใช้วิธีการแบบแยกส่วนเพื่อพัฒนาการออกแบบระบบ มันถูกเรียกอย่างนั้นเพราะมันเริ่มต้นจากโมดูลระดับบนสุดหรือสูงสุดและเลื่อนไปยังโมดูลระดับต่ำสุด

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

กลยุทธ์ด้านล่าง

กลยุทธ์ด้านล่างเป็นไปตามแนวทางแบบแยกส่วนเพื่อพัฒนาการออกแบบระบบ มันถูกเรียกอย่างนั้นเพราะมันเริ่มจากโมดูลระดับล่างสุดหรือขั้นพื้นฐานที่สุดแล้วเลื่อนไปยังโมดูลระดับสูงสุด

ในเทคนิคนี้

  • มีการระบุโมดูลในระดับพื้นฐานที่สุดหรือระดับต่ำสุด

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

  • จากนั้นโมดูลเหล่านี้จะถูกรวมเข้าด้วยกันเพื่อสร้างโมดูลระดับที่สูงขึ้นถัดไป

  • กระบวนการจัดกลุ่มโมดูลที่ง่ายกว่านี้หลาย ๆ โมดูลเพื่อสร้างโมดูลระดับที่สูงขึ้นจะดำเนินต่อไปจนกว่าโมดูลหลักของกระบวนการพัฒนาระบบจะบรรลุผล

การออกแบบที่มีโครงสร้าง

การออกแบบโครงสร้างเป็นวิธีการตามกระแสข้อมูลที่ช่วยในการระบุอินพุตและเอาต์พุตของระบบที่กำลังพัฒนา วัตถุประสงค์หลักของการออกแบบโครงสร้างคือเพื่อลดความซับซ้อนและเพิ่มความเป็นโมดูลของโปรแกรม การออกแบบโครงสร้างยังช่วยในการอธิบายลักษณะการทำงานของระบบ

ในการออกแบบโครงสร้างข้อกำหนดของระบบจะทำหน้าที่เป็นพื้นฐานในการแสดงการไหลของข้อมูลและลำดับของกระบวนการที่เกี่ยวข้องกับการพัฒนาซอฟต์แวร์ด้วยความช่วยเหลือของ DFD หลังจากพัฒนา DFD สำหรับระบบซอฟต์แวร์แล้วขั้นตอนต่อไปคือการพัฒนาแผนภูมิโครงสร้าง

Modularization

พาร์ติชันการออกแบบที่มีโครงสร้างแบ่งโปรแกรมเป็นโมดูลขนาดเล็กและเป็นอิสระ สิ่งเหล่านี้จัดอยู่ในลักษณะจากบนลงล่างโดยมีรายละเอียดแสดงไว้ด้านล่าง

ดังนั้นการออกแบบโครงสร้างจึงใช้วิธีการที่เรียกว่า Modularization หรือการสลายตัวเพื่อลดความซับซ้อนและจัดการปัญหาโดยการแบ่งย่อยออกเป็นส่วนย่อย ๆ

Advantages

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

แผนภูมิที่มีโครงสร้าง

แผนภูมิโครงสร้างเป็นเครื่องมือที่แนะนำสำหรับการออกแบบระบบแบบแยกส่วนจากบนลงล่างซึ่งกำหนดโมดูลต่างๆของการพัฒนาระบบและความสัมพันธ์ระหว่างแต่ละโมดูล แสดงโมดูลระบบและความสัมพันธ์ระหว่างกัน

ประกอบด้วยแผนภาพที่ประกอบด้วยกล่องสี่เหลี่ยมที่แสดงถึงโมดูลลูกศรเชื่อมต่อหรือเส้น

  • Control Module - เป็นโมดูลระดับสูงขึ้นไปที่กำกับโมดูลระดับล่างเรียกว่า subordinate modules.

  • Library Module - เป็นโมดูลที่ใช้ซ้ำได้และสามารถเรียกใช้จากจุดมากกว่าหนึ่งจุดในแผนภูมิ

เรามีสองวิธีที่แตกต่างกันในการออกแบบแผนภูมิโครงสร้าง -

  • Transform-Centered Structured Charts - ใช้เมื่อธุรกรรมทั้งหมดเป็นไปตามเส้นทางเดียวกัน

  • Transaction–Centered Structured Charts - ใช้เมื่อธุรกรรมทั้งหมดไม่เป็นไปตามเส้นทางเดียวกัน

วัตถุประสงค์ของการใช้ผังงานโครงสร้าง

  • เพื่อส่งเสริมการออกแบบจากบนลงล่าง

  • เพื่อสนับสนุนแนวคิดของโมดูลและระบุโมดูลที่เหมาะสม

  • เพื่อแสดงขนาดและความซับซ้อนของระบบ

  • เพื่อระบุจำนวนของฟังก์ชันและโมดูลที่ระบุได้อย่างง่ายดายภายในแต่ละฟังก์ชัน

  • เพื่อแสดงให้เห็นว่าฟังก์ชันที่ระบุได้แต่ละรายการเป็นเอนทิตีที่จัดการได้หรือควรแบ่งออกเป็นส่วนประกอบย่อย ๆ

ปัจจัยที่มีผลต่อความซับซ้อนของระบบ

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

แนวคิดที่สำคัญสองประการที่เกี่ยวข้องกับการพัฒนาระบบที่ช่วยในการกำหนดความซับซ้อนของระบบคือ coupling และ cohesion.

ข้อต่อ

การเชื่อมต่อเป็นการวัดความเป็นอิสระของส่วนประกอบ เป็นการกำหนดระดับการพึ่งพาของแต่ละโมดูลของการพัฒนาระบบในอีกโมดูลหนึ่ง ในทางปฏิบัติหมายความว่ายิ่งการมีเพศสัมพันธ์ระหว่างโมดูลในระบบมีความแน่นหนามากเท่าไหร่การติดตั้งและบำรุงรักษาระบบก็ยิ่งยากขึ้นเท่านั้น

แต่ละโมดูลควรมีอินเทอร์เฟซที่เรียบง่ายและสะอาดกับโมดูลอื่น ๆ และควรแบ่งใช้จำนวนองค์ประกอบข้อมูลขั้นต่ำระหว่างโมดูล

ข้อต่อสูง

ประเภทของระบบเหล่านี้มีการเชื่อมต่อระหว่างกันกับหน่วยโปรแกรมที่พึ่งพาซึ่งกันและกัน การเปลี่ยนแปลงระบบย่อยหนึ่งนำไปสู่ผลกระทบสูงต่อระบบย่อยอื่น ๆ

ข้อต่อต่ำ

ระบบประเภทนี้ประกอบด้วยส่วนประกอบที่เป็นอิสระหรือเกือบจะเป็นอิสระ การเปลี่ยนแปลงในระบบย่อยหนึ่งไม่มีผลต่อระบบย่อยอื่นใด

มาตรการการมีเพศสัมพันธ์

  • Content Coupling - เมื่อส่วนประกอบหนึ่งแก้ไขอีกองค์ประกอบหนึ่งจริง ๆ ส่วนประกอบที่แก้ไขจะขึ้นอยู่กับการแก้ไขอย่างสมบูรณ์

  • Common Coupling - เมื่อปริมาณการมีเพศสัมพันธ์ลดลงบ้างโดยการจัดระบบการออกแบบเพื่อให้สามารถเข้าถึงข้อมูลได้จากที่เก็บข้อมูลทั่วไป

  • Control Coupling - เมื่อส่วนประกอบหนึ่งส่งผ่านพารามิเตอร์เพื่อควบคุมกิจกรรมของส่วนประกอบอื่น

  • Stamp Coupling - เมื่อโครงสร้างข้อมูลถูกใช้เพื่อส่งผ่านข้อมูลจากส่วนประกอบหนึ่งไปยังอีกส่วนประกอบหนึ่ง

  • Data Coupling - เมื่อมีการส่งผ่านข้อมูลเท่านั้นส่วนประกอบต่างๆจะเชื่อมต่อโดยการมีเพศสัมพันธ์นี้

การติดต่อกัน

การทำงานร่วมกันคือการวัดความใกล้ชิดของความสัมพันธ์ระหว่างส่วนประกอบต่างๆ เป็นการกำหนดจำนวนของการพึ่งพาส่วนประกอบของโมดูลซึ่งกันและกัน ในทางปฏิบัติหมายความว่าผู้ออกแบบระบบต้องมั่นใจว่า -

  • พวกเขาไม่ได้แยกกระบวนการที่สำคัญออกเป็นโมดูลที่แยกส่วน

  • พวกเขาไม่รวบรวมกระบวนการที่ไม่เกี่ยวข้องซึ่งแสดงเป็นกระบวนการบน DFD เข้าด้วยกันเป็นโมดูลที่ไม่มีความหมาย

โมดูลที่ดีที่สุดคือโมดูลที่ยึดติดกับหน้าที่ โมดูลที่แย่ที่สุดคือโมดูลที่เชื่อมโยงกันโดยบังเอิญ

ระดับการทำงานร่วมกันที่แย่ที่สุด

การเกาะติดกันโดยบังเอิญพบได้ในส่วนประกอบที่มีส่วนที่ไม่เกี่ยวข้องกับอีกส่วนหนึ่ง

  • Logical Cohesion - เป็นที่ที่ฟังก์ชันหรือองค์ประกอบข้อมูลที่เกี่ยวข้องกับเหตุผลหลายอย่างถูกวางไว้ในองค์ประกอบเดียวกัน

  • Temporal Cohesion - คือเมื่อส่วนประกอบที่ใช้ในการเริ่มต้นระบบหรือตัวแปรชุดทำหน้าที่หลายอย่างตามลำดับ แต่ฟังก์ชันจะเกี่ยวข้องกันตามเวลาที่เกี่ยวข้อง

  • Procedurally Cohesion - เป็นช่วงที่ฟังก์ชันถูกจัดกลุ่มเข้าด้วยกันในส่วนประกอบเพียงเพื่อให้แน่ใจว่าคำสั่งนี้

  • Sequential Cohesion - คือเมื่อเอาต์พุตจากส่วนหนึ่งของส่วนประกอบเป็นอินพุตไปยังส่วนถัดไปของมัน