Skip to main content

UML Diagram - Here we go

Finally, we made it!

The UML assignment now has 3 versions

  1. Standalone version which is packed as a .jar file and can run without any problem in Windows and Linux (of course, JVM is required). You can get in here (Google Code link). The features are
    1. Build UML class diagram
      • From scratch: using menu, pop-up menu, drag and drop with a bunch of forms
      • From existing source code: load your Java source file(s) and modify the diagram using the same techniques as above
    2. Export Java source file(s) from the diagram. All methods are empty (of course)
    3. Save as Image
      • The whole diagram
      • Or this a part of it
    4. Easy navigation: most of the cases, the diagram will be big and it will be hard to have a good view but you can...
      • Zoom in and zoom out
      • Moving around 
      • Rearrange structures to make them more well-organized (if you mess them up, feel free to re-draw from the menu)
      • Quickly find a structure in the diagram 
      • A more focus view in a structure by display related structures only (from the menu bar or with the pop-up menu)
  2. Eclipse Plugin version. Get it from Google Code and drop it into the dropins directory inside your Eclipse installation (more details). Restart Eclipse (if you are running it) and the plugin should work right away!
    • You can watch a screen cast here
    • With this plugin, if you enable its view (Class Diagram), the view will watch the file in your editor and display it and its related structures. You can also right click in the package view or almost anywhere in Eclipse and get a new entry under Show In which is Class Diagram, click it and you will have a diagram of that item. The killing feature (in my opinion) is you can create new structure within the view using right clicks, after that, one more right click and you can select Generate to create new class right into your project with the specified relationships, properties, methods, etc. It's really amazing! Give it a try
  3. Applet version. This is actually a test to see how the GUI will work inside an applet and it turned out to be pretty neat. You can check it out in an older entry of mine but it's not the latest version. You can grab our submitted .zip package here (MediaFire link) which includes sources code, tests and many other interesting thing to test the applet view
In the source code, my teammates and I tried to comment as much as possible and we even export the documents by javadoc (which is available online here or downloadable here)

Well, that's a great introduction post I think. Don't forget to svn checkout our repository to get the latest source code (currently, the head is revision 50). Our Google Code link is: http://code.google.com/p/javauml7/. Thank you for reading this

A short description in Vietnamese for the folks who will have to do this exercise next year: Bài tập lớn Lập trình hướng đối tượng (Java) của thầy Nguyễn Việt Hà (hanv) giao cho lớp K53CC, Đại học Công nghệ, Đại học Quốc gia Hà Nội. Đề 1: Xây dựng biểu đồ lớp từ mã nguồn Java: phân tích mã nguồn Java sau đó hiển thị biểu đồ lớp và các quan hệ (is_a, has_a) của các lớp. Đề 2: Sinh chương trình khung từ biểu đồ thiết kế lớp: xây dựng công cụ đồ họa thiết kế lớp và các quan hệ rồi inh tự động chương trình khung Java: lớp, thuộc tính và định nghĩa phương thức (phương thức rỗng)

Have a nice weekend!

Comments

Popular posts from this blog

Flutter: Fixing Firebase header not found with Notification Service Extension

If you follow the FCM tutorial Send an image in the notification payload and encountered this error message: 'FirebaseMessaging/FirebaseMessaging.h' file not found You are on the right place, I'm going to show you how to fix it. My app was working fine but one day it stopped compiling. Apparently Flutter 1.20 changed the way it uses CocoaPod so the service extension no longer has the proper library configured. After some tinkering, I came up with this pod config, it has to be added to ios/Podfile below the main Runner target. target 'FcmImage' do use_frameworks! use_modular_headers! require File.expand_path('../.symlinks/plugins/firebase_core/ios/firebase_sdk_version.rb', __FILE__) firebase_sdk_version = firebase_sdk_version! pod 'Firebase/Messaging', "~> #{firebase_sdk_version}" end FcmImage is my extension name, replace it with yours We can use a hardcoded version for Firebase/Messaging pod but doing so m

IMAP module for PHP in Mac OS X Mountain Lion

So here it comes again. I have recently upgraded to Mountain Lion and for whatever reason, Apple decided to nuked all my previous PHP (among other things) configurations so I have to setup IMAP in PHP again. A simple Google search may point you to this post with detailed instruction for Lion however, some steps have been changed a bit... Step 1: Install prerequisites You may choose to download Xcode ( FREE ) from the App Store then go to menu Xcode > menu item Preferences > tab Downloads, select to install Command Line Tools OR you can go to Apple Developer  to get it, you may need to login. Step 2: Compile IMAP Get the IMAP source code from University of Washington website . Please do me a favor and check that website for the latest version, it's good practice. If you that laz y , try to click the "y" to get direct link to 2007f version. Extract the package and open the Terminal to the new directory before executing these command: make osx EXTRACFLAG

OAuth with Google, Twitter and... Facebook!

This is sick! Just a few days ago, I ran into OAuth as I want to get my GMail feed based on Google Data API . I succeeded. With a little help of an OAuth open source ( here , available in several programming languages). Then I remember that I once heard that Twitter also uses OAuth as an authentication option so I turned into Twitter and had a good read. Finally, I found out that they are basically the same (hehe, it's obvious since OAuth 1.0 is a worldwide standard). I had an idea of writing a universal class which can handle both Google and Twitter OAuth functionalities. It's not too hard. I took most of the idea from the PHP example ( here , PHP only). I also made a small script which accepts URI to send and intercept response from Google & Twitter servers. At that moment, I was so excited with all the ideas but actually it has no real world benefit so I just left it there... Until today, in the F8 (says "fate") conference of Facebook, I was stunned fin