กลับไปหน้าบทความ

อ่าน 4 นาที

อัมเปิล

Umple เป็นภาษาสำหรับ การเขียนโปรแกรมเชิงวัตถุ และ การสร้างแบบจำลอง ด้วย ไดอะแกรมคลาส และ ไดอะแกรมสถานะ ชื่อ Umple มา จากการผสมคำ ว่า " UML ", "ample" และ "Simple" [ 1 ]...

อัมเปิล

อัมเปิล
กระบวนทัศน์เชิงวัตถุ
ออกแบบโดยมหาวิทยาลัยออตตาวา
นักพัฒนากลุ่มวิจัย Cruise ในภาควิชาวิศวกรรมไฟฟ้าและวิทยาการคอมพิวเตอร์ นำโดยTimothy Lethbridgeที่มหาวิทยาลัยออตตาวา
ปรากฏครั้งแรก2008
เวอร์ชันเสถียร
1.37.0 / 18 เมษายน 2569 ( 18 เมษายน 2569 )
วินัยในการพิมพ์คงที่
แพลตฟอร์มเจวีเอ็ม
ใบอนุญาตใบอนุญาต MIT
นามสกุลไฟล์.ump
เว็บไซต์www.umple.org
ได้รับอิทธิพลจาก
Java , C++ , UML , Ruby , PHP

Umpleเป็นภาษาสำหรับการเขียนโปรแกรมเชิงวัตถุและการสร้างแบบจำลองด้วยไดอะแกรมคลาสและไดอะแกรมสถานะชื่อ Umple มาจากการผสมคำว่า " UML ", "ample" และ "Simple" [ 1 ]ซึ่งบ่งชี้ว่าได้รับการออกแบบมาเพื่อมอบคุณสมบัติมากมายเพื่อขยายภาษาการเขียนโปรแกรมด้วยความสามารถของ UML

ประวัติศาสตร์และปรัชญา

การออกแบบ Umple เริ่มขึ้นในปี 2008 ที่มหาวิทยาลัยออตตาวา Umple เป็นซอฟต์แวร์โอเพนซอร์สและการพัฒนาได้ย้ายไปที่Google Codeในช่วงต้นปี 2011 และไปที่GitHubในปี 2015

Umple ได้รับการพัฒนาขึ้นส่วนหนึ่งเพื่อแก้ไขปัญหาบางประการที่พบในชุมชนการสร้างแบบจำลอง[ 2 ] โดยเฉพาะอย่างยิ่ง ได้รับการออกแบบมาเพื่อทำให้การสร้างแบบจำลองและการเขียนโปรแกรมสอดคล้องกัน มีจุดประสงค์เพื่อช่วยเอาชนะข้อจำกัดในการสร้างแบบจำลองที่พบได้ทั่วไปในชุมชนโปรแกรมเมอร์ นอกจากนี้ยังมีจุดประสงค์เพื่อลดความยากลำบากบางประการของการพัฒนาที่ขับเคลื่อนด้วยแบบจำลองที่เกิดขึ้นจากความจำเป็นในการใช้เครื่องมือขนาดใหญ่ ราคาแพง หรือไม่สมบูรณ์ วัตถุประสงค์ในการออกแบบประการหนึ่งคือการทำให้โปรแกรมเมอร์สามารถสร้างแบบจำลองในแบบที่พวกเขาเห็นว่าเป็นธรรมชาติ โดยการเพิ่มโครงสร้างการสร้างแบบจำลองลงในภาษาการเขียนโปรแกรม

คุณสมบัติและความสามารถ

Umple สามารถใช้ในการแสดงเอนทิตีการสร้างแบบจำลอง UML จำนวนมากที่พบในไดอะแกรมคลาสและไดอะแกรมสถานะในรูปแบบ ข้อความ ได้[ 2 ] Umple สามารถสร้างโค้ดสำหรับสิ่งเหล่านี้ในภาษาโปรแกรมต่างๆ ได้ ปัจจุบัน Umple รองรับJava , C++และPHPเป็นภาษาโปรแกรมเป้าหมายอย่างเต็มรูปแบบ และมีการสนับสนุนRuby ในระดับใช้งานได้ แต่ยังไม่สมบูรณ์ นัก

นอกจากนี้ Umple ยังรวมเอาคุณสมบัติต่างๆ ที่ไม่เกี่ยวข้องกับ UML ไว้ด้วย เช่นรูปแบบซิงเกิลตัน (Singleton pattern) , คีย์ (Keys), ความไม่เปลี่ยนแปลง (Immutability) , มิกซ์อิน (Mixins) และ การแทรกโค้ดเชิง แง่มุม (Aspect-oriented code injection)

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

Umple สร้างเมธอดมากมายสำหรับการจัดการ การสอบถาม และการนำทางความสัมพันธ์ต่างๆ รองรับการรวมกันทุกรูปแบบของ UML multiplicityและบังคับใช้ความสมบูรณ์ของข้อมูลอ้างอิง

Umple รองรับสัญกรณ์ เครื่องสถานะ UMLส่วนใหญ่รวมถึงสถานะ ที่ซ้อนกันลึกได้ตามต้องการ พื้นที่พร้อมกันการกระทำ เมื่อเข้า ออก และเปลี่ยนสถานะ รวมถึง กิจกรรมที่กินเวลานานขณะอยู่ในสถานะ [ 3 ] เครื่องสถานะถือเป็น แอตทริบิวต์ แบบแจงนับโดยค่าจะถูกควบคุมโดยเหตุการณ์เหตุการณ์ที่เข้ารหัสในเครื่องสถานะอาจเป็นเมธอดที่ผู้ใช้เขียนขึ้น หรือสร้างขึ้นโดยคอมไพเลอร์ของ Umple เหตุการณ์จะถูกเรียกใช้โดยการเรียกเมธอด เหตุการณ์หนึ่งสามารถกระตุ้นการเปลี่ยนสถานะ (ขึ้นอยู่กับเงื่อนไข ) ในเครื่องสถานะหลายเครื่อง เนื่องจากโปรแกรมสามารถเขียนขึ้นโดยใช้เครื่องสถานะหนึ่งเครื่องหรือมากกว่านั้น Umple จึงช่วยให้สามารถเขียนโปรแกรมโดยใช้ระบบอัตโนมัติได้

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

สัญลักษณ์ของ Umple สำหรับโครงสร้าง UML สามารถฝังอยู่ในภาษาโปรแกรมเป้าหมายที่รองรับได้ทุกภาษา เมื่อทำเช่นนั้น Umple จะถูกมองว่าเป็นตัวประมวลผลล่วงหน้า : คอมไพเลอร์ของ Umple จะขยายโครงสร้าง UML ไปเป็นโค้ดของภาษาเป้าหมาย โค้ดในภาษาเป้าหมายสามารถส่งไปยังคอมไพเลอร์ของ Umple ได้โดยตรง หากไม่พบสัญลักษณ์เฉพาะของ Umple โค้ดในภาษาเป้าหมายจะถูกสร้างขึ้นโดยคอมไพเลอร์ของ Umple โดยไม่เปลี่ยนแปลง

Umple เมื่อผนวกรวมกับภาษาเป้าหมายภาษาใดภาษาหนึ่งสำหรับการเขียนโค้ดเชิงคำสั่ง จะสามารถมองและใช้งานได้ในฐานะภาษาโปรแกรมที่สมบูรณ์แบบ ดังนั้น Umple บวกกับ Java จึงสามารถมองได้ว่าเป็นส่วนขยายของ Java

อีกทางเลือกหนึ่ง หากละเว้นโค้ดเชิงคำสั่งและแนวคิดเฉพาะของ Umple แล้ว Umple ก็สามารถมองได้ว่าเป็นวิธีการแสดง UML ส่วนใหญ่ในรูปแบบข้อความล้วนๆ สามารถเพิ่มโค้ดในภาษาโปรแกรมที่รองรับได้ในลักษณะเดียวกับที่ UML ออกแบบไว้สำหรับการเพิ่มโค้ดภาษาการกระทำ

ใบอนุญาต

Umple ได้รับอนุญาตภายใต้สัญญาอนุญาตแบบ MIT

ตัวอย่าง

นี่คือโปรแกรม Hello world แบบคลาสสิก ที่เขียนด้วย Umple (ขยาย Java): [ 4 ]

class HelloWorld { public static void main ( String [ ] args ) { System . out . println ( "Hello World" ); } }

ตัวอย่างนี้ดูเหมือนภาษา Java เพราะ Umple ขยายขีดความสามารถของภาษาโปรแกรมอื่นๆ

เมื่อบันทึกโปรแกรมลงในไฟล์ชื่อ แล้วHelloWorld.umpก็สามารถคอมไพล์โปรแกรมจากบรรทัดคำสั่งได้:

$ java -jar umple.jar HelloWorld.ump 

วิธีใช้งาน:

$ java HelloWorld 

ต่อไปนี้เป็นตัวอย่างที่สามารถดำเนินการได้อย่างสมบูรณ์ซึ่งแสดงวิธีการ Java ที่ฝังอยู่และการประกาศความสัมพันธ์[ 4 ]

คลาสPerson { name ; // คุณลักษณะ, ค่าเริ่มต้นเป็นสตริง String toString () { return ( getName ()); } } คลาสStudent { isA Person ; } คลาสMentor { isA Person ; } association { 0..1 Mentor -- * Student ; } คลาสPerson { public static void main ( String [ ] args ) { Mentor m = new Mentor ( "Nick The Mentor" ); Student s = new Student ( "Tom The Student" ); s . setMentor ( m ); System . out . println ( "The mentor of " + s + " is " + s . getMentor ()); System . out . println ( "The students of " + m + " are " + m . getStudents ()); } }

ตัวอย่างต่อไปนี้อธิบายเครื่องสถานะที่เรียกว่าสถานะ โดยมีสถานะเปิด ปิด ปิดสนิท เปิด และเปิดครึ่งหนึ่ง และมีเหตุการณ์ต่างๆ ที่ทำให้เกิดการเปลี่ยนจากสถานะหนึ่งไปยังอีกสถานะหนึ่ง [ 5 ]

คลาส GarageDoor { สถานะ { เปิด { buttonOrObstacle -> ปิด; } ปิด { ปุ่มหรือสิ่งกีดขวาง -> การเปิด; reachBottom -> ปิด; } ปิด { buttonOrObstacle -> เปิด; } การเปิด { ปุ่มหรือสิ่งกีดขวาง -> เปิดครึ่งหนึ่ง; reachTop -> เปิด; } HalfOpen { buttonOrObstacle -> เปิด; } } } 

การใช้งานอย่างมีประสิทธิภาพในทางปฏิบัติ

คอมไพเลอร์ Umple เวอร์ชันแรกเขียนด้วยภาษา Java, Antlrและ Jet (Java Emitter Templates) แต่ใน กระบวนการ บูตสแตรปโค้ด Java ถูกแปลงเป็น Umple โดยใช้เทคนิคที่เรียกว่า Umplification [ 6 ]ต่อมา Antlr และ Jet ก็ถูกแปลงเป็น Umple ดั้งเดิมเช่นกัน ดังนั้น Umple จึงเขียนขึ้นเองทั้งหมด กล่าวอีกนัยหนึ่งคือเป็นแบบโฮสต์ตัวเองและทำหน้าที่เป็นกรณีทดสอบที่ใหญ่ที่สุดของตัวเอง

Umple และ UmpleOnline ถูกนำมาใช้ในห้องเรียนโดยอาจารย์หลายท่านเพื่อสอน UML และการสร้างแบบจำลอง ในการศึกษาหนึ่งพบว่าช่วยเร่งกระบวนการสอน UML และยังพบว่าช่วยปรับปรุงผลการเรียนของนักเรียนอีกด้วย[ 7 ]

เครื่องมือ

Umple มีให้ใช้งานในรูปแบบ ไฟล์ Jarซึ่งสามารถเรียกใช้งานได้จากบรรทัดคำสั่ง และในรูปแบบปลั๊กอิน ของ Eclipse

นอกจากนี้ยังมีเครื่องมือออนไลน์สำหรับ Umple ที่เรียกว่า UmpleOnline [ 8 ] ซึ่งช่วยให้นักพัฒนาสามารถสร้างระบบ Umple ได้โดยการวาดไดอะแกรมคลาส UML แก้ไขโค้ด Umple หรือทั้งสองอย่าง โมเดล Umple ที่สร้างด้วย UmpleOnline จะถูกจัดเก็บไว้ในระบบคลาวด์ปัจจุบัน UmpleOnline รองรับเฉพาะโปรแกรม Umple ที่ประกอบด้วยไฟล์อินพุตเดียวเท่านั้น

นอกจากโค้ดแล้ว เครื่องมือของ Umple ยังสามารถสร้างเอาต์พุตประเภทอื่นๆ ได้หลากหลาย รวมถึงอินเทอร์เฟซผู้ใช้ตามแบบจำลอง Umple [ 9 ]

ดูเพิ่มเติม

  • หน้าหลักของ Umple ที่มหาวิทยาลัยออตตาวา
  • แอปพลิเคชันเว็บ UmpleOnline สำหรับแก้ไขไดอะแกรม UML และโค้ดพร้อมกัน
  • รายชื่อการสนทนาเกี่ยวกับการพัฒนา Umple
  • บล็อก Umple
  • วิดีโอ Umple บน YouTube
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Umple&oldid=1349780060 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ อัมเปิล

Umple เป็นภาษาสำหรับ การเขียนโปรแกรมเชิงวัตถุ และ การสร้างแบบจำลอง ด้วย ไดอะแกรมคลาส และ ไดอะแกรมสถานะ ชื่อ Umple มา จากการผสมคำ ว่า " UML ", "ample" และ "Simple" [ 1 ]...

ประวัติศาสตร์และปรัชญา

การออกแบบ Umple เริ่มขึ้นในปี 2008 ที่ มหาวิทยาลัยออตตาวา Umple เป็น ซอฟต์แวร์โอเพนซอร์ส และการพัฒนาได้ย้ายไปที่ Google Code ในช่วงต้นปี 2011 และไปที่ GitHub ในปี 2015

คุณสมบัติและความสามารถ

Umple สามารถใช้ในการแสดงเอนทิตีการสร้างแบบจำลอง UML จำนวนมากที่พบใน ไดอะแกรมคลาส และ ไดอะแกรมสถานะในรูปแบบ ข้อความ ได้ [ 2 ] Umple สามารถสร้างโค้ดสำหรับสิ่งเหล่านี้ในภาษาโปรแกรมต่างๆ ได้ ปัจจุบัน Umple รองรับ Java , C++ และ PHP...

ใบอนุญาต

Umple ได้รับอนุญาตภายใต้ สัญญาอนุญาตแบบ MIT