Your system design should conform to the Open Closed Principle so that your design should easily support new functions (e.g. change of name of security) and securities, for example, creation of BankNote record which is a subclass of Security.
You MUST apply the following design patterns for your new system
Command pattern to provide the “create”, “display”, “deposit”, “withdraw”, “undo”,
“redo” and “show undo/redo list” functions
Factory pattern or Abstract Factory Pattern to create different Command objects and Security objects (e.g. Bond object, Stock object, etc.)
Memento pattern to provide “Undo” and “Redo” functions