Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - DamonCarr

Pages: [1] 2
1
Suggestions and Requests / Re: Where can I get Training about EA
« on: September 16, 2005, 06:46:39 pm »
KKom,

I'll be in London in November and I am very familiar with Germany. I could perform some training in November perhaps. Email me at damon@agilefactor.com if you are interested. Unfortunately I will not be in Europe before then.

It would be mid-November....

If interested can you give me more information on exactly what you are looking for?

Kind Regards,
Damon Carr, CEO
agilefactor

2
Suggestions and Requests / Ability to Recognize UML Dependencies inside Code
« on: September 16, 2005, 06:28:40 pm »
Hi!

I was really hoping that a 'Binary .NET Dissambly' would pick up a UML Dependency where I am instantiating a new class (it is not maintained, it lives only for the duration of the method) and is not a parameter passed in or out. Therefore the only way you could know about it is from code.

Perhaps my UML is wrong.. Is it not true that if a method in Class A instantiates Class B and calls services of Class B that you have a dependency now between Class A and Class B (uni-directional)?

I created an application to test this as I need it to calculate a metric I am working on for my book. I need to know about these dependencies but without a reverse engineering or access to code, there will be cases like this I don't know about.

Sparx doesn't show the dependency line on the class diagram, it only shows the Association that exists. Here is the code:

using System;

namespace UMLDependencyFailure
{

internal class Startup

{


[STAThread]


private static void Main(string[] args)


{



AnswerQuestion oAnswerer = new AnswerQuestion();



QuestionAsker oAsker = new QuestionAsker(oAnswerer);




bool Result = oAsker.IsSumOfIntegersTheSame(100, 50, 50);




Console.WriteLine(Result);



Console.Read();




}

}
}

namespace UMLDependencyFailure
{

public class QuestionAsker

{


private readonly AnswerQuestion _Answerer;



public QuestionAsker(AnswerQuestion oAnswerer)


{



_Answerer = oAnswerer;



}



public bool IsSumOfIntegersTheSame(int ExpectedSum, int SumOne, int SumTwo)


{



return _Answerer.IsQuestionTrue(ExpectedSum.ToString(), SumOne, SumTwo);




}



}
}

namespace UMLDependencyFailure
{

public class Calculator

{


public Calculator()


{}



public int AddTwoInts(int inOne, int inTwo)


{



return inOne + inTwo;


}

}
}


namespace UMLDependencyFailure
{

public class AnswerQuestion

{


public AnswerQuestion()


{}



public bool IsQuestionTrue(params object[] oParams)


{



Calculator oCalc = new Calculator();




int Result = oCalc.AddTwoInts(int.Parse(oParams[1].ToString()), int.Parse(oParams[2].ToString()));




return (Result == int.Parse(oParams[0].ToString()));


}

}
}


As you can see, in the AnswerQuestion class in the IsQuestionTrue method I create a new instance of :

Calculator oCalc = new Calculator();

and call:

int Result = oCalc.AddTwoInts(int.Parse(oParams[1].ToString()), int.Parse(oParams[2].ToString()));

This should of created a dependency but there isn't one. AM I WRONG? Is this NOT a UML Dependency?

Kind Regards,
Damon Carr, CEO
agilefactor
www.agilefactor.com

3
Suggestions and Requests / Re: CRITICAL - But I am sure you know about this
« on: December 18, 2004, 06:16:59 pm »
Hello? Are people just off for the holidays?

Damon

4
Suggestions and Requests / Re: Adding RSS Feed to Web Site
« on: June 03, 2004, 04:06:31 pm »
Sparx Team,

Absolutely. Especially for registered users. Getting in an RSS feed the details of MDG for Visual Studio, and every time you release a build would be perfect. As it is now there is the newsletter, but RSS feeds are much more available. It's a PUSH model instead of us PULLING the info (on a daily basis anyway). There is so much happening at your company that RSS would be good and it would ne great if you had a company BLOG where we could 'get to know' your key people. You are so advanced in every way related to your tool, but getting your message out is not as good as it could be.

Thanks,

Damon Carr

5
Suggestions and Requests / Re: Design Patterns in Base Product?
« on: February 25, 2004, 08:40:08 am »
I have downloaded those patterns and have been using them in my trial. You are correct. I would like to see these as part of the standard product, with full integration and support from Sparx.

Is that in the plans? I suppose the free add-in is 'ok', but you don't mention it in your on-line help and I think a further level of integration would be excellent, given the fact that in my opinion any serious object-oriented designer needs to be using patterns. If not, they are probably reinventing the wheel and not realizing it.

I personally regard a knowledge of design patterns as a required, essential area in software engineering. I always ask about them when I interview. It is usually: Draw on the white board the abstract factory pattern using a real case you have had. I do this even for C# developers (we are a .NET shop), but if they don't know it that is OK - but many get it pretty close - some nail it perfectly.

For OO Analysts and Designers (who would use your tool the most) that is a deal breaker for my company if they fail that question. Your tool might be the standard for us so this is very important.

Regards,
Damon Carr

6
Suggestions and Requests / Design Patterns in Base Product?
« on: February 24, 2004, 06:50:17 pm »
Do you have plans in shipping support for Design Patterns (say the Gof set) in your next release?

I have the work that was done and it is very helpful but it would be better if it was a supported, integrated feature (at least in my mind).

Regards,
Damon Carr

7
General Board / Re: Importing XML Schema (XSD)
« on: June 23, 2004, 07:55:01 am »
Thanks for the update. I emailed Geoffrey about this. I want to reverse engineer Typed Dataset XSDs from the .NET platform (ADO.NET).

I am happy to help in building this. I suppose I would need to go from XSD to XMI and then import the XMI... That could be an XSLT transform perhaps.

Something to think about..Right now I can use the integrated VS 2003 XSD editer to do this but I am trying to get clients of mine to use Sparx in more and ore ways.

I have built an add-in to Visual Studio 2003 that generates typed datasets and includes the 'Annotations'
feature which helps... I generate these from .NET providers using a little known fetaure of the IdbAdapter to fill another DataSet with just schema info, the write that DS out using the method that writes out the schema (XSD). I then manipulate the XSD to add the annotations (for names and null handling).

Kind Regards,

Damon
agilefactor


http://www.agilefactor.com/


Voice: 212.374.9359
Fax: 212.859.7359

Question to David Parnas, ACM Fellow: What are the most exciting, promising software engineering ideas or techniques on the horizon?

His Answer: I donít that the most promising ideas are on the horizon. They are already here, and have been for years, but are not being used properly.


"...it is almost always incorrect to begin the decomposition of a system into modules on the basis of a flowchart. We propose instead that one begins with a list of difficult design decisions or design decisions which are likely to change. Each module is then designed to hide such a decision from the others."

8
General Board / Re: Reverse Engineering NET 2.0
« on: July 16, 2005, 12:46:02 pm »
Oliver,

Agreed... I don't like the custom attributes either. I failed to mention we are also looking at the Reflector API as a solution. One benefit of attributes however is we can use AOP to take action on those attributes in our system for validity checking. I have written an AOP framework that illustrates how this works and let me know if you would like a copy (it is free until I evolve it enough to be something people would considering paying for and if it can be sigbigifantly better then the other AOP frameworks.. It will probably always be free).

Relationships in UML are easy (at least 1 to 1 or 0 to 1) as well as cases of aggregation and composition (simply stronger semantic versions of the relationship that people always seem to mix up - including me (girn))  that are not one to many. As you have an instance (private hopefully as public is a violation of good OO principles - You are exposing internal data of a class to the outside workd - If you need to do this add Property Accessors for your private containted instance) but one to many are vert hard as most in 1.1 use non-strongly typed collections so we have NO IDEA what is being stored in that collection. It could be an Invoice object and the private collection may store InvoiceDetail instances. We need to find a way to infer that from the code and attibutes are the only way for now to solve that.

In 2.0 of course we have Generics and Strongly Typed Collections (which I am not sure how will be exposed through reflection as I have simply not checked). That would solve that problem.

The ONLY WAY to know if a DEPENDENCY exists is often to read the code. As in my example when a method instantiates an instance of 'InvoiceDetail' but it is not a parameter to any method. The method then uses that object and perhaps stores it in that weakly types Hashtable. We would have no idea to draw that Dependency line (as by the use of the class that other class now has a dependency on InvoiceDetail) is to :

1) Read all the IL
2) See if this information is provided in either the FxCOP or the Reflector APIs

Even then it is impossible in many cases as we use metadata and reflection.

So the code might :

1) Read an item from some metadata table to get the Type that is going to be created
2) A Type is created based on the String and the Activaor is used to spin up the instrance
3) Work is done on the instance.

We are usually saved however as eventually that instance (usually through a safe-case (as)) will be cast into it's proper type from object (what an Activator usually returns). So we can use that to know even with one of our most common design patterns (and one you should all be using in the Java and .NET world) metadata driven, reflection based instantiation. Of course there is a performance overhead but this is usually so minute compared to the overhead of out of process calls (like to Oracle for example).

Anyway, we are on this... Geoffrey is also with his ability to read binary files. Our tool still has value for other UML tools that do not support this feature or where we can add value to what he has added to Sparx.

On comment to Sparx Engineering: It would be nice to specify the scope of the items we want imported. I often don't want all the private stuff imported but there is no way I am aware to avoid that now.

Kind Regards,
Damon Carr

9
General Board / Re: Reverse Engineering NET 2.0
« on: July 12, 2005, 09:59:21 am »
Oliver,

Hi! Damon Carr, CEO of agilefactor. We are working on the new Metadata format for XMI creation via DotNet2UML.

We have a dot release coming our that fixes some 1.1 bugs and then we are doing a 2.0 release. We are looking at other techniques of reflectin such as FxCop and direct binay IL reading tathern then reflection as it doesn''t have all the data we need  to catch every dependency (typicaly). Like whem a class is created in a method and GCed (eventualy) with no method argument for that class. We need to actually read the code to know that there is a dependency as that class create the other.

ONe solution is we were going to use custom attributtes but that buts the burden on the programmer to remember. In this case is tould say:

[ClassDependency("Classa", "1..1")]

I might be able to use the attributes inside the IDE to do some interesting this as well.... As I said we are still deciding (grin).

I would expect a release in the next six weeks. In the mean time, did you try the new 'Code Engineering' --> 'Import Binary Model'? That works with 1.1 and I've never tried it with 2.0. It is an actual replacement for DotNet2UML for 1.1 (I think it even works better). Geoffrey ans his team actually do read the IL if they need to. It's quite a powerful new feature.

Kind regards,
Damon carr

10
General Board / Re: Code Generation Preview
« on: July 16, 2005, 12:59:11 pm »
angel'o'sphere,

Excellent Idea!

11
General Board / Re: Code Generation Preview
« on: March 11, 2004, 03:33:52 pm »

Sparx Team,

That would be excellent and (as a developer) I cannot imagine it to be a huge effort on your part. I usually make a mistake in something small and I have to gen, open file, see mistake, fix model.

I'd rather 'preview' code, see error and fix model.

Thanks,
Damon Carr

12
General Board / Code Generation Preview
« on: March 07, 2004, 11:59:45 pm »
Is there a way to preview code generation before it is actualy saved to a file in version 3.6? I often want to just look at the code BEFORE a file is created...

Thanks,
Damon Carr

13
General Board / Latest Documentation on Sparx EA
« on: June 07, 2004, 01:20:57 pm »


Hello!

When can one find the latest and greatest documentation on all items? I just compared the 'web documentation' from my docs with the latest build and THEY WERE DIFFERENT. Is my only choice to go to the web?

Kind Regards,
Damon Carr

14
General Board / Re: EA trainer, EA Business Analyst wanted in Toro
« on: May 28, 2004, 12:53:02 am »
Francois,

I have trained hundreds of people on Sparx EA. I can work out a custom program for you. You can call me on 917-517-4010 or email me at damon@agilefactor.com.

What dev language are you using? Are you using the UML 2.0 features? What version do you have? How many days do you need?

Toronto is an easy trip from New York (I have traveled much farther). If you want to focus on Use Cases that is no problem at all.


You can check out our site here:

www.agilefactor.com

I just returned from a trip to Redmond for Microsoft and presented Sparx at the 'Financial Services Develpers Conference'. It wa a huge hit. I'm sure there were many licenses sold after that!

I can send you my resume and professional BIO after you email me. I studied Computer Science at Columbia, was the CTO of a global multi-million dollar company and now love to teach Sparx as it is such a great tool!

Kind Regards,

Damon Carr, CEO
agilefactor
www.agilefactor.com

15
Hello! Is anyone there? I need answers to this...Did Sparx build this XSD support or some third party?


Damon Carr, CEO
agilefactor

Pages: [1] 2