Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 9 Next »

Here's a brief overview of our current system architecture:


  • Architectural choices - why were these tools chosen?
    • Application
      • Spring Framework - provides a good framework for modular applications, allowing decomposition and separate testing. Good tools for web application UI patterns (Spring MVC), web app security (Spring Security), and good interoperation with Hibernate (Spring Transactions).
      • Freemarker: Good Spring MVC interoperation, enforces presentation and business logic separation, good templating and page composition, very good error messages for debugging (compared to Velocity), and easy to program web pages with it.
      • Hibernate: Selected by the original writers of Mifos, we wanted to maintain code compatibility. Good interoperation with Spring Framework.
      • Tomcat: highly reliable and scalable web application container. Good Spring Framework compatibility.
      • MySQL: Selected by the original writers of Mifos. Works well with Hibernate.
    • Build system architectural choices
      • Maven - standardized build system with many plugin modules, less code to write compared with a custom build system like ant. Standard dependency checking and artifact (jar and war) management.
      • Junit - selected by the original writers of Mifos for automated tests
      • TestNG - flexible framework for integration and acceptance testing. Allows for running suites of tests with different set up and tear down.
      • Selenium - good modeling of user behavior for acceptance testing. Slow but accurate.
  • No labels