ULIBIN Recruiting Strategy

advertisement
eFinanceFactory
Andriy Kurhanevych, development group manager
Refactoring project
Old implementation



No scalabelity
Poor extensibility,
changeability and
reuseablity
Antipatterns






almost not at all OO
no interfaces
no basic pattern
responsibilities in the
classes are difficult to
determine
code duplication
...
Customer needed



Scalability
Better extensibility,
changeability, reuseability
High decoupling between
business logic and user
interface
Project goals
eFinanceFactory
New Architecture
Scalability
Maintainability
Additional features
Extensibility
Internationalization
Additional business rules
Project profile and phases
Size
> 5 PY
Length
54 weeks
Begin
December 2001
End
January 2003
Requirements
eFF1.1
Architecture basis
Prototype
Full migration of the DCB web site
eFinanceFactory
eFF 1.2
Internationalization
eFF 2
Migration of all other Web-Applications
Distributed development
- Management
- Analysis
- Testing
- Deployment
Customer (DCB)
Continental Software (3)
Maximal Solution (2)
ULYBIN (2)
- Implementation
- Testing
- Management
- Analysis
- Design
- Implementation
- Testing
New Ground (2)
- Implementation
- Testing
Phase development process
(based on DCB standards and IEEE templates)
Tasks and problems management Web Tool
define and assign tasks
Keystone
Management
Customer (DCB)
MS-Project plan
Continental Software (3)
Requirements management Requirements
Specification
Design
Software Architecture
Document
Rational Rose UML
model
ULYBIN (2)
Web Repository (IIS +
FrontPage Server Extension)
Implementation
Testing
Automated Unit Tests
(JUnit)
Deployment
Technical Acceptance
Rational Robot J
Test cases
Automated Deployment Procedure
Release Notes
(based on Jakarta Ant)
Code Review
Technical Acceptance
Document
Web-based development

Tasks and defects management Web Tool
(Keystone)




Tracking tasks and problems
Priorities management
Automated e-mail notification
Documents and sources Web repository (IIS
5.0 + FrontPage extension)


Versions management
Checkin/checkout per Internet
Development platform




Technologies:
 J2EE: JDK1.2.2,, EJB 1.1, JSP 1.1
 Web technologies: Java Script, XML, XSLT
Application and Web servers:
 IBM WebSphere Advanced Server 3.5.3 (target)
 Jboss 2.4.3, Tomcat 3.2.3 (for quick development only)
Database:
 Oracle 8.2
Tools:
 MS Project 2000
 MS Visual Studio 6.0
 IIS 5.0 + FrontPage extension
 Rational Rose 2000
 Rational Robot J 2000
 Keystone
 Jakarta Ant 1.4
Example of iteration plan
Task names contain numbers of the corresponding tasks in the Keystone
Example of Use Case Diagram
Calculation functionality
common for all
calculation types
(determined by
customer type and
product class)
Set of input/output parameters and calculation logic depend on
the calculation type
Example of Use Cases analysis
Calculation
types
hierarchy and
common parts
Abstract Calculation
(from AbstractCalculation)
AbstractFinancing
AbstractLeasing
<<include>>
Financing
Plus3Financing
<<include>>
Leasing
<<include>>
<<include>>
PrivateAbstract
Financing
PrivateFinancing
PrivatePlus3Financing
PrivateLeasing
<<include>>
<<include>>
BusinessAbstract
Financing
BusinessFinancing
BusinessPlus3
Financing
<<include>>
<<include>>
BusinessCalculation
BusinessLeasing
Example of input page
Example of output page
J2EE platform architecture
Internet explorer
WebSphere cluster
Oracle
Middle tier architecture
...
Generate
XML, XSLT
JSP
com.dcb.eff.gci
.ui
...
com.dcb.eff.gci
...gci.facade
Business Delegate EJB pattern:
- hides all EJB implementation details
- minimizes coupling between
presentation-tier and business services
...gci.sessionfacade
...entities
financefactory
Session Facade EJB pattern:
- hides persistence implementation
details (entity beans)
- reduces number of remote method
invocations between client and server
Example of EJB patterns use
Example of GoF design patterns use
Example of Sequence Diagram
: User
: edit_calculation_input.jsp
change product class or customer type
: edit_calculation_input_ctrl.jsp
: CalculatorBean
request
getCalculationType( )
All entered parameters are passed
redirect = "edit_calculation_input.jsp"
fillCalculationTypeFromRequest(CalculationType)
include sequence 'GetCalculationInputFromRequest'
setCalculationInputAndType(CalculationInput, CalculationType)
redirect
include sequence 'DisplayCalculationData'
Form changes:
- new set of fields (according to class of
CalculationInput)
- new product class or customer type
- possibly new vehicle model and type lists, vehicle,
terms list and term
The class of the
CalculationInput is changed.
If vehicle is not allowed for the
new calculation type then it is
changed to default allowed
value.
Automated unit testing




Testing class for each business case and
each significant parameter set
Near 100 testing classes in the project
Automatic script running all test cases and
informing on errors
Daily cross-testing between developers
teams
Testing automation with Rational
Robot J



Automated black-box testing of user interface
Separate tests of all business cases and all
parameter sets
Automatic script running all tests nightly
Quality assurance





Tasks and defects management system (Keystone)
 Tracking tasks and defects
 Priorities management
Version management system (sources web
repository)
Analysis and design
 UML model
 Many EJB and GoF design patterns
Code review and refactoring
Automated testing
 Automated unit testing (JUnit)
 Automated testing of user interface (Rational Robot J)
Download