ในฐานะวิศวกรเราทุกคน "ออกแบบ" สิ่งประดิษฐ์ (อาคารโปรแกรมวงจรโมเลกุล ... ) นั่นเป็นกิจกรรม (คำกริยาออกแบบ) ที่สร้างผลลัพธ์บางอย่าง (คำนามการออกแบบ)
ฉันคิดว่าเราทุกคนเห็นพ้องต้องกันว่าการออกแบบคำนามเป็นสิ่งที่แตกต่างจากสิ่งประดิษฐ์เอง
กิจกรรมหลักในธุรกิจซอฟต์แวร์ (แน่นอนในธุรกิจใด ๆ ที่จำเป็นต้องปรับปรุงสิ่งประดิษฐ์ที่เป็นผลลัพธ์) คือการเข้าใจ "การออกแบบ (คำนาม)" ถึงกระนั้นเราก็ดูเหมือนว่าเป็นชุมชนที่จะล้มเหลวอย่างสมบูรณ์ในการบันทึกเป็นหลักฐานตามจำนวนของความพยายามที่ผู้คนใส่ลงไปเพื่อค้นหาข้อเท็จจริงเกี่ยวกับฐานรหัสของพวกเขา ขอให้ใครสักคนแสดงการออกแบบของรหัสและดูว่าคุณได้รับอะไร
ฉันคิดว่าการออกแบบซอฟต์แวร์มีดังนี้:
- ข้อกำหนดที่ชัดเจนสำหรับซอฟต์แวร์ที่ควรทำและใช้งานได้ดีเพียงใด
- รหัสรุ่นที่ชัดเจน (ส่วนนี้เป็นเรื่องง่ายใคร ๆ ก็มี)
- คำอธิบายสำหรับวิธีการที่แต่ละส่วนของรหัสทำหน้าที่เพื่อให้บรรลุข้อกำหนด (เช่นความสัมพันธ์ระหว่างชิ้นส่วน spec และชิ้นส่วนรหัส)
- เหตุผลว่าทำไมรหัสเป็นวิธีที่มันเป็น (เช่นทำไมเป็นทางเลือกหนึ่งมากกว่าอีก)
สิ่งที่ไม่ใช่การออกแบบคือมุมมองเฉพาะของรหัส ตัวอย่างเช่น [ไม่ให้เลือกโดยเฉพาะ] แผนภาพ UML ไม่ได้ออกแบบ แต่เป็นคุณสมบัติที่คุณสามารถได้รับจากรหัสหรือคุณสมบัติที่คุณต้องการให้คุณได้มาจากรหัส แต่ตามกฎทั่วไปคุณไม่สามารถรับโค้ดจาก UML ได้
ทำไมหลังจากสร้างซอฟต์แวร์มานานกว่า 50 ปีแล้วทำไมเราไม่มีวิธีปกติในการถ่ายทอดสิ่งนี้ (อย่าลังเลที่จะโต้แย้งฉันด้วยตัวอย่างที่ชัดเจน!)
แม้ว่าเราจะทำเช่นนั้นชุมชนส่วนใหญ่ดูเหมือนจะมุ่งเน้นไปที่การรับ "รหัส" ที่คำนามการออกแบบจะหายไป (IMHO จนกว่าการออกแบบจะกลายเป็นจุดประสงค์ของวิศวกรรมด้วยสิ่งประดิษฐ์ที่สกัดจากการออกแบบเราจะไม่แก้ไขเรื่องนี้)
คุณเคยเห็นสิ่งที่เป็นวิธีการบันทึกการออกแบบ (ในแง่ที่ฉันได้อธิบายไว้)? การอ้างอิงอย่างชัดเจนไปยังเอกสารจะดี ทำไมคุณคิดว่าวิธีที่เฉพาะเจาะจงและทั่วไปไม่ประสบความสำเร็จ? เราจะเปลี่ยนแปลงสิ่งนี้ได้อย่างไร
[ฉันมีความคิดของตัวเองที่ทำให้มุมมองสัญลักษณ์แสดงหัวข้อย่อยข้างต้นมี แต่ฉันสนใจคำตอบของคนอื่น ... และมันยากที่จะใช้รูปแบบของฉัน [[และอาจเป็นปัญหาที่แท้จริง: -]]]
แก้ไข 2011/1/3: หนึ่งในคำตอบของกระทู้บอกว่า "เอกสาร" (น่าจะเป็นข้อความโดยเฉพาะอย่างยิ่งไม่เป็นทางการ) อาจจะเพียงพอ ฉันเดาว่าฉันควรชี้แจงว่าฉันไม่เชื่อสิ่งนี้ เครื่องมือของ CASE ปรากฏในฉากที่เริ่มต้นในยุค 80 แต่เครื่องมือเริ่มต้นส่วนใหญ่เพิ่งจับพิกเซลสำหรับไดอะแกรมของสิ่งที่คุณวาด ในขณะที่เครื่องมือต่าง ๆ ประสบความสำเร็จในเชิงพาณิชย์พวกเขาไม่ได้มีประโยชน์มาก ความเข้าใจที่สำคัญคือหากสิ่งประดิษฐ์เพิ่มเติม "ออกแบบ" ไม่สามารถตีความได้อย่างเป็นทางการคุณจะไม่สามารถรับความช่วยเหลือจากเครื่องมือร้ายแรง ฉันเชื่อว่าความเข้าใจแบบเดียวกันนี้ใช้กับรูปแบบการจับภาพการออกแบบที่มีประโยชน์ในระยะยาว: ถ้ามันไม่มีโครงสร้างที่เป็นทางการ เอกสารข้อความล้มเหลวในการทดสอบนี้มาก