180 likes | 206 Views
Explore the successful transformation of a legacy academic submission system by replacing the outdated "try" system with a scalable, cross-platform solution. Discover the motivations, requirements, architecture, and challenges faced during the project development.
E N D
May 2005 Greg Giacovelli – Nick Mancuso – Shaun Newsum – Jean-Paul Pietraru – Nick Stroh
Agenda • Background • Motivation • Requirements • Schedule • Metrics • Architecture • Tier Design • Domain experience
Background • Replace the “try” system • Compiles, tests, and saves students submissions • Provides immediate feedback to the student • Collection of scripts written in the early 1990’s • Issues: • Steep learning curve • Performance issues at peak hours
Motivation • New Features • Cross platform support • Small learning curve • A solid framework • Provide clear ports for adding future customizations & expansions • Separate concerns to ease maintenance • Distribute CPU load
Requirements • Gathered from: • Project sponsor • Personal experience with old system • Sample try lab configuration • Tested against: • Project sponsor • try manuals • SRS is thorough & will be useful to future developers
Solution • Architectural framework • May be easily extended to meet all requirements • Runs in any J2EE-compliant application server. • Scalable by distributing amongst multiple hosts • Distributed submission processing • Compile & testing is completed by an array of clients • Increases system performance • Scales up by adding more client machines
Solution • Model-View-Controller • Decouples • UI from business logic • Business logic from data • Web services • Interface to the business logic • Custom UI’s & scripts may be written
Problems we encountered • Configuration issues • jBoss • Integration tests • J2EE complexity • Learning curve
Post Mortem • What went well: • Solid documentation throughout. • Proof-of-concept or better code for each major component of the system. • What we learned from: • Too much wind-up time • Should have dropped JBoss early