Presentation is loading. Please wait.

Presentation is loading. Please wait.

 SE18 T07S. NameStudent Number Aye Thet MonA0006361U Ng Siew LengA0065958L PragatiA0065772X Tin Lai WaiHT082204N Varun TakA0065741E Zhang ShudongA0065913A.

Similar presentations


Presentation on theme: " SE18 T07S. NameStudent Number Aye Thet MonA0006361U Ng Siew LengA0065958L PragatiA0065772X Tin Lai WaiHT082204N Varun TakA0065741E Zhang ShudongA0065913A."— Presentation transcript:

1  SE18 T07S

2 NameStudent Number Aye Thet MonA0006361U Ng Siew LengA0065958L PragatiA0065772X Tin Lai WaiHT082204N Varun TakA0065741E Zhang ShudongA0065913A 2

3  Recap o Business Domain o Global Use Case Diagram o Architecture View of ECMS  Design Use Cases  Development  Important Features  Technical Challenges  Future Aspects and Improvements  Doing It Again  Management Highlights  Q & A 3

4  Project Sponsor o WWW Cargo Pte Ltd  Project Background o Daily business operation heavily relies on shared MS Excel files  Project Objective o To develop ECMS system which will assist their daily business operation  Main Project Scope o Customer/Agent Profile Management o Customer Cargo Tracking Management o Sea/Air Import Operation Processing 4

5 5

6 6

7  A multi layer architecture powered by Spring Framework, ExtJS, Spring Security and Hibernate.  Taken advantage of Spring’s multi layer injection and loose coupled approach of having an MVC architecture.  Rich UI achieved using ExtJS 4.0 Framework at UI layer.  Communication achieved using AJAX calls (XMLHttpRequest) from Client to Server using JSON objects. 7

8 8

9 9

10 10

11 11

12 12

13 13

14 14

15 15

16 16

17  A reference model developed for an important use case (Air Job) including UI widgets, controllers, services and DAOs.  After full requirement analysis Entities and DAO layer interfaces are finalized, and implemented.  Individual was assigned use cases to construct both UI components and Service components. 17

18 Requirement Gathering, UI Prototype and Analysis Requirement Gathering, UI Prototype and Analysis Experimental Reference application development Experimental Reference application development Design and Development Of Use Cases Design and Development Of Use Cases Entity and DAO Implementation Entity and DAO Implementation Improvement And updates in Reference App Improvement And updates in Reference App Continuous Integration and Test Continuous Integration and Test 18

19 19

20 20

21  All use cases has their entry point at Grid Panels, details of the record can be view in pop-up window and arranged in tabs.  Grid Panels are build much powerful to provide functionalities such as o Filter/Search Records ( Including advanced search) o Refresh the Grid without navigating away from the page. o Pagination. o Add, Remove and Update records, all in one request to server (which enhance usability and makes less server calls) o Sorting by columns and mix of columns. 21

22 22

23  Detail of records are shown in a pop-up window.  Pop-up window can include as many tabs as required.  Tabs contains as many forms as required using Accordion layout. 23

24 24

25  Following important events are used to make server calls upon events trigger when User interacts with the system. o beforeShow (to assemble different forms and their data before it shown to the user.) o afterRequest (to fetch the records to sync UI store with database asynchronously and avoid any race conditions) o beforeRequest (to set parameters to the request) o beforeDestroy (to avoid destroying the pop-up windows and forms to enhance the performance of the system) o expand (upon expanding the accordion layout’s panels) o Collapse( upon collapsing the accordion layout’s panels). o beforeRender (executes before rendering any view) 25

26 26

27  Optimistic Concurrency control mechanism is used.  This is achieved by version checking against session and retrieved objects, upon any update and delete. 27

28 RequestContext Holder Request Session Version DAO ECMS DB 28

29  A portal style of navigation controls implemented.  Java Scripts are loaded and un-loaded in and from the browser’s DOM respectively to build UI components.  Single page provide access to all the functionalities. 29

30 30

31 Plug and play way of applying security to the web application. More configuration less of coding to maintain the security aspects of the application. Aspect Oriented Programming model (AOP) Spring Security 3.0 release is experimented and successfully plugged into Spring Framework 3.x. Secure and extremely secure folders are created to secure static and dynamic contents of server. Access level of such folders are described in security configuration xml. Cryptography is used to protect password from exposure. 31

32 Security Context Authentication Object WebAuthenticatio nDetails Object User Authority 32

33 33

34 34

35  JPA with Hibernate 3 as persistence provider  DAOs are configured through Dependency Injection and participate in Spring's resource and transaction management.  Open Session In View Pattern o To prevent LazyInitializationException" while rendering the view  CascadeType.ALL o For all parent-children OneToMany relationships in the system, such as customer to suppliers, job to subjobs etc 35

36 36

37  Most popular open source Java reporting engine.  Jaspersoft iReport Designer 4.1.3 is used to design the 9 reports used in the system -> save us a lot of time  Easy Spring integration by configuring ViewResolver  Spring framework automatically compiles the.jrxml file on the fly into.jasper file on server starts up  The Spring ModelAndView is populated with report parameters in order to render the report properly 37

38  Spring Framework's email support is used to send emails to simplify the e-mail sending process via JavaMail API.  Gmail SMTP server is used  Bean configuration file … 38

39 39

40  During the coding, many race conditions are discovered, because of asynchronous nature of the requests.  Among such scenarios the most encountered one is, when a code segment is in under UPDATE or CREATE operation, during this time sending a SELECT request for the same record within the same session is found to be a race condition.  Above race condition identified, and resolved by using afterRequest event handle the SELECT request to update the UI Store. 40

41 Race condition here Result with no updates 41

42 After request event fired 42

43  Novelty of technology at UI layer. o ExtJS 4.0 released in April 2011, hence not a mature online contents to study the technology. o ExtJS documentation studied and referenced. o Wiki pages were used to share the knowledge within the team. www.code.google.com/p/iss2011s7/w/list  JSON Parser wasn't able to parse, if object properties contain null values o Work around Null values are replaced with empty string before it transmitted from server to UI layer. o Long term fix strategy JSON Parser to be fixed. 43

44  Handling complex objects at UI Layer (ExtJS) o Mapping between objects  Communication and parsing of Complex object from UI to Service Layer. o Additional Transfer Objects used to communicate.  Lazy Fetching o Lazy fetching was not able to achieve because of JSON Parser limitation of unable to handle null values, where lazy fetching operations are tend to contain null values for contained complex objects. 44

45 45

46  Refreshing the stale records by estimating user’s operation Rest Time. o UI layer can be enhanced to have capability to refresh the data grids by estimating user’s rest time, and if it reaches a particular threshold value, the system would refresh the data grid by using beforeActivate event of the RowEditor. o Above would avoid user to get into a situation of updating a stale record on grid, and end up with unsuccessful updates. 46

47  Enhancing UI for Mobility in work place o Proposing client for an update of UI version for Tablets and Smart Phones. o ExtTouch( A mobile javascript framework) shall be used to built tablet and smart phone applications. o HTML 5 standards. o User Interface shall required to update and services may remain as it is.  This is to have an advantage of mobility and instant access to the application with greater performance. 47

48  Integration Requirement o Understand from client that they would like to have operations to be integrated to the third party Accounts system. o Proposal for an integration between both of the systems can be considered. 48

49  Concurrent updates acknowledgement o Grid Panel records can be highlighted in red color of text to notify users that the local copy of the record is stale or no more fresh, and any updates to the stale data will not be persist in database. o The above can be achieve by Observer Design Pattern and Push model of communication from server. 49

50  After getting full understanding of the domain (cargo management), we would like to go for more generalized and multi-tenancy approach of building this application.  Metadata entity model can be used instead of rigid domain model, by which we can achieve customization requirements of data grids, forms and any other view panels for different customer.  Spring’s web service framework can be used to expose server side operation as web services, if necessary.  Releasing it as a software as a service (SaaS). 50

51 51

52  System testing completed with defects identified fixed and verified during regression testing  Acceptance testing first round completed  Looking into feedbacks from first round – mainly involves fine-tuning work to better integrate system to client business flow  Planning for second round of acceptance testing with focus on non- functional such as performance and availability  On-site deployment  Provision for user training and bug fixing for 2 months warranty period 52

53 Resource Challenges 53

54 54

55 55

56 56

57 Feature by feature integrated and released for testing. Last test run on fully integrated system. Testing Strategy Test Coverage = 75% Test Run (V0.1 – 0.5) Test Coverage = 95% Test Run (V0.6) 57

58 Amy Lai Wai Siew Leng Pragati Varun Shudong 58

59  Taken longer time in technology familiarization, result slippage in later activities such as testing o Adopted feature by feature integration testing approach  Small team, big scope o Constantly looking for reuse in all phases – use case design, implementation, test case 59

60  War Room 60

61  Simple excel sheet for tracking 61

62 Warriors At Work Warriors Say Cheese 62


Download ppt " SE18 T07S. NameStudent Number Aye Thet MonA0006361U Ng Siew LengA0065958L PragatiA0065772X Tin Lai WaiHT082204N Varun TakA0065741E Zhang ShudongA0065913A."

Similar presentations


Ads by Google