Book a Demo

Author Topic: How to hide Work In Progress in a shared model  (Read 5228 times)

Andy B

  • EA Novice
  • *
  • Posts: 9
  • Karma: +0/-0
    • View Profile
How to hide Work In Progress in a shared model
« on: October 30, 2008, 07:56:36 pm »
I am working on trying to introduce EA into my organisation where we will have up to 200 analysts and designers working on various models - not all concurrently - approx 40 concurrent. I'd like to get some views on the proposed options - pitfalls etc.

The 2 options currently being considered for the deployment are

1) a shared model approach using SQL server + version control
2) a local model approach using EAP file + version control (in effect using the version control system as the master repository). Each user then gets the bit of the model (and its dependencies!) that they are interested in into their own locla workspace/model.

Any thoughts on the best option?

In terms of the models these will be representative of business processes and applications that support those processes. Over time various projects will come and go and be updating the models to move the business and its applications forward.

Before deciding on the most appropriate approach I have a specific question.

Specific questions:

1) Is there any way when using a shared model to hide work in progress from other users? This would mean we could get the benefits of managing, comparing and securing a shared model in SQL (local models seem a bit flaky at times) and allow users to work on the models before committing to the 'master'.

I realise I could export the packages I am interested in to a local EAP file but that seems like quite an overhead and then means each analyst is responsible for backup etc.

2) If we went down the shared model route what is a good configuration. All models in a single SQL database? - are there known size limits / issues etc.? There will be cross dependencies between model packages, typically at the service interfaces.


3) Does anyone have an example of code (C#/java)that uses the automation interface to export packages as XMI?

Thanks.

Andy

madmax

  • EA Novice
  • *
  • Posts: 1
  • Karma: +0/-0
    • View Profile
Re: How to hide Work In Progress in a shared model
« Reply #1 on: November 25, 2008, 07:55:16 pm »
We started on something similar to the #1 option you have mentioned. We realized having a shared RDBMS instance for hosting the EA repository/project was leading to a lot of problems. We are now evaluating if/how we need to implement #2 option.

In any case, we are looking for any best practices on how to work with a shared-repository

 
Some Java code that could be useful for you. Look at http://www.sparxsystems.com/uml_tool_guide/sdk_for_enterprise_architect/project_2.html and http://www.sparxsystems.com/uml_tool_guide/sdk_for_enterprise_architect/repository3.html as well.
******************************************
import org.sparx.*;

public class EAModelXMIExporter {
            public static void main(String[] args) {
                        Repository r = new Repository();
                        r.OpenFile("DBType=3;Connect=provider=oraoledb.oracle.1;password=tiger;persist security info=true;user id=scott;data source=devdb2");

                        Project p = r.GetProjectInterface();

                        Collection models = r.GetModels();
                        int nModels = (int) models.GetCount();
                        for (int loopi = 0; loopi < nModels; loopi++) {
                                    org.sparx.Package pkg = (org.sparx.Package) models.GetAt((short)loopi);
                                    String strPkgName = pkg.GetName();
                                    if (strPkgName.equals("my_root_package_name")) {
                                                System.out.println("Exporting package: " + strPkgName);
                                                p.ExportPackageXMI (pkg.GetPackageGUID(), EnumXMIType.xmiEA21, 1, -1, 1, 0, "C:\\somedirectory\\" + strPkgName + "_exported-“ + System.currentTimeMillis() + ”.xml");
                                                System.out.println("Exported package: " + strPkgName);

                                    }                                  

                        }
            }
}
******************************************

jguerra

  • EA User
  • **
  • Posts: 39
  • Karma: +0/-0
    • View Profile
Re: How to hide Work In Progress in a shared model
« Reply #2 on: November 26, 2008, 12:34:50 am »
That's an interesting challenge Andi,

It looks like a big organization, Is your organization familiar on MDD Processes at any stage?
Quote
I am working on trying to introduce EA into my organisation where we will have up to 200 analysts and designers working on various models

You may also want to have a look into this trail regarding the versioning. I would ensure aspects such as merging as well !!

http://www.sparxsystems.com/cgi-bin/yabb/YaBB.cgi?num=1210007074

Regarding the comment about the updating the model as the time goes I'd say it's not an easy task and it depends a lot of the nature of your business model. I know its a bit vague this, but definitively it needs serious research on your business.
 
Cheers

Thelonius

  • EA User
  • **
  • Posts: 274
  • Karma: +6/-0
  • I think. Therefore I get paid.
    • View Profile
Re: How to hide Work In Progress in a shared model
« Reply #3 on: November 26, 2008, 09:31:55 am »
Quote
...We realized having a shared RDBMS instance for hosting the EA repository/project was leading to a lot of problems...

Really? :o

I personally haven't used a central RDBMS to host a multi-user EA repository / project. But I HAVE been suggesting to my current client that they do it.

What would be the kinds of 'problems' that others have encountered with using a server-based repository on an RDBMS?

Jon

Bill

  • EA Novice
  • *
  • Posts: 1
  • Karma: +0/-0
    • View Profile
Re: How to hide Work In Progress in a shared model
« Reply #4 on: November 26, 2008, 11:30:20 am »
I do not believe this will work.  We just installed the server version.  The database is designed to hold one project.  It merely emulates the single file EAP (mdb) file.  

The better approach is probably to keep multiple project files on a shared drive.  

Perhaps this should be suggested as a product improvement?

Bill

Eve

  • EA Administrator
  • EA Guru
  • *****
  • Posts: 8110
  • Karma: +119/-20
    • View Profile
Re: How to hide Work In Progress in a shared model
« Reply #5 on: November 26, 2008, 03:40:13 pm »
Quote
I do not believe this will work.  We just installed the server version.  The database is designed to hold one project.  It merely emulates the single file EAP (mdb) file.
But even in an eap file, people model multiple projects.  (Often a root node for each project.)