Open sirex opened 1 week ago
UML klasių diagramose, šie žymėjimai nurodo kiek plačiai matomi modelio elementai, modelis matomas visoms EU šalims +
, ar tik Lietuvoje ~
ar tik vienoje IS #
.
Iš oficialios UML 2.5.1 specifikacijos:
- public (
+
)- A NamedElement with public visibility is visible to all elements that can access the contents of the Namespace that owns it.- package (
~
) - A NamedElement with package visibility is visible to all Elements within the nearest enclosing Package (given that other owning Elements have proper visibility). Outside the nearest enclosing Package, a NamedElement marked as having package visibility is not visible. Only NamedElements that are not owned by Packages can be marked as having package visibility- protected (
#
) - A NamedElement with protected visibility is visible to Elements that have a generalization relationship to the Namespace that owns it.- private (
-
) - A NamedElement with private visibility is only visible inside the Namespace that owns it.
Todėl UML atveju, tai vadiname visibility, o DSA atveju yra kitas, nesusijęs su UML visibility metaduomuo vadinamas status
, kuris nurodo išbaigtumą.
Jei DSA status
nėra COMPLETED, tada UML visibility gali būti tik -
(private).
Jei DSA uri
nėra užpildytas, tada UML visibility gali būti ne didesnis nei ~
(package), t.y. matomas tik Lietuvoje, apsikeitimui tarp Lietuvos IS.
Jei elementas nėra aprašytas IS nuostatuose, tada UML visibility gali būti ne didesnis, nei #
(protected), t.y. matomas, tik vienos IS ribose.
Kyla klausimas, gal UML visibility analogą reikėtu įtraukti ir į DSA?
DSA access
- galėtu nurodyti duomenų prieigos lygmenis.
DSA visible
- galėtu nurodyti metaduomenų prieigos lygmenis.
Šiuo metu UML visibility žymės yra siejamos su DSA
access
:+
- UML Public - DSAaccess=open
~
- UML Package (default) - DSAaccess=public
#
- UML Protected - DSAaccess=protected
-
- UML Private - DSAaccess=private
DSA
access
nurodo duomenų prieinamumą, tačiau UML visibility kalba apie duomenų modelio elementų matomumą ir mano supratimu tai yra labiau sietina su metaduomenų prieinamumu.Siūlau atskirti
access
ir įtraukti naują stulpelį į DSA pavadinimuvisibility
, kuris sutaptu su UML visibility žymėmis:+
public
base=/
iruri
užpildytas~
package
base=/
#
protected
(default)base=_
(#27)-
private
DSA
visibility
nurodytu metaduomenų matomumą, oaccess
duomenų prieigos lygmenį:visibility
- nurodo metaduomenų prieigos lygmenįaccess
- nurodo duomenų prieigos lygmenįSusiję