Re: Making Profiles "Discoverable"

Mark Fortner <[email protected]> Tue, 2 Aug 2011 07:57:55 -0700
Newsgroups gmane.comp.lang.uml.argouml.user
Message-ID <CAOwy01vQODWRBJZFYgFfLFZN6g4p7cZUr6ubLmi2a5ZycmbF0w@mail.gmail.com>
------=_Part_12343_1948322637.1312297080043
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Hi Thomas,
Thanks for the reply.  I think Profile support is one of those areas where
we haven't quite thought through how ArgoUML gets used in real-world
software development projects. Or how it might get used if people understood
some of its intricacies like profiles. ;-) Here are a couple of
case-in-points:

   1. *Setting standards:*  Invariably as soon as you have two or more
   developers you want them to be able to share certain common pieces of
   information.  Profiles containing commonly used stereotypes is one example;
   templates, is another.  In order to share information people tend to put up
   a wiki or have a shared drive.  For us this means we'd need to support more
   than one kind of file system (perhaps through Commons VFS, or eventually the
   new Java NIO file systems introduced in Java 7).  But this kind of support
   also makes profile and template development easier for us, since we can
   publish them through the website. [
   http://argouml.tigris.org/issues/show_bug.cgi?id=6189]

   2. *Evolving profiles:* Typically profiles evolve as you're modelling.
    You want to be able to create or modify profiles on the fly.  Currently the
   only way to do this is to to open a second instance of ArgoUML, and edit
   your profiles there, and then reload them in the first instance of ArgoUML.
    This obviously isn't the most intuitive or efficient way of doing it.  It
   would be nicer if you could simply right-click on the Profiles folder in the
   Explorer and add a new profile there, or modify one of the existing
   profiles.  When you create the profile you should then be allowed to create
   stereotypes and tagged data elements directly from the Explorer.

   3. *Design Reviews:* At the end of all of this modelling, you usually
   have a design review.  During the review you walk the attendees through the
   relevant parts of the design.  You can add critics to elements in the
   design, but if you do there's no way to walk through the critics grouped by
   the people that added them.  For example, I'd like to be able to go around
   the table and address the comments made by each person, but when you order
   the critics "By Poster" you get a blank folder with no title, and a list of
   critics. When you create the critic there's no way to specify the Poster of
   the critic, perhaps it should just default to the System user name property.

   4. *Existing Code Bases:* If you have an existing code base, you want to
   be able to highlight those parts of the existing code base that will change.
    Doing this with stereotypes is fine, but putting <<new>> in front of a
   method tends to get lost in some of the larger classes.  It would be useful
   to be able to turn the method compartment green (or perhaps some other
   color) to highlight that it's new.  You would want that kind of style
   information to be included in the profile so that a standard color scheme is
   used by all developers.

   5. *Code Generation: *After the design is approved, you want to quickly
   generate code and get on with the implementation.  But there are often
   artifacts generated in the code that don't belong there, [
   http://argouml.tigris.org/issues/show_bug.cgi?id=6239].  You also want to
   be able to add your own copyright header. [
   http://argouml.tigris.org/issues/show_bug.cgi?id=5093]  Having editable
   templates means that the code you generate stands a greater chance of
   passing checkstyle reviews without additional manual editing.

   6. *Testing: *If you're a TDD shop (or just someone who wants better test
   coverage) you also want to be able to generate unit tests for the code that
   you just generated. [
   http://argouml.tigris.org/issues/show_bug.cgi?id=4819]


Hope this helps,

Mark


On Tue, Aug 2, 2011 at 1:11 AM, Thomas Neustupny <[email protected]> wrote:

> Hi Mark,
>
> you can't avoid the display of the whole (system specific) path in the
> profile configuration. Also, there is no (relative) standard path to
> profiles, you configure your profile directories in edit->settings->profiles
> (default XMI directories). Hm, maybe we could strip the displayed path in
> the profile configuration if it is one of the configured directories?
>
> Sharing profiles: share the XMI files. Everyone who uses it is responsible
> for the loading of the profile in her/his ArgoUML instance. But there is
> another way to share profiles: wrap them in a module and share the .jar file
> (has just to be put into the ext/ directory of ArgoUML). Easier for the
> recipients, but requires developer skills for the creator, unless you use
> the "module generator" module, here is a doc that demonstrate the idea how
> to do it: http://argouml-modulegenerator.tigris.org/documentation.html
> So this module will create the sources of a profile module for you. I can
> help you with either that module or directly with the (reusable) profile
> module sources in case you don't want to use the module generator.
>
> Thomas
>
> -------- Original-Nachricht --------
> > Datum: Mon, 1 Aug 2011 17:38:03 -0700
> > Von: Mark Fortner <[email protected]>
> > An: [email protected]
> > Betreff: [argouml-users] Making Profiles "Discoverable"
>
> > I've been tinkering with some profiles and I was wondering if there is a
> > directory that ArgoUML will always check to "discover" available
> profiles.
> >  Perhaps the .argouml directory?  The reason I ask is that currently the
> > profiles show a complete path to any profile that you add in the
> explorer.
> >  However, I frequently move back and forth between Windows, Linux and
> > MacOS
> > X.  It would be nice if there were a single directory that I could put my
> > profiles, that would always be resolved regardless of the platform I was
> > using.
> >
> > Also, is there a way to share profiles?  I would like to be able to post
> > some profiles on our intranet, and it would be useful to be able to
> > specify
> > an http-type URL for the profiles.
> >
> > Any suggestions will be appreciated,
> >
> > Mark
> >
> > ------------------------------------------------------
> >
> http://argouml.tigris.org/ds/viewMessage.do?dsForumId=449&dsMessageId=2807930
> >
> > To unsubscribe from this discussion, e-mail:
> > [[email protected]].
>
> --
> Empfehlen Sie GMX DSL Ihren Freunden und Bekannten und wir
> belohnen Sie mit bis zu 50,- Euro! https://freundschaftswerbung.gmx.de
>
> ------------------------------------------------------
>
> http://argouml.tigris.org/ds/viewMessage.do?dsForumId=449&dsMessageId=2808098
>
> To unsubscribe from this discussion, e-mail: [
> [email protected]].
>

------------------------------------------------------
http://argouml.tigris.org/ds/viewMessage.do?dsForumId=449&dsMessageId=2808187

To unsubscribe from this discussion, e-mail: [[email protected]].
------=_Part_12343_1948322637.1312297080043
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<div>Hi Thomas,</div><div>Thanks for the reply. =A0I think Profile support =
is one of those areas where we haven&#39;t quite thought through=A0how Argo=
UML gets used in real-world software development projects. Or how it might =
get used if people understood some of its intricacies like profiles. ;-) He=
re are a couple of case-in-points:</div>
<div><ol><li><b>Setting standards:</b> =A0Invariably as soon as you have tw=
o or more developers you want them to be able to share certain common piece=
s of information. =A0Profiles containing commonly used stereotypes is one e=
xample; templates, is another. =A0In order to share information people tend=
 to put up a wiki or have a shared drive. =A0For us this means we&#39;d nee=
d to support more than one kind of file system (perhaps through Commons VFS=
, or eventually the new Java NIO file systems introduced in Java 7). =A0But=
 this kind of support also makes profile and template development easier fo=
r us, since we can publish them through the website. [<a href=3D"http://arg=
ouml.tigris.org/issues/show_bug.cgi?id=3D6189">http://argouml.tigris.org/is=
sues/show_bug.cgi?id=3D6189</a>]<br>
<br></li><li><b>Evolving profiles:</b> Typically profiles evolve as you&#39=
;re modelling. =A0You want to be able to create or modify profiles on the f=
ly. =A0Currently the only way to do this is to to open a second instance of=
 ArgoUML, and edit your profiles there, and then reload them in the first i=
nstance of ArgoUML. =A0This obviously isn&#39;t the most intuitive or effic=
ient way of doing it. =A0It would be nicer if you could simply right-click =
on the Profiles folder in the Explorer and add a new profile there, or modi=
fy one of the existing profiles. =A0When you create the profile you should =
then be allowed to create stereotypes and tagged data elements directly fro=
m the Explorer.<br>
<br></li><li><b>Design Reviews:</b>=A0At the end of all of this modelling, =
you usually have a design review. =A0During the review you walk the attende=
es through the relevant parts of the design. =A0You can add critics to elem=
ents in the design, but if you do there&#39;s no way to walk through the cr=
itics grouped by the people that added them. =A0For example, I&#39;d like t=
o be able to go around the table and address the comments made by each pers=
on, but when you order the critics &quot;By Poster&quot; you get a blank fo=
lder with no title, and a list of critics. When you create the critic there=
&#39;s no way to specify the Poster of the critic, perhaps it should just d=
efault to the System user name property.<br>
<br></li><li><b>Existing Code Bases:</b> If you have an existing code base,=
 you want to be able to highlight those parts of the existing code base tha=
t will change. =A0Doing this with stereotypes is fine, but putting &lt;&lt;=
new&gt;&gt; in front of a method tends to get lost in some of the larger cl=
asses. =A0It would be useful to be able to turn the method compartment gree=
n (or perhaps some other color) to highlight that it&#39;s new. =A0You woul=
d want that kind of style information to be included in the profile so that=
 a standard color scheme is used by all developers.<br>
<br></li><li><b>Code Generation: </b>After the design is approved, you want=
 to quickly generate code and get on with the implementation. =A0But there =
are often artifacts generated in the code that don&#39;t belong there, [<a =
href=3D"http://argouml.tigris.org/issues/show_bug.cgi?id=3D6239">http://arg=
ouml.tigris.org/issues/show_bug.cgi?id=3D6239</a>]. =A0You also want to be =
able to add your own copyright header. [<a href=3D"http://argouml.tigris.or=
g/issues/show_bug.cgi?id=3D5093">http://argouml.tigris.org/issues/show_bug.=
cgi?id=3D5093</a>] =A0Having editable templates means that the code you gen=
erate stands a greater chance of passing checkstyle reviews without additio=
nal manual editing.<br>
<br></li><li><b>Testing: </b>If you&#39;re a TDD shop (or just someone who =
wants better test coverage) you also want to be able to generate unit tests=
 for the code that you just generated. [<a href=3D"http://argouml.tigris.or=
g/issues/show_bug.cgi?id=3D4819">http://argouml.tigris.org/issues/show_bug.=
cgi?id=3D4819</a>]</li>
</ol></div><div><br></div><div>Hope this helps,</div><div><br></div><div>Ma=
rk<br>
<br><br><div class=3D"gmail_quote">On Tue, Aug 2, 2011 at 1:11 AM, Thomas N=
eustupny <span dir=3D"ltr">&lt;<a href=3D"mailto:[email protected]">[email protected]=
</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin=
:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Hi Mark,<br>
<br>
you can&#39;t avoid the display of the whole (system specific) path in the =
profile configuration. Also, there is no (relative) standard path to profil=
es, you configure your profile directories in edit-&gt;settings-&gt;profile=
s (default XMI directories). Hm, maybe we could strip the displayed path in=
 the profile configuration if it is one of the configured directories?<br>

<br>
Sharing profiles: share the XMI files. Everyone who uses it is responsible =
for the loading of the profile in her/his ArgoUML instance. But there is an=
other way to share profiles: wrap them in a module and share the .jar file =
(has just to be put into the ext/ directory of ArgoUML). Easier for the rec=
ipients, but requires developer skills for the creator, unless you use the =
&quot;module generator&quot; module, here is a doc that demonstrate the ide=
a how to do it: <a href=3D"http://argouml-modulegenerator.tigris.org/docume=
ntation.html" target=3D"_blank">http://argouml-modulegenerator.tigris.org/d=
ocumentation.html</a><br>

So this module will create the sources of a profile module for you. I can h=
elp you with either that module or directly with the (reusable) profile mod=
ule sources in case you don&#39;t want to use the module generator.<br>

<br>
Thomas<br>
<br>
-------- Original-Nachricht --------<br>
&gt; Datum: Mon, 1 Aug 2011 17:38:03 -0700<br>
&gt; Von: Mark Fortner &lt;<a href=3D"mailto:[email protected]">phidias51=
@gmail.com</a>&gt;<br>
&gt; An: <a href=3D"mailto:[email protected]">[email protected]=
rg</a><br>
&gt; Betreff: [argouml-users] Making Profiles &quot;Discoverable&quot;<br>
<div><div></div><div class=3D"h5"><br>
&gt; I&#39;ve been tinkering with some profiles and I was wondering if ther=
e is a<br>
&gt; directory that ArgoUML will always check to &quot;discover&quot; avail=
able profiles.<br>
&gt; =A0Perhaps the .argouml directory? =A0The reason I ask is that current=
ly the<br>
&gt; profiles show a complete path to any profile that you add in the explo=
rer.<br>
&gt; =A0However, I frequently move back and forth between Windows, Linux an=
d<br>
&gt; MacOS<br>
&gt; X. =A0It would be nice if there were a single directory that I could p=
ut my<br>
&gt; profiles, that would always be resolved regardless of the platform I w=
as<br>
&gt; using.<br>
&gt;<br>
&gt; Also, is there a way to share profiles? =A0I would like to be able to =
post<br>
&gt; some profiles on our intranet, and it would be useful to be able to<br=
>
&gt; specify<br>
&gt; an http-type URL for the profiles.<br>
&gt;<br>
&gt; Any suggestions will be appreciated,<br>
&gt;<br>
&gt; Mark<br>
&gt;<br>
</div></div>&gt; ------------------------------------------------------<br>
&gt; <a href=3D"http://argouml.tigris.org/ds/viewMessage.do?dsForumId=3D449=
&amp;dsMessageId=3D2807930" target=3D"_blank">http://argouml.tigris.org/ds/=
viewMessage.do?dsForumId=3D449&amp;dsMessageId=3D2807930</a><br>
&gt;<br>
&gt; To unsubscribe from this discussion, e-mail:<br>
&gt; [<a href=3D"mailto:[email protected]">users-unsubsc=
[email protected]</a>].<br>
<font color=3D"#888888"><br>
--<br>
Empfehlen Sie GMX DSL Ihren Freunden und Bekannten und wir<br>
belohnen Sie mit bis zu 50,- Euro! <a href=3D"https://freundschaftswerbung.=
gmx.de" target=3D"_blank">https://freundschaftswerbung.gmx.de</a><br>
<br>
------------------------------------------------------<br>
<a href=3D"http://argouml.tigris.org/ds/viewMessage.do?dsForumId=3D449&amp;=
dsMessageId=3D2808098" target=3D"_blank">http://argouml.tigris.org/ds/viewM=
essage.do?dsForumId=3D449&amp;dsMessageId=3D2808098</a><br>
<br>
To unsubscribe from this discussion, e-mail: [<a href=3D"mailto:users-unsub=
[email protected]">[email protected]</a>].<br>
</font></blockquote></div><br></div>

------=_Part_12343_1948322637.1312297080043--