I agree with most --and probably all if didn’t misunderstood the writer’s intentions-- about the statements made in the topic “Software Development Life Cycle: Basic Steps to Strong Product” Pasted from < http://forums.visual-paradigm.com/posts/list/6416.html > using the abbreviation used by the author --if not as the official or common abbreviation-- as SDLC. That I’ll adhere to through the rest of this topic in explaining my point of view about it. Excuse my grammatical and spelling mistakes as my intention was more focused on saying what I wanted to say. And that was a little troublesome and tiring but I believe it was worth it! I hope you find it somewhat informative. Yet, I’m doing this with the intention to get feedback from as many users as possible to have a better view than the one which I’ve already shared here.
My opinion is that I find the software development cycle these days much more about how much you can delegate and make the SDLC or such process easier and much more agile through the right tools than the process description/specs alone. The things said in the above mentioned topic are all true! But they are hindered in practice! Without the right tools these guidelines/specs are time-consuming to follow and maintain. That makes it for many companies with agile relatively small teams --in contrast to the project at hand-- unfeasible to keep all the parts consistent of such process as SDLC process. Most of the time at least a couple of the steps are poorly implemented to keep up to meet another deadline! If not omitted or neglected all together!
So the logical solution I too think is that one should think of finding the right tool to help keep up the expectations of delivered features, their quality AND at the same time meat the intended deadlines. As the need arises to set the toolbox brick by brick as one toolset wouldn’t cut it or the total package would costs 10s of thousands of dollars and that’s WAY beyond the budget (like in my case) the next step would be how to extend these tools to support the SDLC process through further automation and tactical/strategic relations/alliances/partnering that would benefit that quest.
In my case I’ve started in the programming world by choosing Java as my primary programming language for various (intuitive) reasons I’ll skip to mention. If you’re a Java programmer and you like it then you know why, and if you’re not then I won’t bother convincing as you probably have a history backing up your choice too!
And then I chose Eclipse and shortly there after MyEclipse [ http://www.myeclipseide.com/ ] as the base IDE. That decreased the development cycle complexity and the modify-view time considerably! Adding Struts and Hibernate capabilities like no other at that time. That was what I was looking for! Well struts wasn’t that great but the company I work for had it so I needed the diagramming capability of MyEclipse. That would accounts somewhat for"3. Code generation and Implementation". I will not map all the points made in the original SDLC post, but I think will cover quite a view through the content of this post. I strongly believe that non of any of the great process specifications out there can really get things going and speedup the process without the appropriate software implementations! Imagine and OMG specification used manually! I think my point is clear if not by a ridicules suggestion! However the UML and ERD part of MyEclipse was lacking and now in version 7 is still lacking the amount of comfort and power I was looking for! For example very poor layout feature capability!
There are others like the list by price through the URL beneath (a bit outdated but provides an good starting point for an overview to have an idea!) but still they all were and are still lacking the amount of comfort and power I was looking for. Whether they lacked the eclipse integration or the richness of SDE-EC-Pro not to mention that of the Enterprise edition! The difference in price is more than worth it because it would cost much more to do the jobs that the features would cover manually. Remember that the difference between the winner and loser in Formule One racing could seem small technically! Or you could just blame the driver! But every part in the entire process maters greatly just to give that extra edge! And that edge in this era has to be automating our insights! Hand it to the pro’s so that we can be the pro’s of our applications instead of the process!
List to give an impression which can only mean something if you browse the competitors as well!: Objects by Design: UML Modeling Tools
On the quest to complement it I’ve added to that SDE-EC-Pro for the it’s a true interdependent, ever lasting and re-usability of it’s Diagramming power on many levels. And I haven’t regret it for a minute for the past year. The SDE Enterprise product line governs most of the power which Visual Paradigm has to offer through it’s tools! To feel and know what I’m talking about you have to experience the tool first hand! So if your new to Visual Paradigm, then just download a trial in a period in which you have the time to take it into serious consideration instead of concluding prematurely if that might be the case. Any of the other products could be better to suite your specific needs, click on the “Products” link on the above menu to see the complete list.
I’ve the Pro edition, but I’ve evaluated and followed the development of the Enterprise version as well and I’m considering the upgrade. But even with the productivity boost and elegance of the SDE product is (even the Enterprise edition) , it was still lacking on the implementation level! I couldn’t analyze the implementations of Java architectures! Every new project I would analyze to see it’s technical ease for growth and thus it’s potential I had to dive in the code to know what method is calling what method and why! As these weren’t documented in the Javadocs of the reverse-engineerd code! And even if it was documented in the Javadoc, reading the Javadoc is not as intuitive and productive as understanding through diagrams and quick access to the appropriate method through it’s features and only then have to see further details!
Now, I’m just at a junior level when it comes to Java programming skills! And that makes me the perfect candidate to feel the need for the right cooperating tools or tools in Coopetition or Co-opetition [ Coopetition - Wikipedia ]! And I’ve spend years searching for the right tools to rely on before choosing the right development process/procedure and dedicating myself to it. Because the minute the right tool steps in, you can start modifying the process or hire more developers, or stay behind and get taken over at a certain point, or go down the drain which I hope no one would! And I don’t have to own a company to have a vision or to be able to predict fairly accurately up to a certain point.
So I’ve searched for the solution else where as it was clear from the response on my ticket that this wasn’t going to be addressed soon. I’ve selected the one which I found to be the most user friendly to us and added STAN for Java [ http://stan4j.com/ ] to my toolbox! And I’m really glad that I did! It gave me the edge I needed to understand and know what to do quickly searching for bugs or evaluating the possibility to extend a project! I quote: “STAN encourages developers and project managers in visualizing their design, understanding code, measuring quality and reporting design flaws.”. Pasted from < http://stan4j.com/ >. So it would cover somewhat of the Quality Assurance although not through testing of "4. Testing and Quality Assurance " of the original post. But the visual analyzing of the implementation is my main goal for this tool.
To wash away the feeling that the tool/process specs is becoming the goal rightfully, I knew intuitively and also by experience that having the right tool is HALF THE WORK! And that is probably an under-stated statement INSTEAD OF an exaggeration.
The next step is going to the web and defiantly 2.0! I’m a strong advocate for AJAX! And I’m not the gambler type. In my humble (re)search as I’ve gathered a considerable amount of information from various sources, going by from the emerging intuitive calculated risk going Web 2.0 with that Java programming language from my perspective is most logically done through Google GWT and Jboss Seam! That is vision I believe and was initiated and fed by others! Looking at the projects themselves will clarify allot. I’ve provided links for ease in the ticket details below. Adding to that Unit-testing with Testng preferably or Junit if the tooling of Testng doesn’t extend within 6 months. I still have to decide which tools to chose to add to my toolbox for these parts!!
I’ve moved the following ticket to this part of the forum to get some feedback from other users regarding the missing tools!
Ticket Details Ticket ID: TLE-937305 Department: Technical Status: Open Priority: High Created On: 2009-01-02 02:26 PM Last Update: 2009-01-02 11:55 PM Conversation
Posted On: 2009-01-02 02:26 PM
It’s clear that you guys prefer supporting more complexity with your tools for Java than any other language. And going by your companies philosophy “We don’t make something we don’t use.” and seeing more jar files than any other it’s safe for me at this point to assume that you guys program mostly in Java. And that most of your customers prefer Java as well. Please do confirm or correct my assumptions.
The confirmation and/or correction of my assumptions is very important to me to have the right understanding about your company and it’s (future) tactical and strategic decisions. As those influence our choices as customers as well. It’s great when paths cross with positive results, but one need to consider the future as far as one can. Defiantly the ones that are strongly considering to upgrade their Professional license to the Enterprise version as the need to take the tooling coverage of the development process to the next level.
Going by my assumptions for the time being I’ll talk about a couple of topics which consumed a quite deal of my time and energy namely unit-testing and web-based application frameworks. This does overlap the open issue XJV-812540 Pasted from http://support.visual-paradigm.com/index.php?_m=tickets&_a=viewticket&ticketid=44826 but in this issue I’m providing specific more informative suggestions with references! And I add on top of that the unit-testing process issue.
Do you use unit testing to keep track of the quality of your code ? What framework do you use? I’m asking because I was wondering if you could help me with the unit-testing process for starters. Unit-testing is inescapable to automate and maintain the integrity and quality checking of an application without unfeasible long manual testing processes. Yet it’s another step in the development process to generate and maintain unit-tests with every mutation in an agile environment. Defiantly by the ones who got comfortable in environments driven by automatic generation to and synchronization between code and diagrams that makes visualization and mutation of the design a breeze up to a certain point.
What I’m looking for is a generation tool which generates AT LEAST a skeleton-unit-test-class like the Java code forward AND reverse engineering with the Class Diagrams AND that it bases the “Unit-test Diagram” and synchronizes it with the Class Diagram. I’m making it sound easy although I don’t know how much work it’s for you guys to create this functionality, BUT the generation would be handled by the framework! So the generation part would delegate that task to the unit-test framework like the task of database connectivity is delegated to a JDBC library. I don’t know how the framework would help the reverse engineering part, but the unit-testing frameworks I’ve in mind are open source so they are bound to contain a big part of the solution.
The framework which I’m recommending to support is mainly Testng and Junit 3.8. But I’m actually interested and strongly recommend Testng. Junit 3.8 is considered legacy but naturally more wide spread because of it was the leading of it’s time, so many developers and other development tools are still using it. That’s why I mentioned it so you would consider supporting that too if needed. However Testng is the NEXT-generation open source unit-testing framework for the Java programming language [TestNG]. It makes heavy use of annotations which is very convenient for manual editing instead of XML without tools which aren’t that sophisticated. Although Junit 4 tries to compensate for the shortcoming of the 3.8 it just didn’t get it all right like Testng. Testng allows much more flexibility and is built more intelligently. And it’s the framework which the Jboss SEAM project primarily relies on for unit-testing. But Seam does extend it with a class to fit it to Seam’s environment as it would need to for Junit but we already know that it is legacy.
If you haven’t heard of Jboss Seam before, JBoss Seam integrates EJB 3.0 and JSF components under a unified framework that simplifies and accelerates Java EE web development. I Quote: "Seam is a powerful open source development platform for building rich Internet applications in Java. Seam integrates technologies such as Asynchronous JavaScript and XML (AJAX), JavaServer Faces (JSF), Java Persistence (JPA), Enterprise Java Beans (EJB 3.0) and Business Process Management (BPM) into a unified full-stack solution, complete with sophisticated tooling.
Seam has been designed from the ground up to eliminate complexity at both architecture and API levels. It enables developers to assemble complex web applications with simple annotated plain Java classes, a rich set of UI components, and very little XML. Seam’s unique support for conversations and declarative state management eliminates a whole class of bugs common in traditional web applications.
Seam is licensed under the terms of the LGPL. Full commercial support is available [ http://jboss.com/products/platforms/application ]. Eclipse-based tooling is provided by JBoss Tools [ JBoss Tools - Home ]. ", Pasted from < http://www.seamframework.org/ >.
By the way, Seam supports Hibernate out of the box as well. And putting the Jboss Tools in it’s place from the diagraming perpective it only has a page-flow digram which doesn’t even save the layout at this point!! For a better understanding of it’s significance take a look here: http://www.seamframework.org/ and here: http://www.seamframework.org/ . It’s has NO vendor-lock-in by Jboss thus can be run on many if not all application servers even without EJB support (if not EJB is used by the application of course). Like for example plain old Tomcat server. I strongly recommend taking in consideration for your web-based Java-based strategy.
The problem from a Java developer perspective from my point of view is: “The web isn’t programmed in Java”. For GUI lay out purposes one might think that Java is not handy! BUT that issue disappears with bi-directional GUI editors! Although JSF is powerful it creating tools that can handle it’s complexity can become tedious. And it’s not Java. The same goes for AJAX parts, javascript and XML. The answer using Google GWT instead of JSF (Java based with a compiler to produce Ajax code). I guote: “With Google Web Toolkit (GWT), you write your AJAX front-end in the Java programming language which GWT then cross-compiles into optimized JavaScript that automatically works across all major browsers. During development, you can iterate quickly in the same “edit - refesh - view” cycle you’re accustomed to with JavaScript, with the added benefit of being able to debug and step through your Java code line by line. When you’re ready to deploy, GWT compiles your Java source code into optimized, standalone JavaScript files. Easily build one widget for an existing web page or an entire application using Google Web Toolkit. Pasted from http://code.google.com/webtoolkit/overview.html.” And here: "
For those that prefer to use the Google Web Toolkit (GWT) to develop dynamic AJAX applications, Seam provides an integration layer that allows GWT widgets to interact directly with Seam components." Pasted from http://docs.jboss.org/seam/2.1.0.A1/reference/en/html/gwt.html .
There is an Eclipse-based bi-directional GUI development for GWT among other platforms as well, but if you support it you would have the advantage ad it would be interlinked with the existing tools of VP which no one else has for such price for the complete picture!!! The product that you would be competing with on the Eclipse side would be GWT designer [instantiations.com/gwtdesigner/], there are open source alternatives but nothing that comes even close. I quote: “Bret Taylor, GWT product manager at Google, says: Several members of our GWT development team have participated in the beta test of GWT Designer and were impressed by its speed, WYSIWYG design and bi-directional code generation. GWT Designer is the kind of tool that will encourage greater adoption of GWT and reinforce Java as a viable programming model for creating Ajax applications that work in all browsers.” AND “Taking the Pain out of Ajax Development with GWT and Java”. Pasted from http://www.instantiations.com/gwtdesigner/.
Even Flash/Flex can be used within GWT to certain level with the following project as I don’t know how much the developers past 90% weeks activity has paid of too as it has been going for last 2 years. Check GWT to SWF Integration Kit download | SourceForge.net and This is I quote: “GWT2SWF intend to provide software bridge between GWT and FLASH/FLEX. It means that using GWT2SWF you will be able to communicate between GWT and FLASH/FLEX. GWT2SWF provides SWFWidget and FlashPlayer version detection.”. Pasted from http://code.google.com/p/gwt2swf/ .
From my perspective I’m talking about the future leaders of the FULL CODING IN JAVA (Ajax)web framework as it’s unfolding as we speak.
I’ll summarize what I’ve said:
-
Please confirm or correct my assumption about your (web)strategy.
-
What technology is currently in your top 5 candidates for the web modeling strategy?
-
Testng, Jboss Seam and GWT, will you consider adopting them into the appropriate VP tools as web-technology strategy decision pro-java? And at what position would it be placed initially? And how confident are the engineers about this statement? It’s a matter of trust on the short term, I don’t doubt that if you say that you will do it that you will but withing what time table? Too bad that we can’t see a roadmap, but please fill me in on that. You may not be able to give me all the details for what ever reason but I’m expecting the truth like I’m used to from you guys as well!
Posted On: 2009-01-02 02:50 PM
I’ve got another suggestion. If you could only make your GUI designer which comes in the Entherprise edition SYNCRHONIZE with this product family:
WindowBuilder Family
of Software Products
WYSIWYG development of Java Graphical User Interfaces
— for Swing, SWT, RCP and GWT
Automatically generate and maintain GUIs. Create complicated interfaces in minutes with the WindowBuilder tools, using a WYSIWIG view, drag-and-drop, and wizards. Java code will be generated for you.
Spend less time and money to develop Java GUIs. Focus on creating application-specific functionality rather than coding the low-level logic required for GUIs to run.
Powerful, easy-to-use tools for Eclipse, Rational®, and myEclipse
Pasted from http://www.instantiations.com/windowbuilder/
Then the GUI bi-directional problem and test generation would be solved!! Because there tools compliment yours!! They have analyzers, profilers and unit-test generation although in other products. Although this would mean spending extra 400 to 700 dollars next to the 840 needed to upgrade to the Enterprise it’s at least a solution that save future time instead of wasting it on incompatibility and manual labor!!
On Fri, Jan 2, 2009 at 7:26 AM, wrote:
Your Ticket has been received and a member of our staff will review it and
reply accordingly. Listed below are details of this Ticket. Please make sure
the Ticket ID remains in the subject at all times.Ticket ID: TLE-937305
Subject: Strategy, web modeling and Unit-testing
Department: Technical
Priority: High
Status: OpenYou can check the status or reply to this ticket online at:
Visual Paradigm - Powered by Kayako Help Desk Software
Email: x
Password: (Request at http://support.visual-paradigm.com)Please do let us know if we can assist you any further,
Visual Paradigm International Ltd.
Rain Wong
Posted On: 2009-01-02 09:59 PM
Dear b4l4nc3r,
Thank you for your message. You are correct that our products are develop mainly in Java. About the unit test, we do have unit test on our modules to guarantee the quality. I can check with our engineers and get you some idea on how we work. About the UI designer, currently it’s only for screen mockup. We will consider to extend it’s functionality to code level in the future.
If you require any further information, please do not hesitate to contact me.
Best regards,
Rain Wong
Posted On: 2009-01-02 11:55 PM
Thank you. I’ll wait on the roadmap/development process feedback.
In the meantime I want to ask whether you guys or your company had considered partnering with http://www.instantiations.com/index.html ?
a. If not, why not? And do you see any reason to consider? And still, will you? What about the power of their products to compliment yours? From the feature side it seems to me that they would fit like a glove. I don’t know about the compatibility of the philosophies and how a bridge might be setup!
b. If yes, and apparently didn’t partner, for what reason?
Rain Wong
Posted On: 2009-01-03 12:31 AM
Dear b4l4nc3r,
Thanks for replying. About the partner, currently we have no plan on it yet. And it’s quite a confidential issue which I cannot disclose to you at the moment. If there are any further inquiry, please do not hesitate to contact me.
Best regards,
Rain Wong
So you see I’m in a dilemma! Should I just choose for instantiation’s product line and create a glue layer? Or wait for VP’s decision on this matter? Or keep on searching? I’ll probably do all in a certain sequence with a humanly algorithm! But I hope more can be disclosed about where VP is sailing to, to be sure!