Software Engineering Course 2008
Aalborg University

Software Engineering

Software engineering is a discipline which deals with building large software systems. There are several approaches to organize such a software development as well as approaches to which software artefacts are created during different phases. The software systems penetrate more and more different areas of life and complex software development costs are increasing. Costs of products delivered as a result of such software development are one of the major investments of every organization. It is therefore important to get some insights to different approaches to software development organization.

The main goal of this course is to facilitate basic understandings of:

  • The main phases in software development
  • Significant approaches to organize the phases
  • Planning and management of the phases
  • Influence of the software process organization on the company processes
  • Reflecting on own practice in software projects

Course Organization

Lectures

The course will be organized into three learning components. The first component comprises traditional lectures. They will be scheduled within 2 x 45 minutes given for this purposes in a common lecture room. The lectures will discuss main concepts pointed in a dedicated book chapter as well as additional paper(-s) assigned to the lecture.

Tutorials

Furthermore, a tutorial component will be used where student groups will present and reflect on their own practice of software projects (current or past). The tutorial component will be a part of regular lectures.

Exercises

The second component of the course will be traditional exercises. They will be organized as your own work in project group rooms observed by a teacher put in front of lectures and will have be dedicated 2 x 45 min.

Assignments in Exercises

Each exercise has an assinment whihc relate to the previous lecture. The assignement is to reflect on you previous software projects from the perspective read at a previous lecture. The assignment is to prepare a presentation for next tutorial (at most one per group in the whole semester). Each exercise should be further documented in a section of a miniproject. Miniproject will comprise 1-2 pages per exercise on reflections you have made extended with further reflections gathered from a common discussion at the tutorials.

Miniproject

Please collect the reflections you wrote down in your exercises and put them together. This will be your miniproject. Miniproject is delvered as on per group. It is not an individual report. However, make sure that everybody in the group is aware what is in. The miniproject will serve as an input for questions and discussion on the exam. If you do not delver the report, you will still be asked to reflect on your own practice but the questions can be directed to whichever project or area.

Deadline for miniproject

Please deliver two copies for each miniproject report (one for me and one for censor). Please deliver it not later than two weeks (14 days) after last lecture of the course to my mail box: May 19 2008.

Lecturer

Peter Dolog

Teaching Assistants

Peter Dolog, Morten Kühnrich, Jeremy Rose

Literature

Main:

Mandatory Literature:

Book related Links

Larman's website

Exam

Exam will be a regular oral exam with either pass/fail final grade or a final grade according to a regular scale (depending on the study program - study regulation will be followed). Each course participant will be examined individually for 17 minutes. You will pick up a question from an agreed upon sylabus. Prepare a presentation for which can last from 8-12 minutes. You will be allowed to bring your notes. After the presentation examiner as well as censor can ask further questions related to the course. The main criteria for the evaluation are:

  • demonstrate an overview of the topic seen from both paradigms,
  • be concrete and specific w.r.t. selected methods, tools or similar relevant to the topic, and
  • compare the two paradigms and discuss pros and cons relevant to the topic.
  • reflect your own practice

Further notes on exam are in sylabus: SOE2008CourseExam.pdf

Schedule

- Date Exercises Lectures
1. February 7 2008 Exercises: none - Lectures: 10:15 - 12:00 (room 0.1.95) Introduction and Course Organization
Larman, chapters 1-5
slides in pdf

I would like to receive by Tuesday evening: team number, team room, team members, project name, project abstract, team contact (for those not grouped yet, please send immediatelly when you are grouped) I would like to receive 2 volunteers to present at the tutorial

2. February 14 2008 Exercises: 8:15 - 10:00 (group rooms)
  • Choose a project of your own from your past experience where you participated
  • Look at the project from the iterative software development perspective based on readings from previous lecture
  • Reflect on the project, i.e. was your project already iterative, if yes how, what would you change in the project to make it more iterative, what would be a benefit for that? How big was your iteration? Was it fixed? What about communication? Did you do face to face meetings? How often and with whom? ...
  • 2 groups will present their reflections, therefore, prepare 10 min presentation each on your reflections,
  • Document reflections in a report
Lectures: 10:15 - 12:00 (room 0.1.95) Perspectives on Software Engineering 1 (30 min - Zelkowitz paper); slides in pdf
10min break Presentation of a student group on their experience with perspective on iterative software development and discussion (30 min - 20 min presentation and 10 min discussion)
Perspectives on Software Engineering 2 (30 min - Zelkowitz paper); slides in pdf
3. February 25 2008 Exercises: 8:15 - 10:00 (group rooms) Analyse your project and reflect on the perspectives on software engineering lecturend last time. Questions:
  • Which stages you went through?
  • What was percentual the distribution between your stages?
  • How big was your team and which roles you have experienced?
  • How the communication looked like in your team? Was it effective or could it be improved and how (for example by chief programmer concept or other concepts...)?
  • Which milestones did you have, how many of them and when they have occured?
  • Which testing methods have you used?
  • ...
Lectures: none moved to Thursday
4. February 28 2008 Exercises: 10:15 - 12:00 (group rooms) Analyse your project and reflect on the requirements engineering and SCRUM. Questions:
  • In your current situation, would you set up requirements engineering process differently from what it looked like in your project?
  • Would you use any of the elicitation, modeling, negotiation and other techniques you have learned and why?
  • How would you communicate the requirements? What would you do differently (does any other technique would help you, how about communicating requirements...)?
  • How you would set up SCRUM for your project?
  • How your product and sprint backlog would look like?
  • How your team could work in the SCRUM way?
  • How many sprints would you need?
  • What cannot be set up according to SCRUM in your project?
  • ...
Lectures: 8:15 - 10:00 (room 0.1.95) Perspectives on Software Engineering 2 cntd. (10 min - Zelkowitz paper);
Requirements Engineering (20 min - Nuseibeh & Easterbrook (2000) paper)
slides in pdf
10min break
Presentation of a student group on their experience with perspective on iterative software development and discussion (D403a - 10min presentation and 5 min discussion; D601a - 10min presentation and 5 min discussion)
10 min break
SCRUM (30 min - Chapter 7 from Larman's book); slides in pdf
5. February 29 2008 Exercises: none none Lectures: 13:00 - 14:45 (room 0.1.95) Design (30 min - Chapter 13 from Pressman, Butler's paper); slides in pdf
10min break
Presentation of a student group on their experience and reflections with requirements engineering and SCRUM (D401b - 10min presentation and 5 min discussion; s601b - 10min presentation and 5 min discussion)
10 min break
XP (25 min - Chapter 8 from Larman's book); slides in pdf
6. March 3 2008 Exercises: 10:15 - 12:00 (group rooms) Analyse your project and reflect on the design and XP. Questions:
  • In your current situation, how would you set up your design process differently from what it looked like in your project?
  • Which abstractions would you discard and which would you introduce and why?
  • Would you change anything about partitioning, cohesion, coupling and functional independence looked like?
  • How you would set up XP for your project?
  • How your release and iteration planning would look like?
  • How your team could work in the XP way?
  • How many iterations and sprint would would you need or consider benefitial?
  • What cannot be set up according to XP in your project and why?
  • Would a combination of XP and SCRUM practices be more useful for you?
  • ...
Lectures: 8:15 - 10:00 (room 0.1.95) Model Driven Design (30 min - papers from Mellor, Fowler, Uhl, and Ambler); slides in pdf
10min break
Presentation of a student group on their experience and reflections with requirements engineering and SCRUM (D402a - 10min presentation and 5 min discussion; s601c - 10min presentation and 5 min discussion)
10 min break
Unified Process (25 min - Chapter 9 from Larman's book); slides in pdf
7. March 6 2008 Exercises: 8:15 - 10:00 (group rooms) Analyse your project and reflect on the model driven design and UP:
  • Can you imagine any modelling language which could be used in your project in model driven way? I.e. domain -> skilled or machine transformation -> platform independent model -> skilled or machine transformation -> platform dependent model -> transformation -> code. Please explain the language, how it could help, and why. Please use an example similarly to the one from lecture for illustration (please don't take literaly, it does not have to be web domain...)
  • which roles would be benefitial to adopt from UP, why, and how in your project
  • Which artefacts would you use from UP in your project and why?
  • Can you imagine to base your project on fixed architecture? Why and when? Please reflect?
Lectures: 10:15 - 12:00 (room 0.1.95) Testing (30 min - papers from Whittaker (2000) and Talby et al. (2006), and Jacques Philippe SAUVÉ on EasyAccept tool); slides in pdf
10min break
Presentation of a student group on their experience and reflections with design and XP (D401a - 10min presentation and 5 min discussion; s601d - 10min presentation and 5 min discussion)
10 min break
EVO - Evolutionary Project Management (25 min - Chapter 10 from Larman's book); slides in pdf
8. March 10 2008 Exercises: 10:15 - 12:00 (group rooms) Analyse your project and reflect on the testing and EVO:
  • Testing
    • Would it be useful for you to use the automated acceptance testing? Where and why? How would you incorporate it into your project. You can analyze it in the context of any method reflected upon so far (SCRUM, XP, UP as well as EVO)
    • Would some metrics on testing progress help you in the project and how?
  • EVO
    • Would it be useful for your project to have backroom and front room activities?
    • Can you imagine to work in EVO roles and activities in your project and how?
    • Could you provide some examples on requirements, design and performance specification translated to Planguage? Would that be usefull to have something like that in your project and why?
    • Please think of your decisions you have made in your project. Could you analyze them now with impact estimation table? Would that be usefull for you in your project or in future project and under which conditions?
Lectures: 8:15 - 10:00 (room 0.1.95) Refactoring (30 min - papers from William G. Griswold and David Notkin, Survey of refactoring from TU Berlin slides in pdf
10min break
presentations did not happen --- Presentation of a student group on their experience and reflections with MDD and UP (D403b - appologized; s601e - 10min presentation and 5 min discussion)
10 min break
Patterns (25 min - design patterns introduction by Luke Wroblewski); wikipedia entry for design patterns, slides in pdf
9. March 26 2008 Exercises: 12:30 - 10:00 (group rooms) Analyse your project and reflect on the refactoring and design patterns:
  • Refactoring
    • Would it be useful for you to use the refactoring? Where and why? How would you incorporate it into your project.
    • Which of the refactoring techniques you already practiced and which you would find in addition useful?
    • Provide some examples, analyse your own code samples to understand the concept
  • Design Patterns
    • How you would incorporate the design patterns into your project?
    • Would you use some specific ones? Which one are usefull, when and how?
    • Do you find some issues with design patterns problematic?
    • Which type of patterns you have used already (analysis, process, design, architecture?) and which ones you would like to expand on?
    • Could you perhaps discuss any antipattern you know of from your project?
Lectures: 14:30 - 16:15 (room 0.1.95) Management (chapter 3 from Roger S. Pressman: Software Engineering. slides in pdf
break
Risk Management (Papers from Boehm (1991), Boehm & Turner (2003); slides in pdf
10. March 27 2008 Exercises: 8:15 - 10:00 (group rooms) Analyse your project and reflect on the management and risk management:
  • Management
    • Which of the management stages you would consider and how in your project?
    • Would project scoping help you if you would start the project again
    • Could you imagine to use LOC or FP as estimation techniques in your project
    • Would some decision graphs help you or change any of your decisions in the project?
  • Risk Management
    • Which unforeseen events happened in your project and which impact did they have?
    • Could you draw a risk list item for your project?
    • Could you draw and estimate a risk exposure for each item?
    • Could you suggest various options to aviod or minimize risk?
    • Could you plot a time line of risk item lifecycle, i.e. how long certain items in your risk list have actually been risks for you?
    • Could you imagine that some of the risk items could be handeled differently if you considered them in your risk management and analysis?
Lectures: 10:15 - 12:00 (room 0.1.95) Scheduling (paper on measurements in SW projects: Martha M. Gray + tool web sites;slides in pdf
break
Rationality (papers from Parnas and Clements, Poppendieck & Poppendieck. slides in pdf
11. March 31 2008 Exercises: 10:15 - 12:00 (group rooms) Analyse your project and scheduling:
  • Would you use the pert chart on your project and how it would look like? Which changes such a pert chart would undergo in your project?
  • How about gantt chart? Would that be useful and how?
  • Try one of the planning tools and comment on how some of their features could be useful?
Please reflect on rationality vs. idealization within your project.
Lectures: 8:15 - 10:00 (room 0.1.95) Configuration Management (chapter 29 from Ian Sommerville: Software Engineering slides in pdf
Presentation of a student group on their experience and reflections management and risk management (D406a, d406b - 10min presentation and 5 min discussion)
Software Process Modelling (papers from Papers from Osterweil (1987, 1997); slides in pdf
12. April 3 2008 Exercises: 8:15 - 10:00 (group rooms) Analyse your project and reflect on the Configuration Management and software process modelling:
  • Configuration Management
    • Which version model would you find useful in your project and why?
    • Wich versioning tool will suit you best and why?
    • Which information are important for you in the configuration database?
    • What could be you change management procedure and how it could integrate with configuration management tool?
    • How your buidl procedure would look like with configuration management in place and how different will it be in current practice?
    • ...
  • Software Process Modelling
    • Which processes you could model in your software project and would help you to overcome some problems and why?
Lectures: 10:15 - 12:00 (room 0.1.95) CMMI1 (CMMI Staged (2002), 1-77, 121-135 slides in pdf)
Presentation of a student group on their experience and reflections scheduling (D407a, d408b - 10min presentation and 5 min discussion)
CMMI2 (CMMI Staged (2002), 1-77, 121-135 slides in pdf)
13. April 7 2008 Exercises: 10:15 - 12:00 (group rooms) Read on CMMI and reflect on the key issues also with regard to your experience from projects:
  • Which processes you could find and which did you miss in your project?
  • Which processes and how would you introduce into the project if you had a chance to start again?
  • Which measures you would consider to feed back to learning about process effectiveness and why?
  • Which main risks you would see in the applying the CMMI concepts if you would set up your own software development company?
  • ...
Lectures: 8:15 - 10:00 (room 0.1.95) Software Process Improvement I (Aaen et al. 2001, slides in pdf)
Presentation of a student group on their experience and reflections on configuration management and software process modelling (D405a, D406a - 10min presentation and 5 min discussion)
Software Process Improvement II ( Aaen 2003, slides in pdf)
14. April 14 2008 Exercises: 10:15 - 15:00 (group rooms) Mini project report preparation. Look back to your exercises and think of them once again. Try to improve them and put them into one report. Try to reflect on them from software process improvement point of view. Lectures: 8:15 - 10:00 (room 0.1.95) Claus Nyhus Christensen: Scrum and Agile methods - The real world (slides in pdf)

In this talk we will look into how Scrum and Agile methods practices are being used "in the real world". Which practices works ? Which do not ? The talk will be based on how work is organized at Atira, as well as the the speakers experience as a Scrum Master in general.

15. April 28 2008 Exercises: 10:15 - 12:00 (group rooms) Mini project report preparation. Look back to your exercises and think of them once again. Try to improve them and put them into one report. Lectures: 8:15 - 10:00 (room 0.1.95) Evidence (Chapter 6 from Larman's book, lecture slides in pdf)
Tutorial on multiteam development prepared directly at the lectures by 3 students together with presentations and discussions.
Practice (Chapter 11 from Larman's book, lecture slides in pdf)
16. May 5 2008 Exercises: 10:15 - 12:00 (group rooms) Mini project report preparation. Look back to your exercises and think of them once again. Try to improve them and put them into one report. Lectures: 8:15 - 10:00 (room 0.1.95) Final Notes, Syllabus, Exams



Last Update:
Peter Dolog
You can contact me at dolog at cs dot aau dot dk