Skip to content

Latest commit

 

History

History
1255 lines (1062 loc) · 21.8 KB

dev.adoc

File metadata and controls

1255 lines (1062 loc) · 21.8 KB

開発

1. ユースケース

1.1. 認証

@startuml
left to right direction
actor "ユーザー" as member
actor "管理者" as admin
rectangle ユーザー認証 {
  usecase "管理者を認証する" as UC1
  usecase "ユーザーを認証する" as UC2
}
admin --> UC1
member --> UC2
@enduml

1.2. ユーザー管理

@startuml
left to right direction
actor "管理者" as admin
rectangle ユーザー管理 {
    usecase "ユーザー一覧を取得する" as UC1
    usecase "ユーザーを新規登録する" as UC2
    usecase "ユーザーを取得する" as UC3
    usecase "登録済みユーザーを更新登録する" as UC4
    usecase "登録済みユーザーを削除する" as UC5
}
admin --> UC1
admin --> UC2
admin --> UC3
admin --> UC4
admin --> UC5
@enduml

1.3. マスタ管理

1.3.1. 部門

left to right direction
actor "管理者" as admin
rectangle マスタ管理 {
 rectangle 部門 {
    (部門一覧)
    (部門詳細)
    (部門新規作成)
    (部門編集)
    (部門削除)
 }
}
admin --> (部門一覧)
admin --> (部門詳細)
admin --> (部門新規作成)
admin --> (部門編集)
admin --> (部門削除)

@enduml

1.3.2. 社員

left to right direction
actor "管理者" as admin
rectangle マスタ管理 {
 rectangle 社員 {
    (社員一覧)
    (社員詳細)
    (社員新規作成)
    (社員編集)
    (社員削除)
 }
}
admin --> (社員一覧)
admin --> (社員詳細)
admin --> (社員新規作成)
admin --> (社員編集)
admin --> (社員削除)

@enduml

1.3.3. 商品

left to right direction
actor "管理者" as admin
rectangle マスタ管理 {
 rectangle 商品 {
    (商品分類一覧)
    (商品分類詳細)
    (商品分類新規作成)
    (商品分類編集)
    (商品分類削除)
    (商品一覧)
    (商品詳細)
    (商品新規作成)
    (商品編集)
    (商品削除)
 }
}
admin --> (商品一覧)
admin --> (商品詳細)
admin --> (商品新規作成)
admin --> (商品編集)
admin --> (商品削除)
admin --> (商品分類一覧)
admin --> (商品分類詳細)
admin --> (商品分類新規作成)
admin --> (商品分類編集)
admin --> (商品分類削除)

@enduml

1.4. 監査

@startuml
left to right direction
actor "管理者" as admin
actor "ユーザー" as user

rectangle アプリケーション実行履歴 {
   (実行履歴一覧)
   (実行履歴検索)
   (実行履歴詳細)
   (実行履歴削除)
}

admin --> (実行履歴一覧)
admin --> (実行履歴検索)
admin --> (実行履歴詳細)
admin --> (実行履歴削除)
user --> (実行履歴一覧)
user --> (実行履歴検索)
user --> (実行履歴詳細)

@enduml

1.5. ダウンロード

@startuml
left to right direction
actor "管理者" as admin
actor "ユーザー" as user
rectangle アプリケーションデータのダウンロード {
   (データダウンロード)
}

admin --> (データダウンロード)
user --> (データダウンロード)

@enduml

2. 仕様

2.1. 認証

link:./assets/system/Auth.feature[role=include]

2.2. ユーザー管理

link:./assets/system/User.feature[role=include]

2.3. マスタ管理

2.3.1. 部門

link:./assets/master/Department.feature[role=include]

2.3.2. 社員

link:./assets/master/Employee.feature[role=include]

2.3.3. 商品

link:./assets/master/Product.feature[role=include]

2.4. 監査

link:./assets/system/Audit.feature[role=include]

2.5. ダウンロード

link:./assets/system/Download.feature[role=include]

3. アーキテクチャ

3.1. フロントエンド

@startuml
title: App

class Component {}

class Model {}

class View {}

class App {}

class Service {}

App -> Component
Component --> View
View -> Model
Component --> Model
Component -> Service

@enduml

3.2. バックエンド

@startuml
title: Api

package "プレゼンテーション層" as UI {
	class Controller
}

package "サービス層" as APP{
	class Service
}

package "インフラストラクチャ層" as IF {
	class DataSource
}

package "ドメイン層" as DOMAIN{
    package "Model" as MODEL {
        class User
        class Auth
    }
}

database データベース as DB {

}

UI ---> APP
Service -> MODEL
APP ---> IF
DataSource --> DB

@endtuml
link:./assets/ArchitectureRuleTest.java[role=include]

4. データモデル

library er summary
relationships.implied.compact

5. ドメインモデル

5.1. 認証・ユーザー

@startuml
class 認証ユーザー
class ユーザー一覧
class ユーザー
class ユーザーID
class パスワード
class 役割
class 名前

認証ユーザー *- ユーザー
ユーザー一覧 *-- ユーザー
ユーザー *-- ユーザーID
ユーザー *-- パスワード
ユーザー *-- 役割
ユーザー *-- 名前

@enduml

5.2. 部門・社員

@startuml
class 部門一覧
class 部門

class 社員一覧
class 社員
class ユーザー

部門一覧 *-- 部門
部門 *-- 社員
社員一覧 *-- 社員
社員 o- ユーザー

@enduml

5.3. 商品

@startuml
class 商品分類一覧
class 商品分類
class 商品一覧
class 商品
class 代替商品
class 部品表
class 顧客別販売単価
class 通貨
class 数量

商品分類一覧 *-- 商品分類
商品分類 o- 商品
商品一覧 *-- 商品
商品 o-- 代替商品
商品 o-- 部品表
商品 o- 顧客別販売単価
商品 *-- 通貨
顧客別販売単価 *-- 通貨
部品表 *-- 数量

@enduml

5.4. 監査

@startuml
class 実行履歴一覧
class 実行履歴
class ユーザー
class 社員

実行履歴一覧 *- 実行履歴
実行履歴 *-- ユーザー
ユーザー o- 社員

@enduml

6. ユーザーインターフェース

6.1. ビュー

6.1.1. 認証

@startsalt
{+
  ログイン画面
  {+
    {
      [  ログイン   ]
      ---------------------
      ユーザーID    | "MyName   "
      パスワード | "****     "
    }
  }
----------------
  ホーム画面
  {+
  {
  ホーム
  ログアウト
  } |
  {
    {
      <b>お知らせ
    }
    ---------------------
    {
        2020/01/01 お知らせ内容
        2020/01/02 お知らせ内容
        2020/01/03 お知らせ内容
    }
  }
  }
}
@endsalt

6.1.2. ユーザー管理

@startsalt
{+
  ユーザー管理画面(コレクション)
  {+
  {
  ホーム
  ユーザー
  ログアウト
  } |
  {
    {
      <b>ユーザー一覧</b>
    }
    [  新規登録  ]
    ---------------------
    {
      Uxxxxxx | User1    | [  編集  ] | [  削除  ]
      Uxxxxxx | User2    | [  編集  ] | [  削除  ]
      Uxxxxxx | User3    | [  編集  ] | [  削除  ]
    }
  }
  }
  ----------------
    ユーザー管理画面(シングル)
    {+
        {
        [  保存   ]
        ---------------------
        ユーザーID    | "Uxxxxxx"   "
        姓           | "MyName   "
        名           | "MyName   "
        パスワード | "****     "
        役割       | ^Admin     ^^User    ^
        }
    }
}
@endsalt

6.1.3. マスタ管理

部門
@startsalt
{+
  部門画面(コレクション)
  {+
     {
      ホーム
      ユーザー
      マスタ
      ログアウト
      } |
      {
        {
          <b>部門一覧</b>
        }

        [  新規登録  ] | [ 一括削除  ]
        ---------------------
        {
          1xxxxxx | 部門1    | [  編集  ] | [  削除  ]
          1xxxxxx | 部門2    | [  編集  ] | [  削除  ]
          1xxxxxx | 部門3    | [  編集  ] | [  削除  ]
        }
      }
  }
  ----------------
  部門画面(シングル)
  {+
      {
        [  保存   ]
        ---------------------
        部門コード    | "1xxxxxx"   "
        部門名        | "部門1    "
        開始日        | "2021/01/01"
        終了日        | "9999/12/31"
        最下層区分  | () Yes   () No
      }

     <b>社員一覧</b>
     [  追加  ]
    ---------------------
    {
      EMPxxx | 社員1   | [  削除  ]
      EMPxxx | 社員2   | [  削除  ]
      EMPxxx | 社員3   | [  削除  ]
    }
  }
}
@endsalt
社員
@startsalt
{+
  社員一覧選択画面(コレクション)
  {+
    {
      <b>社員一覧</b>
    }
    ---------------------
    {
      EMPxxx | 社員1   | [  選択  ]
      EMPxxx | 社員2   | [  選択  ]
      EMPxxx | 社員3   | [  選択  ]
    }
  }
  ----------------
  社員一覧画面(コレクション)
  {+
     {
      ホーム
      ユーザー
      マスタ
      ログアウト
      } |
      {
        {
          <b>社員一覧</b>
        }
        [  新規登録  ] | [ 一括削除  ]
        ---------------------
        {
          EMPxxx | 社員1    | [  編集  ] | [  削除  ]
          EMPxxx | 社員2    | [  編集  ] | [  削除  ]
          EMPxxx | 社員3    | [  編集  ] | [  削除  ]
        }
      }
  }
  ----------------
  社員画面(シングル)
  {+
        {
        [  保存   ] | [ 部門一覧 ] | [ ユーザー一覧 ]
        ---------------------
        社員コード    | "EMPxxx"   "
        姓           | "MyName   "
        名           | "MyName   "
        部門          | "部門1    "
        ユーザー      | "user1    "
        }
  }
  ----------------
  部門一覧選択画面(コレクション)
  {+
      {
        {
          <b>部門一覧</b>
        }
        ---------------------
        {
          1xxxxxx | 部門1    | [  選択  ]
          1xxxxxx | 部門2    | [  選択  ]
          1xxxxxx | 部門3    | [  選択  ]
        }
      }
  }
  ----------------
  ユーザー一覧選択画面(コレクション)
  {+
    {
      <b>ユーザー一覧</b>
    }
    ---------------------
    {
      Uxxxxxx | User1    | [ 選択  ]
      Uxxxxxx | User2    | [ 選択  ]
      Uxxxxxx | User3    | [ 選択  ]
    }
  }
}
@endsalt
商品
@startsalt
{+
  商品分類一覧画面(コレクション)
  {+
     {
      ホーム
      ユーザー
      マスタ
      ログアウト
      } |
      {
        {
          <b>商品分類一覧</b>
        }

        [  新規登録  ] | [ 一括削除  ]
        ---------------------
        {
          1xxxxxx | 商品分類1    | [  編集  ] | [  削除  ]
          1xxxxxx | 商品分類2    | [  編集  ] | [  削除  ]
          1xxxxxx | 商品分類3    | [  編集  ] | [  削除  ]
        }
      }
  }
  ----------------
  商品分類画面(シングル)
  {+
      {
        [  保存   ]
        ---------------------
        商品分類コード    | "1xxxxxx"   "
        商品分類名        | "商品分類1    "
      }

      <b>商品一覧</b>
      [ 追加 ]
      ---------------------
      {
        1xxxxxx | 商品1    | [  削除  ]
        1xxxxxx | 商品2    | [  削除  ]
        1xxxxxx | 商品3    | [  削除  ]
      }

  }
  ----------------
  商品一覧画面(コレクション)
  {+
     {
      ホーム
      ユーザー
      マスタ
      ログアウト
      } |
      {
        {
          <b>商品一覧</b>
        }

        [  新規登録  ] | [ 一括削除  ]
        ---------------------
        {
          1xxxxxx | 商品1    | [  編集  ] | [  削除  ]
          1xxxxxx | 商品2    | [  編集  ] | [  削除  ]
          1xxxxxx | 商品3    | [  編集  ] | [  削除  ]
        }
      }
  }
}
@endsalt
@startsalt
{+
  商品一覧画面(コレクション)
  {+
     {
      ホーム
      ユーザー
      マスタ
      ログアウト
      } |
      {
        {
          <b>商品一覧</b>
        }

        [  新規登録  ] | [ 一括削除  ]
        ---------------------
        {
          1xxxxxx | 商品1    | [  編集  ] | [  削除  ]
          1xxxxxx | 商品2    | [  編集  ] | [  削除  ]
          1xxxxxx | 商品3    | [  編集  ] | [  削除  ]
        }
      }
  }
  ----------------
  商品画面(シングル)
  {+
      {
        [  保存   ]
        ---------------------
        商品コード    | "1xxxxxx"   "
        商品名        | "商品1    "
        販売単価      | 1000
        仕入単価      | 1000
        売上原価      | 1000
      }
      {+
        {/ <b>代替商品 | 部品表 | 顧客別販売単価 }
        [ 追加 ]
        {
            1xxxxxx | 1xxxxxx | 1xxxxxx | [  削除  ]
            1xxxxxx | 1xxxxxx | 1xxxxxx | [  削除  ]
            1xxxxxx | 1xxxxxx | 1xxxxxx | [  削除  ]
        }
      }
  }
  ----------------
  商品画面(シングル)
  {+
      {
        [  保存   ]
        ---------------------
        商品コード    | "1xxxxxx"   "
        商品名        | "商品1    "
        販売単価      | 1000
        仕入単価      | 1000
        売上原価      | 1000
      }
      {+
        {/ 代替商品 | <b>部品表 | 顧客別販売単価 }
        [ 追加 ]
        {
            1xxxxxx | 1xxxxxx | 1xxxxxx | [  削除  ]
            1xxxxxx | 1xxxxxx | 1xxxxxx | [  削除  ]
            1xxxxxx | 1xxxxxx | 1xxxxxx | [  削除  ]
        }
      }
  }
  ----------------
  商品画面(シングル)
  {+
      {
        [  保存   ]
        ---------------------
        商品コード    | "1xxxxxx"   "
        商品名        | "商品1    "
        販売単価      | 1000
        仕入単価      | 1000
        売上原価      | 1000
      }
      {+
        {/ 代替商品 | 部品表 | <b>顧客別販売単価 }
        [ 追加 ]
        {
            1xxxxxx | 1xxxxxx | 1xxxxxx | [  削除  ]
            1xxxxxx | 1xxxxxx | 1xxxxxx | [  削除  ]
            1xxxxxx | 1xxxxxx | 1xxxxxx | [  削除  ]
        }
      }
  }
}
@endsalt

6.1.4. 監査

@startsalt

{+
  実行履歴画面(コレクション)
  {+
     {
      ホーム
      ユーザー
      マスタ
      ログアウト
      } |
      {
        {
          <b>実行履歴一覧</b>
          [ 検索 ]
        }

        [ 一括削除  ]
        ---------------------
        {
          処理1  | user1  | [ 詳細 ] | [ 削除 ]
          処理2  | user1  | [ 詳細 ] | [ 削除 ]
          処理3  | user2  | [ 詳細 ] | [ 削除 ]
        }
      }
  }
  ----------------
  実行履歴画面(シングル)
  {+
      {
        ---------------------
        処理名     | "1xxxxxx"   "
        開始        | "2021/01/01"
        終了        | "9999/12/31"
        実行者      | "user1    "
        備考        | "          "
      }
  }
  ----------------
  実行履歴検索画面(シングル)
  {+
      {
      [ 検索 ]
        ---------------------
        ^処理名^
        ^区分^
      }
  }
}

@endsalt

6.1.5. ダウンロード

@startsalt

{+
  ダウンロード画面(シングル)
  {+
      {
        [ 実行 ]
        ---------------------
        ^ダウンロード対象^ 機能 1^ 機能 2^
      }
  }
}

@endsalt

6.2. モデル

6.2.1. 認証

@startuml
  class ログイン {
    ユーザーID
    パスワード
    ログイン()
  }

  class ホーム {
    お知らせ
  }

  class ナビゲーション {
    ホーム()
    ログアウト()
  }

  ナビゲーション -* ホーム
@enduml

6.2.2. ユーザー管理

@startuml
  class ユーザー一覧 {
    新規作成()
    編集()
    削除()
  }

  class ユーザー {
    ユーザーID
    パスワード
    役割
    姓
    名
    保存()
  }

  class ナビゲーション {
    ホーム()
    ユーザー()
    ログアウト()
  }

  ユーザー一覧 *-- ユーザー
  ナビゲーション -* ユーザー一覧
@enduml

6.2.3. マスタ管理

部門
@startuml
  class 部門一覧 {
    新規作成()
    編集()
    削除()
    一括削除()
  }

  class 部門 {
    保存()
    追加()
    削除()
  }

  class ナビゲーション {
    ホーム()
    マスタ()
    ユーザー()
    ログアウト()
  }

  class 部門検索 {
    検索()
  }

  ナビゲーション -* 部門一覧
  部門一覧 *-- 部門
  部門一覧 *- 部門検索
  部門 *-- 社員一覧選択

@enduml
社員
@startuml
  class 社員一覧 {
    新規作成()
    編集()
    削除()
    一括削除()
  }

  class 社員 {
    保存()
    追加()
  }

  class 部門一覧選択 {
    選択()
  }

  class ユーザー一覧選択 {
    選択()
  }

  class 社員検索 {
    検索()
  }

  class ナビゲーション {
    ホーム()
    マスタ()
    ユーザー()
    ログアウト()
  }

  ナビゲーション -* 社員一覧
  社員一覧 *-- 社員
  社員一覧 *- 社員検索
  社員 *-- ユーザー一覧選択
  社員 *-- 部門一覧選択

@enduml
商品
@startuml
  class 商品分類一覧 {
    新規作成()
    編集()
    削除()
    一括削除()
  }

  class 商品分類 {
    保存()
    追加()
    削除()
  }

  class 商品分類検索 {
    選択()
  }

  class 商品一覧選択 {
    選択()
  }

  class 商品一覧 {
    新規作成()
    編集()
    削除()
    一括削除()
  }

  class 商品 {
    保存()
  }

  class 代替商品 {
    追加()
    削除()
  }

  class 部品表 {
    追加()
    削除()
  }

  class 顧客別販売単価 {
    追加()
    削除()
  }

  class 商品検索 {
    選択()
  }

  class ナビゲーション {
    ホーム()
    マスタ()
    ユーザー()
    ログアウト()
  }

  ナビゲーション -* 商品分類一覧
  商品分類一覧 *-- 商品分類
  商品分類一覧 *- 商品分類検索
  商品分類 o-- 商品一覧選択
  商品一覧 *- ナビゲーション
  商品一覧 *-- 商品
  商品検索 *- 商品一覧
  商品 o-- 代替商品
  商品 o-- 部品表
  商品 o-- 顧客別販売単価

@enduml

6.2.4. 監査

@startuml
  class 実行履歴一覧 {
    検索()
    一括削除()
    詳細()
    削除()
  }

  class 実行履歴 {
  }

  class 実行履歴検索 {
    検索()
  }

  class ナビゲーション {
    ホーム()
    マスタ()
    ユーザー()
    ログアウト()
  }

  ナビゲーション -* 実行履歴一覧
  実行履歴一覧 *-- 実行履歴
  実行履歴一覧 *- 実行履歴検索
@enduml

6.2.5. ダウンロード

@startuml
  class ダウンロード {
    実行()
  }

  class ナビゲーション {
    ホーム()
    マスタ()
    ユーザー()
    ログアウト()
  }

  ナビゲーション *- ダウンロード
@enduml

6.3. インタラクション

6.3.1. 認証

@startuml
  ログイン_シングル --> ホーム_シングル
  ホーム_シングル --> ログイン_シングル
@enduml

6.3.2. ユーザー管理

@startuml
  ログイン_シングル --> ユーザー_コレクション
    ユーザー_コレクション --> ユーザー_シングル
    ユーザー_シングル --> ユーザー_コレクション
  ログイン_シングル <-- ユーザー_コレクション
@enduml

6.3.3. マスタ管理

部門
@startuml

  ログイン_シングル --> ナビゲーション_シングル
    ナビゲーション_シングル --> 部門_コレクション
    部門_コレクション --> 部門_シングル
    部門_シングル --> 部門_コレクション
    部門_シングル --> 社員一覧選択_コレクション
    社員一覧選択_コレクション --> 部門_シングル
  ログイン_シングル <-- ナビゲーション_シングル

@endum
社員
@startuml

  ログイン_シングル --> ナビゲーション_シングル
    ナビゲーション_シングル --> 社員_コレクション
    社員_コレクション --> 社員_シングル
    社員_シングル --> 社員_コレクション
    社員_シングル --> 部門一覧選択_コレクション
    部門一覧選択_コレクション --> 社員_シングル
    社員_シングル --> ユーザー一覧選択_コレクション
    ユーザー一覧選択_コレクション --> 社員_シングル
  ログイン_シングル <-- ナビゲーション_シングル

@endum
商品
@startuml

  ログイン_シングル --> ナビゲーション_シングル
    ナビゲーション_シングル --> 商品_コレクション
    商品_コレクション --> 商品_シングル
    商品_シングル --> 商品_コレクション
    商品_シングル --> 代替商品_コレクション
    代替商品_コレクション --> 商品_シングル
    商品_シングル --> 部品表_コレクション
    部品表_コレクション --> 商品_シングル
    商品_シングル --> 顧客別販売単価_コレクション
    顧客別販売単価_コレクション --> 商品_シングル
  ログイン_シングル <-- ナビゲーション_シングル

@endum

6.3.4. 監査

@startuml
  ログイン_シングル --> 実行履歴_コレクション
    実行履歴_コレクション --> 実行履歴_シングル
    実行履歴_シングル --> 実行履歴_コレクション
    実行履歴_コレクション --> 実行履歴検索_シングル
    実行履歴検索_シングル --> 実行履歴_コレクション
  ログイン_シングル <-- 実行履歴_コレクション
@enduml

6.3.5. ダウンロード

@startuml
  ログイン_シングル --> ダウンロード_シングル
    ダウンロード_シングル --> ログイン_シングル
  ログイン_シングル <-- ダウンロード_シングル
@enduml