Come dovrebbero essere mostrate le librerie nel diagramma delle classi UML?

4

Forse il titolo non è chiaro, quindi lo spiegherò un po 'oltre. Io uso biojava per eseguire ricerche BLAST. Tuttavia questo BLAST.jar contiene molte classi:

org/biojava/bio/program/PdbToXMLConverter
org/biojava/bio/program/sax/ClustalWAlignmentSAXParser
org/biojava/bio/program/sax/SummaryLineHelperIF
org/biojava/bio/program/sax/BlastLikeAlignmentSAXParser
org/biojava/bio/program/sax/AbstractNativeAppSAXParser
org/biojava/bio/program/sax/GenericSAXParserTest
org/biojava/bio/program/sax/NamespaceConfigurationIF
org/biojava/bio/program/sax/HSPSummaryHelper
org/biojava/bio/program/sax/SimpleXMLEmitterTestHelper
org/biojava/bio/program/sax/BlastSAXParser
org/biojava/bio/program/sax/GCGBlastSummaryLineHelper
org/biojava/bio/program/sax/NcbiBlastSummaryLineHelper
org/biojava/bio/program/sax/QName
org/biojava/bio/program/sax/WuBlastSummaryLineHelper
org/biojava/bio/program/sax/blastxml/StAXHandlerFactory
org/biojava/bio/program/sax/blastxml/HspHandler
org/biojava/bio/program/sax/blastxml/BlastAggregator
org/biojava/bio/program/sax/ blastxml/IterationHitsHandler
org/biojava/bio/program/sax/blastxml/BlastOutputHandler
org/biojava/bio/program/sax/blastxml/BlastOutputIterationsHandler
org/biojava/bio/program/sax/blastxml/HitHandler
org/biojava/bio/program/sax/blastxml/StAXFeatureHandlerMod
org/biojava/bio/program/sax/blastxml/IterationHandler
org/biojava/bio/program/sax/blastxml/BlastXMLParserFacade
org/biojava/bio/program/sax/blastxml/StAXFeatureHandler
org/biojava/bio/program/sax/blastxml/HitHspsHandler
org/biojava/bio/program/sax/blastxml/BlastXMLParser
org/biojava/bio/program/sax/FastaSequenceSAXParser
org/biojava/bio/program/sax/PdbSAXParser
org/biojava/bio/program/sax/HitSectionSAXParser
org/biojava/bio/program/sax/BlastLikeSAXParser
org/biojava/bio/program/sax/FastaSearchParser
org/biojava/bio/program/sax/BlastLikeVersionSupport
org/biojava/bio/program/sax/SequenceAlignmentSAXParser
org/biojava/bio/program/sax/BaseXMLWriterTest Helper
org/biojava/bio/program/sax/FastaSearchSAXParser
org/biojava/bio/program/sax/HmmerAlignmentSAXParser
org/biojava/bio/program/sax/NeedleAlignmentSAXParser
org/biojava/bio/program/sax/DomainSectionSAXParser
org/biojava/bio/program/sax/HmmerSummaryLineHelper
org/biojava/bio/program/BlastLikeToXMLConverter
org/biojava/bio/program/ssbind/StAXHandlerFactory
org/biojava/bio/program/ssbind/SeqSimilarityStAXHandler
org/biojava/bio/program/ssbind/StAXHandlerBinding
org/biojava/bio/program/ssbind/HSPSummaryStAXHandler
org/biojava/bio/program/ssbind/BlastLikeHomologyBuilder
org/biojava/bio/program/ssbind/ViewSequenceFactory
org/biojava/bio/program/ssbind/SeqSimilarityStAXAdapter
org/biojava/bio/program/ssbind/AlphabetResolver
org/biojava/bio/program/ssbind/HeaderStAXHandler
org/biojava/bio/program/ssbind/HitStAXHandler
org/biojava/bio/program/ssbind/SeqSimilarityAdapter
org/biojava/bio/program/ssbind/Simi larityPairBuilder
org/biojava/bio/program/ssbind/AlignmentStAXHandler
org/biojava/bio/program/ssbind/HSPStAXHandler
org/biojava/bio/program/ssbind/BlastLikeSearchBuilder

Le interazioni tra queste classi dovrebbero essere mostrate nel diagramma delle classi UML? In caso contrario, quale approccio viene utilizzato per mostrare le librerie già esistenti in un diagramma di classi UML?

    
posta KingBoomie 07.03.2017 - 19:50
fonte

2 risposte

4

Ci sono alcune opzioni.

Potresti lasciare queste lezioni completamente fuori. Semplificherebbe enormemente il tuo diagramma, ma se hai classi che sono inerenti, estendono, contengono composizioni o aggregazioni di, o comunque hanno relazioni simili, allora questo può portare ad ambiguità nel tuo digram.

Potresti includere un pacchetto nel tuo diagramma. Qualsiasi classe che abbia una relazione con una di queste classi potrebbe avere una relazione con il pacchetto. Di nuovo, questo potrebbe lasciare delle ambiguità agli occhi del lettore.

Potresti includere queste classi sul diagramma, ma non mostrare attributi o metodi. In questo modo, le tue classi (che verrebbero probabilmente mostrate in maggior dettaglio) avranno relazioni specifiche con le classi in questa libreria. Se scegli, puoi inserire tutte queste classi all'interno di un pacchetto per indicare che appartengono tutte a un pacchetto, anche se trovo che diminuisca la leggibilità.

Ricorda che potresti non aver bisogno di mostrare queste classi su un diagramma di classe. A seconda di come li stai usando e di come sono collegati alle tue classi, potrebbe solo diminuire la leggibilità. Usa il tuo giudizio su quali caratteristiche mostrare su diversi diagrammi.

    
risposta data 07.03.2017 - 20:10
fonte
2

Dipende da ciò che vuoi visualizzare nel tuo diagramma UML.

Raramente mostri tutte le relazioni oggettuali di un progetto non banale in un singolo diagramma UML. Ciò si trasformerebbe rapidamente in un pasticcio illeggibile di cui nessuno può fare nulla. Solitamente usi UML come strumento per visualizzare un aspetto specifico della tua architettura software, tralasciando tutti i dettagli che non contano per quello che vuoi spiegare.

A volte vuoi spiegare le interazioni tra le tue entità ed entità dalle biblioteche. In quel caso visualizzerai queste entità usando gli stessi simboli che usi per il tuo. Ma anche in questo caso includeresti solo quelli che sono interessanti.

    
risposta data 07.03.2017 - 22:16
fonte

Leggi altre domande sui tag