Confused me staring at my codeS.O.L.I.D PrinciplesGOF PatternsOOP Design PrincipleArchitectural Patterns
Key Objectives• Business Requirement to design pattern , How dowe implement ?• Do I really need to know All– design patterns ?– Architectural Patterns ?• Understand Pattern Relationships and how theyhave evolved.
• What is OOP ?• What is a Design Patterns ?• What is Software Architecture ?
Still I cannot imagine why I wrotesoftware like this
Why fail to understand ProductArchitecture ?1. Business Architecture (Goals Objectives)2. Business Design (Branding / Sales …)3. Profit Making Business1. System /Technical Architecture2. Technical Design3. Technical Implementation (Code)1. Usability Architecture2. Usability Design3. Useful software ProductLack of collaborationbetween User/Business/ Engineering
Architectural• Is all banks has good telephone & Internet coverage ?Majority , Yes they have fairly good internet.• User capacity ?Average 100 to 2000 customers a bank.• How branches are located in the country?Around 10 – 15 branches in each district,• Each district has a head officeCountry head offices are located in Colombo.• Users Connectivity ModesWeb /Mobile/Desktop client ..• How Does bank connect with Third Party like SLT/ CEB/ Coop-CityGet the billing Data at periodical intervals (No real time requirement)
Filling the Blank - Design• BOTTOM UP :Code > Design > Architecture , Business Usecases(Architecturally Significant)• TOP Down :Architecture/Business Use cases > Design >Code• Combination of both (Moreconvenient and practical)ArchitecturalFunctionalBridgetheDesignGap
Minimal Viable First release• Proof of Concepts for: Architecturallysignificant use cases (Scenarios)• Thin functional Slice : To cover end to endintegration of application layer in a functionalscenario. Functional Significant use case
123451. Client2. Service Layer3. Back officeImplementation/Layering4. Service IntegrationLayer5. Scheduled ThirdParty ServicesSynchronizationDiscuss About What is ArchitecturallySignificant
User Stories• As a Banking user– Register new Customer– Unregister Customer– Modify Customer details– Enable Customer Services (SLT, CEB , Coop-City …)– Balance Inquiry
Realization of Functionally SignificantUser Story
Top level View of Customer Module1231 Customer module Data AccessLayerCommands : Data Access LogicDTO : Data Transfer ObjectsFacades : Data Access Abstractionsto simplify Data access Operations2 Customer Service Interface andImplementationsService Implementation: Servicelogic implementationService Interface: Service andOperation Contracts3 Customer module Unit TestsUnit tests for Customer module.