22
Task Manager Software Engineering: CS 673 Spring 2009 John Spencer, Parag Shah, Rich Moffitt, Hassan Sobhie May 4, 2009

Task Manager Software Engineering: CS 673 Spring 2009 John Spencer, Parag Shah, Rich Moffitt, Hassan Sobhie May 4, 2009

Embed Size (px)

Citation preview

Page 1: Task Manager Software Engineering: CS 673 Spring 2009 John Spencer, Parag Shah, Rich Moffitt, Hassan Sobhie May 4, 2009

Task ManagerSoftware Engineering: CS 673 Spring 2009

John Spencer, Parag Shah, Rich Moffitt, Hassan Sobhie

May 4, 2009

Page 2: 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

Page 3: Task Manager Software Engineering: CS 673 Spring 2009 John Spencer, Parag Shah, Rich Moffitt, Hassan Sobhie May 4, 2009

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

Page 4: Task Manager Software Engineering: CS 673 Spring 2009 John Spencer, Parag Shah, Rich Moffitt, Hassan Sobhie May 4, 2009

High Level Implementation

Page 5: Task Manager Software Engineering: CS 673 Spring 2009 John Spencer, Parag Shah, Rich Moffitt, Hassan Sobhie May 4, 2009

Demonstration

Page 6: Task Manager Software Engineering: CS 673 Spring 2009 John Spencer, Parag Shah, Rich Moffitt, Hassan Sobhie May 4, 2009

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

Page 7: Task Manager Software Engineering: CS 673 Spring 2009 John Spencer, Parag Shah, Rich Moffitt, Hassan Sobhie May 4, 2009

Requirements Management Tools

INCOSE (International Council on Systems Engineering)

− maintains a list of requirements management tools

− http://www.incose.org/ProductsPubs/products/rmsurvey.aspx

Page 8: Task Manager Software Engineering: CS 673 Spring 2009 John Spencer, Parag Shah, Rich Moffitt, Hassan Sobhie May 4, 2009

John: What worked! Flex UI

Ant

Source Control (Rich will discuss)

Remote Meetings (Rich will discuss)− TeamViewer.com− FreeConferenceCall.com

Page 9: Task Manager Software Engineering: CS 673 Spring 2009 John Spencer, Parag Shah, Rich Moffitt, Hassan Sobhie May 4, 2009

Middle Tier/Hibernate Demonstration of Hibernate tools.

Page 10: Task Manager Software Engineering: CS 673 Spring 2009 John Spencer, Parag Shah, Rich Moffitt, Hassan Sobhie May 4, 2009

Parag: What did not work Using Hibernate ORM tool to perform

all database transaction.

Implementation of all essential requirements.

Page 11: Task Manager Software Engineering: CS 673 Spring 2009 John Spencer, Parag Shah, Rich Moffitt, Hassan Sobhie May 4, 2009

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

Page 12: Task Manager Software Engineering: CS 673 Spring 2009 John Spencer, Parag Shah, Rich Moffitt, Hassan Sobhie May 4, 2009

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.

Page 13: Task Manager Software Engineering: CS 673 Spring 2009 John Spencer, Parag Shah, Rich Moffitt, Hassan Sobhie May 4, 2009

Running JUnit tests

Tests can be run straight from Eclipse IDE.

Tests can also be automatically run through build script.

Page 14: Task Manager Software Engineering: CS 673 Spring 2009 John Spencer, Parag Shah, Rich Moffitt, Hassan Sobhie May 4, 2009

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.

Page 15: Task Manager Software Engineering: CS 673 Spring 2009 John Spencer, Parag Shah, Rich Moffitt, Hassan Sobhie May 4, 2009

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.

Page 16: Task Manager Software Engineering: CS 673 Spring 2009 John Spencer, Parag Shah, Rich Moffitt, Hassan Sobhie May 4, 2009

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)

Page 17: Task Manager Software Engineering: CS 673 Spring 2009 John Spencer, Parag Shah, Rich Moffitt, Hassan Sobhie May 4, 2009

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”.

Page 18: Task Manager Software Engineering: CS 673 Spring 2009 John Spencer, Parag Shah, Rich Moffitt, Hassan Sobhie May 4, 2009

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.

Page 19: Task Manager Software Engineering: CS 673 Spring 2009 John Spencer, Parag Shah, Rich Moffitt, Hassan Sobhie May 4, 2009

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.

Page 20: Task Manager Software Engineering: CS 673 Spring 2009 John Spencer, Parag Shah, Rich Moffitt, Hassan Sobhie May 4, 2009

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.

Page 21: Task Manager Software Engineering: CS 673 Spring 2009 John Spencer, Parag Shah, Rich Moffitt, Hassan Sobhie May 4, 2009

Hassan: What did not work Running the Task Manager application from

Eclipse.

Connecting Flex plug-in to Eclipse.

Page 22: Task Manager Software Engineering: CS 673 Spring 2009 John Spencer, Parag Shah, Rich Moffitt, Hassan Sobhie May 4, 2009

Hassan: What Worked Run and build applications using Eclipse

Learned how to build simple J-Unit tests

Learned about Web Application Directory structure