Avatar billede bildsoe Nybegynder
19. januar 2012 - 12:19 Der er 8 kommentarer og
1 løsning

UML modellering - funktionskald, og singleton.

Hej

Jeg er begynder i UML, og programmering i det hele taget, og er i gang med at prøve at modellere min applikation i UML.

Det første jeg har prøvet at lave er et klassediagram og i den sammenhæng er jeg kommet lidt i tvivl.

Jeg arbejder på et plugin til Cad-programmet Rhino, og bruger nogle forms i plugin'et. Fordi formene kun skal kunne åbnes en gang har jeg fundet en god singleton-factory jeg bruger til at få fat i det åbne instance af en form eller åbne formen.

Følgende er et eksempel på en klasse, hvorfra jeg åbner en form. Hvordan modellerer jeg det i UML for return typen på metoden er jo Rhino.Commands.Result, men jeg vil gerne illustrere i modellen at der bliver åbnet en form. Hvordan gøres dette?

public class AdapaConnect : Rhino.Commands.Command
{
protected override Rhino.Commands.Result RunCommand(RhinoDoc doc, Rhino.Commands.RunMode mode)
        {

            ConnectionForm cf = SingletonFormProvider.GetInstance<ConnectionForm>(null);

            cf.Show();

            return Rhino.Commands.Result.Success;
        }
}

Derudover er jeg lidt i tvivl om, hvordan man modellerer en singleton. Jeg har følgende kode:

public sealed class SerialConnector
    {
        private static readonly SerialConnector instance = new SerialConnector();

        public static SerialConnector Instance
        {
            get
            {
                return instance;
            }
        }
    }

(i)nstance er jo en property, med en datatype der er SerialConnector og (I)nstance er også en property, og den har jo også SerialConnector som type, men den returnerer jo (i)nstance. Jeg har prøvet at lave den som følgende men synes ikke det illustrerer ret godt at der er tale om en singleton:

http://www.bildsoe.dk/uml/uml01.png

På forhånd tak :)
Avatar billede arne_v Ekspert
19. januar 2012 - 23:56 #1
Med hensyn til singleton saa ville jeg:
- lave en custom stereotype Singleton
- putte den paa klasserne
- ikke angive instance field/property i modellen
Avatar billede arne_v Ekspert
19. januar 2012 - 23:57 #2
At aabne en form skal vel ikke vises i et class diagram men maaske vises i et sequence diagram.
Avatar billede bildsoe Nybegynder
20. januar 2012 - 11:01 #3
Jeg har lavet en singleton stereotype, men hvorfor angiver man ikke instance?

Hvis nu den form der genereres er vigtig for sammenhængen og der bliver refereret til den fra mange steder? kunne det så ikke være en idé at vise den i klassediagrammet?

Ville du forstå, hvad jeg vil opnå, hvis du læste dette diagram?
http://www.bildsoe.dk/uml/uml02.png
Avatar billede bildsoe Nybegynder
20. januar 2012 - 15:08 #4
Lige et rettet, og lidt udvidet...

http://www.bildsoe.dk/uml/uml03.png
Avatar billede arne_v Ekspert
20. januar 2012 - 15:23 #5
Formaalet med UML er at give et overblik. Hvis UML viser lige saa mange detaljer som koden, saa kan man lige saa godt laese koden.

Derfor skal der fokuseres paa det vaesentlige i UML.

Det er vaesentligt at en klasse er en singleton. Det er vaesentligt hvilke rigtige properties klassen har.

Men om singleton er lavet:
* tude grimt med et public static field
* traditinelt GoF singleton pattern
* med et IoC/DI framework som understoetter singleton ifoelge seneste mode
er efter min mening ikke vigtigt for overblikket. Hvis man vil vide hvordan singleton status er opnaaet, saa kan man laese koden.
Avatar billede bildsoe Nybegynder
23. januar 2012 - 13:57 #6
Tak for svaret Arne. Kender du til nogen forums, hvor der diskuteres UML, og hvor man evt. kunne få respons på dem man har lavet?

Smid svar så får du point.
Avatar billede bildsoe Nybegynder
23. januar 2012 - 13:57 #7
Tak for svaret Arne. Kender du til nogen forums, hvor der diskuteres UML, og hvor man evt. kunne få respons på dem man har lavet?

Smid svar så får du point.
Avatar billede arne_v Ekspert
23. januar 2012 - 15:29 #8
* generel programmerings forum
  - her
  - stackoverflow
  etc.
* usenet comp.object
* http://groups.yahoo.com/group/uml-forum/ (ser ud til at vaere blvet overtaget af spammere)
* http://objectmix.com/
* http://forums.visual-paradigm.com/forums/show/9.html
Avatar billede arne_v Ekspert
23. januar 2012 - 15:29 #9
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester