Preparation การเตรียมการก่อนพัฒนาซอฟต์แวร์ Chapter 1 Preparation การเตรียมการก่อนพัฒนาซอฟต์แวร์
Project Characteristics In-House Development พัฒนาระบบงานคอมพิวเตอร์หรือ Application ขึ้นมาเพื่อรองรับความต้องการของลูกค้าหรือผู้ใช้ภายในองค์กรเดียวกัน Outsource Development การจ้างองค์กรหรือบริษัทภายนอก เพื่อพัฒนาระบบงานภายในองค์กร Partnership Development องค์กรผู้ว่าจ้าง และ ผู้ถูกจ้าง มีลักษณะพันธะสัญญาการทำงานร่วมกัน เช่น บริษัทลูกรับว่าจ้างพัฒนาระบบให้กับ บริษัทแม่ Commercial Product Development งานที่พัฒนางานที่เป็นซอฟต์แวร์สำเร็จรูป
Product Characteristics Custom Development Commercial-Off- The Shelf (COTS) Extension
Product Characteristics Custom Development Software เป็นลักษณะของระบบงานที่พัฒนาขึ้นมาเองทั้งหมด ส่วนใหญ่พบใน In-House Development ตอบสนองความต้องการที่แท้จริงขององค์กร Commercial-Off The Shelf : COTS เป็นซอฟต์แวร์สำเร็จรูปที่พร้อมใช้งาน เช่น Ms Office , Lotus Notes COTS-Extension ลักษณะของระบบงานที่มีการนำซอฟต์แวร์สำเร็จรูป นำมา Customize หรือ ทำการเขียนเพิ่มเติม (Extension)
Software Engineering คืออะไร ? คือ แนวคิดและข้อกำหนดต่างๆ ที่เกี่ยวข้องกับทุกๆแง่มุมของ Software เช่น การเก็บ user requirement รวบรวมความต้องการของผู้ใช้ , การเอาความต้องการมาวิเคราะห์ว่า Software ควรมีฟังก์ชันอะไรบ้าง ทำงานอะไรบ้าง ซึ่งยังมีอีกหลายแง่มุม ทั้งการพัฒนา การใช้งาน การบำรุงรักษา และการปรับปรุง แต่ละแง่มุมจะมีระเบียบแบบแผนในการทำงานที่ชัดเจน ซึ่งระเบียบแบบแผนที่ชัดเจนที่ครอบคลุมทุกแง่มุมของการพัฒนา Software
คุณสมบัติของ Software ที่ดี Maintainability – สามารถปรับปรุงได้ง่าย Dependability – เชื่อถือได้ทั้งในแง่ของความถูกต้องและความปลอดภัย Efficiency – สามารถทำงานได้อย่างมีประสิทธิภาพ ใช้ Resource น้อย Usability – สามารถใช้งานได้ง่าย สะดวก คนในองค์กรสามารถใช้งานได้อย่างไม่ยาก
ปัญหาที่พบใน Software Engineering Legacy System – การที่เราต้องไปพัฒนา Software ให้ทำงานสอดคล้องกับงานระบบเก่า Hetero Geneity – ความไม่เข้ากันของ Hardware , Software ของระบบเก่ากับระบบใหม่ เช่น ระบบเก่าใช้งานบน Unix แต่ระบบใหม่ใช้งานกับ Window Delivery – ข้อจำกัดของเวลา ถึงแม้ว่าจะมีการวางแผนงานเรื่องเวลาแล้ว แต่เรามักจะเจอปัญหาที่ไม่คาดคิดเกิดขึ้นเสมอ
จริยะธรรมของ Software Engineering Confidentiality – การรักษาความลับของลูกค้า Completence – การรูจักประมาณการณ์ความสามารถของตนเอง ไม่รับงานที่เกินความสามารถของตน Intellectual Property – การเคารพสิทธิลิขสิทธิ์ทางปัญญาของผู้อื่น ทั้งเรื่องของการพัฒนา software และของลูกค้า Computer Misuse – การใช้คอมพิวเตอร์ในทางที่ถูกต้อง เช่น ไม่ไป hack ระบบของผู้อื่น