วันอังคารที่ 23 พฤศจิกายน พ.ศ. 2553

คุณลักษณะของกระบวนการวิศวกรรมซอฟต์แวร์

คุณลักษณะของกระบวนการวิศวกรรมซอฟต์แวร์
·       Understandability : มีการนิยามขอบเขตของกระบวนการที่ชัดแจ้งและง่ายต่อการเข้าใจ
·       Visibility : ทำให้กิจกรรมกระบวนการชัดเจนที่สุดเพื่อสามารถมองเห็นจากภายนอกได้ชัดเจน
·       Supportability : เครื่องมือช่วยการวิศวกรรมซอฟต์แวร์ (CASE)สามารถช่วยสนับสนุนกิจกรรมกระบวนการในขอบเขตใด
·       Acceptability : กระบวนการที่กำหนดสามารถยอมรับและใช้โดยวิศวกรซอฟต์แวร์ในการผลิตผลิตภัณฑ์ซอฟต์แวร์
·       Reliability : กระบวนการถูกออกแบบในแนวทางซึ่งความผิดพลาดของกระบวนการถูกหลีกเลี่ยงก่อนที่จะส่งผลต่อความผิดพลาดของผลิตภัณฑ์ซอฟต์แวร์
·       Robustness : กระบวนการสามารถทำงานต่อได้แม้นว่ามีปัญหาที่ไม่คาดการณ์เกิดขึ้น
·       Maintainability : กระบวนการสามารถวิวัฒนาการเพื่อตอบสนองการเปลี่ยนแปลงความต้องการขององค์กร
·       Rapidity : กระบวนการสามารถทำให้ส่งมอบผลิตภัณฑ์ได้เร็วนับจากที่รูปแบบคุณลักษณะของซอฟต์แวร์(Software specifications) ถูกกำหนด

คุณลักษณะของซอฟต์แวร์ที่มีคุณภาพ
1.       ความสามารถในการบ ารุงรักษา (Maintainability)
2.       ความสามารถในการพึ่งพา (Dependability)
3.       ประสิทธิภาพ (Efficiency)
4.       ความสามารถในการใช้งาน (Usability)

วันอังคารที่ 9 พฤศจิกายน พ.ศ. 2553

Feature Driven Development- FDD


การพัฒนาที่ขับเคลื่อนด้วยคุณลักษณะของซอฟต์แวร์ (Feature  Driven  Development- FDD)
FDD เริ่มขึ้นจากการคิดค้นของ Peter  Coad และคณะ เพื่อใช้เป็นแบบจำลองกระบวนการเชิงปฏิบัติการของวิศวกรรมซอฟต์แวร์เชิงวัตถุ
Stephen Palrner และ John Felsing ได้ขยายและเพิ่มเติมงานของ Coad อธิบายการปรับตัว กระบวนการอาไจลที่อาจประยุกต์กับโครงการขนาดกลางและขนาดใหญ่ขึ้น
ภายใต้บริษัทของเอฟดีดี คุณลักษณะเป็น หน้าที่ที่ลูกค้าเห็นว่ามีคุณค่า  ที่สามารถอิมพลีเม้นต์ได้ภายในเวลาสองสัปดาห์หรือน้อยกว่านิยามของคุณลักษณะให้ประโยชน์ต่อไปนี้
ž        1. เนื่องจากคุณลักษณะเป็นส่วนเล็กๆ ของซอฟต์แวร์ที่ทำงานได้ ผู้ใช้จึงสามารถอธิบายได้ง่าย เข้าใจความสัมพันธ์ระหว่างกันได้ง่าย และสามารถทบทวนได้ดีกว่าเมื่อมีความคลุมเครือข้อผิดพลาด หรือการหลงลืม
ž        2. คุณลักษณะอาจถูกจัดระเบียบ เป็นกลุ่มลำดับชั้นที่มีความสัมพันธ์ทางธุรกิจได้
ž        3. เนื่องจากลักษณะเป็นรุ่น ๆ ของคุณลักษณะของซอฟต์แวร์ที่ต้องส่งมอบได้มรการพัฒนาแบบเอฟดีดี ทีมงานจะมุ่งพัฒนาซอฟต์แวร์ให้มีคุณลักษณะใหม่ ๆ ที่ทำงานได้ทุก ๆ สองสัปดาห์
ž        4. เนื่องจากคุณลักษณะมีขนาดเล็ก ตัวแบบและตัวโค้ดของคุณลักษณะจึงง่ายต่อการตรวจทานอย่างละเอียด
ž        5. การวางแผนโครงการ  การจัดตารางงาน และการติดตามจะขับเคลื่อนด้วยคุณลักษณะตามลำดับชั้น ซึ่งดีกว่าการใช้ชุดงานย่อยที่เลือกมาแบบสุ่ม
Coad และคณะแนะนำแม่แบบต่อไปนี้สำหรับนิยามคุณลักษณะ
                 <action> the <result> <by I for I of I to> a (n) <object>
เมื่อ <object> หมายถึง บุคคล สถานที่ หรือสิ่งของ (รวมถึงบทบาท จังหวะเวลา หรือช่วง           ของเวลา หรือคำอธิบายทำนองเดียวกับในแคตตาล็อกสินค้า)  ตัวอย่างของคุณลักษณะ สำหรับแอพพลิเคชั่น อีคอมเมิร์ช อาจเช่น” 
Add the product to a shopping cart
                                Display the technical – specifications of a product
                                Store the sipping – information for a customer
ž              
กลุ่มชุดคุณลักษณะ จะเชื่อมโยงคุณลักษณะเข้ากับการทำงานทางธุรกิจ จะนิยามดังนี้
                        <action> <-ing> a (n) <object>
ตัวอย่างเช่น Making a product sale เป็นชุดคุณลักษณะที่อาจรวมเอาคุณลักษณะที่กล่าวถึงข้างต้นทั้งหมดและคุณลักษณะอื่นๆ ที่อาจมีเข้าไว้ด้วยกัน
วิธีการเอฟดีดี นิยามกิจกรรมกรอบงานสำหรับการร่วมมือกัน5 อย่างเรียกว่ากระบวนการ

11. Develop an overall model
22.  Build a features list
33. Plan By Feature
44. Design by feature
5 5. Develop by feature
 
Feature Driven Development
             FDDได้ให้รายละเอียดและเทคนิคของการจัดการโครงการมากกว่าวิธีอาไจลอื่น ๆ เมื่อโครงการเติบโตขึ้นทั้งขนาดและความซับซ้อน  การจัดการโครงการเฉพาะกิจอาจไม่เพียงพอจึงจำเป็นที่นักพัฒนา  ผู้จัดการและลูกค้าต้องเข้าใจสถานะของโครงการ ว่าได้บรรลุเป้าหมายอะไรไปบ้างแล้ว  มีปัญหาอะไรบ้างที่พบถ้าเส้นตายเป็นเรื่องสำคัญ การกำหนดขนาดของรุ่นต่าง ๆ ที่รวมเอาคุณลักษณะไว้ควรจัดลงตารางงานอย่างเหมาะสม ดังนั้น เอฟดีดีจึงมีหลักไมล์อยู่ 6 หลัก ในช่วงการออกแบบ และการอิมพลีเมนต์คุณลักษณะคือ การออกแบบคร่าวๆ การออกแบบการตรวจทานการออกแบบการโค้ด การตรวจทานการโค้ด และการส่งเสริมการสร้าง