ru
diagram {
/* line-style: sloppy 0.3; */
}
controlflow {
dash-style: 0;
}
Wallenc
1. Прецеденты
2. Анализ Предметной области
3. Архитектурный Дизайн
Мобильное приложение
uc
Прецеденты
Анализируйте функциональные требования,
определив роли пользователей – акторов – и
связав их с их прецедентами.
(1.0, 0.0, 0.0, 1.0, 93.76953125, 79.1953125)
(0.0, 0.0)
258.0
93.0
act
Сценарии Прецедентов
Моделируйте реализацию абстрактного прецедента, создав диаграммы деятельности, визуализирующие потоки действий для основных и второстепенных прецедентов.
(1.0, 0.0, 0.0, 1.0, 58.0, 79.0)
(0.0, 0.0)
364.0
95.0
cls
Сущности Домена
Выполняйте анализ предметной области путём моделирования доменных объектов и их связей с помощью упрощённой диаграммы классов. Эта диаграмма будет служить визуальным словарём понятий. Это также станет отправной точкой для модели данных уровня проектирования.
(1.0, 0.0, 0.0, 1.0, 0.0, 58.30000000000007)
(0.0, 0.0)
400.0
110.0
pkg
Зависимости Пакета
sd
Взаимодействия
Подготовьте диаграмму зависимостей пакетов, чтобы соответствующим образом сгруппировать классы реализации. Это поможет поддерживать хорошо структурированный код и избегать недостатков проектирования, таких как циклические зависимости или зависимости от нестабильных частей.
(1.0, 0.0, 0.0, 1.0, 106.71484375, 51.49999999999997)
(0.0, 0.0)
271.5703125
212.0
Model component interactions for use case scenarios in order to find out new methods in
existing classes or even new classes with specific responsibilities.
(1.0, 0.0, 0.0, 1.0, 43.0, 73.0)
(0.0, 0.0)
322.0
93.0
cls
Взаимосвязь пакетов
(1.0, 0.0, 0.0, 1.0, 100.0, 100.0)
(0.0, 0.0)
85.0
70.0
Domain
cls
Domain Диаграмма классов
Data
cls
Data Диаграмма Классов
(1.0, 0.0, 0.0, 1.0, -166.66017150878906, 7.74609375)
(0.0, 0.0)
226.0
173.4
(1.0, 0.0, 0.0, 1.0, 171.25390625, 4.573046875000017)
(-9.948932077648351, 0.0)
171.94893207764835
179.74609374999997
IStorage
(1.0, 0.0, 0.0, 1.0, 724.0, 986.0)
(0.0, 0.0)
374.0
227.0
0
1
size
StateFlow<Integer>
1
numberOfFiles
StateFlow<Integer>
IMetaInfo
(1.0, 0.0, 0.0, 1.0, 762.45, 0.0)
(0.0, 0.0)
297.09999999999997
168.0
0
0
1
size
Integer
1
isDeleted
Boolean
1
isHidden
Boolean
1
lastModified
DateTime
1
name
StateFlow<String>
IEncryptedVault
Хранилище, управляющее зашифрованными кошельками. Можеть быть как локальным, так и удалённым.
(1.0, 0.0, 0.0, 1.0, 156.5, 1331.5)
(0.0, 0.0)
439.0
193.0
0
1
uuid
String
EncryptKey
(1.0, 0.0, 0.0, 1.0, 192.5, 1045.5)
(0.0, 0.0)
417.0
108.0
EncryptKey
in
hashedKey
String
EncryptKey
in
password
String
in
numOfHashes
Integer
1
hashedKey
String
createStorage
in
name
String
in
key
EncryptKey
0
0
(1.0, 0.0, 0.0, 1.0, -133.3514760558922, 694.9345509958349)
[(530.2814760558922, 458.5654490041651), (516.6814760558922, 636.5654490041651)]
removeStorage
IUseCase
(1.0, 0.0, 0.0, 1.0, 613.5, 1391.0)
(0.0, 0.0)
157.0
74.0
0
0
0
ManageLocalStoragesUseCase
(1.0, 0.0, 0.0, 1.0, 349.5, 1878.0)
(0.0, 0.0)
349.0
108.0
0
0
0
(1.0, 0.0, 0.0, 1.0, 1237.7376951267042, -136.8144539826019)
[(-554.3376951267043, 1601.814453982602), (-587.7376951267042, 1742.814453982602), (-587.7376951267042, 1941.814453982602), (-660.2976951267042, 2014.814453982602)]
Деятельность
getAll
return
List<IStorage>
createStorage
in
name
String
in
key
EncryptKey
removeStorage
in
storage
IStorage
IStorageExplorer
(1.0, 0.0, 0.0, 1.0, 789.0, 1323.0)
(0.0, 0.0)
388.0
210.0
0
1
currentPath
StateFlow<Uri>
+ getFilesStream(): Flow<DataPackage<IFile>>
IFile
(1.0, 0.0, 0.0, 1.0, 628.5, 286.5)
(0.0, 0.0)
257.0
108.0
0
1
metaInfo
IMetaInfo
IDirectory
(1.0, 0.0, 0.0, 1.0, 904.0, 278.0)
(0.0, 0.0)
322.0
125.0
0
1
0
0
elementsCount
Integer
1
1
1
metaInfo
IMetaInfo
+ getDirsStream(): Flow<DataPackage<IDirectory>>
0
0
0
(1.0, 0.0, 0.0, 1.0, 1545.0190727547713, 182.35724811729017)
[(-507.0190727547713, 220.64275188270983), (-554.8890727547713, 330.64275188270983)]
changeDir
in
path
Uri
goUp
goToRoot
1
path
Uri
IStorageAccessor
(1.0, 0.0, 0.0, 1.0, 692.5, 513.0)
(0.0, 0.0)
437.0
363.0
0
1
name
String
getAllFiles
getAllDirs
1
+ totalSpace: StateFlow<Integer[0..1]>
rename
in
newName
String
1
+ availableSpace: StateFlow<Integer[0..1]>
touchFile
in
path
Uri
touchDir
in
path
Uri
delete
in
path
Uri
getFileInfo
in
path
Uri
getDirInfo
in
path
Uri
openWrite
return
Stream
in
path
Uri
openRead
return
Stream
in
path
Uri
moveToTrash
in
path
Uri
1
accessor
IStorageAccessor
1
storage
IStorage
private
in
storage
IStorage
return
IReadOnlyList<IFile>
return
IReadOnlyList<IDirectory>
getFiles
return
IReadOnlyList<IFile>
in
path
Uri
getDirs
return
IReadOnlyList<IDirectory>
in
path
Uri
1
isAvailable
StateFlow<Boolean>
1
+ filesUpdates: SharedFlow<DataPackage<IFile>>
1
+ dirsUpdates: SharedFlow<DataPackage<IDirectory>>
0
0
0
(1.0, 0.0, 0.0, 1.0, 243.16039962225034, 245.31631894795726)
[(537.2296003777496, 149.18368105204274), (588.8196003777497, 267.68368105204274)]
0
0
(1.0, 0.0, 0.0, 1.0, 797.1546434276883, 342.4519561875513)
[(113.84535657231174, 533.5480438124487), (113.84535657231174, 643.5480438124487)]
0
0
(1.0, 0.0, 0.0, 1.0, 203.10890581080406, 345.69270684881207)
[(758.321094189196, -177.69270684881207), (824.5910941891959, -67.69270684881207)]
shared
0
0
(1.0, 0.0, 0.0, 1.0, 138.30896896823918, 350.69522175455927)
[(722.2610310317609, -182.69522175455927), (651.0510310317609, -64.19522175455927)]
shared
createStorage
in
name
String
in
key
EncryptKey
in
uuid
String
VaultType
(1.0, 0.0, 0.0, 1.0, 0.0, 1049.5)
(0.0, 0.0)
174.0
100.0
0
0
Local
YandexRestApi
1
type
VaultType
0
0
(1.0, 0.0, 0.0, 1.0, -109.95392950161418, 1061.2568399683112)
[(239.0639295016142, 88.24316003168883), (292.9539295016142, 151.74316003168883), (399.6139295016142, 270.24316003168883)]
IVaultManager
(1.0, 0.0, 0.0, 1.0, 169.0, 1643.0)
(0.0, 0.0)
450.0
125.0
0
addYandexVault
in
email
String
in
token
String
0
0
(1.0, 0.0, 0.0, 1.0, -3.937961831953544, 1265.191054009214)
[(386.2079618319535, 259.308945990786), (393.91796183195356, 377.808945990786)]
0
0
(1.0, 0.0, 0.0, 1.0, 76.1644392789674, 1603.616666567455)
[(353.7055607210326, 164.383333432545), (416.93556072103263, 274.383333432545)]
ExploreStorageUseCase
(1.0, 0.0, 0.0, 1.0, 746.0, 1668.5)
(0.0, 0.0)
338.0
74.0
invoke
return
IStorageExplorer
in
storage
IStorage
0
0
(1.0, 0.0, 0.0, 1.0, 170.73279888914223, 1639.1926984920697)
[(550.6472011108577, -174.19269849206967), (714.8172011108577, 29.307301507930333)]
0
0
(1.0, 0.0, 0.0, 1.0, 167.51053522145116, 1885.7765431223293)
[(789.7794647785488, -352.77654312232926), (756.4394647785489, -217.27654312232926)]
DataPage<List<T>>
(1.0, 0.0, 0.0, 1.0, 1244.0, 290.5)
(0.0, 0.0)
278.0
100.0
0
1
pageLength
Integer
0
0
(1.0, 0.0, 0.0, 1.0, 810.8769280866725, 1115.1125252125555)
[(-84.74692808667248, 97.88747478744449), (-277.5869280866725, 216.3874747874445)]
composite
0
0
*
*
1
uuid
String
+ getFilesStream(in path: Uri): Flow<DataPackage<IFile>>
+ getDirsStream(in path): Flow<DataPackage<IDirectory>>
1
storages: StateFlow<List<IStorage>>
1
isAvailable
StateFlow<Boolean>
1
isAvailable
StateFlow<Boolean>
localVault
StateFlow<IEncryptedVault>
remoteVaults: StateFlow<IReadOnlyList<IEncryptedVault>>
DataPackage<T>
(1.0, 0.0, 0.0, 1.0, 1238.0, 17.0)
(0.0, 0.0)
290.0
134.0
0
0
0
(1.0, 0.0, 0.0, 1.0, 1254.0690161527355, -112.28501339841085)
[(128.93098384726454, 402.78501339841085), (128.93098384726454, 263.28501339841085)]
1
data
T
1
0
0
hasNext
Boolean
1
1
1
pageNumber
Integer
1
0
0
isLoading
Boolean
1
1
1
0
0
isError
Boolean
1
1
0
0
(1.0, 0.0, 0.0, 1.0, 959.5327755485932, 1132.134334488268)
[(-23.65277554859324, 80.865665511732), (0.45722445140677337, 190.865665511732)]