Book a Demo

Author Topic: Splitting off Business Logic  (Read 3209 times)

rbutterwood

  • EA Novice
  • *
  • Posts: 4
  • Karma: +0/-0
    • View Profile
Splitting off Business Logic
« on: May 03, 2004, 06:34:26 am »
Hi Folks

We are in the process of re-architecting our application from fat client -> ultra thin client.  Currently I am analyzing the source code to examine 'harvestibility' and code reuse.  

It's been suggested that I load each program into EA at the compnent level and make notes on how much work is required to make each internal procedure encapsulated.    For example make global variables parameters etc.

I have already done a first pass of the software and built excel spreadsheet.  The second pass needs to be more detailed.

I am completely new to UML and EA, so please try to explain in layman terms.

Thanks,

Richard


thomaskilian

  • Guest
Re: Splitting off Business Logic
« Reply #1 on: May 03, 2004, 07:11:49 am »
Hot stuff, Richard!
As you are doing a major redesign I guess there is no point in harvesting source code. If you are trying to do so: good luck  :-/ You'll really need it.
If you want to listen to an advice: start by documenting the real needs for you new system. Taking requirements using EA is really easy.
  • Place them just somewhere in a package you call Requirements. Likely you should be able to split between functional and non functional (like performance a.s.o.).
  • Taking the requirements be shure to trace them to the stakeholders.
  • Probably you are already in a stage where you have a clear vision of your target system. If not, establish it or you will fail.
  • Try to identify the use cases,
  • attach the requirements via realize associations and
  • associtate the initiating actors via source->target associations.
Now you are ready to model the business classes. At that stage you may find some of your old code being usefull - but this is unlikely  :'(

This was just a very short start. Don't fall in the trap to assume that UML will do the job for you. It won't. Instead you have to first learn how to work with UML and then start thinking about how to use it. Disappointing - I know :'(

If you decide to just pound the old system into the new architecture I promise you'll fail - remember my words ;)

« Last Edit: May 03, 2004, 07:12:19 am by thomaskilian »

rbutterwood

  • EA Novice
  • *
  • Posts: 4
  • Karma: +0/-0
    • View Profile
Re: Splitting off Business Logic
« Reply #2 on: May 03, 2004, 07:21:34 am »
Hi Tomas

Thank you for the reply.  I have a collegue developing the USE CASE analysis now.   Currently we are just doing the analysis to see exactly what we have.  I'm coming bottom up and he is coming top down.  This is just to give us some scope of the project.

The current language is Progress 4GL.  We are going to reuse Progress for the middleware, but for the front end we are going to use C#.  From my first pass of the code I estimate we will be able to harvest 5% of the current system.

I agree that if we try to force the old system into the new we are going to fail, but right now I am trying to  guage exactly what we have got.  We are working with consultants from Progress who have gone through this many times and it was their advice to load it into EA.


Bruno.Cossi

  • EA User
  • **
  • Posts: 803
  • Karma: +0/-0
    • View Profile
Re: Splitting off Business Logic
« Reply #3 on: May 03, 2004, 10:38:37 am »
Hi Richard,

I would be very interested in hearing more about your reverse engineering of Progress 4/GL. I know that Progress is working on the reverse engineering, did you have a chance to test it?

Bruno

rbutterwood

  • EA Novice
  • *
  • Posts: 4
  • Karma: +0/-0
    • View Profile
Re: Splitting off Business Logic
« Reply #4 on: May 03, 2004, 11:18:50 am »
Hi Bruno

Yes, I believe that Progress is looking towards code generation from Enterprise Architect and also reverse engineering.

We are not looking to reverse engineer, but to basically document what we have got.  The way I am doing it, is creating a component for the program .p or .w and creating a operation for each internal procedure.  Also, I create a operation for the main block.  Afterwards I attach notes to say what needs to be performed to make it encapsulated.

It's a very rough and ready approach, but when we develop the classes later we will be able to visually see what we currently have.

You can e-mail me directly [email protected] if you want.

Thanks,

Richard