Universitatea Babeş-Bolyai Cluj-Napoca
Facultatea de Matematică şi Informatică
Ciclul de studii: Licenţă
Domeniul: Informatică
Programul de studii: Informatică - în limba engleză
Limba de predare: Engleză

SYLLABUS

I. General data
Code	Subject	
MID0008	Team project	

Semester	Hours: C+S+L	Category	Status	
4	0+0+2	speciality	compulsory	

II. Full status faculty members
Name and	Scientific	Didactic	Chair	Type of activity	
surname	title	title		C	S	L	
LAZAR Ioan	Ph.D.	Lect.	Programming  Languages and Methods			*	

Associated faculty members
Name and	Scientific	Institution	Type of	Type of activity	
surname	title		position	C	S	L	

III. Course objectives
- 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.	

IV. Course contents
1. Agile Model Driven Development (AMDD)
2. Open Unified Process (OpenUP)
3. Version control systems
4. Tracking systems
3. Requirements modeling
4. Initial domain model 
5. Initial architectural modeling
6. Project planning
7. Iteration modeling
8. Test-driven development
9. Evaluation criteria for the project milestones	

V. 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/	

VI. Thematic of didactic activities per weeks
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)	

VII. Didactic methods used
The activity is based on the following methods: conversation, modelling, and the discussion of some case studies and programming examples.	

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

IX. Additional references

	Dean,							Chair head,

	Date,							Course responsible,
	24.09.2009						Lect. Dr.  LAZAR Ioan