System Modeling with UML2 : Activities

UML ก่อนหน้านั้นคุยกันเรื่อง State machine ไปวันนี้กลับมาต่อกันในหัวข้อเรื่อง Activities จุดประสงค์ของการใช้ Activities diagram ก็เพื่อใช้ในการแสดงของ Model ในรูปแบบของ Dynamic behavior ของ System โดยหัวข้อนี้จะทำให้เราเข้าใจและสามารถที่จะควบคุม :

 

 

[ad#ad-post-1]

  • Action
  • Activity
  • Edge (automatic transition)
  • Swinlanes (Partition)

สิ่งที่แตกต่างระหว่าง State machine และ Acitivities diagram นั่นก็คือ

  • State machine จะแสดงให้เห็นการควบคุมการทำงานของ State หนึ่ง ไปยังอีก State หนึ่ง
  • Activities นั้นจะแสดงให้เห็นลำดับการเคลื่อนที่ของการควบคุมการทำงานและการเคลื่อนที่ของข้อมูล (Control flow & data flow) จาก Activity หนึ่งไปยังอีก Activity หนึ่ง

Activity diagram จะประกอบด้วย

  • Activity(Node), action, Object/Data
  • Activity edge
  • Threads

Example

 

Picture : http://cormas.cirad.fr/images/applica/JLB-shepherdActivity.gif

Action

    การทำงานบางอย่างเพื่อแสดงให้เห็นว่ามีเปลี่ยนแปลง หรือ ดำเนินการ บางอย่างใน Model เช่นมันสามารถที่จะ ส่งสัญญาณ, สร้างหรือทำลาย Object

Activity

    คือการกำหนด paramiter บางอย่างของ Behavior เพื่อที่จะได้สั่งให้ Subordinate นั้นทำงานได้อย่างถูกต้องตามลำดับ โดย Activity สามารถที่จะประกอบไปด้วย Action ที่แตกต่างกัน

Edge

    คือ connection ที่ถูกสร้างขึ้นเพื่อให้ทำงานระหว่าง Activity Nodes โดยรวมไปถึง การควบคุมและเคลื่อนที่ของ Edge อีกด้วย สิ่งสำคัญอีกอย่างหนึ่งก็คือ Guard โดยทำให้ Edge นั่นสามารถที่จะตรวจสอบตรรกะได้ เช่นถ้าเป็นจริงให้ผ่าน.ถ้าเป็นเท็จก็ไม่ยอมให้ส่งข้อมูลหรือการควบคุมต่างๆ นั้นผ่านไปได้

Decision node

    ช่วยเข้ามาควบคุม Node ในการเลือกว่าจะไปทางไหน ของ Outgoing flows

Picture : http://www.gentleware.com/fileadmin/media/archives/userguides/poseidon_users_guide/images/spec_mergedecisionnodes.png

Join node

    ทำหน้าที่ในการทำ multiple flow มาเป็น Input แล้วมี Outgoing flow อันเดียว นอกจากนี้ยังสามารถนำ multiple incoming edges มารวมกันแล้วให้กลายเป็น Outgoign Edge เพียงอันเดียวได้อีกด้วย

Picture : http://www.gentleware.com/fileadmin/media/archives/userguides/poseidon_users_guide/images/spec_forkjoinnodes.png

Activity partition

    เป็นตัวช่วยในการแบ่ง Activiy nodes และ edges เป็นส่วนๆ และ แบ่งกลุ่มของ Node โดยมากมักถูกใช้งานในส่วนของ Business model นอกจากนี้มันยังสามารถที่จะแบ่งตามลำดับชั้นและแบ่งออกได้เป็นตารางอีกด้วย

ตัวอย่าง


Picture : http://www.gentleware.com/fileadmin/media/archives/userguides/poseidon_users_guide/images/activity_partition.png

Pin

    Element ที่สามารถให้ข้อมูลไปยัง Action และ ยอมรับผลลัพธ์จาก Action เหล่านั้นได้อีกด้วย โดย Pin สามารถที่จะกำหนด Specify Argument, return ค่าต่างๆ หรือ กำหนด Parameter ได้ เห็น อาจารย์เค้ายกตัวอย่างตอนที่เอามาเขียน Model ของโปรแกรมที่มีการ ใส่ Argument

[ad#post-image]