Babes-Bolyai University of Cluj-Napoca
Faculty of Mathematics and Computer Science
Study Cycle: Graduate
SUBJECT

Code	Subject	
MID0008	Team project	

Section	Sem.	Hours: C+S+L	Category	Type	
Computer Science	4	0+0+2	speciality	compulsory	
Mathematics and Computer Science	6	0+0+2	speciality	compulsory	
Information engineering	4	0+0+2	speciality	compulsory	

Teaching Staff in Charge	Prof. PÂRV Bazil, Ph.D., bparv@cs.ubbcluj.ro
Lect. LAZAR Ioan, Ph.D., ilazar@cs.ubbcluj.ro
Lect. OLAH-GAL Robert, Ph.D., robert.olah-gal@cs.ubbcluj.ro
Lect. SIMON Karoly, Ph.D., ksimon@cs.ubbcluj.ro
Lect. DARVAY Zsolt, Ph.D., darvay@cs.ubbcluj.ro	
Aims	- to develop and improve students@ skills required to plan and manage successfully the software development process.
- to develop leadership and teamwork skills.
- to introduce the student in agile model-driven development methodology.
- to apply test-driven development steps during the development iterations.
	
Content	1. Agile Model Driven Development (AMDD)
  * AMDD activities and steps
  * Iterations and milestones

2. Open Unified Process (OpenUP)
  * Artifacts: project vision, project plan
  * Roles: stakeholder, project manager, developer, team leader

3. Version control systems
  * Project configuration
  * SVN

4. Tracking systems
  * Defect tracking systems 
  * Task management systems
  * Bugzilla

3. Requirements modeling
  * Features list
  * Requirements list
  * Use case model
  * Use case scenarios

4. Initial domain model 
  * Conceptual model
 
5. Initial architectural modeling
  * Layered architecture
  * User interface: views and controllers
  * Services: transactions and concurrency
  * Domain: entities, value objects, validation and repositories
  * Infrastructure: data acces objects for relational databases, remote
method invocations

6. Project planning
  * Map requirements to development iterations
  * Document the mappings into the project plan document

7. Iteration modeling
  * Refine the domain model (entities and value objects)
  * Determine the system behavior (system operations)
  * Model controllers and services
  * Make a work item/task list

8. Test-driven development
  * $Add a test before you write the functional code$
  * Unit testing for entities, value objects, repositories, services, and
controllers
  * Integration testing for services and controllers

9. Evaluation criteria for the following project milestones
  * Objectives milestone (scope, schedules, estimates, risks identified)
  * Architecture milestone (major risks addressed and resolved, acceptance
test, stakeholders agree)
  * Operational capability milestone (product release is stable, functional
testing, user manual)
  * Product release milestone (user satisfaction, product acceptance)	
Bibliography	1. Bugzilla, http://www.bugzilla.org/ 
2. OpenUP, http://epf.eclipse.org/wikis/openup/ 
3. Scott W. Ambler. Agile Model Driven Development (AMDD): The Key to Scaling Agile Software Development. http://www.agilemodeling.com/essays/amdd.htm 
4. Subversion, http://subversion.tigris.org/	
Assessment	All activities will be observed, taking in account the quality and deadlines for software artifacts and documentation. In the last week a public demo of the application is scheduled.