Software Engineering, Spring 2001

(Ohjelmistojen toteutus, Kevät 2001)

Instructions for returning your coursework (oral examination)

General information

First assignment | Second Assignment | Third Assignment | Fourth Assignment | Fifth Assignment


A link to the example project (DisCoSim)


A list of subjects which the course is likely to cover

For those interested in only 2 credits (2 ov) -
as in "Sivuaineopiskelijan ohjelmistokurssi


Instructions for returning your coursework (oral examination)

You need to do the following preparations:
- finalize your coursework,
- book a time,
- copy your assignment to disk or make it available electronically,
- you do not need to have a paper copy, although it might speed up things a bit if you have one, and
- come to my office (room 3087) at the agreed time.

For booking the time, I am in Turku 21.-22.5. You can send
me e-mail about suitable times and days between
23.5. and 31.5. (for instance, choose 2-3 days and
explain which times are suitable for those days). I will
pick a time and send you back some e-mail.

For the assignments, check the following:

You should have new versions of the DiscoSim documents, where
your changes are marked.

The testing plan should include sequences of operations and
an explanation of what is expected to happen after each operation.

You should be prepared to answer questions.

If your applet does not work 100% correctly, something is
missing, or you have some other problems, it is much better
to return a work which is not fully complete than forget about
the course this year.  All these problems have some effect
on the marking, but minor problems do not prevent you from
passing the course.

General information

If there are foreign students attending the course, the teaching will
be given in English, otherwise in Finnish. The material will be
in English in any case.

The basic idea on how the course is run has changed this year, again.
There will be
1) weekly lectures,
2) reading, and
2) hands-on exercises.

The course will basically cover the software lifecycle. We will
have an example project as a case, and the exercises are based
on the case and the reading.

There will be lectures about things which are not a part of the

The book

For the reading part, you will need a book :)

Last year we used Pressman's book. The latest edition
that I have, is "Software Engineering - A Practitioner's
Approach - European Adaptation" by Roger S. Pressman
adapted by Darrel Ince, Fifth edition, ISBN 0 07 709677 0.
That is the recommended book (not only because I have
it, I think it is good reading and a good book to possess).

The local bookshops might have the book, but it may be
cheaper to buy it from a web bookshop. At least and
seem to have the book available.

You may also use some other book, it is only that I do
not necessarily know their contents and I will not
start reading them all for this.

The book is a very useful book to own also after the course,
as most of the students are going to be dealing with software development anyway.

Yliopiston kirjakauppa ordered some copies of the book.

Examinations and grading

There will be no ordinary examination.
To pass the course, you will have to do a coursework, which
has 5 parts. Each part has to be returned within a given deadline.
Also, for each of these 5 parts there is a lecture time which everyone
has to attend, and some of the students have to present their work.

Please not that the lectures and the coursework assignments are not
completely synchronised. We may start a new area in the lectures
even if the assignment for the previous area has not been returned yet.

After this, everyone gets a chance to polish the coursework, and
there will be an oral examination (a discussion session) about
the coursework. Each student will get an individual time
for the oral examination.


A bibliography on software metrics is available at

Homepages of software analysis tools, some include metrics:

- I have made two Fujaba installation CDs, they also include
  JDK which is required to run Fujaba. They are available
  at the departmental office, return as soon as you can and in
  any case the following working day at the latest.
- Fujaba installations should be ready on
  CS main lab PCs (that's room 3070).

This is a link to the example project (DisCoSim).

You can get the example project documentation here (< 1.1 Mb.)
This archive contains the overall project documentation.
The technical documents about classes etc. are in the
source code archive.

You can get the example project source code here (< 1.04 Mb).
When you unzip this, it will want to overwrite something it has
written itself - answer Yes to All to your unzip program.

You can get the sources here in a .tar file.

A few motivational slides from the first lecture time

Slides on software lifecycles

Slides on requirements analysis

Slides on use cases

Slides on OO analysis and design

Slides on OO analysis and design

Slides on basic concepts of round-trip engineering

Slides with pointers to internationalisation/ localisation and a few words about your testing plan.

Slides about software product quality.

Slides about software process quality.

A preliminary list of subjects which the course is likely to cover

- Requirement specification
- System analysis & design
- Implementation
- Reverse engineering
- Testing
- Maintenance
- Software quality and ISO certification



On 17.1. we will simply go through the basic concept of the course.
We will also have a look at the example project and some motivational


Doing only 2 credits (2 ov)

There might be some people willing to do only 2 credits.
I have chosen that part so that there will not be any
programming-related tasks in the 2 credit composition.
It will be contain some requirement specification and
analysis - that will be from the beginning of the course.

Also, there will be a small essay on software quality.

You can change your mind at any time if you want
to drop out from the 5 credit system to 2 credit system.


First assignment: Requirement Specification.

This assignment is associated with the example
project DisCoSim.

You will get three weeks to do this. That is, the
deadline will be 7.2. It should be an easy start to
the course. And there is some time to get the
book as well, if you intend to buy it.

Generally I would recommend that you read
Chapter 10 from Pressman. It is not very long.

For this assignment, you should examine:
- the applet produced in the case project (remember,
there is also a user manual),
- the requirement specification, and
- the initial sketch from the clients (now available through
the project web pages).

1.1. Produce 2 use cases for typical uses of the system.
Write them down in plain text of numbered steps.
Add these to the requirement specification.

1.2. Suppose we want to view and possibly edit the protocol
text before the protocol is being executed.
Update this in the requirements specification.
For this, make a new version and make your modifications
clear in the updated version.

1.3. Based on literature, find some things that are
missing from the requirement specification.

1.4. List out ways to validate a requirement specification.
Which of these are valid for the example project specification.

For your coursework (and for 7.2.)
you will need to produce two files:
One is a document which has the modified
requirement specification (for answers to
1 and 2) - that one has to be in English -
and the other is your answers
to 3, and 4, explained in writing, rtf
is the preferable format - for that I will
greatly appreciate English, but if you want,
you may do it in Finnish.


Second assignment: Analysis and design, testing design.

This assignment is associated with the example
project DisCoSim.

The deadline for this will be 7.3.
Expect the following deadlines to be
28.3., 25.4, and 9.5.

Generally I would recommend that you read the material about object
oriented analysis and design and testing from Pressman. If you do not have
Pressman, or your copy is so old that it does not include these issues, then find
some other book which addresses these areas.

It is not at all bad for you to read about traditional
analysis and design as well, if you have the time.

For this assignment, you need to further examine the
example project documentation and you also need
to examine the source code.

2.1. Go through the original requirement specification and identify
nouns (for classes), adjectives (for attributes) and verbs (for methods)
You may also otherwise identify these from the text.
Create your own analysis object diagram from those.
You may use UML or some other well-known OO modelling method.

2.2. Take your use cases, and develop them into
scenarios based on the model from task 2.1.
One possible representation for scenarios is given
in Pressman's book. Another possibility is to follow
the style of the project documentation.

2.3. Re-engineer the existing source code into a class diagram.
You can use a tool (more about this on 21.2.) or do it by hand.
Ok, it seems that the class diagrams are quite large as the Fujaba
tool takes also the "system" classes into it. If you wish (and I
think that most of you will wish), you can divide this into two things:
- First of all, make a class diagram of the simulation subsystem, since
that is documented in the architectural specification, and compare your
diagram with the documentation.
- Secondly, make a class diagram of DiscoSimApplet, since that is
the most likely place where you have to start your modifications.
You may skip all comparisons with this, and only use this to plan
the necessary changes in the system.
Study the diagram. Compare it to your own model from 2.1 and
the diagram in the documentation.

2.4. Plan the requested changes in the system on class diagram level
based on the updated requirement specification
Identify necessary new classes (if any), new attributes,
and new methods, and describe their purpose.

2.5. Produce new versions of the GUI specification and the architectural
specification to reflect your changes.

2.6. Make a testing plan to test these changes.

2.7. Estimate the time required to make the changes, including testing
and documentation. Identify suitable tasks and sub-tasks to make
your estimation realistic.

To answer these, produce the following.
2.1 A list of nouns and adjectives and a class diagram you may use Fujaba if you wish).
2.2 Scenarios
2.3 A class diagram (could be a Fujaba class diagram) and written explanation of the outcome of the comparison.
2.4. A description on how the classes are going to change. This could be included in a Fujaba project.
2.5. New versions of the documents. The changes are not big.
2.6. A written plan on how to test your changes.
2.7. A list of tasks and subtasks, time estimates, and some explanation.


Third assignment: 
If you are only doing the two credits, then you are to write
an essay with 5-10 pages of subject "Software quality and improving it through improving software construction process".
You are to write your essay before 30.4.2001. You may return
your whole coursework (assignments 1 and 2 and the essay), as soon 
as you have finished it. Once you are ready to return
your coursework, book a time by e-mail (

If you are doing the five credits, then your subject is implementation,
testing, and documenting the implementation as specified below,
and your deadline is 28.3.

This assignment is associated with the example
project DisCoSim.

The deadline for this assignment is 28.3.
Expect the remaining deadlines to be 25.4, and 9.5.

This part is not really based on the literature, whereas the two last
ones will be very strongly so.

3.1. Implement, test and document the changes documented and designed
in the earlier assignments. Produce:
1. Changed source code
2. Changed classes (compiled from the changed source code).
3. Changed documentation. Make a new version of each document
you have changed during this stage and record your changes. If for
instance the user interface ended up being different from your
plans (assignment 2), then make a new version of the GUI specification which shows the changes.
4. Testing report (a document which tells what happened in testing).
5. A document showing the hours you have spent on each activity. Analyse the difference, if there was any. 

Fourth Assignment

The theme of the fourth assignment is product quality. The deadline for the fourth assignment is 25.4. Give the answers in essay form. I expect the answer to be in total at least around 4 pages long. You can find the answers from Pressman, find the chapters yourself.
4.1. Give at least three definitions for software (product) quality.
4.2. Choose 6 "good" properties for software. What metrics can be used to measure them? How?
4.3 Study tools to measure metrics (search documentation from the web). Describe some tools which would be suitable for analysing the 6 "good" properties of 4.2. from the Discosim project.

Fifth Assignment

The theme of the fifth assignment is software development process quality. The deadline for the fifth assignment is 9.5. Give the answers in essay form. You can find the answers from Pressman - find the relevant chapters yourself.
5.1. What does a good software team consist of? How are tasks devided between the team. List out factors you need to take into account when making a project schedule. (2 pages minimum)
5.2. Compare different approaches for improving software quality (2 pages minimum)
5.3 Risk management in software process (1 page minimum)

14.2.2001 JN