Monday, June 11, 2007

Article: Pengukuhan Pustakawan Utama - Pustakawan Dituntut Lebih Profesional

There is an article about National Library Indonesia: Librarians in Indonesia should be more professional in their work. Check out this important article below:

Article about Pustakawan Utama.

Cheers,
Lofi.
MDSD/MDA Frameworks: AndroMDA Cartridges vs. Sculptor

It's quite amazing to see the same things happen again and again... Reinventing the wheel seems is the way in computer science to make things better ;-)

To begin this blog with, which is a comment of the discussion in TSS about Sculptor: The idea of Sculptor is not new, also ArchitectureWare is not new... MDA/MDSD is not new as well...

Here are my opinions about Sculptor and AndoMDA and general about MDSD/MDA:

(1) I'm a very satisfied user of AndroMDA. AndroMDA is a very good framework for MDSD/MDA and is just comparable with ArchitectureWare. The latter is the framework in which Sculptor is written.

(2) Sculptor is comparable with AndroMDA Cartridges, which allow you to generate codes for its reference architecture. AndroMDA offers a lot of production-ready cartridges like:
  • Java (general purpose)
  • EJB, Spring, jBPM (business layer)
  • Struts, JSF (presentation layer)
  • ...
  • And also for .NET!
All these cartridges are already available since more than 3 years! So they are quite mature.

Here is a very good description of the reference architecture in AndroMDA Cartridges for Java and here is for .NET reference architecture. And here are two articles about why using AndroMDA is the way to go.

(3) The difference between AndroMDA Cartridges and Sculptor is that AndroMDA Cartridges use UML as its DSL. Sculptor seems to invent its own text-based DSL. This would be a very interesting point to discuss. My questions here is: why using a new text-based DSL for implementing business applications? For this purpose UML is the way to go. Why? Because:
  • We have a lot of good UML tools.
  • A lot of people (also business people) understand UML (or a part of UML). If you are using a text-oriented DSL you will loose the capability to talk with the business people.
  • How is the quality of the editor for Sculptor DSL? I see a lot of good DSL but almost all of them have a poor editor support. See my blog about Groovy and unit testing.
  • In my experience with DSL using ANTLR it is not easy to design a clean DSL. It is very difficult to draw the line where you should stop putting more elements in your DSL. Typical problem: should I put String operations in my DSL? In the long term you will mimic the "lower" language.
  • Using UML and its extension mechanism (stereotype, tagged values, etc.) are mostly enough to handle all your requirements in business application development.
(4) The quality of the generated codes is the important part of choosing such a framework like AndroMDA Cartridges or Sculptor, since it will determine the quality of your application architecture:
  • How many developers have used and reviewed the cartridges and the generated codes?
  • How is the generality of the architecture? Will it fit for your needs?
  • Do I need to extend, change or rewrite the cartridges?
One thing for sure, you HAVE TO REUSE the cartridges to become productive. Changing or rewritting them make NO SENSE for a small team! I have experienced this again and again... Check out my older blog about this phenomenon. So you have to be able to add your requirements to the development of the cartridges and this means that the development team in the cartridge project should not consist a single developer!

In my experience I can say that AndroMDA has a very good support. A LOT of developers have tried and used their cartridges. The development of AndroMDA cartridges is a real Open Source development and those AndroMDA developers are very active!

Cheers,
Lofi.

Monday, June 04, 2007

FTP Server in Java (and of course Open Source ;-))

Here are some interesting FTP servers written in Java and Open Source:
A list of available FTP servers (not only Open Source and Java) can be found in these sites:

It would be nice to have a complete comparison between all those available products because at the end you would only choose one product!

Cheers,
Lofi.

Thursday, May 24, 2007

The eclipse.ini File "Hell"...

If you want to change some settings in your Eclipse 3.2.x you have two choices:
  • Use the extra settings in your command line, something like eclipse -vm ... -vmargs ...
  • Put the extra settings into the eclipse.ini file, something like:
    -vm
    ...

    -vmargs
    ...

If you put your extra settings into the eclipse.ini file you have to be careful: Do not insert an empty line at the end of your eclipse.ini file. If you do this Eclipse will completely ignore your settings!

Cheers,
Lofi.

Wednesday, May 02, 2007

Advantages and Disadvantages using Groovy for Unit Test (JUnit)

I'm collecting the advantages and disadvantages using Groovy for JUnit and found following interesting stuffs...

Advantages:
  • You don't need to implement inner classes which are very awful and bloat your test codes. Instead you can use closures. Using closures for writing your mock objects can make your test codes smaller and more compact!
  • File operations are very easy to implement thanks to AntBuilder. How many times do you need to make some file operations (delete, mkdir, ...) within your test codes? Doing this with java.io is not fun at all. Using AntBuilder for this purpose is a good thing, since Ant is predestinated to do this job. If you think that you could do the same thing in pure Java, you will find that this takes a lot more work. Using Ant directly in Java is unfortunately not straight forward. Example: to use the unzip Ant task you need to use the Expand Java class, which is not documented properly (so you need to dig into the Java source code). In AntBuilder you just use the same structure like your Ant file: unzip!
  • If you are using SpringFramework you can easily create the config files (application context) by using BeanBuilder. By using this concept you don't need to put separate XML files in your test project. Everything is integrated and centralized in your test class!
  • If you are using Ant for your build environment, you can integrate the compilation of Groovy classes easily since Groovy also offers an Ant task.

Disadvantages:
  • No source code formatter for Groovy: This is a real disadvantage for Groovy at the moment. If you are working in a team this could be a nightmare: reading the code with different formatting, CVS compare is difficult, ... are some examples to mention...
  • The Groovy plug-ins (code completion, syntax coloring, ...) - at least for Eclipse - is still very buggy.
  • You need to learn some new concepts like: closures - which is also an advantage after you understand them! Without closures you cannot implement inner classes in Groovy, which are mostly a must in writing unit tests.
The good thing about using Groovy for your unit tests is that you don't have to make the choice between Java and Groovy at one time! You can move slowly from Java to Groovy - of cource if you feel that you are more productive using Groovy to write your unit tests - as you wish and mix Java and Groovy unit tests in the same project!

A good place to start for Groovy and Testing is right here: Groovy Testing Guide.

If you have some points to add please let me know!

Cheers,
Lofi.

Sunday, March 18, 2007

A good Article about Indonesian Pharmacy System

Harapan Baru Dari Pergantian Kepala Badan POM


Hope to see something different after the head of POM replacement!

Happy reading,
Lofi.

Wednesday, February 28, 2007

Bonner-Runde 26th. of February 2007 in Bonn

It was an interesting night in a round table presentation and discussion in Bonn, known as "Bonner Runde" which is managed by itemis GmbH. At this time, we - Wolfgang, Andreas and I - showed an introductory topic in AJAX:

AJAX - Grundlagen und Implementierungsansätze
"AJAX - Basics and Implementation Approaches"

We showed three different approaches of AJAX:
  • Using AJAX-enabled JSF components (ICEfaces) with Sun Java Studio Creator
  • Using hardcore JavaScript
  • Using XML11 - Cross Compilation from Java to JavaScript
At the same time we also explained classification criteria and characteristics for AJAX implementation approaches.

For more information please download the presentation files:
(1) AJAX - Grundlagen und Implementierungsansätze
http://lofidewanto.googlepages.com/AJAXinAction-BonnerRunde.pdf

(2) XML11 - AJAX without JavaScript
http://lofidewanto.googlepages.com/xml11-BonnerRunde-070226.pdf

Have fun!
Lofi

Saturday, February 10, 2007

MDA Book in German Language

My first book in German language about MDA (Model Driven Architecture) and VOFI (Visualization of Financial Implications) is now available:

Anwendungsentwicklung mit Model Driven Architecture
– dargestellt anhand vollständiger Finanzpläne

This book is my doctor dissertation from the year 2006 and is now published within the series of Advances in Information Systems and Management Science from Logos Verlag Berlin.
The good thing is that I will offer a free download for the PDF version - many thanks to Logos Verlag which makes this possible! So, if you can read German, you are welcome to download it ;-) For this purpose I'm searching some sponsors. As soon as I get some sponsors I'll put the PDF version somewhere in the internet. So, stay tuned!

If you want to buy it, just order from
Logos Verlag Berlin: ISBN 978-3-8325-1480-8

Or go directly to this order site:
Order MDA VOFI Book from Logos Verlag Berlin


Happy reading!
Lofi.

[updated 01.03.2007]
---

German

Anwendungsentwicklung mit Model Driven Architecture
– dargestellt anhand vollständiger Finanzpläne

Die modellgetriebene Anwendungsentwicklung, die von Object Management Group (OMG) als Model Driven Architecture (MDA) standardisiert wurde, nutzt Modelle als Hauptartefakte und zeichnet sich durch hohe Qualität und Produktivität gegenüber quellcodezentrierten Anwendungsentwicklungen aus.

Blasius Lofi Dewanto führt in der vorliegenden Arbeit eine umfassende Untersuchung durch, die die Nutzenpotenziale der MDA für eine anwendernahe und anforderungsgerechte Anwendungsentwicklung betrachtet. Es wird sowohl der Bedarf in der Anwendungsdomäne des Controllinginstrumentes VOFI (Vollständiger Finanzplan) erfasst als auch die Implementierung und Evaluation der Ergebnisse aus Sicht der Entwickler und Endanwender analysiert. Zudem werden die für Entscheider bedeutenden ökonomischen Konsequenzen durch die Verwendung von MDA systematisch aufgeführt.

Aus dem Inhalt

  • MDA: Grundlagen und Wiederverwendungsansätze
  • Investitionscontrolling: VOFI, SAP, Corporate Planner und Tabellenkalkulations-programme
  • mdaVOFI: Modellgetriebenes Konzept für VOFI, Entwicklung der VOFI-Produkt-familie
  • Evaluation: Entscheidersicht mit TCO-VOFI, Entwickler- und Anwendersicht

English

Application Development with Model Driven Architecture In the Domain of Visualization of Financial Implications

Application development using Model Driven Architecture (MDA), which is standardized by Object Management Group (OMG), uses models as its first class citizen artefacts and allows high quality result in comparison with source code centric application development.

Dr. Dewanto explains
in this book the potential of MDA for a user-oriented application development and explains how user requirements can be easily fullfilled by using MDA. He takes a real-world domain in investment planning with Visualization of Financial Implications (VOFI) and implements this domain step-by-step using the method of MDA. At the end of this book he summarizes the result of his research from user's and developer's perspective to show where the MDA potentials still need to be explored. Last but not least he shows an investment analysis using MDA in software development from a decision maker's view. He emphasizes in what cases it is financially worthwhile to utilize MDA in a small software development team.

Content
  • MDA: Basics and Software Reuse (Reference Modelling, Productline Software Engineering, Architecture and Patterns, Component Based Software Engineering)
  • Investment Planning: VOFI, SAP, Corporate Planner and Spreadsheet Applications
  • mdaVOFI: Model Driven Concept for VOFI, Development of VOFI Product Family
  • Evaluation: decision maker's perspective with TCO-VOFI (Total Cost of Ownership with VOFI), developer's and user's perspective