Software Specification and Architecture
Course code: 2IW80
Team
Time and location:
- Lectures:
Tuesday, 13:45-15:30 (AUD 2) and Thursday, 10:45-12:30 (AUD 4).
- Instruction sessions: Tuesday, 15:45-17:30.
- Group meetings: Thursday 8:45-10:30. Register your group!
Instructor/supervisor | Instruction location | Group meeting location |
Anton Wijs | Flux 1.03 | MF 5.144 |
Kees Huizing | Flux 1.09 | MF 5.145 |
Sarmen Keshishzadeh | Flux 1.11 | MF 5.146 |
Target audience:
- Mandatory:
- Bachelor Software Science, Software Science/Web-Science, Software Science/Mathematics
- Bachelor Sustainable Innovation (Smart Systems)
- Bachelor College package: preparation master Information Security Technology
- Homologation for Embedded Systems master programs (ES, EIT-ES, IST, preparatory program for polytechnical graduates)
- Elective: any other Bachelor College major
Background information on the course:
Method for software specification consisting of the description of data, functionality, and behaviour.
In this course we study a number of specification techniques including, e.g., UML class diagrams and Event-B.
Using these specifications we discuss how architecture of a software system can be constructed.
A number of important approaches to software architecture are discussed. The possibilities and constraints of these approaches are investigated,
resulting in guidelines for their application.
Prerequisites: Basic knowledge of object-oriented programming, notions of object, class, instance variable, instance method, inheritance, overriding,
polymorphism, interface (as is treated in courses like e.g. 2IP90, 2IPG0 and 2IS60). Basic knowledge of first-order logic (as is treated in e.g. 2IT60).
Learning objectives:
After completing this course, you will be expected to be able to
- describe existing software systems or software systems to be developed by means of basic specification techniques;
- derive an architectural description for a software system based on its specification.
Literature
Numerous books have been published on UML, formal specification techniques and software architecture. While information available on the slides should be sufficient to
complete the course successfully, you might consider consulting the following documents to deepen your knowledge:
Grading
The final grade will be determined based on two partial grades obtained for 2IW81 (Final exam Software specification and architecture) and 2IW82 (Assignments Software specification and architecture).
2IW81 and 2IW82 contribute equally to the final grade.
Determining the final grade
We follow the Bachelor College rules (Dutch)
- Students that did not participate in the final exam, get the final grade NV (niet verschenen, no show).
- Students that did participate in the final exam, and their average grade of 2IW81 and 2IW82 is lower than 5.5 get as the final grade the average grade of 2IW81 and 2IW82, rounded to the nearest integer value.
- Students that did participate in the final exam, their average grade of 2IW81 and 2IW82 is 5.5 or higher and their final exam grade (2IW81) is lower than 5 get the final grade 5.
- Students that did participate in the final exam, their average grade of 2IW81 and 2IW82 is 5.5 or higher and their final exam grade (2IW81) is 5 or higher get as the final grade the average grade of 2IW81 and 2IW82, rounded to the nearest integer value.
2IW81 (Final exam Software specification and architecture)
The final exam will take place on April 14, 2015, 9:00-12:00. The resit will take place on June 23, 2015, 18:00-21:00.
Example exam: April 2014. Answers to the multiple choice questions, example solutions for modeling exercises.
Example exam: April 2015 (with solutions).
2IW82 (Assignments Software specification and architecture)
The assignments will be made available on Peach. You can access Peach with your usual university login.
Please do not forget to join "2IW80 Software Specification and Architecture".
Keep in mind that the deadlines are strict and no late submissions will be accepted (either by Peach or by me).
The grade for 2IW82 is determined as 0.1 * H + 0.15 * R + 0.25 * (S + PRC1) + 0.5 * (A + PRC2), where
- H is the sum of the five best homework grades. Homework is an individual assignment similar to exercises you will be working on
during the instruction sessions. Homework assignments will be made available via Peach on Tuesday, 15 minutes before the end of the instruction
and it should be submitted on Thursday by 8:00 a.m. During the group meeting the instructor will discuss the homework and grade the submission as Good, Sufficient or Insufficient.
When determining H we consider Good as being equal to 2, Sufficient to 1, and Insufficient or failure to submit the homework to 0.
- R is the requirements document. In this assignment group of 6-8 students will be working on creating a requirements document based
on a textual description. Further details will be available on Peach.
- S is the specification document. In this assignment group of 6-8 students will be reviewing a specification document.
Further details will be available on Peach.
- A is the architecture document. In this assignment group of 6-8 students will be creating software architecture document.
Further details will be available on Peach.
- PRC1 and PRC2 are peer review corrections. In the middle of the course as well as at the end of it, instructors will distribute anonymous
peer evaluation forms: in this way students that contribute more than average to the group work can get a higher grade while those that contribute less than
average to the group work can get a lower grade. Should you be concerned that some you group members are free-riders, please talk to your instructor.
Lectures
The list of lectures and topics is subject to change. Powerpoint presentations will be made available after the class.