This page describes the BDSA 2012 project. The project serves four overall purposes:

  1. you should able to work efficiently as a scrum team of (up to) 5 persons,
  2. you should demonstrate that you master software analysis, design, architecture, and engineering methods,
  3. you should demonstrate that you are able to implement and test software in C# on the .NET platform, and
  4. you should demonstrate the ability to correctly document your system.

You can find an overview of the teams here

Project Description

The project description can be downloaded here.

Content and Weights

The overall requirement is that you create (i.e., analyze, design, implement, and test) a system as described above, by using the agile scrum methodology, demonstrate that it works, and document it.

Systems Artifacts

You should hand in two main artifacts:

  • all source code that compiles and runs your solution
  • a report documenting the system

See the ITU official pages [pdf] for how turn in your project report, section 2.3. To clarify, we are 2 lectures and one external examiner (censor) at the course. Hence you need to hand in 4 copies. Note that according to the ITU official exam regulation, you cannot be more than 5 persons in a group.

The doumentation should include an overview of who did what - i.e. a list showing who has been (mainly) responsible for which artifacts - both regarding code and documentation artifacts, as well as the demonstration.

In the following, the requirements and score/weight for the artifacts are described.

SCRUM

You should apply the scrum methodology during your projects. This includes;

  • planning sprints
  • creating product back logs, capacity planing, etc
  • running sprints, including creating sprint backlogs, burndown charts, etc.
  • do scrum activities like sprint planning meetings, daily scrums, reviews, and retrospectives
  • distribute the scrum roles

Specifically, you should appoint persons in your group that plays the role of the product owner and the scrum master. Due to the limited size of your team, these cannot be full time, but clearly also have to contribute to the work. You should consider the lecturers (Bardram+Dario) and the TAs (Mads+Simon) as end-users, customers, etc. Note that the work to be done (and planned for) is not just the system coding (and testing) itself; there is a lot of documentation tasks required — see below.

Code

The source code should:

  • contain your software system which fulfills the requirements stated above [30%]
  • contain unit test for central parts of the system [10%]
  • be submitted to SVN and tagged for final release or a version number [5%]

The requirement is that we should be able to check out the project from your SVN based on a tag, look through all code (including C# source code and database scripts), open it in Visual Studio, compile it, and run it.

Total weight for this part of the project is 45%.

Documentation

The documentation should contain:

  • Software Analysis, including use cases, domain model, SSDs, and FURPS+ [10%]
  • Software Design, including class and interaction diagrams, and documentation of the use of Design Patterns [15%]
  • Software Architecture documentation, including architecture analysis, scenarios, factor tables, and the logical and deployment (4+1) views [5%]
  • A description of your scrum based development, including overall timeline of sprints, pictures of sprint and scrum meetings, capacity plans, backlogs, burn-down charts [10%]
  • A description of you test strategy, and test results [5%]

The documentation should describe how your design addresses the requirements stated above. The documentation should be subject to version control.

The total weight for this part of the project is 45%.

The final 10% are based on the quality of writing, i.e. language, spelling, grammar, layout, and general impression of the document. For example, using LaTex would surely improve on your chances of scoring a 10% in this category.

Demonstration

Each group should demonstrate their system. This takes place during the regular exercise time slot on Tuesday December 18, at 09:00 - 12:30 in 3A12. We all meet and each group will have a chance to show their solution to the lecturers and the rest of the class. You should prepare the following:

  • Set up a demo using two PCs - one being the server and one being the client
  • Demonstrate all your use cases - including important exception cases
  • Run your unit tests

Bear in mind that you only have 15 minutes. Hence, you should be extremely well-prepared - both technically as well as for executing the demo. And - DON’T BRING ANY SLIDES!

The demo is intended for you to be able to show that your systems runs and how cool it is. The demo is a mandatory part of the evaluation of the project. As such, only questions regarding your implementation will be asked (i.e., no questions regarding the litterature / theory will be asked during the demo).

Practical Information

  • You should form groups of (up to) 5 persons.
  • The project should be handed in before December 17 at the Exam Office
  • You can meet the lectures (Dario & Bardram) every Tuesday at 09:15-10:00 in Aud. 4.
  • Help from the TAs can be obtained Tuesdays at 13:00-15:00
  • Send an email to Bardram with the participants of your group - with email addresses.

HAVE FUN!

32 Responses to “Project”


  1. 1 nkrk November 14, 2012 at 12:19

    Er der nogen nærmere tidshorisont for frigivelse af beskrivelsen?
    Vil den være frigivet til/frigives i morgen formiddag?

  2. 2 clih November 15, 2012 at 13:56

    “.. be submitted to SVN and tagged for final release or a version number”

    Git okay?

  3. 3 nben November 15, 2012 at 18:27

    @Claus (clih)
    Bardram sagde god for Git i timen med spørgsmål til oplægget her :)

  4. 4 sidi November 18, 2012 at 15:12

    Jeg påpeger lige at det snart ikke er uge 46 længere..

  5. 5 Lars Yndal Sørensen November 21, 2012 at 12:00

    Hvis I skal kunne følge med i projektet på henholdsvis Git eller SVN, hvilke brugere skal vi så tilføje?

  6. 6 bardram November 21, 2012 at 12:05

    I skal tilføje både Dario og Bardram — og evt. også Simon hvis vil have hans input.

  7. 7 hkkp November 22, 2012 at 11:55

    Er det muligt at få de slides omkring projekt, der blev gennemgået til forelæsning?

  8. 8 dpacino November 24, 2012 at 00:31

    The slides from the project presentation are now available.

  9. 9 clih November 24, 2012 at 12:29

    Skal webinterfacet udvikles i C#/ASP?

    Kan vi hoste websiden et sted?

  10. 10 dpacino November 24, 2012 at 21:48

    Ja, den skal udvikles i C#/ASP. I kan hoste websiden hvor i har lyst, men i skal være sikker på
    at den er tilgængelig når i skal lave demo af projektet.

  11. 11 latj November 29, 2012 at 11:48

    Er det ok at bruge VS2012 eller er det et krav at projektet afleveres som VS2010 solution/projekt?

  12. 12 dpacino November 29, 2012 at 12:37

    There is no formal requirement for the version of VS.NET in use. The official version for the course is VS.NET 2010, which is what I have installed, and I would appreciate if you could hand-in the project for this version. Mind that if you decided to use VS.NET 2012 you have to make sure that you target the 4.0 framework, and this is a requirement (since this is the version used during the lectures).

  13. 13 ladj November 29, 2012 at 16:55

    Hey!
    Var der noget om at Bardram og Dario skulle have adgang til Git (/versionsstyrring) midt i projektet
    så de kunne følge med og se commits?

  14. 14 djam November 29, 2012 at 20:43

    I have a question regarding the usage of ASP.NET. While understanding its acces to system methods such as DateTime.Now, that along with retrieving information from the client and passing it on to a database fully(the usual drag and drop VS stuff). I find it extremly hard to figure out how one can communicate with a custom developed back end….let me elaborate.

    In our architecture we have implemeted a model-like package that can request and receive data from a given database/client and perform some logic with the given operation - a layered structure on top of the database to be exact.

    HOW do I create a ASP.NET project (perhaps integration?) that can acces the data from this package, instead of accesing the database directly? Do I add it to the server project, or create it in a seperate project that is initialized by the server? When that’s said…What then?

    When trying to create a ASP webform project seperatly (adding the namespace of the server with the keyword “using”) I can’t acces the classes of the namespace at all in the aspx.cs class.

    Overall I’m looking for a guide or somewhere to read and become enlightened on this subject, since we’ve only learned how to acces directly to a database… which we in this case find quite ugly…

    Help us, your our only hope!

  15. 15 dpacino November 29, 2012 at 21:49

    First of all I suggest you pass by my office, so we can more easily have a look at what exactly the problem is. During the lecture I did show how to connect the EF and ASP.NET and you can find an example here: https://blog.itu.dk/BDSA-E2012/2012/11/08/ef-aspnet-example-and-office-hours/ . The book bases it’s example on the use of ASP.NET with simple arrays, so that can also be a starting point. From your description of the problem, it seems to me that you are missing the reference to your own library or something like that.

  16. 16 nkrk December 3, 2012 at 10:48

    Vi har to spørgsmål til Slice-of-Pie opgaven, og håber at du/i som Stakeholder vil tage dig/jer tid til at besvare disse

    Spørgsmål 1:
    Under “proof of concept” punkt 5, står der
    Documents can be shared and changes on the same document must be merged.
    “Documents can be shared” betyder det at man aktivt kan definere om en fil skal deles eller ej. Eller vil det være acceptabelt at alle dokumenter altid er shared med alle brugere af systemet?

    Spørgsmål 2:
    Når der sker en konflikt, som brugeren skal løse, vil det så betragtes som acceptabelt at bruge et 3. parts program, såsom KDiff3 (http://kdiff3.sourceforge.net/) til at løse en sådan konflikt?
    Altså åbne programmet op med de filer som giver konflikter, og dermed få brugeren til at løse konflikten gennem dette værktøj?

  17. 17 dpacino December 3, 2012 at 12:20

    Answer to question 1:
    The requirements stated in the project description are minimum requirements. This means that allowing everyone to share everything fulfills the requirement. On the other hand, is that a good decision? You can implement the system the way you want, and add all the features you desire. You have to, however, give a good reason for making obvious simplifications. You are asking this question because you can clearly see that that actively selecting who to share with is a desired feature, but requires more implementation time. The coice of what to do is up to you.

    By playing the stakeholder I would say that retaining the possibility of having documents private to some users is definitely a desired feature. I would , however, understand the necessity if removing it from the proof of concept if the project is under time pressure.

    Answer to questions 2:
    The answer is unfortunately in the line of that of question 1. Of course it would be nicer to have everything running within one system, but it is not a necessity. You have to be the once to find the balance between implementation time and the quality of your prototype.

    Am I not right in saying that SCRUM should help you out in precisely this kind of problem ?

  18. 18 cmah December 5, 2012 at 22:07

    We would like to know how detailed the logging of the changes to documents has to be.
    Is it enough to just have a logger that looks something like this:


    “DateTime”
    “username” has changed document: “documentname”
    _____

    “DateTime”
    “username” has deleted document. “documentname”
    _____

    Or do we actually need to save what exactly has been changed inside the document?
    So if a user changes some of the text inside a document, do we need to log which text the user removed and which text the user added to the document?

  19. 19 dpacino December 5, 2012 at 23:02

    Those of you who have had a good look at the merge algorithm that was given with the project description, might have noticed that it always returns the document corresponding to the latest changes. This means that the algorithm is not needed if all you want to log is, as cmah asks, “DateTime”, “Username”, “Document changed”. You can, however, use the algorithm to find what changes each user made within the document.

    Simply logging that a user changes a document is the bare minimum you have to do, so in a sense I can answer: “yes, it is enough” to the question from cmah. On the other hand, there is a long way to getting a good grade from the bare minimum. As I have said to the other groups, find what your level of ambition is, and the use SCRUM to adjust it as you go along. Unfinished work does not need to be wasted, you can note on your report parts of the system that are not finished and provide a link to a repository with those parts…like a nightly build.

  20. 20 appo December 6, 2012 at 11:32

    Are we allowed to develop the web interface using Silverlight?

  21. 21 dpacino December 6, 2012 at 12:10

    It is ok to use Silverlight, so long as you give a good argument for doing so in your report. Mind that you should not expect support for anything that has not been part of the lectures. I personally do not know Silverlight development. This also means that if you have made some clever piece of code in Silverlight, there is the possibility that we will not recognize it.

    You are now full into the project and it would be too bad to say that you should not use Silverlight, but my suggestion is to, if possible, stick to what has been taught in class…this is also what you will be examined on during the exam.

  22. 22 ladj December 10, 2012 at 11:56

    It says in the project description, that document history should be available to the user.
    Does this mean that it shoudl be available to the user ALL the time or is it fine that the user is only able to see it online?

  23. 23 dpacino December 10, 2012 at 12:46

    The user must also have access from the PC client. I know some of you have assumed that the user will use an external editor and that synchronization is handled by a background process. In that case it could be ok to give the user a GUI utility that only shows the history. This GUI, for those of you that have implemented the storage of previous version, could also give access to older versions of the file.

    To answer in short, the online and offline tool should present the same set of core functionalities.

  24. 24 mhen December 11, 2012 at 23:47

    “The documentation should be subject to version control.” do you then expect the documentation to lay in the same git / svn folder as the code… or how should it be understood?

  25. 25 dpacino December 12, 2012 at 09:44

    that would indeed be convenient.

  26. 26 msta December 12, 2012 at 19:59

    In regards to the report:

    Would it be a good idea to write the documentation with a sort of “developing” perspective?

    For example:

    Using a naive, draft communication diagram to discuss some software design, then show later on
    how the implementation has changed and then show the new diagrams? Or do you only want to see the latest, most accurate diagrams?

  27. 27 dpacino December 12, 2012 at 21:31

    I am find with this style, since it shows how your ideas have developed.

    Jakob do you have a different opinion in the matter ?

  28. 28 sidi December 14, 2012 at 18:45

    Are there any lower/upper caps on the number of pages?

  29. 29 marth December 14, 2012 at 21:14

    The software design part has 15% weight, which indicates that it should contain alot of the report. However it only consists of class diagram, interaction diagrams and documentation of the use of design patterns. Am i missing something?

    Shall all the use cases be modeled as interaction diagrams?

    Shall this part contain additional description of the system such as CRC cards or similar documentation?

  30. 30 jstc December 16, 2012 at 18:57

    What do you mean, when you want us to write the different roles the group members have for the demonstration of the application?

  31. 31 bardram December 17, 2012 at 00:49

    Regarding number of pages: this should not exceed 30 pages — the rest should go into appendices.

    Re. SW Design — a huge and important part of this is a discussion of the design patterns that you have been using.

    Re. group member roles — you should just include a table that lists the different activities that you have been doing, and then list which of the group members who has been responsible for what, and how has done what. The main purpose of this table is to avoid that, for example, that 2 person have done all the work in a 3 person group.

  32. 32 jstc December 17, 2012 at 01:15

    What defines a page? In Latex the margin is quite big, which means that a report of 40 pages in Latex probably has the same amount of characters as a 30 pages report in MS Word.

Leave a Reply

You must login to post a comment.