Computer Science

Technology are around ^^

Software Architect มิถุนายน 21, 2009

Software Architecture คืออะไร?????

– โครงสร้างของสถาปัตยกรรมและความสัมพันธ์ระหว่างกันของส่วนต่างๆ ที่ประกอบกันเป็นระบบ ทำให้เห็นภาพรวมของระบบทั้งหมดในระดับ High Level

อาจกล่าวได้ว่า Software Architecture เปรียบเสมือนพิมพ์เขียวของซอฟแวร์ ที่จะตอบคำถามต่างๆ เกี่ยวกับซอฟแวร์

เช่น ซอฟแวร์มีการรักษาความปลอดภัยอย่างไรที่จุดไหนบ้าง มีการจัดการ Error อย่างไร มีการแบ่งเลเยอร์ของซอฟแวร์อย่างไร มีการ Logging อย่างไร การออกแบบนั้นเป็นไปตามความต้องการหรือไม่ ซึ่งหากว่าไม่มีการทำ Software Architecture แล้วก็จะไม่ค่อยคำนึงในหัวข้อข้างต้น ซึ่งเป็นส่วนบ่งบอกถึงคุณภาพของซอฟแวร์ เช่นการจัดการ Error นอกจากต้องมีแล้วยังต้องมีอย่างเป็นระบบระเบียบเหมือนกันทั้งระบบ (Consistency) อีกด้วย

โมเดลของ Software Architecture นั้นจะประกอบไปด้วยหลายๆมุมมองซึ่งแตกต่างกัน เช่น User Case Model จะบอกถึงผู้ใช้ว่าจะทำอะไรกับระบบได้บ้าง Classes Model ก็จะบอกว่า Domain Class (High Level Class) แต่ละตัวนั้นมีความสัมพันธ์กันอย่างไร ซึ่งการทำ Software Architecture จะเน้นไปถึงแนวคิดของการออกแบบ (Conceptual Design) ไม่ใช่รายละเอียดของวิธีการที่ระบบทำงาน (Details Design)

Software Architect คือใคร ??????


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

ทักษะที่ Architect จำเป็นต้องมีคือ??????

1. ความรู้ในเชิงลึกของเทคโนโลยีแพลตฟอร์ม ที่กำลังทำงานอยู่ เช่น .Net Framework, J2EE, SOAP, หรืออื่นๆ
2. UML (Unified Modeling Language)
3. Best Practice ในเรื่องของ Security บนแพลตฟอร์มที่ทำ
4. OOD (Objected-Oriented Design)
5. SOA (Services-Oriented Architecture) เพราะว่าระบบต่างๆในองค์กร หรือระหว่างองค์กรในอนาคต มีความจำเป็นที่ต้องทำงานร่วมกันมากขึ้น ซึ่ง Architect ต้องนำ SOA มาช่วยออกแบบได้อย่างเหมาะสม
6. ความรู้พื้นฐานเกี่ยวกับวงจรธุรกิจ (Business Life Cycle)
7. ความเป็นผู้นำในการตัดสินใจ และรับผิดชอบในการออกแบบซอฟแวร์
8. ทักษะในการติดต่อสื่อสารกับผู้ร่วมงานทั้งในทีม และบุคคลภายนอก เพื่อให้คนอื่นๆ นั้นเข้าใจในสิ่งที่ตัวเองคิด
9. ความสามารถในการเรียนรู้เป็นสิ่งจำเป็นมาก ไม่เพียงแต่ Architect เท่านั้น ทุกบทบาทภายในทีมก็เช่นกัน เพราะเทคโนโลยีมีการเปลี่ยนแปลงเร็วมาก ต้องเป็นคนที่ขวนขวายหาความรู้อยู่เสมอ ทั้งทางด้านธุรกิจ และการบริหารจัดการ

Reference: PC MAGAZINE ^^

 

ใส่ความเห็น

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out / เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out / เปลี่ยนแปลง )

Google+ photo

You are commenting using your Google+ account. Log Out / เปลี่ยนแปลง )

Connecting to %s