Modular Design and Development Process
In this detailed exploration, we delve into the modular design and development process encompassing various crucial aspects such as planning, defining, designing, deployment, building, and testing. The journey unfolds through different days focusing on customer product orders, component projects, and the intricate steps involved in bringing a project to life. Each day brings forth new challenges and opportunities, highlighting the iterative nature of software design and development.
Download Presentation

Please find below an Image/Link to download the presentation.
The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.
You are allowed to download the files provided on this website for personal or commercial use, subject to the condition that they are used lawfully. All files are the property of their respective owners.
The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.
E N D
Presentation Transcript
i-bank functional structure technical modules authentication auditing user profile OTP functionality e-mail notifications push notifications etc business modules deposits cards loans bill payments investments transaction files etc
i-bank code structure 15 technical modules 35 business modules 350 projects 240k lines
ALM planning defining deployment testing designing building
modular design business area business area business area planning defining planning defining planning defining designing designing designing deploymen t deploymen t deploymen t buildin g buildin g buildin g testing testing testing
day #1 modular design customer product order designing designing designing deploymen t deploymen t deploymen t buildin g buildin g buildin g testing testing testing component (c# project) component (c# project) component (c# project)
day #2 modular design customer product order designing designing designing deploymen t deploymen t deploymen t buildin g buildin g buildin g testing testing testing component (c# project) component (c# project) component (c# project)
day #3 circular reference customer product order designing designing designing deploymen t deploymen t deploymen t buildin g buildin g buildin g testing testing testing component (c# project) component (c# project) component (c# project)
day #4 modular design customer product order designing designing designing deploymen t deploymen t deploymen t buildin g buildin g buildin g testing testing testing component (c# project) component (c# project) component (c# project)
day #5 modular design customer product order designing deploymen t buildin g testing component (c# project)
dependency resolution customer product order component (c# project) component (c# project) component (c# project)
web service dependency rdbms dependency modular design customer product order implementation projects component publishing component publishing component publishing c# projects component implementation component implementation component implementation component interface component interface component interface component (folder) component (folder) component (folder)
component interface data contracts service interfaces very simple reusable methods classes vs interfaces
invalid paths customer product order component publishing component publishing component publishing c# projects component implementation component implementation component implementation component interface component interface component interface component (folder) component (folder) component (folder)
valid paths customer product order component publishing component publishing component publishing c# projects component implementation component implementation component implementation component interface component interface component interface component (folder) component (folder) component (folder)
nuget packages modular design customer product order component publishing component publishing component publishing component implementation component implementation component implementation component interface component interface component interface component (folder) component (folder) component (folder)
extension methods c# decoupling tools interface implementation
c# decoupling tools extension methods type mapping
c# decoupling tools dependency injection dependency propagation application configuration component (c# project) unit unit db connection logging unit component (c# project) unit unit unit high level libraries component (c# project) unit unit low level libraries low level libraries unit component (c# project) unit unit component (c# project) unit unit unit unit
c# decoupling tools dependency injection dependency resolution application configuration component (c# project) unit unit factory abstract factory static factory service locator unit component (c# project) unit unit unit high level libraries component (c# project) unit unit low level libraries low level libraries unit component (c# project) unit unit component (c# project) unit unit unit unit
c# decoupling tools dependency injection controller constructor
c# decoupling tools dependency injection simple injector configuration
1st upload (Sept 2014) 255k lines 30% Duplicated Code (49k lines, 9.5k units) 11k C# lines 61+ LOC 2k C# lines McCabe 26+ 1k C# lines > 4 Parameters
1st upload (Sept 2014) 255k lines 30% Duplicated Code (49k lines, 9.5k units) 11k C# lines 61+ LOC 2k C# lines McCabe 26+ 1k C# lines > 4 Parameters
unit: method, function module: file, class, function unit & module guidelines refactoring techniques short units of code up to 15 lines extract method extract object simple units of code up to 4 branch points write code once small unit interface separate concerns in modules small modules
module guidelines loosely coupled components small module interface balanced number & size of top level components small codebase
technology & tools TypeScript npm, bower, gulp, tsd, internal package repository (Nexus) build automation (TFS) maintainability tools (SonarLint) maintainability monitoring (SIG, SonarQube)