Task Manager Software Engineering: CS 673 Spring 2009 John Spencer, Parag Shah, Rich Moffitt, Hassan Sobhie May 4, 2009 Agenda John: Task Manager Overview and High Level Implementation John: Demonstration Parag: Middle Tier/Hibernate Rich: Unit Tests and Source Control Hassan: Traceability All: What did not work/What worked Task Manager Overview The Task Manager is web-based application used to track and organize individual tasks that comprise a project. Users of Task Manager will be assigned one or more of the following roles: Administrator, Manager, and/or Contributor High Level Implementation Demonstration John: What did not work SRS - Overly Optimistic Implementation – no 3 iterations Complete Junit set on Middle Tier prior to GUI implementation SRS Traceability difficult using Use Cases (Note: Hassan discuss how we solved it) Word documents Requirements Management Tools INCOSE (International Council on Systems Engineering) − maintains a list of requirements management tools − http://www.incose.org/ProductsPubs/ products/rmsurvey.aspx John: What worked! Flex UI Ant Source Control (Rich will discuss) Remote Meetings (Rich will discuss) − TeamViewer.com − FreeConferenceCall.com Middle Tier/Hibernate Demonstration of Hibernate tools. Parag: What did not work Using Hibernate ORM tool to perform all database transaction. Implementation of all essential requirements. Parag: What worked! Hibernate tools to generate the mapping files from the database tables. Used this tool for the first time and it saved a lot of work. Knowledge gained from SRS/SDD discussions (in class and team meetings) helped tremendously, working on small project at work. Introduction of Agile software methodology. Flex Unit Testing with JUnit Junit is simple, well documented, and free. Started with individual tests and test cases. Grouped tests into test suites. Larger projects can nest test suites. Running JUnit tests Tests can be run straight from Eclipse IDE. Tests can also be automatically run through build script. Collaboration Requirement: all tools must be free. − Used Google Docs for meeting agendas / notes, project reference material. − Screen sharing tool: TeamViewer − Conference call tool: FreeConferenceCall.com Held regular meetings via conference call to work on and track project progress. Source Control Evaluated several source control types: Bazaar, Git, Subversion Settled on Subversion / Google code because: − Easily accessible by team with free tools. − Google Code is not overwhelmingly complicated for simple projects. − Project hosting is free and public. Rich: What did not work Updating graphic information in Google Docs is a hassle. Tracking bugs / issues within Google Code (not really necessary for size of project) Rich: What worked! JUnit tests easy to add to project. Revision control is easy with SVN tools. Running “ant” on local build environments just worked. Automating unit test execution running “ant test”. Traceability Traceability is about information completeness and the relationships amongst all types of information throughout the entire development process. Requirements, Design, Implementation documents all should relate to one another. With advanced traceability matrix teams can easily convert requirements into design, implementation, tests, release and vice versa. Traceability Projects Metrics are a way to measure how complete the traceability of a project is. The Task Manager is a student based project. It would seem normal to apply use-cases as the main measure for project traceability. The use cases in Task Manager project are user visible functions and features that constitute most of the detailed requirement for the Task Manager project and are independent of the programming language. Traceability Traceability using use cases is difficult because use cases can be used at vastly different levels of abstraction. There is no standard size for a use case. In the Task Manager project we used object oriented approach in our design. Object oriented metrics are a good measure of the level of traceability. Hassan: What did not work Running the Task Manager application from Eclipse. Connecting Flex plug-in to Eclipse. Hassan: What Worked Run and build applications using Eclipse Learned how to build simple J-Unit tests Learned about Web Application Directory structure