Documente Academic
Documente Profesional
Documente Cultură
Se vor forma echipe de 4-5 studeni. Fiecare echip trebuie s prezinte Proiect + Prezentare. Termene de livrare: - Prezentare sptmnile 3-8 la curs, conform unei programri prealabile (maxim 3 prezentri/ curs) - Proiect prezentare sptmna 9 la curs (iar la laborator codul, conform planificrii stabilite).
A. Proiect
1.
2. 3.
4. 5.
6.
7.
8.
Se pornete de la un scenariu propriu care descrie cerinele sistemului ce urmeaz a fi dezvoltat (Requirements Document). Acesta poate cuprinde att cerine funcionale ct i cerine nefuncionale i alte constngeri. Cerinele sistemului vor fi alese astfel nct din acest document sa rezulte cel puin 15 User Stories. Din Requirements Document vor fi derivate User Stories iniiale. User Stories de la punctual anterior vor fi rafinate astfel nct s satisfac cele 6 criterii: Independent, Negotiable, Valuable to users or customers, Estimatable, Small, Testable. S se justifice modificrile fcute. Pentru fiecare User Story s se scrie cazuri de testare iniiale. Fiecrei User Story i se va atribui o prioritate, care va fi justificat S se estimeze efortul (n story points) pentru fiecare user story folosind Planning Poker i s se justifice estimarea. S se implementeze 3 User Stories folosind practica XP Test First Programming. (Nota: limbajul de programare este ales de echipa astfel nct s fie adecvat sistemului dezvoltat i cerinelor proiectului). S se descrie procesul i evoluia testelor. Sa se scrie cazurile de testare rezultate folosind un utilitar adecvat (e.g. JUnit pentru limbajul Java). S se arate dac i n ce mod metodele de testare tradiionale (funcionale i structurale) au fost utilizate n procesul de selectare a cazurilor de testare. S se investigheze n ce msur folosirea unui model (e.g. de tipul State Machines) este util n selectarea automat a cazurilor de testare pentru cele 3 User Stories de la punctual anterior. n cazul unui rspuns afirmativ, s se indice strategia de selectare a cazurilor de testare. Pentru fiecare dintre cele 3 User Stories, s se scrie (folosind acelai utilitar ca mai sus) cazurile de testare rezultate. S se discute n ce msur folosirea unui model poate fi integrat ntr-o metodologie de dezvoltare agil. S se utilizeze un sistem de control al versiunilor, de exemplu SVN (Subversion), CVS (Concurrent Version System), GIT etc. S se foloseasc o platform (cu gzduire free) pentru repository-ul proiectului dezvoltat, s se instaleze i utilizeze diferii clieni pentru sistemul de control al versiunilor ales (de exemplu SmartSVN, TurtoiseSVN, Subclipse pentru Subversion). Prezentai n cadrul laboratorului dezvoltarea aplicaiei n echip (includei un link la repository-ul configurat i user pentru acces), testarea aplicaiei, meninerea unei liste
de bug-uri, asignarea lor membrilor echipei (pentru aceasta folosii un bug tracking tool, de exemplu Bugzilla) 9. S se evidenieze avantajele i dezavantajele (greutile ntmpinate n aplicarea) metodologiei de dezvoltare folosite n cadrul proiectului. 10. S se precizeze (ca procentaj) contribuia fiecrui membru al echipei la realizarea proiectului.
Bibliografie minimal
Mike Cohn, User Stories Applied, Addison-Wesley, 2004. Mike Holcombe, Running an Agile Software Development Project, Wiley, 2008. Florentin Ipate, Metode de testare Funcional & Structural, note de curs. http://www.extremeprogramming.org/ http://en.wikipedia.org/wiki/Planning_poker, http://www.planningpoker.com/ http://en.wikipedia.org/wiki/Revision_control http://en.wikipedia.org/wiki/Bugzilla
B. Prezentare
Prezentarea va avea ca subiect una dintre temele de mai jos (2 echipe diferite nu pot alege aceeai tem). Prezentarea va fi sub forma de slide-uri si va dura aproximativ 20 - 30 minute. La sfritul prezentrii se va preciza (ca procentaj) contribuia fiecrui membru al echipei la realizarea acesteia. Observaie: Slide-urile au ca scop evidenierea ideilor principale prezentate i facilitarea nelegerii acestora. Din acest motiv, acestea nu vor conine text nestructurat i detalii nesemnificative.
Teme:
-Lean principle -Software practices Lean Software -Lean Thinking Development/Lea -Lean Development n IT -The Seven Wastes -Techniques to Become Lean http://www.poppendieck.com/ Lean Software Development: An Agile Toolkit M.Poppendieck, T. Poppendieck http://en.wikipedia.org/wiki/Lean_software_develo pment http://en.wikipedia.org/wiki/Pair_programming http://collaboration.csc.ncsu.edu/laurie/Papers/XPS ardinia.PDF Pair Programming Illuminated [2] by Laurie Williams and Robert Kessler http://www.methodsandtools.com/archive/archive. php?id=10 http://www.thehackerchickblog.com/2010/08/pairprogramming-games.html (for learning) Martin Fowler: Refactoring: Improving the Design of Existing Code, Addison-Wesley. http://en.wikipedia.org/wiki/Database_refactoring http://en.wikipedia.org/wiki/Testdriven_development http://c2.com/cgi/wiki?TestDrivenDevelopment
Refactoring
Refactoring
TDD
TDD
Crystal
-Crystal family of methodologies (Clear, http://en.wikiversity.org/wiki/Crystal_Methods Orange, Orange Web) http://www.sis.pitt.edu/~jjoshi/courses/IS2620/Spri -Process ng09/AgileMethodlogies.pdf -Roles and responsibilities -Practices - Process http://www.sis.pitt.edu/~jjoshi/courses/IS2620/Spri - Roles and responsibilities
FDD
ng09/AgileMethodlogies.pdf
Dynamic Systems - Process http://www.sis.pitt.edu/~jjoshi/courses/IS2620/Spri Development - Roles and responsibilities ng09/AgileMethodlogies.pdf Method - Practices - Process http://www.sis.pitt.edu/~jjoshi/courses/IS2620/Spri Adaptive Software - Roles and responsibilities ng09/AgileMethodlogies.pdf Development - Practices - Process http://www.sis.pitt.edu/~jjoshi/courses/IS2620/Spri - Roles and responsibilities ng09/AgileMethodlogies.pdf - Practices http://www.people.hbs.edu/jlerner/simple.pdf - What is AM? - Short overview - Pragmatic Programming (PP) - set of programming best practices - PP Practices http://www.sis.pitt.edu/~jjoshi/courses/IS2620/Spri ng09/AgileMethodlogies.pdf http://www.agilemodeling.com/ http://www.sis.pitt.edu/~jjoshi/courses/IS2620/Spri ng09/AgileMethodlogies.pdf http://pragprog.com/the-pragmatic-programmer http://www.codinghorror.com/blog/files/Pragmatic %20Quick%20Reference.htm
12
Pragmatic Programming
Evolutionary Project http://www.raminsoftworx.com/elec443/lectures/e Management/Evolutionary pm.pdf System Development - Software Craftsmanship Manifesto; - Practices: Code Retreat, Coding Dojo, Coding Kata http://en.wikipedia.org/wiki/Software_craftsmansh ip http://manifesto.softwarecraftsmanship.org/ http://codingdojo.org/
14
List most used agile management tools (i.e. Ice Scrum, ScrumWorks, etc) http://www.icescrum.org/ For 2 tools discover strong http://www.collab.net/products/scrumworks/ and weak points, make comparison (cost, userfriendly, complexity) List most used issue traking http://en.wikipedia.org/wiki/JIRA systems (i.e. Jira, etc) http://www.atlassian.com/licensing/jira#nonprofit For 2 tools discover strong http://en.wikipedia.org/wiki/Comparison_of_issue and weak points, make
_tracking_systems