มีวิธีการทางวิศวกรรมซอฟต์แวร์สำหรับการตั้งโปรแกรมการทำงานหรือไม่? [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน3 ปีที่ผ่านมา ปรับปรุงคำถามนี้ วิศวกรรมซอฟต์แวร์ตามที่ได้รับการสอนในปัจจุบันมุ่งเน้นไปที่การเขียนโปรแกรมเชิงวัตถุและมุมมองเชิงวัตถุ 'ธรรมชาติ' ของโลก มีวิธีการอย่างละเอียดที่อธิบายวิธีการแปลงโมเดลโดเมนเป็นโมเดลคลาสที่มีหลายขั้นตอนและสิ่งประดิษฐ์จำนวนมาก (UML) เช่น use-case-diagrams หรือ class-diagrams โปรแกรมเมอร์จำนวนมากใช้วิธีนี้ภายในและมีความคิดที่ดีเกี่ยวกับวิธีการออกแบบแอปพลิเคชันเชิงวัตถุตั้งแต่เริ่มต้น hype ใหม่คือการเขียนโปรแกรมใช้งานได้ซึ่งสอนในหนังสือและแบบฝึกหัดมากมาย แต่สิ่งที่เกี่ยวกับวิศวกรรมซอฟต์แวร์การทำงาน? ในขณะที่อ่านเกี่ยวกับ Lisp และ Clojure ฉันมาถึงสองข้อความที่น่าสนใจ: โปรแกรมการทำงานนั้นมักจะถูกพัฒนาจากล่างขึ้นบนแทนที่จะเป็นบนลงล่าง ('บน Lisp', Paul Graham) ฟังก์ชั่นโปรแกรมเมอร์ใช้แผนที่ที่ OO-โปรแกรมเมอร์ใช้วัตถุ / คลาส ('Clojure สำหรับ Java โปรแกรมเมอร์', พูดคุยโดย Rich Hickley) ดังนั้นวิธีการสำหรับการออกแบบอย่างเป็นระบบ (ตามรูปแบบ?) ของการใช้งานคือใน Lisp หรือ Clojure? ขั้นตอนทั่วไปคืออะไรฉันใช้สิ่งประดิษฐ์อะไรฉันจะแม็พสิ่งเหล่านั้นจากพื้นที่ปัญหาไปยังพื้นที่โซลูชันอย่างไร