wood burning stoves 2.0*
The moose likes OO, Patterns, UML and Refactoring and the fly likes Future of UML with OO Concepts Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Murach's Java Servlets and JSP this week in the Servlets forum!
JavaRanch » Java Forums » Engineering » OO, Patterns, UML and Refactoring
Bookmark "Future of UML with OO Concepts" Watch "Future of UML with OO Concepts" New topic
Author

Future of UML with OO Concepts

Mukesh Agrawal
Greenhorn

Joined: Jul 20, 2004
Posts: 19
Hello Everybody,

As we are aware that use of Object Oriented concepts is increasing constantly in the programming world and most of the organizations are using UML for their Logical Design.

What do you think about the future of UML with OO Concepts. Also do UML provide us with the complete solution of Logical Designing. What are the other aspects regarding this ?

I hope you people will definitely help me in getting the concept clear.

Mukesh Agrawal.
Nicholas Cheung
Ranch Hand

Joined: Nov 07, 2003
Posts: 4982
UML did provide a good visualized mean for analysts to understand the system diagrams and data flows, however, different people can still have different understanding on the same diagram, which we cannot identify right or wrong, only good or bad.

Thus, in addition to UML, some other people introduce Formal method, which defines a specification language to make sure the output is what the users expected.

By applying both methods (UML and formal method), we have both visualized system diagrams, as well as the expected system output (behaviours).

FOOPS is one of the specification languages for OO systems.

Nick


SCJP 1.2, OCP 9i DBA, SCWCD 1.3, SCJP 1.4 (SAI), SCJD 1.4, SCWCD 1.4 (Beta), ICED (IBM 287, IBM 484, IBM 486), SCMAD 1.0 (Beta), SCBCD 1.3, ICSD (IBM 288), ICDBA (IBM 700, IBM 701), SCDJWS, ICSD (IBM 348), OCP 10g DBA (Beta), SCJP 5.0 (Beta), SCJA 1.0 (Beta), MCP(70-270), SCBCD 5.0 (Beta), SCJP 6.0, SCEA for JEE5 (in progress)
Ko Ko Naing
Ranch Hand

Joined: Jun 08, 2002
Posts: 3178
Originally posted by Mukesh Agrawal:
Also do UML provide us with the complete solution of Logical Designing.


Yes, it does provide us with a greta visualization as well as so-called logical design of the application...

With the help of UML, programmers are easy to code and after coding phase it's easy to modify them as well... I believe UMLs are useful since the beginning of a project till the end of the project. Moreoever they are useful, even after the project...

Just my 2 cents...


Co-author of SCMAD Exam Guide, Author of JMADPlus
SCJP1.2, CCNA, SCWCD1.4, SCBCD1.3, SCMAD1.0, SCJA1.0, SCJP6.0
Ko Ko Naing
Ranch Hand

Joined: Jun 08, 2002
Posts: 3178
Originally posted by Nicholas Cheung:
FOOPS is one of the specification languages for OO systems.


I've never heard of it... Could you give me a good link or article that is easy to understand the concept on FOOPS? Thanks, Nick...
Ilja Preuss
author
Sheriff

Joined: Jul 11, 2001
Posts: 14112
Originally posted by Nicholas Cheung:
Thus, in addition to UML, some other people introduce Formal method, which defines a specification language to make sure the output is what the users expected.


The problem of this is, that most users can't understand most formal specification languages. So the correctness of the specification still depends to a high amount on the human communication between the users and the specification writer.

Another problem: Specification languages are typically rather complex, equally complex to a programming language. So even if the understanding of the writer is "correct", it doesn't necessarily follow that the specification is, too. I once saw an algebraic specification for a Queue which had a subtle error - which led to "true" being equal to "false"... :roll:

And last but not least, writing formal specifications is costly, and maintaining them doubly so. Unfortunately, requirements (and our understanding of them) tend to change during the execution of a project.

Therefore I think I'd prefer

- a rather simple "specification language" that can be used by non-developers to define the expected behaviour (like FitNesse tests, and

- releasing incomplete but partially functional versions of the system to users early and often.


The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
Ilja Preuss
author
Sheriff

Joined: Jul 11, 2001
Posts: 14112
Originally posted by Mukesh Agrawal:
What do you think about the future of UML with OO Concepts. Also do UML provide us with the complete solution of Logical Designing. What are the other aspects regarding this?


The most vital tools for design (as for virtually any other aspect of software development) are the brains of experienced developers.

Without them, nothing will help you. Period.

Experienced developers will quite likely use UML to communicate certain things, or to help them focus on a specific aspects - and use other tools for other things. With other words, they will use UML as one of the tools in their toolbox.

See http://www.agilemodeling.com/essays/realisticUML.htm for an interesting take on the issue.
Nicholas Cheung
Ranch Hand

Joined: Nov 07, 2003
Posts: 4982

Could you give me a good link or article that is easy to understand the concept on FOOPS? Thanks, Nick...

You can find FOOPS from:
http://www.cs.ucsd.edu/users/goguen/sys/foops.html

I refer this site while I was worked with the FOOPS assignments. It contains a detail manual and some samples.

As formal method is really complex, so not many people recommend using it.

Nick
Nicholas Cheung
Ranch Hand

Joined: Nov 07, 2003
Posts: 4982

With the help of UML, programmers are easy to code and after coding phase it's easy to modify them as well... I believe UMLs are useful since the beginning of a project till the end of the project. Moreoever they are useful, even after the project...

UML is really helpful in project design and documentation, and thus, OMG continues to revise UML standard, add more features on it, so that UML can be more easier to use, and read by others.

Nick
Nicholas Cheung
Ranch Hand

Joined: Nov 07, 2003
Posts: 4982
Hi Ilja,

I agreed that Formal method is too complex to write and understand, while UML, in this aspect, really did a good job.

Thus, sometimes, we may need to make a balance if we really need both. Maybe we can use formal method on the lowest level on critical methods to make sure the system behaves as expected.

Nick
Ko Ko Naing
Ranch Hand

Joined: Jun 08, 2002
Posts: 3178
Originally posted by Nicholas Cheung:

You can find FOOPS from:
http://www.cs.ucsd.edu/users/goguen/sys/foops.html

Thanks for the link, Nick... Was it initiated from Oxford? I feel that I.T-related research are less likely evolved from Oxford University, which is famous in non-I.T fields...

It's good to know that... I do apprecaite for that link, Nick...
Ko Ko Naing
Ranch Hand

Joined: Jun 08, 2002
Posts: 3178
Originally posted by Nicholas Cheung:

UML is really helpful in project design and documentation, and thus, OMG continues to revise UML standard, add more features on it, so that UML can be more easier to use, and read by others.

Nick


That's cool... I also have plan to do a master research on UML and OOAD... Well, it may be in the next semester... I'm interested in such issues, while others are interested in traditional topics like neural networks, genetic algorithm and so on...
Nicholas Cheung
Ranch Hand

Joined: Nov 07, 2003
Posts: 4982
There are lots of specification languages. You may find more about them, such as OBJ3, CSR, etc.

Different language focus on different nature of systems.

Nick
Ilja Preuss
author
Sheriff

Joined: Jul 11, 2001
Posts: 14112
Originally posted by Nicholas Cheung:

UML is really helpful in project design and documentation, and thus, OMG continues to revise UML standard, add more features on it, so that UML can be more easier to use, and read by others.


Is that so? Can you quote a feature of UML 2 that made it easier to use for you, personally?

Martin Fowler has some interesting doubts on the issue, and he isn't alone: http://martinfowler.com/bliki/UnwantedModelingLanguage.html
Ilja Preuss
author
Sheriff

Joined: Jul 11, 2001
Posts: 14112
Originally posted by Nicholas Cheung:
Maybe we can use formal method on the lowest level on critical methods to make sure the system behaves as expected.


Possibly. I'd rather use automated unit tests, but that might simply be personal preference...
Ilja Preuss
author
Sheriff

Joined: Jul 11, 2001
Posts: 14112
Originally posted by Ilja Preuss:


Possibly. I'd rather use automated unit tests, but that might simply be personal preference...


Well, actually for some things, unit tests don't work very well, for example concurrency. Not sure how usefull formal specifications would be...
Stan James
(instanceof Sidekick)
Ranch Hand

Joined: Jan 29, 2003
Posts: 8791
Originally posted by Nicholas Cheung:

UML is really helpful in project design and documentation ...


This is really the core. Diagramming and modeling are done for those two major reasons: to help your organize and explore your own thinking for your own benefit and to communicate ideas to others.

The value of UML in doodling your own ideas is probably low. You might draw circles instead of rectangles and get just as much value. Putting a lot of semantic meaning into a napkin picture might not be a good use of time.

The value of UML in communicating to others can be tremendous, especially if you remember the days when every book and magazine article had its own notation and meaning. Any common language is better than that, and UML is pretty darned good. How much of the UML to use - every diagram and decoration or just some boxes and arrows - is something you must tune to the audience.

If the audience is a code generator or MDA engine you get pretty strong requirements on your UML. My project uses a code generator from Rose models, and we have to put a ton of info into Rose to make it work. Humans almost never look at the models because they are over-detailed. Of course with Rose we could make simpler diagrams for human consumption, but nobody has asked for that yet!


A good question is never answered. It is not a bolt to be tightened into place but a seed to be planted and to bear more seed toward the hope of greening the landscape of the idea. John Ciardi
Lasse Koskela
author
Sheriff

Joined: Jan 23, 2002
Posts: 11962
    
    5
Originally posted by Ilja Preuss:
Well, actually for some things, unit tests don't work very well, for example concurrency.
True, although some people are of the opinion that one should extract and isolate all concurrency-related stuff into a tiny nugget that's small and simple enough to be left outside of the unit test suite and tested separately using whatever means necessary.


Author of Test Driven (2007) and Effective Unit Testing (2013) [Blog] [HowToAskQuestionsOnJavaRanch]
Nicholas Cheung
Ranch Hand

Joined: Nov 07, 2003
Posts: 4982

Is that so? Can you quote a feature of UML 2 that made it easier to use for you, personally?

UML 2.0 introduces flow diagrams, which is similiar to the DFD in Structured analysis, that can show how the data flow among objects. I feel these diagrams give a better understanding for developers on how the data be processed.

Nick
Nicholas Cheung
Ranch Hand

Joined: Nov 07, 2003
Posts: 4982

I also have plan to do a master research on UML and OOAD... Well, it may be in the next semester... I'm interested in such issues, while others are interested in traditional topics like neural networks, genetic algorithm and so on...

Interesting that most people like to work on UML and software testings. There are lots of related projects in my university, and the name of projects are quite interesting.

For example:
VITAMIN: a VIsual authoring Toolset with Automatic code generation capability for ManufacturIng automatioN

CHOC'LATE: a CHOiCe-reLAtion framework for TEst case generation

Personally, I dont like stepping too much in academic, as you will lose the realistic for real world projects. That's why my research area was E-commerce systems and information security.

Nick
Nicholas Cheung
Ranch Hand

Joined: Nov 07, 2003
Posts: 4982

Well, actually for some things, unit tests don't work very well, for example concurrency. Not sure how usefull formal specifications would be...

For concurrency issues, I do agree that it is not that easy to test and see the results, like when we use load runner to simulate 1000 concurrent connections, it is difficult to check whether the data access is correct.

CSR may not work very well in this area I feel. It can specify the expected output for concurrent access, however, it is too complex to write.

Nick
Rajan Chinna
Ranch Hand

Joined: Jul 01, 2004
Posts: 320
I have a small doubt, hope somebody will clear it.

When do we draw UML diagrams in the project life cycle? Is it at design stage or done parallel while coding.....?
Nicholas Cheung
Ranch Hand

Joined: Nov 07, 2003
Posts: 4982
UML should be draw at the beginning of the project, and developers will be based on those diagrams to develop the system.

Nick
Ko Ko Naing
Ranch Hand

Joined: Jun 08, 2002
Posts: 3178
Originally posted by Nicholas Cheung:
Interesting that most people like to work on UML and software testings. There are lots of related projects in my university, and the name of projects are quite interesting.

For example:
VITAMIN: a VIsual authoring Toolset with Automatic code generation capability for ManufacturIng automatioN

CHOC'LATE: a CHOiCe-reLAtion framework for TEst case generation

Then I think I should have a look at those projects so that they might help me in my research... The names seems interesting to me...

Personally, I dont like stepping too much in academic, as you will lose the realistic for real world projects. That's why my research area was E-commerce systems and information security.

Which fields of E-commerce systems and information security are you researching in? Security in general or specific to J2EE?
Ko Ko Naing
Ranch Hand

Joined: Jun 08, 2002
Posts: 3178
Originally posted by Rajan Chinna:
I have a small doubt, hope somebody will clear it.

When do we draw UML diagrams in the project life cycle? Is it at design stage or done parallel while coding.....?


I believe it totally depends on system analyst in your team. If they got really good skill in designing, they might be able to do UML diagrams parallelly, as the programmers are coing with the previous finished UMLs...

But if a project has a seperate period for project design and UML stuff, then it might be at design stage of the whole Software Engineering Life Cycle....
Nicholas Cheung
Ranch Hand

Joined: Nov 07, 2003
Posts: 4982

When do we draw UML diagrams in the project life cycle? Is it at design stage or done parallel while coding.....?

Basically, the 1st draft of UML is at the design stage, then developers will write the codes.

However, as OOAD is iterative, analyst may revise some of the design, as well as updated the diagrams, and developers follow the updated diagrams to make changes.

Keep in mind that, in a ideal case, UML is always comes before coding.

However, as there are more and more big projects with short time frame, if we wait for the UML everytime, we will face to the deadline stress. And Rose has invented a function for *backward re-engineering*, which given a set of the source codes, it generates back all the class diagrams.

Nick
Ko Ko Naing
Ranch Hand

Joined: Jun 08, 2002
Posts: 3178
Originally posted by Nicholas Cheung:

UML 2.0 introduces flow diagrams, which is similiar to the DFD in Structured analysis, that can show how the data flow among objects. I feel these diagrams give a better understanding for developers on how the data be processed.

Nick


Is that soem kinda sequence diagram? I think Sequence Diagram can help the developers a lot to know how data will be processed through the flows...

What are the advantages of flow diagram that is introduced by UML 2.0? Thanks...
Ko Ko Naing
Ranch Hand

Joined: Jun 08, 2002
Posts: 3178
Originally posted by Nicholas Cheung:

However, as there are more and more big projects with short time frame, if we wait for the UML everytime, we will face to the deadline stress. And Rose has invented a function for *backward re-engineering*, which given a set of the source codes, it generates back all the class diagrams.


That feature of Rose is cool, but I think the normal and best practice should be forward engineering like UML first and coding later...

but in the tight deadlines, we do need to apply that feature of Rose in the project...
Nicholas Cheung
Ranch Hand

Joined: Nov 07, 2003
Posts: 4982

Is that soem kinda sequence diagram? I think Sequence Diagram can help the developers a lot to know how data will be processed through the flows...

I feel they are a bit different, for sequence diagrams, you only know what method to be called, but you dont know how data is flow, as method calls not necessarily include data passing.

For DFD, it focus on how the data is flow is actually flow between objects or modules.

Nick
Nicholas Cheung
Ranch Hand

Joined: Nov 07, 2003
Posts: 4982

What are the advantages of flow diagram that is introduced by UML 2.0?

You can explictly tell the developers how the data is flow, in addition to the execution sequences.

Nick
Nicholas Cheung
Ranch Hand

Joined: Nov 07, 2003
Posts: 4982

That feature of Rose is cool, but I think the normal and best practice should be forward engineering like UML first and coding later...

Basically, I guess people who invent UML aim to put down all diagrams and flows before the coding pharse.


but in the tight deadlines, we do need to apply that feature of Rose in the project...

However, backward reengineering is always what the world do.

Nick
Ko Ko Naing
Ranch Hand

Joined: Jun 08, 2002
Posts: 3178
Originally posted by Nicholas Cheung:

I feel they are a bit different, for sequence diagrams, you only know what method to be called, but you dont know how data is flow, as method calls not necessarily include data passing.

For DFD, it focus on how the data is flow is actually flow between objects or modules.


OIC... Sequence diagrams are then not that detailed as so-called DFD in UML, which shows the actual flow between objects or modules...
You can explictly tell the developers how the data is flow, in addition to the execution sequences

Then it would be a really great feature... I've never tried UML 2.0 yet...

Tanks for the info, Nick....
Ko Ko Naing
Ranch Hand

Joined: Jun 08, 2002
Posts: 3178
Originally posted by Nicholas Cheung:

However, backward reengineering is always what the world do.


I feel it so.. But we, as experienced developers, we do have to avoid such kinda of bad practices... So that the developers of the future will walk as we do...
Nicholas Cheung
Ranch Hand

Joined: Nov 07, 2003
Posts: 4982

I've never tried UML 2.0 yet

I am also the beginner for UML 2.0.

We may going to start new projects using UML 2.0, and thus, I am now studying whether we should go for, or keep staying at UML 1.x.

Nick
Nicholas Cheung
Ranch Hand

Joined: Nov 07, 2003
Posts: 4982

But we, as experienced developers, we do have to avoid such kinda of bad practices... So that the developers of the future will walk as we do...

It is nearly impossible to avoid in my situation because the project timeline is very very short.

If we follow the practice strictly, all projects will need to be delayed. We can just try the best to take the balance.

Nick
somkiat puisungnoen
Ranch Hand

Joined: Jul 04, 2003
Posts: 1312
Originally posted by Ko Ko Naing:


I've never heard of it... Could you give me a good link or article that is easy to understand the concept on FOOPS? Thanks, Nick...


FOOPS: A Functional Object Oriented Programming System

--------------------------------------------------------------------------------

FOOPS is a very high level object-oriented specification language with an executable subset. It provides:

-abstract data types,
-objects,
-classes,
-overloading,
-polymorphism, and
-inheritance with overriding.

FOOPS also provides many additional features that go beyond what other current-generation object-oriented languages offer, including:
parameterised modules with semantic interface requirements,
a very powerful module interconnection language, and
`mixfix' syntax for functions, attributes and methods.
FOOPS is patterned after and built upon OBJ, a declarative specification language, from which it derives many of the above features.


Reference Website
http://www.cs.ucsd.edu/users/goguen/sys/foops.html


SCJA,SCJP,SCWCD,SCBCD,SCEA I
Java Developer, Thailand
Ko Ko Naing
Ranch Hand

Joined: Jun 08, 2002
Posts: 3178
Originally posted by Somkiat Puisungnoen:

Blah blah blah......
Reference Website
http://www.cs.ucsd.edu/users/goguen/sys/foops.html


Pui, I have read the info about FOOPs in the link that was previously provided by Nick yesterday... I guess the link you provided is the same as Nick's...
somkiat puisungnoen
Ranch Hand

Joined: Jul 04, 2003
Posts: 1312
Originally posted by Nicholas Cheung:

UML is really helpful in project design and documentation, and thus, OMG continues to revise UML standard, add more features on it, so that UML can be more easier to use, and read by others.

Nick



I'm Agree with you.

But if you want to talk/communicate with user/manage which don't know in programming language or UML , you must have some description such as USECase description.
somkiat puisungnoen
Ranch Hand

Joined: Jul 04, 2003
Posts: 1312
Originally posted by Ilja Preuss:


Is that so? Can you quote a feature of UML 2 that made it easier to use for you, personally?

Martin Fowler has some interesting doubts on the issue, and he isn't alone: http://martinfowler.com/bliki/UnwantedModelingLanguage.html


What's New in UML 2?

Answer :

1. The Use Case Diagram

http://bdn.borland.com/article/0,1410,30166,00.html
Lasse Koskela
author
Sheriff

Joined: Jan 23, 2002
Posts: 11962
    
    5
Originally posted by Somkiat Puisungnoen:
But if you want to talk/communicate with user/manage which don't know in programming language or UML , you must have some description such as USECase description.
...or prose like user stories. It's often easier to read and understand meaningful stories than it is to read heavily abbreviated bullet points from a use case template (although there can be good and effective use case templates as well).
somkiat puisungnoen
Ranch Hand

Joined: Jul 04, 2003
Posts: 1312
Originally posted by Rajan Chinna:
I have a small doubt, hope somebody will clear it.

When do we draw UML diagrams in the project life cycle? Is it at design stage or done parallel while coding.....?


You can draw UML diagram in follow phase of development process..

1. Use case diagram in Requirement phase

2. Class diagram, package diagram, Sequence diagram, activities diagram are draw in Design/Analysis phase.

3. Deployment diagram MUST draw before install project.
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Future of UML with OO Concepts
 
Similar Threads
importance of UML
Is the test mainly on EJBs?
Learning new technologies
Diagrammatic representation of inheritance.
This weeks book Giveaway: