அறிமுகம்
"இரண்டு முறை அளவிடு, ஒரு முறை வெட்டு" என்ற பழமொழியை அனைவரும் கேட்டிருப்பார்கள் என்று நினைக்கிறேன். நிரலாக்கத்தில் இது உண்மையான ஆலோசனை. அதைச் செயல்படுத்துவதற்கு எந்த நேரத்தையும் செலவிடுவதற்கு முன், அதைச் செயல்படுத்துவதைப் பற்றி சிந்திப்பது எப்போதும் நல்லது. செயல்படுத்தும் போது, நீங்கள் அடிக்கடி வகுப்புகளை உருவாக்க வேண்டும் மற்றும் அவை எவ்வாறு தொடர்பு கொள்ளும் என்பதைப் பற்றி சிந்திக்க வேண்டும். அனைத்தின் காட்சிப் பிரதிநிதித்துவம் பெரும்பாலும் சரியான தீர்வைக் கொண்டு வர உங்களுக்கு உதவும். இங்குதான் UML வகுப்பு வரைபடம் எங்கள் உதவிக்கு வருகிறது.UML என்றால் என்ன?
தேடுபொறிகளில் உள்ள தொடர்புடைய படங்களை நீங்கள் பார்த்தால், UML க்கு வரைபடங்கள், அம்புகள் மற்றும் சதுரங்களுடன் ஏதாவது தொடர்பு இருப்பதைக் காண்பீர்கள். யுஎம்எல் என்பது யுனிஃபைட் மாடலிங் லாங்குவேஜைக் குறிக்கிறது என்பதை நீங்கள் அறிந்து கொள்ள வேண்டும். ஒற்றுமை என்பது இங்கு முக்கியமான சொல். அதாவது நமது படங்கள் நமக்கு மட்டுமல்ல, UML தெரிந்த வேறு எவருக்கும் புரியும். இது வரைபடங்களை வரைவதற்கான மொழியாகும்.விக்கிபீடியாவின் படி,
"UML என்பது மென்பொருள் பொறியியல் துறையில் ஒரு பொது-நோக்கம், மேம்பாடு, மாடலிங் மொழியாகும், இது ஒரு கணினியின் வடிவமைப்பைக் காட்சிப்படுத்த ஒரு நிலையான வழியை வழங்கும் நோக்கம் கொண்டது."எல்லோரும் யூகிக்காத மிகவும் சுவாரஸ்யமான விஷயம் என்னவென்றால், UML விவரக்குறிப்புகளைக் கொண்டுள்ளது. மேலும் UML 2 விவரக்குறிப்பும் உள்ளது. விவரக்குறிப்பு பற்றிய கூடுதல் தகவல்கள் பொருள் மேலாண்மை குழு இணையதளத்தில் கிடைக்கின்றன. உண்மையில், இந்த குழு UML விவரக்குறிப்புகளை உருவாக்குகிறது. UML ஆனது வகுப்புகளின் கட்டமைப்பை விவரிப்பதில் மட்டும் இல்லை என்பதும் சுவாரஸ்யமானது. UML வரைபடங்களில் பல வகைகள் உள்ளன. விக்கிபீடியாவில் பல்வேறு வகையான UML வரைபடங்கள் பற்றிய சுருக்கமான விளக்கம் உள்ளது: UML வரைபடங்கள் . UML வகுப்பு வரைபடங்களுக்குத் திரும்புகையில், "ஹெட் ஃபர்ஸ்ட் டிசைன் பேட்டர்ன்ஸ்" புத்தகத்தைக் குறிப்பிடுவது மதிப்புக்குரியது , வடிவமைப்பு வடிவங்களை விளக்க UML வரைபடங்களைப் பயன்படுத்துகிறது. UML உண்மையில் பயன்படுத்தப்படுகிறது என்பதே இதன் முக்கிய அம்சம். அதைத் தெரிந்துகொள்வது மற்றும் எவ்வாறு பயன்படுத்துவது என்பதைப் புரிந்துகொள்வது மிகவும் பயனுள்ளதாக இருக்கும் என்று மாறிவிடும்.
விண்ணப்பம்
ஒரு IDE இல் UML உடன் வேலை செய்யலாம் என்பதைக் கண்டுபிடிப்போம். IntelliJ IDEA ஐ எங்கள் IDE ஆகப் பயன்படுத்துவோம். நீங்கள் IntelliJ IDEA Ultimate ஐப் பயன்படுத்துகிறீர்கள் என்றால், "UML ஆதரவு" செருகுநிரலை "பெட்டிக்கு வெளியே" நிறுவியிருப்போம். அழகான வகுப்பு வரைபடங்களை தானாக உருவாக்க இது உங்களை அனுமதிக்கிறது. எடுத்துக்காட்டாக, ArrayList வகுப்பிற்குச் செல்ல Ctrl+N அல்லது "Navigate" -> "Class" மெனு உருப்படியைப் பயன்படுத்தவும். இப்போது வகுப்புப் பெயரின் சூழல் மெனுவில், "வரைபடம்" -> "வரைபடம் பாப்அப்பைக் காட்டு" என்பதைத் தேர்ந்தெடுக்கவும். இதன் விளைவாக, நாம் ஒரு அழகான வரைபடத்தைப் பெறுகிறோம். ஆனால் வரைபடத்தை நீங்களே வரைய விரும்பினால் என்ன செய்வது? அல்டிமேட் பதிப்பு உங்களிடம் இல்லையென்றால் என்ன செய்வது? IntelliJ IDEA சமூக பதிப்பைப் பயன்படுத்தி, எங்களுக்கு வேறு வழியில்லை. எனவே UML வரைபடம் எவ்வாறு ஒழுங்கமைக்கப்பட்டுள்ளது என்பதை நாம் புரிந்து கொள்ள வேண்டும். முதலில்,. இது வரைபட காட்சிப்படுத்தல் கருவிகளின் தொகுப்பாகும். நாம் பயன்படுத்தும் சொருகி அதைப் பொறுத்தது. நிறுவிய பின், Graphviz நிறுவல் கோப்பகத்திலிருந்து PATH சூழல் மாறியில் பின் அடைவைச் சேர்க்க வேண்டும். அதன் பிறகு, IntelliJ IDEA இல், மெனுவில் கோப்பு -> அமைப்புகள் என்பதைத் தேர்ந்தெடுக்கவும். "அமைப்புகள்" சாளரத்தில், "செருகுநிரல்கள்" வகையைத் தேர்ந்தெடுத்து, "உலாவு களஞ்சியங்கள்" பொத்தானைக் கிளிக் செய்து, PlantUML ஒருங்கிணைப்பு செருகுநிரலை நிறுவவும். PlantUML இல் என்ன நல்லது? இது UML ஐ "டாட்" எனப்படும் வரைபட விளக்க மொழியைப் பயன்படுத்தி விவரிக்கிறது, இது மிகவும் உலகளாவியதாக ஆக்குகிறது, ஏனெனில் டாட் மொழியானது PlantUML ஐ விட அதிகமாக பயன்படுத்தப்படுகிறது. மேலும் என்னவென்றால், கீழே நாம் செய்யும் அனைத்தையும் ஒரு IDE இல் மட்டும் செய்ய முடியாது, ஆனால் planttext.com இல் ஆன்லைனிலும் செய்யலாம். PlantUML செருகுநிரலை நிறுவிய பின், "File" -> "New" ஐப் பயன்படுத்தி UML வரைபடங்களை உருவாக்க முடியும். "UML வகுப்பு" வரைபடத்தை உருவாக்குவோம். இது தானாகவே ஒரு எடுத்துக்காட்டுடன் ஒரு டெம்ப்ளேட்டை உருவாக்கும். அதன் உள்ளடக்கங்களை நீக்கிவிட்டு எங்களுடையதைச் சேர்ப்போம். இதை உரையில் எவ்வாறு குறிப்பிடுவது என்பதைப் புரிந்துகொள்ள, PlantUML கையேட்டைப் பாருங்கள்: plantuml class-வரைபடம். இந்த பொருட்களை நம்பி, எங்கள் UML வரைபடத்தை உருவாக்கத் தொடங்குவோம். இரண்டு வகுப்புகளை விவரிக்கும் பின்வரும் உள்ளடக்கத்தைச் சேர்க்கவும்:
@startuml
class ArrayList {
}
class LinkedList {
}
@enduml
IDEA இல் முடிவைப் பார்க்க, "View" -> "Tool Windows" -> "PlantUML" என்பதைத் தேர்ந்தெடுக்கவும். வகுப்புகளைக் குறிக்கும் இரண்டு சதுரங்களைப் பெறுகிறோம். இந்த இரண்டு வகுப்புகளும் பட்டியல் இடைமுகத்தை செயல்படுத்துவதை நாங்கள் அறிவோம் . இந்த வர்க்க உறவு உணர்தல் என்று அழைக்கப்படுகிறது. புள்ளியிடப்பட்ட கோடுடன் அம்புக்குறியைப் பயன்படுத்தி இந்த உறவு குறிப்பிடப்படுகிறது. அதை வரைவோம்:
interface List
List <|.. ArrayList
List <|.. LinkedList
சேகரிப்பு வகுப்பின் குழந்தைகளில் பட்டியல் ஒன்று . அதாவது, இது சேகரிப்பைப் பெறுகிறது . இந்த உறவு பொதுமைப்படுத்தல் என்று அழைக்கப்படுகிறது. இது ஒரு சாதாரண தொடர்ச்சியான கோடு கொண்ட அம்பு போல் தெரிகிறது. அதை வரைவோம்:
interface Collection
Collection <|-- List
அடுத்த வகை உறவுக்கு, தனிமங்களின் தொகுப்புத் தொகுப்பைப் பற்றிய ஒரு உள்ளீட்டை ArrayList வகுப்பு விளக்கத்தில் சேர்க்கவும்:
~Object[] elementData
இப்போது ArrayList சில பொருட்களைக் கொண்டுள்ளது என்பதைக் காட்ட விரும்புகிறோம் . இந்த வழக்கில், ஒரு திரட்டல் உறவு இருக்கும். வரிசைப்பட்டியல்இது மற்ற பொருட்களைக் கொண்டிருப்பதால், மொத்தமாக உள்ளது. பட்டியலின் பொருள்கள் பட்டியல் இல்லாமலேயே இருக்க முடியும் என்பதால் திரட்டல் என்று கூறுகிறோம்: அவை பட்டியலின் ஒருங்கிணைந்த பகுதிகள் அல்ல. அவர்களின் வாழ்நாள் பட்டியலின் வாழ்நாளுடன் பிணைக்கப்படவில்லை. "மொத்தம்" என்ற சொல் லத்தீன் மொழியிலிருந்து நமக்கு வந்து "கூடியது" என்று மொழிபெயர்க்கப்பட்டுள்ளது, அதாவது ஏதோவொன்றால் ஆனது. உதாரணமாக, வாழ்க்கையில், எங்களிடம் ஒரு பம்ப் அசெம்பிளி (மொத்தம்) உள்ளது, அதில் ஒரு பம்ப் மற்றும் ஒரு மோட்டார் உள்ளது. சட்டசபை தன்னை பிரிக்கலாம், மேலும் அதன் சில கூறுகளை தனியாக விட்டுவிடலாம். எடுத்துக்காட்டாக, விற்க அல்லது மற்றொரு சட்டசபையில் வைக்க. பட்டியலிலும் இதே முறைதான். இது மொத்தத்தில் வெற்று ரோம்பஸ் மற்றும் தொடர்ச்சியான கோட்டுடன் வெளிப்படுத்தப்படுகிறது. இதை நாங்கள் பின்வருமாறு பிரதிநிதித்துவப்படுத்துவோம்:
class Object{
}
ArrayList o- Object
ArrayList போலல்லாமல் , LinkedList வகுப்பில் Node s - சேமிக்கப்பட்ட தரவைக் குறிப்பிடும் கொள்கலன்கள் உள்ளன என்பதை இப்போது காட்ட விரும்புகிறோம் . இந்த வழக்கில், Node கள் LinkedList இன் ஒரு பகுதியாகும் மற்றும் அவை சுயாதீனமான இருப்பைக் கொண்டிருக்கவில்லை. ஒரு முனை என்பது உள்ளடக்கம் அல்ல. இது உள்ளடக்கத்திற்கான குறிப்பு மட்டுமே உள்ளது. எடுத்துக்காட்டாக, லிங்க்ட்லிஸ்ட்டில் ஒரு சரத்தைச் சேர்க்கும் போது , சரத்தின் குறிப்பையும், முந்தைய மற்றும் அடுத்த முனைக்கான இணைப்பையும் கொண்ட புதிய முனையைச் சேர்க்கிறோம்.. இந்த உறவு கலவை என்று அழைக்கப்படுகிறது. கலவையில் நிரப்பப்பட்ட ரோம்பஸுடன் ஒரு தொடர்ச்சியான கோட்டை வரைவதன் மூலம் இது சித்தரிக்கப்படுகிறது (உறுப்புப் பகுதிகளால் ஆனது). இப்போது நாம் உறவை உரையாகக் குறிப்பிடுவோம்:
class Node{
}
LinkedList *-- Node
மற்றொரு முக்கியமான வகை உறவை எவ்வாறு சித்தரிப்பது என்பதை இப்போது நீங்கள் கற்றுக் கொள்ள வேண்டும்: சார்பு. ஒரு வர்க்கம் மற்றொன்றைப் பயன்படுத்தும் போது இது பயன்படுத்தப்படுகிறது, ஆனால் வர்க்கம் பயன்படுத்திய வகுப்பைக் கொண்டிருக்கவில்லை அல்லது பெறவில்லை. எடுத்துக்காட்டாக, LinkedList மற்றும் ArrayList ஒரு ListIterator ஐ எவ்வாறு உருவாக்குவது என்பது தெரியும் . புள்ளியிடப்பட்ட கோடு கொண்ட அம்புகளாக இதைப் பிரதிநிதித்துவப்படுத்துகிறோம்:
class ListIterator
ListIterator <... ArrayList : create
ListIterator <... LinkedList : create
இதையெல்லாம் செய்த பிறகு, நாங்கள் பெறுகிறோம்: தேவையான அளவு விவரங்களை நீங்கள் சேர்க்கலாம். நிச்சயமாக, அத்தகைய வரைபடத்தை வரைவதில் இயற்கைக்கு அப்பாற்பட்ட எதுவும் இல்லை. உங்கள் சொந்த பணிகளில் பணிபுரியும் போது, அதை விரைவாக கையால் வரையலாம். இது பயன்பாட்டின் கட்டமைப்பின் மூலம் சிந்திக்கும் திறனை வளர்த்துக்கொள்ளவும், வகுப்பின் கட்டமைப்பில் உள்ள குறைபாடுகளை ஆரம்பத்திலேயே அடையாளம் காணவும் உதவும், தவறான மாதிரியை செயல்படுத்துவதற்கு நாள் முழுவதும் செலவழித்த பிறகு அல்ல. அதை முயற்சி செய்ய இது ஒரு நல்ல காரணம் போல் தெரிகிறது, இல்லையா? :)
ஆட்டோமேஷன்
PlantUML வரைபடங்களை தானாக உருவாக்க பல்வேறு வழிகள் உள்ளன. எடுத்துக்காட்டாக, IDEA இல் SketchIT செருகுநிரல் உள்ளது, ஆனால் அது வரைபடங்களை முழுவதுமாக வரையவில்லை. இடைமுகங்களைச் செயல்படுத்துவது தவறாக வரையப்பட்டதாகக் கூறலாம் (இது பரம்பரையாகக் காட்டப்படுகிறது). உங்கள் திட்டத்தின் உருவாக்க செயல்முறையில் இதை எவ்வாறு ஒருங்கிணைப்பது என்பதற்கான எடுத்துக்காட்டுகள் இணையத்தில் உள்ளன. எடுத்துக்காட்டாக, Maven உடன் uml-java-docklet ஐ எவ்வாறு பயன்படுத்துவது என்பதை நீங்கள் காணலாம் . நிரூபிக்க, மேவன் திட்டத்தை விரைவாக உருவாக்க மேவன் ஆர்க்கிடைப்பைப் பயன்படுத்துவோம் . ஓடு
mvn archetype:generate
எண்ணைத் தேர்ந்தெடு அல்லது வடிப்பானைப் பயன்படுத்து என்பதற்குப் பதில், இயல்புநிலையை விட்டு விடுங்கள் - Enter ஐ அழுத்தவும். இது எப்போதும் "மேவன்-ஆர்க்கிடைப்-விரைவு தொடக்கமாக" இருக்கும். சமீபத்திய பதிப்பைத் தேர்ந்தெடுக்கவும். அடுத்து, சில கேள்விகளுக்குப் பதிலளித்து, திட்டத்தை உருவாக்கி முடிப்போம்: இந்தக் கட்டுரையின் பொருள் மேவன் அல்ல, எனவே மேவன் பயனர்கள் மையத்தில் மேவன் பற்றிய உங்கள் கேள்விகளுக்கான பதில்களைக் காணலாம் . உருவாக்கப்பட்ட திட்டப்பணியில், திருத்துவதற்காக, pom.xml என்ற திட்ட விளக்கக் கோப்பைத் திறக்கவும். uml-java-docklet நிறுவும் விளக்கத்திலிருந்து உள்ளடக்கங்களை இந்தக் கோப்பில் நகலெடுப்போம் . விளக்கத்தில் பயன்படுத்தப்பட்ட கலைப்பொருளை மேவன் மத்திய களஞ்சியத்தில் காண முடியாது. ஆனால் பின்வருபவை எனக்கு வேலை செய்தன: https://mvnrepository.com/artifact/com.chfourie/uml-java-doclet/1.0.0. வேறு வார்த்தைகளில் கூறுவதானால், விளக்கத்தில் நீங்கள் groupId ஐ "info.leadinglight" இலிருந்து "com.chfourie" க்கு மாற்ற வேண்டும் மற்றும் பதிப்பை "1.0.0" ஆக அமைக்க வேண்டும். அதன் பிறகு, பின்வரும் கட்டளைகளை கோப்பகத்தில் pom.xml கோப்புடன் இயக்கலாம்:
mvn clean install
மற்றும்
mvn javadoc: javadoc
இப்போது உருவாக்கப்பட்ட ஆவணங்களை (explorer target\site\apidocs\index.html) திறந்தால், UML வரைபடங்களைக் காண்போம். மூலம், செயல்படுத்தல் உறவு இப்போது சரியாகக் காட்டப்பட்டுள்ளது :)
GO TO FULL VERSION