·      Using Object Oriented Methodology for complete Software Application Development  
Start below activities in Inception Phase,
1.     Write brief “Vision” draft about the project 
2.     Identify users’ goals and supporting use cases
3.     Write use cases and Supplementary Specification document
a.     Use cases (Ivan Jacobson, 1986)
                                                                 i.     Are stories using system functionality to meet desired system goals
                                                               ii.     Define Use-case model at requirements stage
                                                              iii.     It defines system functionality (what system will do) and environment
                                                              iv.     It includes interactions between Actors and System for realizing related scenarios such as success or alternate scenarios (failure).
                                                               v.     Scenarios yields observable results for particular actor
b.     Supplementary Specification includes,
                                                                 i.     Quality properties (Non Functional Requirements)
                                                               ii.     constraints 
1.     Hardware (Linux due to company roadmap)
2.     Software (only from registered vendors)
3.     Development tools (eclipse)
                                                              iii.     Internationalization and Localization
                                                              iv.     Licensing and compliance
                                                               v.     Business rules
                                                              vi.     Business Contingency plan 
                                                            vii.     Users, Installation manual and Help
                                                           viii.     Standard references (development, test, release)
4.     Refine the Vision during next iterations and phases
5.     Create Software Development Plan
Keep refining all above activities in the further phases
Start below activities in Elaboration Phase,
1.     Create Domain Model using Use case and Vision 
2.     Write software architecture document 
3.     Create Implementation Model
4.     Create Test plan
·      Online Banking System (ATM like system)
o   Requirements
Automate existing manual banking functions to serve Prospects and Customers efficiently and cost effectively. The scope is limited to below functions under Phase-I of this project.
§  Scope :
·      Customer registration system
·      Account transactions includes : deposit, withdrawal, transfer
·      Security management includes : User Authentication and maintenance
·      Some features will be available using web or mobile clients
o   Portfolio Analysis
o   Money Transfer
·      Transaction audit facility for Auditors and Customers
§  Use-case Model
§  Use-case Goals
Use case  |    Description  |   
Manage Users  |    User data   maintenance and security information will be managed by System Administrator   |   
Authenticate Users  |    Authenticate   Customer login information using existing security service  |   
Money Deposit  |    Customer does money   deposit which finally updates core banking system  |   
Money Withdrawal  |    Customer does money withdrawal   which finally updates core banking system  |   
Money Transfer  |    Customer does money transfer   to other bank accounts  which   finally updates core banking system  |   
Transaction Analysis  |    Customer and Auditor   can view account transactions  |   
New Account   Registration  |    Prospect submit form   to open new account with the bank which will be authorized or rejected by bank   manager  |   
o   Domain Model
o   Build Relationship between Domain Objects
§  Class Diagram
o   Add responsibilities
§  Add methods to each identified object
o   Add System Specific Objects
§  Such as TransactionManager above
o   Re-define objects relationship if necessary
o   Use MVC and layer components
o   Define non-functional requirements (Quality Properties)
§  HA (High Availability) and Performance requirements 
§  Security Model
§  Internationalization and Localization
o   Do implementation using Java along with Unit test cases (JUnit).
o   Build GUI presentation layer.
{*Properly use Abstraction, Inheritance, Encapsulation and Polymorphism principles}


