5
จะดีกว่าที่จะออกแบบจากบนลงล่างหรือล่างขึ้นบน?
ดังที่ฉันเข้าใจการออกแบบจากบนลงล่างคือการปรับแนวคิดระดับสูงที่เป็นนามธรรมลงในคอนกรีตขนาดเล็กและชิ้นส่วนที่เข้าใจได้จนกว่าจะมีการกำหนด Building Block ที่เล็กที่สุด ในขณะที่ล่างขึ้นบนจะกำหนดส่วนที่ต่ำจากนั้นค่อย ๆ สร้างบล็อกระดับที่สูงขึ้นจนกว่าระบบทั้งหมดจะเกิดขึ้น ในทางปฏิบัติได้มีการกล่าวที่ดีที่สุดในการรวมสองวิธี: เริ่มต้นด้วยข้อกำหนดระดับสูงเพื่อระบุความรู้โดเมนความสัมพันธ์และข้อ จำกัด เมื่อเข้าใจปัญหาได้แล้วจะมีการสร้าง Building Block ที่เล็กที่สุดเพื่อสร้างระบบ กระบวนการของ: การสร้างสเป็คความต้องการ สร้างข้อกำหนดการออกแบบ (พร้อมไดอะแกรม) Implement ส่งมอบ ทำซ้ำ (ในการพัฒนาซ้ำ ๆ แทนที่จะทำทั้งก้อนในแต่ละขั้นตอนเราทำกันเล็กน้อยซ้ำแล้วซ้ำอีกและมีการประชุมประจำวันเพื่อปรับให้เข้ากับความต้องการแบบไดนามิกของลูกค้า) ดูเป็นเรื่องปกติสำหรับฉัน (โดยมีรายละเอียดตามแผน) มันมีข้อบกพร่อง แต่นั่นคือสาเหตุที่เราได้รับการพัฒนาซ้ำ: แทนที่จะใช้เวลาในเฟสเดียวกล่าวว่าการวิเคราะห์ความต้องการเพื่อศึกษาทุกสิ่งที่เป็นไปได้ในความรู้ด้านโดเมนซึ่งอาจมีการเปลี่ยนแปลง (อาจเป็นรายวัน) เราทำการวิเคราะห์เล็กน้อย การออกแบบนิดหน่อยแล้วใช้มัน อีกวิธีคือการทำซ้ำแต่ละครั้งเป็นแบบ mini-waterfall ซึ่งจะทำการวิเคราะห์ในสองสามวัน (หรือหนึ่งสัปดาห์) เช่นเดียวกับการออกแบบ เวลาที่เหลือจะถูกนำไปใช้ในการดำเนินการ มีบางอย่างผิดปกติกับวิธีการจากบนลงล่างร่วมกับการพัฒนาแบบวนซ้ำหรือไม่? ในการเขียนโปรแกรมเรียงความของเขาBottom Upดูเหมือนว่า Paul Graham จะสนับสนุนการสร้างจากล่างขึ้นบนอย่างสมบูรณ์หรือตั้งโปรแกรมจากล่างขึ้นบน แต่ไม่ใช่ช่วงการวิเคราะห์ความต้องการ / การออกแบบ: โปรแกรมเมอร์ Lisp ที่มีประสบการณ์แบ่งโปรแกรมต่างกันออกไป …