อ่าน 4 นาที
อัมเปิล
Umple เป็นภาษาสำหรับ การเขียนโปรแกรมเชิงวัตถุ และ การสร้างแบบจำลอง ด้วย ไดอะแกรมคลาส และ ไดอะแกรมสถานะ ชื่อ Umple มา จากการผสมคำ ว่า " UML ", "ample" และ "Simple" [ 1 ]...
อัมเปิล
| อัมเปิล | |
|---|---|
| กระบวนทัศน์ | เชิงวัตถุ |
| ออกแบบโดย | มหาวิทยาลัยออตตาวา |
| นักพัฒนา | กลุ่มวิจัย Cruise ในภาควิชาวิศวกรรมไฟฟ้าและวิทยาการคอมพิวเตอร์ นำโดยTimothy Lethbridgeที่มหาวิทยาลัยออตตาวา |
| ปรากฏครั้งแรก | 2008 |
| เวอร์ชันเสถียร | 1.37.0 / 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
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ อัมเปิล
Umple เป็นภาษาสำหรับ การเขียนโปรแกรมเชิงวัตถุ และ การสร้างแบบจำลอง ด้วย ไดอะแกรมคลาส และ ไดอะแกรมสถานะ ชื่อ Umple มา จากการผสมคำ ว่า " UML ", "ample" และ "Simple" [ 1 ]...
ประวัติศาสตร์และปรัชญา
การออกแบบ Umple เริ่มขึ้นในปี 2008 ที่ มหาวิทยาลัยออตตาวา Umple เป็น ซอฟต์แวร์โอเพนซอร์ส และการพัฒนาได้ย้ายไปที่ Google Code ในช่วงต้นปี 2011 และไปที่ GitHub ในปี 2015
คุณสมบัติและความสามารถ
Umple สามารถใช้ในการแสดงเอนทิตีการสร้างแบบจำลอง UML จำนวนมากที่พบใน ไดอะแกรมคลาส และ ไดอะแกรมสถานะในรูปแบบ ข้อความ ได้ [ 2 ] Umple สามารถสร้างโค้ดสำหรับสิ่งเหล่านี้ในภาษาโปรแกรมต่างๆ ได้ ปัจจุบัน Umple รองรับ Java , C++ และ PHP...
ใบอนุญาต
Umple ได้รับอนุญาตภายใต้ สัญญาอนุญาตแบบ MIT