“UML” ภาษาที่ System Analysis ใช้คุยกับ Programmer

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

การพัฒนาซอฟต์แวร์เชิงธุรกิจ โปรแกรมเมอร์จะทำงานประสานกับฝ่ายวิเคราะห์และออกแบบระบบ และฝ่ายทดสอบระบบก่อนส่งมอบให้ผู้ใช้งานจริง ปัจจุบันการพัฒนาซอฟต์แวร์ด้วยหลักการเชิงวัตถุ (Object Orientation) มีหลักการสำคัญ คือ จับต้องได้ (Object), มีการจัดกลุ่มความคิดที่คล้ายกันเป็นหน่วยเดียวกันเพื่ออ้างถึงด้วยชื่อเดียวกัน เข้าใจง่ายๆ ก็คือการรวมโอเปอร์เรชั่นและแอตทริบิวต์เข้าเป็นหน่วยเดียวกัน (Encapsulation), เป็นแม่พิมพ์หรือคลาส (Class) , อินสแทนซ์ (Instance), แอตทริบิวต์ (Attribute), โอเปอร์เรชั่น (Operation) หรือเมธอด (Method), ลายเซ็น (Signature), ข้อความ (Message), อินเทอร์เฟซ (Interface), การสืบทอดคุณสมบัติ (Inheritance), ความสัมพันธ์ระหว่างคลาสหรือออบเจ็กต์ (Relationship), การเปลี่ยนรูป (Polymorphism) หลักการเชิงวัตถุนี้เป็นเทคโนโลยีที่แพร่หลายและมีโปรแกรมภาษาที่สนับสนุนการทำงานด้วยหลักการนี้หลายภาษา เช่น Java, C++, Delphi, Visual Basic เป็นต้น แต่ก็ยังต้องอาศัยการวิเคราะห์และออกแบบด้วยจึงจะได้ซอฟต์แวร์ที่มีความสมบูร์ในทุกๆ ด้าน

UML หรือชื่อเต็ม Unified Modeling Language เริ่มต้นในปี 1994 ในนามของ Unified Method จนเกิดโมเดลสำเร็จและเป็นที่แพร่หลายในปี 1995 โดย Grady Booch, James Rumbaugh และ Ivar Jacobson และถูกพัฒนาต่อมาเรื่อยๆ จากรุ่น 1.1 ในปี 1997 จนปัจจุบันอยู่ที่รุ่น 2.0

ข้อดีของ UML

  • เป็นภาษารูปภาพมาตรฐาน (Standard Visual Modeling Language) หรือภาษาสากล สามารถใช้ในการแลกเปลี่ยนโมเดลได้อย่างสื่อความหมาย
  • นำเสนอและสนับสนุนหลักการเชิงวัตถุได้ครบถ้วนชัดเจน ทำให้โปรแกรมเมอร์สามารถเข้าใจปัญหาและหาวิธีแก้ได้อย่างรวดเร็วและง่ายยิ่งขึ้น
  • ไม่ผูกติดกับภาษาโปรแกรมภาษาใดๆ
  • ง่ายต่อการทำความเข้าใจ
  • ลดภาระ เวลา และค่าใช้จ่ายการพัฒนาระบบเนื่องจากสามารถถูกแปลงเป็นภาษาที่ใช้ในการสร้างระบบขึ้นจริงได้อย่างอัติโนมัติ
  • สนับสนุนการขยายปรับปรุงระบบ การแก้ไขหรือเพิ่มเติมสามารถทำกับโมเดลก่อนลงมือแก้ไขจริง
  • สามารถบันทึกความคิดของนักพัฒนาหรือโปรแกรมเมอร์ในลักษณะของเอกสาร

องค์ประกอบของ UML

1. สัญลักษณ์ทั่วไป (Things) คือสัญลักษณ์พื้นฐานที่ใช้ในการสร้างไดอะแกรมต่างๆ โดยแบ่งเป็นหมวดย่อยๆ ดังนี

  • หมวดโครงสร้าง (Structural) ได้แก่ ยูสเคส คลาส อินเทอร์เฟซ คอมโพเนนต์ คอลแลบอเรชั่น และโหนด
  • หมวดพฤติกรรม (Behavioral) หรือส่วนที่เป็นไดนามิกของยูเอ็มแอล ได้แก่ อินเตอร์แอ็กชั่น สเตตแมชชี
  • หมวดจัดกลุ่ม (Grouping) ใช้ในการรวบรวมองค์ประกอบต่างๆ ในโมเดลให้เหมาะสม ได้แก่ แพ็กเกจ
  • หมวดคำอธิบายประกอบ (Annotational) ได้แก่ โน้ต

2. ความสัมพันธ์ (Relationships) มี 3 ชนิด

  • ความสัมพันธ์แบบพึ่งพา (Dependency Relationship)
  • ความสัมพันธ์แบบเกี่ยวพันธ์ (Association Relationship)
  • ความสัมพันธ์แบบเจเนอรัลไลเซชั่น (Generalization Relationship) ได้แก่ ความสัมพันธ์แบบสืบทอดคุณสมบัติ (Inheritance)

3. ไดอะแกรมต่างๆ (Diagram) ประกอบด้วย 8 ไดอะแกรม

  • ยูสเคสไดอะแกรม (Use Case Diagram) ใช้ในการโมเดลฟังก์ชันการทำงานของระบบ
  • คลาสไดอะแกรม (Class Diagram) ใช้ในการโมเดลคลาสต่างๆ ที่จำเป็นในระบบ
  • แอ็กทิวิตี้ไดอะแกรม (Activity Diagram) ใช้หลักการเดียวกับโฟลว์ชาร์ต (Flowchart)
  • สเตตชาร์ตไดอะแกรม (Statechart Diagram) ใช้สำหรับแสดงสถานะของออบเจ็กต์ระหว่างทำงาน
  • คอลแลบอเรชั่นไดอะแกรม (Collaboration Diagram) ใช้แสดงการทำงานร่วมกันของออบเจ็กต์ในระบบ
  • ซีเควนซ์ไดอะแกรม (Sequence Diagram) ใช้ในการโมเดลกิจกรรมต่างๆ ที่เกิดขึ้นกับออบเจ็กต์ในระบบ
  • คอมโพเนนต์ไดอะแกรม (Component Diagram) ใช้สร้างโมเดลของคอมโพเนนต์ในระบบ
  • ดีพลอยเมนต์ไดอะแกรม (Deployment Diagram) ใช้แสดงการติดตั้งใช้งานส่วนประกอบต่างๆ ของระบบ

ปัจจุบันมีเครื่องมือประเภท Visual Modeling Tool ที่ใช้ในการสร้างยูเอ็มแอลไดอะแกรมมากมาย เช่น Rational Rose, Together เป็นต้น

อ้างอิงข้อมูลจาก : หนังสือ “UML ภาษามาตรฐานเพื่อผู้พัฒนาซอฟต์แวร์”

Leave a Reply

Your email address will not be published. Required fields are marked *

*