Win a copy of Getting started with Java on the Raspberry Pi this week in the Raspberry Pi forum!
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Ron McLeod
  • Paul Clapham
  • Tim Cooke
  • Jeanne Boyarsky
Sheriffs:
  • Rob Spoor
  • Devaka Cooray
  • Liutauras Vilda
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Tim Moores
  • Mikalai Zaikin
Bartenders:
  • Piet Souris

Future of UML with OO Concepts

 
Greenhorn
Posts: 19
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
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.
 
Ranch Hand
Posts: 4982
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
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
 
Ranch Hand
Posts: 3178
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

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...
 
Ko Ko Naing
Ranch Hand
Posts: 3178
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

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...
 
author
Posts: 14112
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

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.
 
Ilja Preuss
author
Posts: 14112
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

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
Posts: 4982
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator


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
Posts: 4982
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator


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
Posts: 4982
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
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
Posts: 3178
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

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
Posts: 3178
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

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
Posts: 4982
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
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
Posts: 14112
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

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
Posts: 14112
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

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
Posts: 14112
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

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...
 
(instanceof Sidekick)
Posts: 8791
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

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!
 
author
Posts: 11962
5
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

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.
 
Nicholas Cheung
Ranch Hand
Posts: 4982
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator


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
Posts: 4982
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator


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
Posts: 4982
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator


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
 
Ranch Hand
Posts: 320
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
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
Posts: 4982
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
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
Posts: 3178
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

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
Posts: 3178
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

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
Posts: 4982
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator


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
Posts: 3178
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

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
Posts: 3178
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

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
Posts: 4982
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator


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
Posts: 4982
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator


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
Posts: 4982
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator


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
Posts: 3178
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

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
Posts: 3178
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

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
Posts: 4982
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator


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
Posts: 4982
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator


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
 
Ranch Hand
Posts: 1312
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

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
 
Ko Ko Naing
Ranch Hand
Posts: 3178
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

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
Posts: 1312
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

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
Posts: 1312
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

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
Posts: 11962
5
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

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
Posts: 1312
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

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.
 
reply
    Bookmark Topic Watch Topic
  • New Topic