1 / 18

Homework 2

Homework 2. Present. หัวข้อการนำเสนอ. Capability Maturity Model Agile Model eXtreme Programming Unified Process – UP Scrum Model Aspect-Oriented Software Development. C apability M aturity M odel.

Download Presentation

Homework 2

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Homework 2 Present

  2. หัวข้อการนำเสนอ • Capability Maturity Model • Agile Model • eXtreme Programming • Unified Process – UP • Scrum Model • Aspect-Oriented Software Development

  3. Capability Maturity Model Capability Maturity Model หรือที่เรียกกันว่า (CMM)คือ แบบจำลองวุฒิภาวะความสามารถ เกิดจาก SEI ของมหาวิทยาลัยคาร์เนที เมลลอน ถูกกำหนดขึ้นเพื่อวัดความเชื่อมั่นและคุณภาพของกระบวนการพัฒนาซอฟต์แวร์ โดย CMM ได้รวมเอาข้อดีของ TQM มาปรับใช้กับการพัฒนาซอฟต์แวร์ โดยเฉพาะ จึงเป็นโมเดลที่ใช้วัดความเชื่อมั่น และคุณภาพของกระบวนการพัฒนาซอฟต์แวร์ในปัจจุบัน

  4. ระดับมาตรฐานของ CMM • ระดับเริ่มต้น เรียกว่า Initial Level • ระดับจัดทำโครงการเบื้องต้น เรียกว่า Repeatable Level • ระดับที่มีการกำหนดขึ้นอย่างชัดเจน เรียกว่า Defined Level • ระดับมีการจัดการ เรียกว่า Managed Level • ระดับปรับปรุงให้เหมาะสมที่สุด เรียกว่า Optimizing Level

  5. ประโยชน์ของ CMM • การทำงานเป็นระบบมากขึ้น มีการทำงานที่ตรวจสอบได้โดยง่าย • โอกาสในการประสบผลสำเร็จในการทำงานมีมากขึ้น • มีวิธีการปฏิบัติที่เป็นมาตรฐาน และสามารถยืดหยุ่นได้ • สามารถรับงานจากต่างประเทศ และทำรายได้เข้าประเทศได้

  6. Agile Model Agile Model เป็นแนวคิดใหม่สำหรับการพัฒนาซอฟต์แวร์ ที่พยายามที่จะแทรกตัวเข้าไปใน methodology แบบเดิม เพื่อให้งานสั้นลง ซึ่งการพัฒนาอาจจะใช้เวลาสั้นๆ ประมาณ 1 – 4 สัปดาห์ โดยจะเน้นการสื่อสารแบบตัวต่อตัวมากกว่าการใช้เอกสาร ทีมงานโดยทั่วไปอย่างน้อยต้องประกอบด้วย โปรแกรมเมอร์และลูกค้า ที่ใช้กำหนดขอบเขต และระบบงาน

  7. รูปแบบการทำงานของ AM • เลือกบางหลักการมาทำ • เป็นวิธีหนึ่งที่จะเอาหลักการของ Agile มาจัดการกับเอกสารและระบบเดิมที่มีอยู่ได้ • ใน Agile ประกอบด้วย • value ผลลัพธ์ • principle หลักการ • practices วิธีปฏิบัติ • ทั้งสามอย่างนี้เป็นส่วนหนึ่งในโมเดล Agile ที่สามารถนำมาพัฒนา SW ให้มีประสิทธิภาพและเกิด overhead น้อย • ให้มอง Agile เป็นส่วนขยายของกระบวนการพัฒนา SW แบบเดิมได้ • ให้ Agile เข้าไปกำกับ ดูว่าของเดิมที่มีอยู่อันไหนสำคัญก็ทำ ไม่สำคัญก็ละ • นำ Agile มาจัดลำดับความสำคัญ ดูว่ากิจกรรมไหน ควรทำ ไม่ควรทำ

  8. eXtreme Programming Extreme Programming หรือ XP เป็นกระบวนการพัฒนาซอฟต์แวร์แบบ Agile (lightweight) มีปัจจัยพื้นฐาน ดังนี้ communication : เน้นเรื่องการพบปะพูดคุย (หลักการ Agile) Simplicity : ออกแบบและเขียนโปรแกรมให้ง่าย ไม่เน้น performance มากนัก เน้นเรื่องแก้ Feedback : เน้นเรื่องลูกค้า feedback เราเปลี่ยนได้เรื่อยๆ โดยใช้ refactor Courage : เราต้องสามารถตัดสินใจเองได้ โปรแกรมเมอร์มีความกล้าในการตัดสินใจ

  9. 12 กิจกรรมหลักของ XP • วางแผนเกม (The Planning Game) • พยายามซอยงานให้ถี่ๆ (Small Releases) • มีตัวกลางคั่นระหว่าง user และตัวเรา (System Metaphor) • ออกแบบให้ง่าย (Simple Design) • ทดสอบเสมอ (Continuous Testing) • แก้ code บ่อยๆ (refactoring)

  10. 12 กิจกรรมหลักของ XP (ต่อ) • ทำงานเป็นคู่ (pair programming) • Team code ownership • ทำการรวบรวมงานอย่างต่อเนื่อง (Continuous Integration) • ทำงานไปเรื่อยๆ ไม่หักโหม ห้ามว่าง (40-Hour-work-week) • มองทีมเป็นหนึ่ง (On-site Customer) • ใช้มาตรฐานการ code แบบเดียวกัน (Coding Standards)

  11. Unified Process (UP) Unified Process (UP)คือกระบวนการทางวิศวกรรมซอฟต์แวร์ ที่เกิดจากการรวมเอาสิ่งที่ผู้เชี่ยวชาญทางการพัฒนาซอฟต์แวร์ ที่เคยกำหนดไว้ และได้ผลดีในการพัฒนาซอฟต์แวร์มารวมกัน โดยเลือกแต่เทคนิคที่ดี และขั้นตอนหลักที่เหมือนๆกัน มารวมกัน(Unify) และกำหนดให้มีชื่อใหม่ว่า “กระบวนการพัฒนาซอฟต์แวร์แบบรวมเป็นหนึ่งเดียว (Unified Process)

  12. 6 กระบวนการของ UP • การพัฒนาซอฟต์แวร์ควรเป็นการพัฒนาแบบวนกลับ (Iterative Development) • โครงสร้างถูกแบ่งออกเป็นรอบ (Iteration) • สิ่งที่ได้จะมีการพัฒนาเพิ่มจนกว่าจะกลายเป็นระบบที่สมบูรณ์ • ในแต่ละรอบทีมจะต้องทำงานซ้ำ (Iterate) • การวิเคราะห์ ออกแบบ พัฒนาโปรแกรม และทดสอบ • การพัฒนาซอฟต์แวร์ ใดๆ ควรมีการจัดการความต้องการได้ (Requirement Management)

  13. 6 กระบวนการของ UP (ต่อ) • การใช้แนวคิดสถาปัตยกรรมแบบองค์ประกอบ (Component –based Model Architecture) • การนำกลับมาใช้ได้อีก (Reusable) • เพื่อเป็นพื้นฐานในการจัดการโครงการ • เพื่อให้มีการควบคุมการทำงานอย่างชาญฉลาด • การสร้างต้นแบบของระบบที่สามารถมองเห็นได้ (Visual Model) ด้วยภาษา UML

  14. 6 กระบวนการของ UP (ต่อ) • การตรวจสอบคุณภาพของซอฟต์แวร์ที่พัฒนาอย่างต่อเนื่อง (Continuously Verify) • การทดสอบการทำงานของระบบ (Function Testing) • การทดสอบการใช้ระบบ (Usability Testing) • การทดสอบความน่าเชื่อถือของระบบ (Reliability Testing) • การทดสอบประสิทธิภาพ (Performance Testing) • การทดสอบการสนับสนุน (Supportability) • การจัดการการเปลี่ยนแปลง (Change Management)

  15. Scrum Model Scrum เป็น development process ที่อยู่บนพื้นฐานของ Sprint เป็นหนึ่งใน Implementationหลายๆวิธีที่อยู่ในค่าย Agile Software Development Scrum จะ sprint เป็นช่วงๆตามหลักการแล้วคือช่วงละ 2-4 สัปดาห์ โดยจะเป็นช่วงที่เราจะเร่งทำงานอย่างเต็มที่เต็มขีดจำกัด หลังจบ sprint ก็จะพักบ้างสัก 3-5 วัน ก่อนที่จะ sprint ต่อไป

  16. 3 Concept ของ Scrum • ว่าด้วยเรื่องของทีมงาน (Role) • Scrum Team • Product Owner • Scrum Master • ว่าด้วยเรื่องของวิธีการทำงาน (Process) • Backlog • Sprint phase • Daily scrum • ว่าด้วยเรื่องของการประเมินและติดตามงาน (Demonstration and Evaluation)

  17. Aspect-Oriented Software Development Aspect-Oriented Software Development (AOSD) เป็นความพยายามในการช่วยนักพัฒนาสำหรับแยกคอนเซินในการเขียนโปรแกรม โดยเฉพาะอย่างยิ่งคอนเซินตัดขวาง (crosscutting concern) เพื่อเพิ่มความเป็น module การใช้งาน AOP อาจจะต้องทำการปรับเปลี่ยนภาษาในการพัฒนา ในขณะที่การใช้ AOSD จะรวมถึงความเกี่ยวข้องกับภาษา สภาพแวดล้อมและวิธีการพัฒนา

  18. SA – WAD – D - JA สวัสดีครับ - ค่ะ

More Related