Home
Education Page
Description
Literature
Schedule
Slides
Assignments
Paper Reviews
Exam
Mailinglists
Center
Master Program
Center
Home
Courses
People
Projects
Page
Edit Page
Rename Page
Attach File
Printable
Wiki Source
More ...
Web
Recent Changes
Notify Service
News
Page Index
Search
More ...
Wiki
About TWiki
Text Formatting
Registration
Change Password
Reset Password
Users
Groups
Log In
or
Register
Course Description
Swe0607
----+++ Contents The IEEE Computer Society defines software engineering as <blockquote> The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software. </blockquote> Thus software engineering comprises everything that is involved in building and maintaining software systems, including design and construction, manufacturing and distribution, project management, and human factors of software use and development. Many aspects of software engineering are adequately treated in the rest of the computer science curriculum, e.g., algorithms, data structures, programming languages, programming methodology, and software design. In this course we focus on those aspects of the software process that are required to turn programming into (large scale) software development focusing on topics not treated in sister courses like Modelleren en Systeemontwikkeling, Projectmanagement and Software Architecture. In the lectures, I shall focus largely on two aspects: a formal approach to software engineering and the use of tools to alleviate many of the problems inherent in programming in the large. Finally, I shall make a short excursion to empirical software engineering. <!-- %INCLUDE{SoftwareEngineeringTopics}% --> ----+++ Literature Required reading for the course consists of [[CourseBook][Software Engineering 8 by Ian Sommerville]], the slides of the course, and a number of software engineering research papers. Not all chapters of the book are material for the exam. For details consult the [[CourseSchedule][course schedule]]. Note that the book is a somewhat more general, less UML-bound version of much of what was treated during the prerequisite course on Modelleren en Systeemontwikkeling. As a result, the slides of the course take a more formal and tooloriented approach that complement the contents of the book. Both should be read in preparation for the exam. Pointers to the papers will be available from the course website. These papers will give a more in-depth and up-to-date view of selected topics from Software Engineering. ----+++ Course form The course consists of lectures, doing paper reviews, doing practical assignments and reviewing (some of) the work of your fellow students. You are expected to read the book by yourself, although selected parts of it will recur in the lectures. The book is largely a global overview of the field: comprehensive, but not very deep. The paper reviews should be done individually and without assistance from the people involved in the course. The other practical assignments will take place in a computer lab, under supervision of students assistants. ----+++ Prerequisites Students are expected to be mature programmers. It is expected that students are able to acquire skills in new programming languages and environments (e.g., Linux, version management and build tools). ----+++ Exam form The final grade for the course is composed as follows: * 20% : grade for paper reviews * 40% : grade for practical assignments (and peer reviews thereof) * 40% : grade for final written exam To pass the course all grades should be higher then 4, and the average should be higher than 5. It is not possible to redo the paper reviews or the peer reviewing: you may only redo the exam and/or one practical assignments. Minimum effort to qualify for 2nd chance exam: You may only apply for 'aanvullende toetsing' if at most one of your grades is lower than 4. Additionally, under the conditions stated above, it should be theoretically possible to obtain a sufficient average grade.