GeneriCon 2023Join us in Denver from June 7 – 9 to see what’s coming next.

Register now

Atul Lal

Overview of Object Design in a State-of-the-Art Bank Software

Cover Image for Overview of Object Design in a State-of-the-Art Bank Software
Atul Lal
Atul Lal
terrierbank repository image

terrierbank

Terrier Bank is a robust, object-oriented banking system designed with a focus on modularity and extensibility. It handles a wide range of banking operations such as account creation, transactions, loans, and stock trading, while also providing comprehensive currency conversion functionality.

Language:Java
Topics:javaobject-oriented-programmingswing-gui
Check this project out on GitHub

Introduction

The pertinence of object architecture and annotation within a software entity cannot be understated, being instrumental in delineating its configuration, operative capabilities, and the interconnections amongst its distinct elements. This article embarks on a comprehensive scrutiny of the object architecture and annotation of an avant-garde banking software system, delving into the strategic design decisions, adherence to software tenets, and prospective developments.

Object Modeling

The Unified Modeling Language (UML) provides a cohesive illustration of the class infrastructure of the software, analogous to a bird's-eye view of a towering edifice. The object architecture and annotation of this banking software manifest a compelling and intricate web of relationships. The Main class UML diagram amalgamates all constituent components, reminiscent of the foundational bedrock of a skyscraper. The staticData packet presides over SHA256 and conversions, playing a pivotal role akin to the structural integrity offered by steel girders. The User class wields methods that furnish granular control over accounts, operating much like an express elevator. The Manager and Account classes are arranged hierarchically, paralleling the tiered structure of a skyscraper, while the userInterface package acts as the captivating glass façade of the building, managing all frontend operations.

Architectural Decisions

The architectural strategies employed in the construction of this banking software are marked by groundbreaking innovation, encompassing database design, software tenets, and application of the Model-View-Controller (MVC) pattern, abiding by the Don't Repeat Yourself (DRY) principle, and the usage of the Decorator Pattern.

The database design is the bedrock that bears the load of the entire software system. The Entity-Relationship Diagram (ERD) elegantly delineates the relationships amongst the customer, account, and bank ledger entities, evoking the precise design blueprint that guides the foundation construction.

Software Tenets

The software tenets followed during the development of this banking software are akin to the architectural standards that assure the edifice is robust, aesthetically pleasing, and ecologically sustainable.

  • The Open/Close principle mirrors the principle of sustainable construction materials usage. It affirms that software entities should be open for extension but closed for modification, promoting flexibility without disrupting the existing codebase.

  • The Factory Proxy pattern is reminiscent of energy-efficient systems in construction. It encourages the creation of objects without direct instantiation, leading to an optimized codebase, resulting in enhanced software performance.

  • The MVC architecture mirrors the application of intelligent building technologies. It compartmentalizes the application into model, view, and controller, facilitating a well-organized codebase.

  • DRY principle parallels the concept of recycled materials usage in construction. It ensures minimal redundancy within the codebase, promoting maintainability.

  • The Decorator Pattern is akin to the use of intelligent home technologies. It endows a class with additional functionalities without permanently altering its code, offering a versatile codebase.

Future Endeavors

The future roadmap for this banking software bears resemblance to the ongoing evolution of any iconic edifice, allowing scope for continued enhancement and innovation.

Migrating to a hosted database is comparable to extending a new wing to a skyscraper. This requires a comprehensive analysis of the current setup, data, applications, and dependencies that are reliant on the database, as well as the selection of a hosted solution that best aligns with the bank’s requirements. The migration of data and configuration of applications to use the new database environment will be akin to the construction of the new wing, ensuring that the entire system remains reliable and secure.

Unit testing the database and middleware is akin to conducting regular maintenance checks on the edifice. It safeguards the system's reliability and performance, preempting potential issues.

Image of Atul Lal

About Atul Lal

I am a software engineer with a passion for creating innovative and impactful applications that solve real-world problems. At Commvault Systems, I optimized APIs, developed distributed systems, and automated cloud environments for over two years.