กลยุทธ์การออกแบบ
กลยุทธ์จากบนลงล่าง
กลยุทธ์จากบนลงล่างใช้วิธีการแบบแยกส่วนเพื่อพัฒนาการออกแบบระบบ มันถูกเรียกอย่างนั้นเพราะมันเริ่มต้นจากโมดูลระดับบนสุดหรือสูงสุดและเลื่อนไปยังโมดูลระดับต่ำสุด
ในเทคนิคนี้จะมีการระบุโมดูลระดับสูงสุดหรือโมดูลหลักสำหรับการพัฒนาซอฟต์แวร์ โมดูลหลักแบ่งออกเป็นโมดูลย่อยหรือเซ็กเมนต์ที่เล็กและง่ายกว่าหลาย ๆ โมดูลตามงานที่ดำเนินการโดยแต่ละโมดูล จากนั้นแต่ละโมดูลย่อยจะถูกแบ่งย่อยออกไปอีกหลายโมดูลย่อยของระดับล่างถัดไป กระบวนการแบ่งแต่ละโมดูลออกเป็นโมดูลย่อยหลาย ๆ โมดูลจะดำเนินต่อไปจนกว่าจะไม่มีการระบุโมดูลระดับต่ำสุดซึ่งไม่สามารถแบ่งย่อยได้อีก
กลยุทธ์ด้านล่าง
กลยุทธ์ด้านล่างเป็นไปตามแนวทางแบบแยกส่วนเพื่อพัฒนาการออกแบบระบบ มันถูกเรียกอย่างนั้นเพราะมันเริ่มจากโมดูลระดับล่างสุดหรือขั้นพื้นฐานที่สุดแล้วเลื่อนไปยังโมดูลระดับสูงสุด
ในเทคนิคนี้
มีการระบุโมดูลในระดับพื้นฐานที่สุดหรือระดับต่ำสุด
จากนั้นโมดูลเหล่านี้จะถูกจัดกลุ่มเข้าด้วยกันตามฟังก์ชันที่ดำเนินการโดยแต่ละโมดูลเพื่อสร้างโมดูลระดับที่สูงขึ้นถัดไป
จากนั้นโมดูลเหล่านี้จะถูกรวมเข้าด้วยกันเพื่อสร้างโมดูลระดับที่สูงขึ้นถัดไป
กระบวนการจัดกลุ่มโมดูลที่ง่ายกว่านี้หลาย ๆ โมดูลเพื่อสร้างโมดูลระดับที่สูงขึ้นจะดำเนินต่อไปจนกว่าโมดูลหลักของกระบวนการพัฒนาระบบจะบรรลุผล
การออกแบบที่มีโครงสร้าง
การออกแบบโครงสร้างเป็นวิธีการตามกระแสข้อมูลที่ช่วยในการระบุอินพุตและเอาต์พุตของระบบที่กำลังพัฒนา วัตถุประสงค์หลักของการออกแบบโครงสร้างคือเพื่อลดความซับซ้อนและเพิ่มความเป็นโมดูลของโปรแกรม การออกแบบโครงสร้างยังช่วยในการอธิบายลักษณะการทำงานของระบบ
ในการออกแบบโครงสร้างข้อกำหนดของระบบจะทำหน้าที่เป็นพื้นฐานในการแสดงการไหลของข้อมูลและลำดับของกระบวนการที่เกี่ยวข้องกับการพัฒนาซอฟต์แวร์ด้วยความช่วยเหลือของ 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 - คือเมื่อเอาต์พุตจากส่วนหนึ่งของส่วนประกอบเป็นอินพุตไปยังส่วนถัดไปของมัน