Book a Demo

Author Topic: Help me with process...  (Read 7550 times)

newuser

  • EA Novice
  • *
  • Posts: 3
  • Karma: +0/-0
    • View Profile
Help me with process...
« on: April 28, 2004, 12:47:59 pm »
A little background first.  I am a software developers for many years, but never cared much for UML until last year.  I then picked up a couple of books namely "UML Distilled" by Fowler,  "Applying Use Cases" by Schneider and Winters, and another one that went into some modified form of RUP that I can't remember the name of.  I have also surfed quite a few web sites covering the topic including Sparx's site, and I feel that I understand the basic concepts behind each UML diagram.

What I am lacking however, is the understanding of organization of various models.  I have looked at a few resources and am very confused about different models and what goes in each model.  Are Requirements part of the Use Case Model or the Business Model?  What Model should contain the Data Model?  Should all Sequence Diagrams be part of the Analysis Model?  What about the Class Diagrams, do they go in Analysis Model, Design Model, or the Component Model?  What is the difference between a Logical Model and a Physical Model?

What I need is sort of an outline of what sub-models a complete model should be composed of, what diagrams should be part of these sub-models, etc.  I would rather read something more straight forward and logical then to go through hundreds of pages of books that have confused me.  A no-nonsense web site or a book recommendation will be deeply appreciated.  

Thank you.

sargasso

  • EA Practitioner
  • ***
  • Posts: 1406
  • Karma: +1/-2
  • 10 COMFROM 30; 20 HALT; 30 ONSUB(50,90,10)
    • View Profile
Re: Help me with process...
« Reply #1 on: April 28, 2004, 04:31:10 pm »
AFAIK Such a thing doesn't exist.  :-X

I have developed a model structure that we use here that is based partly on UP, partly on "legacy" document approaches and partly on the in-house program and project methodology.

This structure took over 3 months to develop and document and was guided by the principals of
1) making it possible to produce output from the EA projects (both rtf and html) that adequately communicated the relevant information to the audience, and
2) eased (?) the creation and management of the models for the designers and developers.

I think "everybody" comes up with their own structure and layout for their EA project repositories after using the tool for a time in a real situation.  I dont think there is a "fits all" answer.

Having said that, here's a couple of hints that may get you on the road.

1) When developing models, i.e. working on them, just stick everything in a "work in process" package.  As the model stabilises move the elements and diagrams to their "formal" places in the structure.
This lets you "muck around in a sandbox" easily and keeps draft material clear of what has already been agreed with your stakeholders.

2) If you use elements from the formal areas in the sandbox - copy them as "local" elements.  This does add a bit of work when merging them back into the formal structure but saves embarassment caused by inadvertantly overwriting an agreed component.

3) (This is probably more of a personal attitude rather than a hint)  Base your formal structure on your method timeline rather than some "architectural" ideal.  For example, we keep the preliminary UI models in the "Requirements" model as that is generally when they are done under our local method - not at "design" time.

Bruce
« Last Edit: April 28, 2004, 04:32:03 pm by sargasso »
"It is not so expressed, but what of that?
'Twere good you do so much for charity."

Oh I forgot, we aren't doing him are we.

newuser

  • EA Novice
  • *
  • Posts: 3
  • Karma: +0/-0
    • View Profile
Re: Help me with process...
« Reply #2 on: April 28, 2004, 09:44:11 pm »
sargasso,

Even though not very encouraging, I do appreciate your response.  So are you telling me that there is really no method to the madness?  No logical steps that one could follow to derive a model structure?  While I understand that I may not be able to use a cookie-cutter approach, I do need a start.  The example model that comes with EA is pretty complicated, and there are things that I do not understand as to why they are that way.  For example, all classes are not organized under one package hierarchy -- they are spread across the entire model.  Same with requirements.  I am not questioning the correctness of the example model (since I do not have the experience to do so ;)), but it does makes my head spin when I try to learn by modelling a small project.

Anyway, if other people want to share their experiences and expertise with me, I would really appreciate it.

Thanks once again.
« Last Edit: April 28, 2004, 09:46:44 pm by newuser »

sargasso

  • EA Practitioner
  • ***
  • Posts: 1406
  • Karma: +1/-2
  • 10 COMFROM 30; 20 HALT; 30 ONSUB(50,90,10)
    • View Profile
Re: Help me with process...
« Reply #3 on: April 28, 2004, 10:30:27 pm »
Newy,

What I'm trying to say is that you create the structure to suit yourself, or preferably to suit the goals of producing your models.

Consider there three interconnected aspects of "tool assisted" systems alaysis and design:
  • the tool, which supports
  • the model notation, which is driven by
  • the methodology

EA is the tool that supports the notation.  In this case, UML 2.0! EA is very flexible and can be used with essentially any UML based methodology.  Your chosen methodology will specify a set of artifacts that together, and over the life of the project, describe the system to the audiences of those artifacts.
You have already noticed that EA lets you put any UML element into any diagram.  This is consistent with UML. Even though the diagram "types" have names that indicate that they should be constrained to a specific subset of UML elements there is no constraint that says you cannot put a class element (for example) into a use case diagram (for example).  The only question is whether it makes sense to do so.  Certainly the primary elements that make up a use case diagram are actors and use cases, but if adding a "non-usecase" element adds to the value of the diagram then the tool should not constrain nor prevent you from adding that element.  By way of example, consider a plumbing diagram for a high rise building.  If there are non-plumbing elements of interest to the plumber (or his safety) such as high voltage feeders concealed in various parts of the plumbing core, doesn't the building drawings include some indication of those things on the plumbing diagrams?
Similarly, when we consider how to structure the elements in the project tree, i.e. in views, packages, sub packages etc this is again a matter of doing in a way that supports the way you are working.  The instructions for how to use an electric hammer drill will tell the carpenter how to use the drill but wont tell him where to put the holes in the walls, nor do they tell him how to arrange the anchor bolts in his tool chest.

So, again what I am saying is that the structuring of UML (notation) models inside EA (tool) repositories is a matter of personal choice guided by what you are trying to achieve and how you are going about it.

As I work for a "large" organization, which uses various UML based tools, we have the following goals that affect how we arrange our model structures:
1) all UML system designs should be interchangeable between tools;
2) as project team members often move between teams it is important to us that all models have a very similar structure;
3) as, usually, the number of stakeholders in a project tends to the "large" end and therefore stakeholders are likely to be exposed to more than one project at a time it is important that system models have similar look and feel and that they are all syntactically similar.

For these reasons, we spent a significant time getting that structure "correct" for the orgainsation.  It is very rigid and formally specified.

Other people on this forum work in very different environments.  Some, where for example the team size is small,or where the useful lifetime of a model is short, get much more benefit through (I expect) a much less formal arrangement of model structure - possibly down to and including a completely flat structure consisting of one package or view containing all elements.

In the final analysis, IIWY I wouldn't worry too much about how you should be formally structuring the models until you have a few iterations of a few systems under your belt.  Concentrate on getting value out of the models that you make not on doing them "by the letter of the law" ( and by now you should realise there is no real L-A-W law anyway).

Look more at using a method and see if you can "get through" a simulated project.  Try several if you have time and decide which method is best for you in which situation.  Understand the critical artifacts of the method, what they are used for and whether the models you are producing are structured to support the delivery of those artifacts.

Last century, when I started in working in this here komputer game, the only tool we had was a plastic flowchart template - and by jimminy, the help file for them was pretty useless  :) - but we survived, learnt and went on to bigger and better things.

hth
Bruce



"It is not so expressed, but what of that?
'Twere good you do so much for charity."

Oh I forgot, we aren't doing him are we.

newuser

  • EA Novice
  • *
  • Posts: 3
  • Karma: +0/-0
    • View Profile
Re: Help me with process...
« Reply #4 on: April 29, 2004, 06:28:25 am »
Bruce,

Thank you VERY much for a detailed explanation.  I really like your analogies.  I guess I will just have to learn by trial and error  ???.

Regards,
NewUser.

Javier

  • EA User
  • **
  • Posts: 67
  • Karma: +0/-0
  • Necessity is the mother of email
    • View Profile
Re: Help me with process...
« Reply #5 on: April 29, 2004, 10:02:50 am »
Newy,

I support Bruce's views, and would like to offer some of my own, too.

Building software is a complex task and is better accomodated by a software development process.  

In our particular case, introducing a software development process and formal software architecture has taken years and a lot of refinement.

Our process uses couple of documents:
1. A system specifications and design, which contains the high level overview of the complete system.  The document is built using RequisitePro and RationalRose via a SoDA script from a UML model with use cases.  Other requirements are specified using free text within the use cases, or just spread in the document--we tried using RequisitePro as the requirements repository but it was really too much.  The idea was that the requirement would go through a phase--proposed, approved, versioned, blah, blah, blah--but it never took off.  This is an example of "refining" the process.

2. Out of the system spec and design we come out with one or more software architecture documents that generate pretty much a component per document--e.g., and executable, a DLL, a set of ASP pages, etc.  In this document is where we have all the class diagrams, use case realization (realizing the use cases in the system spec and design), and we provide a full documentation for all the classes.  This document is generated automatically, too.  After generating the document, it is handed to a developer or team of developers that than take off and build it.

So, what works, and what doesn't?

What works:

  • The automated generation of documents really helps delimit responsibilities for teams and departments.

  • All designs--the generated documents--go through a design review, where members of different departments are included: (1) systems engineering (2) software development (3) project manager (4) integration and test (4) technical support.  This allows everybody to have a say on the design and saves tons of time and money.

  • We only use use cases and actors, class diagrams, sequence diagrams and simple component diagrams.  This in practice covers 80% of the things you really want to say.  Ocassionally we use state machines and some of the least used diagrams, but that is really an exception.


What doesn't work (in our case):
  • Requirements management.  We came to the conclusion that it would be simpler to manage our requirements in the document itself instead of using a tool.  The reason is that the requirement in itself is another little entity that would require a lot of effort.  At one point we talked about every step of the use case being a testable requirement.  Come on, the use case is the requirement!.  We concentrated on making our use cases more complete and take testing and tech support requirements in it.  For example, we have a section for diagnostics or alarms that should be generated in case of an exceptional condition.

  • Deployment diagrams.  This is more because of a shortcoming in the tools that we use--Rational Rose.  We fall back to Visio  :(


In a nutshell, consider the size of the company and what you guys can realistically accomplish.  Select carefully.  Although it would be nice to have the whole enchilada, a company can only pay $$$ for so much process, and product must sell ;)

Moreover, make sure that a software development process--and its implications, such as training, tools, etc.--are bought-in from the top management layers.  What top management wants to see, at the end of the day, is in dollars and cents, as well as in time that would be saved to build software--which translates to dollars and cents, too.

While replying to another post, I found this book--and its follow-up in the same hyperlink:

Process Patterns : Building Large-Scale Systems Using Object Technology
http://www.amazon.com/exec/obidos/tg/detail/-/0521645689/qid=1083258351/sr=1-1/ref=sr_1_1/104-3775403-4487965?v=glance&s=books

The author is well recognized and it should give you a good grip on the different process alternatives out there.

Regards,

Javier
« Last Edit: April 29, 2004, 10:13:26 am by Javier »
We must become the change we want to see.
- Ghandi

BioformLivesAgain

  • EA Novice
  • *
  • Posts: 12
  • Karma: +0/-0
    • View Profile
Re: Help me with process...
« Reply #6 on: August 28, 2008, 11:35:56 am »
The use case is the requirement?!!! Good luck with that!

OwenInCanada

  • EA User
  • **
  • Posts: 78
  • Karma: +0/-0
  • have the right tool for the job
    • View Profile
Re: Help me with process...
« Reply #7 on: September 18, 2008, 12:53:21 am »
Some comments regarding the question of what to do to make a UML project (as distinct from how to organize the parts of a project). Let me begin by saying that I am not a sage of software process. I used Rose for a couple of years about 6 years ago, in the context of a big model that had been built by professional software engineers.

Now I am starting a UML project from scratch and I was looking for just the kind of guidance you request. I chose SysML for my project, in part because I needed to do requirements management and traceability.

For SysML I found a rigourous high level instruction about how to begin from nothing in a set of papers from the competition (Telelogic).

  • SysML-Based Systems Engineering Using a Model-Driven Development Approach, Hans-Peter Hoffmann, Ph.D., Telelogic, Version 1, January 2008
  • The Harmony Process: The Transition to Software Engineering, Bruce Powel Douglass
  • The Telelogic Harmony Process: The Development Spiral, Bruce Powel Douglass, Telelogic Chief Evangelist,  October 2007
I have only tried to use the first paper in depth, and it seems solid, sometimes overly succinct (just 13 pages!).  I don't know what the other papers hold for me. These can be downloaded from that company's website if you sign up.  Some similar material on Harmony is also found on embedded.com .

Regards,

Owen