diff --git a/src/view/ASubWindow.py b/src/view/ASubWindow.py
index f6598b667533afe606c63fe6f5d3c6481cc5b8c9..bc54ec2ec384504830c2b92ba0ab1fc7b1cd23a3 100644
--- a/src/view/ASubWindow.py
+++ b/src/view/ASubWindow.py
@@ -23,3 +23,8 @@ class ASubWindow(QDialog):
             self
         )
         self.name = name
+        self.parent = parent
+
+    def closeEvent(self, event):
+        if not self.parent is None:
+            self.parent.sub_win_del(self.name)
diff --git a/src/view/DummyWindow.py b/src/view/DummyWindow.py
index 623834f678fe9016fb674ab20b444331e9e109f9..a0cd038f4e49dffc655c49b6cce458ab7731fd78 100644
--- a/src/view/DummyWindow.py
+++ b/src/view/DummyWindow.py
@@ -4,5 +4,5 @@ from view.ASubWindow import ASubWindow
 
 class DummyWindow(ASubWindow):
     def __init__(self, title="Dummy", parent=None):
-        super(DummyWindow, self).__init__(ui="dummy", parent=parent)
+        super(DummyWindow, self).__init__(name=title, ui="dummy", parent=parent)
         self.ui.setWindowTitle(title)
diff --git a/src/view/ListedSubWindow.py b/src/view/ListedSubWindow.py
new file mode 100644
index 0000000000000000000000000000000000000000..3e46bbad09b6f335c687a8d98bb6c0eb6bb5041d
--- /dev/null
+++ b/src/view/ListedSubWindow.py
@@ -0,0 +1,28 @@
+# -*- coding: utf-8 -*-
+
+class ListedSubWindow(object):
+    def __init__(self):
+        super(ListedSubWindow, self).__init__()
+        self.sub_win_cnt = 0
+        self.sub_win_list = []
+
+    def sub_win_count(self):
+        return self.sub_win_cnt
+
+    def sub_win_list(self):
+        return self.sub_win_list.copy()
+
+    def sub_win_add(self, name, win):
+        self.sub_win_list.append((name, win))
+        self.sub_win_cnt += 1
+        print(f"+ {name} ({self.sub_win_cnt})")
+
+    def sub_win_del(self, name):
+        self.sub_win_list = list(
+            filter(
+                lambda x: x[0] != name,
+                self.sub_win_list
+            )
+        )
+        self.sub_win_cnt = len(self.sub_win_list)
+        print(f"- {name} ({self.sub_win_cnt})")
diff --git a/src/view/MainWindow.py b/src/view/MainWindow.py
index 1940cbbb435dc3f1b4734df542daef2f33909a1b..857f5ba47a10cd886ea541ec8e6329facd3e039d 100644
--- a/src/view/MainWindow.py
+++ b/src/view/MainWindow.py
@@ -7,10 +7,11 @@ from PyQt5.QtWidgets import (
     QMainWindow, QApplication, QAction,
 )
 from PyQt5.uic import loadUi
+from view.ListedSubWindow import ListedSubWindow
 from view.DummyWindow import DummyWindow
 from view.AboutWindow import AboutWindow
 
-class ApplicationWindow(QMainWindow):
+class ApplicationWindow(QMainWindow, ListedSubWindow):
     def __init__(self):
         super(ApplicationWindow, self).__init__()
         self.ui = loadUi(
@@ -28,6 +29,7 @@ class ApplicationWindow(QMainWindow):
             title=title if type(title) is str else "Dummy",
             parent=self
         )
+        self.sub_win_add(title, self.dummy)
         self.dummy.show()
 
     def open_about(self):