Software Engineering Lab
Course: Adv. CS Lab (Software Engineering Lab) (320222)
Instructor: Peter Baumann Jürgen Schönwälder
TAs: Vlad Balan, Dorian Bivolaru
Lab Time:
Monday 14:15 - 18:30 CS Lecture Hall Research I
Start: January 31st 2005
Contents:

Students have to develop a larger piece of software in the Software Engineering Lab. The main objective is to learn group work and to gain practical experience with some software engineering methodologies, methods and supporting tools. The lab is organized into four phases:

  1. System design and specification (3 weeks)

    Students are given a larger problem to solve. Groups of up to 5 students develop a design document which identifies key components, the interfaces between those components, and the integration tests that can be used later to verify that the system is working correctly. The resulting design document will be graded in the 3rd week of the lab. Grading criteria:

    • Design quality and correctness (20%)
    • Usability of the design document (10%)
    • Organization of the design document (10%)
    • Structural UML diagrams (e.g., class diagrams) (10%)
    • Behavioral UML diagrams (e.g., sequence or collaboration diagrams) (10%)
    • Description and completeness of test cases (20%)
    • Presentation of the design during the lab (20%)

    Several groups will develop independent design solutions for the same problem. The designs will be presented and the best designs will be selected for further development.

  2. Component development using extreme programming (8 weeks)

    In the second phase, students will exercise extreme programming cycles in order to develop components identified by the overall system design. Each cycle lasts two weeks (since students only work part-time on the lab). After each cycle, the progress will be discussed and plans will be fixed for the next cycle. Students work in teams of two students in each cycle and groups will change every cycle. The results produced in each cycle will be graded. Grading criteria:

    • Challenge and degree of achievement of negotiated task (25%)
    • Code quality (proper use of language, information hiding, makefiles, ...) (25%)
    • Test cases (executable, sufficient in number and quality, ...) (25%)
    • Adequate code documentation, consistency with design documentation (25%)

  3. System integration and system testing (2 weeks)

    The third phase is concerned with the integration of the components and the testing of the overall system. The integration test cases identified in phase 1 should be exercised (or updated and complemented as needed). Students work now again in larger groups. The system integration and testing phase must be documented appropriately and the documentation will be graded.

  4. Tournament and wrap up (1 week)

    In the last phase, there will be a tournament where students can let bugs play against each other. Students who write smart bugs may get some bonus points.

Course Materials:
Links:
Schedule:
DateTopics
2004-01-31 Phase I: Introduction, UML crash course
2004-02-07 Phase I: System design and specification
2004-02-14 Phase I: System design and specification
2004-02-21 Phase I: Design presentation and selection (grading)
2004-02-28 Phase II: Component development (new teams)
2004-03-07 Phase II: Component development (grading)
2004-03-14 Phase II: Component development (new teams)
2004-03-21 Phase II: Component development
2004-04-04 Phase II: Component development (grading)
2004-04-11 Phase II: Component development (new teams)
2004-04-18 Phase III: Component development (grading)
2004-04-25 Phase III: System integration and testing
2004-05-02 Phase IV: Tournament (bug development)
2004-05-09 Phase IV: Tournament and wrap up
Grading:

The overall grade will be computed from the six partial grades obtained in the specification phase, the three rounds in the implementation phase, the integration phase and the bug development phase.All partial grades have the same weight. Additional bonus points can be achieved by implementing your own bug and by participating with this bug in the final tournament.

Students are required to attend the lab sessions. Additional work outside the lab hours might be needed to successfully complete the project work during the lab slots. It is strongly recommended to attend the Software Engineering course (Advanced CS II) in parallel.

Phase 1:
  • Group 1: (Design 1)
    1. Vladislav Marinov
    2. Todor Stoyanov
    3. Corneliu Margine
    4. Pavlin Mavrodiev
    5. Georgi Chulkov
  • Group 2: (Design 2)
    1. Sanda Lefteriu
    2. Roxana Ionutiu
    3. Ioan Sucan
    4. Bogdan Pricope
    5. Ioana Varsandan
  • Group 3: (Design 3)
    1. Rares Ambrus
    2. Bartek Grychtol
    3. Mentar Mahmudi
    4. Denver Serrao
    5. Yashodhan Nevatia
  • Group 4: (Design 4)
    1. Audrius Masalskis
    2. Dan Alistarh
    3. Rahul Dewan
    4. Farah Gammoh
  • Group 5: (Design 5)
    1. Veddad Zahiragic
    2. Venelin Ganchev
Phase 2 (a):
  • Team 1: (Design 3) [green]
    1. Ioana Varsandan
    2. Rares Ambrus
  • Team 2: (Design 1) [yellow]
    1. Pavlin Mavrodiev
    2. Georgi Chulkov
  • Team 3: (Design 1) [blue]
    1. Todor Stoyanov
    2. Corneliu Margine
  • Team 4: (Design 3) [orange]
    1. Vladislav Marinov
    2. Yashodan Nevatia
  • Team 5: (Design 2) [pink]
    1. Ioan Sucan
    2. Sanda Lefteriu
  • Team 6: (Design 2) [gray]
    1. Bogdan Pricope
    2. Roxana Ionutiu
  • Team 7: (Design 3) [brown]
    1. Denver Serrao
    2. Farah Gammoh
  • Team 8: (Design 3) [navy]
    1. Bartek Grychtol
    2. Mentar Mahmudi
  • Team 9: (Design 3) [red]
    1. Veddad Zahiragic
    2. Venelin Ganchev
  • Team 10: (Design 4) [white]
    1. Audrius Masalskis
    2. Dan Alistarh
  • Team 11: (Design 4) [black]
    1. Rahul Dewan
    2. Michael Ajibola
Phase 2 (b):
  • Team 1: (Design 3) [green]
    1. Rahul Dewan
    2. Corneliu Margine
  • Team 2: (Design 1) [yellow]
    1. Rares Ambrus
    2. Dan Alistarh
  • Team 3: (Design 1) [blue]
    1. Roxana Ionutiu
    2. Mentar Mahmudi
  • Team 4: (Design 3) [orange]
    1. Todor Stoyanov
    2. Bogdan Pricope
  • Team 5: (Design 2) [pink]
    1. Yashodan Nevatia
    2. Farah Gammoh
  • Team 6: (Design 2) [gray]
    1. Denver Serrao
    2. Venelin Ganchev
  • Team 7: (Design 3) [brown]
    1. Pavlin Mavrodiev
    2. Audrius Masalskis
  • Team 8: (Design 3) [navy]
    1. Ioan Sucan
    2. Michael Ajibola
  • Team 9: (Design 3) [red]
    1. Veddad Zahiragic
    2. Vladislav Marinov
  • Team 10: (Design 4) [white]
    1. Ioana Varsandan
    2. Georgi Chulkov
  • Team 11: (Design 4) [black]
    1. Bartek Grychtol
    2. Sanda Lefteriu
Phase 2 (c):
  • Team 1: (Design 1) [yellow1]
    1. Ioan Sucan
    2. Corneliu Margine
  • Team 2: (Design 1) [yellow2]
    1. Dan Alistarh
    2. Todor Stoyanov
  • Team 3: (Design 1) [blue1]
    1. Vladislav Marinov
    2. Rahul Dewan
  • Team 4: (Design 1) [blue2]
    1. Georgi Chulkov
    2. Michael Ajibola
  • Team 5: (Design 3) [green1]
    1. Pavlin Mavrodiev
    2. Yashodan Nevatia
  • Team 6: (Design 3) [green2]
    1. Sanda Lefteriu
    2. Farah Gammoh
  • Team 7: (Design 3) [navy1]
    1. Roxana Ionutiu
    2. Veddad Zahiragic
  • Team 8: (Design 3) [navy2]
    1. Bogdan Pricope
    2. Venelin Ganchev
  • Team 9: (Design 3) [orange1]
    1. Ioana Varsandan
    2. Mentar Mahmudi
  • Team 10: (Design 4) [orange2]
    1. Bartek Grychtol
    2. Denver Serrao
  • Team 11: (Design 1) [blue3]
    1. Rares Ambrus
    2. Audrius Masalskis