วันอาทิตย์ที่ 10 พฤษภาคม พ.ศ. 2552

Architect Tradoff Analysis Method (ATAM)

การวิเคราะห์และประเมินสถาปัตยกรรมซอฟต์แวร์ที่ออกแบบโดยใช้วิธี Architecture Tradeoff Analysis MethodSM (ATAMSM) เพื่อวิเคราะห์หาความเหมาะสม คุ้มค่า และมีประโยชน์ที่สุด ผู้เข้ารับการอบรมจะมีความเข้าใจมากขึ้นในการตัดสินใจเลือกใช้เทคโนโลยีให้เหมาะสมกับงาน และการวิเคราะห์เทคนิคและการออกแบบเพื่อตรวจสอบว่าเหมาะสมและดีพอหรือไม่ และเพื่อให้ผู้เข้ารับการอบรมได้เลือกสรรเรียงร้อยเทคโนโลยีต่าง ๆ ให้เหมาะสมกับงานที่สุด มิใช่เป็นเพียงผู้ตามเทคโนโลยีเท่านั้น

สถาปัตยกรรมซอฟต์แวร์ของระบบได้รับการพิจารณาว่าเป็นหนึ่งในส่วนที่สำคัญที่สุดของ software artifacts ความต้องการ (Requirements) มิได้มีแค่ Functional Requirements เท่านั้น แต่ยังมี Non-Functional Requirements อีก นอกจากนี้ยังมี Business Requirements หรือ Stakeholder Needs อีก ดังนั้นการระบุถึงคุณภาพที่ระบบฯ จำเป็นต้องมีจึงต้องหาจาก Requirements ประเภทต่าง ๆ เมื่อออกแบบสถาปัตยกรรมซอฟต์แวร์ได้แล้ว จึงต้องหาวิธีวิเคราะห์สถาปัตยกรรมซอฟต์แวร์ที่ได้ออกแบบนั้นว่ามีคุณภาพเพียงใดและตอบสนองต่อคุณภาพของระบบฯ ได้เพียงใด

เมื่อกำหนดคุณภาพต่าง ๆ ได้แล้ว สิ่งสำคัญลำดับต่อไปคือจะทำอย่างไรเพื่อให้ได้ตามคุณภาพที่กำหนด วิธีการเหล่านี้ล้วนเป็นพื้นฐานทางวิทยาศาสตร์นั่นเอง ตัวอย่างเช่น สมมติฐานที่ว่า ระบบฯ ต้องมีคุณภาพด้าน Availability โดยมีค่า 24/7 เทคนิคเพื่อให้ได้ตามคุณภาพที่กำหนดคือ ใช้เซิร์ฟเวอร์ 3 เครื่องช่วยกันทำงาน จากตัวอย่าง การใช้เครื่องเซิร์ฟเวอร์ 3 เครื่องอาจช่วยให้ระบบฯ ทำงานได้ 24 ชั่วโมงต่อวัน และ 7 วันต่อสัปดาห์ได้จริงหรือไม่ก็ได้ ขึ้นกับปัจจัยหลายอย่างมาก ดังนั้นเทคนิคนี้จึงไม่สามารถฟันธงได้ว่า เหมาะสมที่สุดดังนั้นเราจะทราบได้อย่างไรว่า เทคนิค เทคโนโลยี ภาษาโปรแกรม แพลตฟอร์ม ซอฟต์แวร์ ไลบรารี่ เฟรมเวิร์ก ต่าง ๆ ที่เลือกใช้รวมถึงทีมที่เลือกมาทำ บริษัทที่เลือก Outsource คือสิ่งที่เหมาะสมที่สุดกับระบบฯ จริง ๆ

ทุกวันนี้เราถูกครอบงำโดยกระแสเทคโนโลยีและถูกชี้นำโดยแหล่งที่หลากหลาย เฟรมเวิร์กที่เก่ากว่าไม่จำเป็นต้องทำได้แย่กว่าเฟรมเวิร์กที่ใหม่กว่าเสมอไป หรือเมื่อผู้จัดการถามหัวหน้าทีมพัฒนาว่าทำไมต้องใช้ภาษาโปรแกรมนี้ในงานนี้ หลายครั้งเรามักได้ยินผู้ถูกถามตอบกลับมาว่ามันใหม่ครับ ทันสมัย คนใช้เยอะสุดท้ายแล้วสิ่งที่เลือกใช้นั้นเหมาะสมกับงานที่สุดแล้วจริงหรือ คุ้มค่าแล้วจริงหรือ สิ่งที่ดีที่สุดอาจเป็นสิ่งที่ต้องเสียเงินมากก็ได้ การเลือกใช้เฟรมเวิร์กธรรมดา ๆ เก่านิดหน่อย แต่ใช้กับงานได้ อาจส่งผลต่อความเหมาะสมและคุ้มค่ากว่าการเลือกใช้เฟรมเวิร์กใหม่ ๆ ที่ใช้ยาก คนในทีมใช้ไม่ค่อยเป็น ก็ได้ และแม้แต่การเขียน TOR เพื่อว่าจ้างบริษัทรับเหมาพัฒนาระบบฯ อาจจำเป็นต้องมีการออกแบบสถาปัตยกรรมซอฟต์แวร์ก่อน แล้วนำมาวิเคราะห์เพื่อประเมินคุณภาพ เพราะวิธีการนี้ช่วยให้สะท้องถึงความต้องการที่แท้จริงได้ และช่วยในการคำนวณหาต้นทุนและค่าใช้จ่ายที่ใกล้ความเป็นจริงได้ งบประมาณที่จะตั้ง ระยะเวลาที่จะกำหนด ทีมงานที่จะใช้ ประโยชน์แท้จริงที่อยากได้ สิ่งเหล่านี้ก็จะวิเคราะห์หาได้ชัดเจนยิ่งขึ้น

ดังนั้นทุกวันนี้เราจึงต้องรู้เท่าทันเทคโนโลยี และสิ่งต่าง ๆ ที่จะเลือกมาใช้ และวิเคราะห์หาความเหมาะสม ความคุ้มค่า และประโยชน์ ที่สิ่งนั้น ๆ จะยังผลให้ได้มากที่สุด วิธีในการวิเคราะห์เพื่อประเมินซึ่งเป็นเนื้อหาหลักในหลักสูตรนี้คือ Architecture Tradeoff Analysis MethodSM (ATAMSM)

นักพัฒนาซอฟต์แวร์ตัดสินใจครั้งแล้วครั้งเล่าถึงผลกระทบของสถาปัตยกรรมต่อระบบซอฟต์แวร์ แต่หลายครั้งที่ผลกระทบนั้นไม่ได้ได้รับการพิจารณาอย่างถี่ถ้วนหรือเข้าใจอย่างถ่องแท้ เช่น

· การตัดสินใจทางด้านการออกแบบใดที่จะทำให้สถาปัตยกรรมซอฟต์แวร์มีคุณภาพตรงตามความต้องการทางด้านคุณภาพของระบบ (System Qualities)

· เราจะรู้ได้อย่างไรว่าสถาปัตยกรรมซอฟต์แวร์ที่สร้างมาไม่ได้คุณภาพหรือมีความเสี่ยงต่อคุณภาพของระบบที่ได้กำหนดไว้อย่างไร

· เมื่อออกแบบสถาปัตยกรรมซอฟต์แวร์แล้ว เราจะรู้ได้อย่างไรว่าระบบฯ จะมีคุณภาพที่ดี ทั้งที่ระบบจริงยังไม่ได้สร้าง

· วิธีการ เทคโนโลยี ภาษาโปรแกรม แพลตฟอร์ม ระบบฐานข้อมูล ไลบรารี่ เฟรมเวิร์ก ฯลฯ ที่เลือกนำมาใช้กับระบบฯ จะดีที่สุดและเหมาะสมกับงานจริง ๆ

· คุณภาพที่ต้องการจริง ๆ คืออะไร มีอะไรบ้าง แล้วต้องกำหนดค่าอย่างไร เช่น หากบอกว่าระบบฯ นี้ต้องมี Availability จะต้องกำหนดค่าเท่าไร เช่น หากกำหนด 24/7 คือ ระบบฯ ต้องทำงานได้ 24 ชั่วโมงต่อวัน และ 7 วันต่อสัปดาห์ แสดงว่าระบบฯ จำเป็นต้องทำงานหนักขนาดนี้จริงหรือ

ขอบคุณบทความจาก : Software Park บทเกริ่นนำคอร์สเทรน ที่น่าสนใจ

ไม่มีความคิดเห็น: