Lectures
Announcements
- Details about the exam and about the final grade computation
- The exam questions will have the form of:
- multiple-choice questions (in which a wrong answer will result in grading the question with 0; if only right choices are selected but not all of the right ones, partial points are given for that question)
- questions asking for a very short answers in the form of a number/word
- questions asking to discuss a problem / argument the validity or invalidity of a statement in the form of an essay (e.g., describing some theoretical concept, describing some use cases that you have to infer from a requirement description, etc).
- topics asking to write some code (e.g., write the code starting from a class diagram, implementing a test case in jUnit, etc.)
- any combinations of the previous alternative
- Number of questions and time - TBD
- Final grade for the discipline
- K1 (Exam) 50%
- K2 (Semester Activity) 50%
- The exam questions will have the form of:
- Do not forget about the UML chapter available on the lab page and the corresponding suggested reading
Chapter 1 - Introduction
Suggested reading
- I. Sommerville - Software Engineering 8, Ch. 1 - Introduction
- R. Pressman - Software Engineering 5th Ed., Ch. 2 - The Process
Chapter 2 - Software Development Processes
Suggested reading
- I. Sommerville - Software Engineering 8, Ch.4 Software Processes (Intro; 4.1,4.1.1,4.1.2; 4.2; 4.4), Ch.17 Rapid Software Development (Intro; 17.1; 17.2)
- R. Pressman - Software Engineering 5th Ed., Ch.2 The Process (2,4; 2.5; 2.7,2.7.1,2.7.2)
- M. Fowler - UML Distilled, Ch.2 Development Process
- P. Deemer & G. Benefield - SCRUM Primer
Chapter 3 - Requirements Engineering
Suggested reading
- I. Sommerville - Software Engineering 8, Ch.4 Software Processes (4.3,4.3.1)
- R. Pressman - Software Engineering 5th Ed., Ch.10 System Engineering (10.5), Ch.11 Analysis concepts and Principles (11.2)
- M. Fowler - UML Distilled, Ch.9 Use Cases
Chapter 4 - Object-Oriented Analysis
Suggested reading
- R. Pressman - Software Engineering 5th Ed. Ch.20 - Object-Oriented Concepts and Principles (20.3) Ch. 21 - Object-Oriented Analysis (21.4)
- D. Rubin - Introduction to CRC Cards
- K. Beck, W. Cunningham - A Laboratory for Teaching Object-Oriented Thinking
- A. Riel - Object-Oriented Design Heuristics (2.6, 3.4, 3.6, 3.7)
Chapter 5 - Software Design
Suggested reading
- I. Sommerville - Software Engineering 8, Ch.4 - Software Processes (4.3.2), Ch. 11 - Architectural Design (Intro, 11.1, 11.2, 11.3)
- R. Pressman - Software Engineering 5th Ed., Ch.14 - Architectural Design (14.3)
- B. Meyer - Object-Oriented Software Construction, Ch.3 - Modularity (Intro, 3.1, 3.2)
- A. Riel - Object-Oriented Design Heuristics (2.1)
- R. Martin - The Open/Closed Principle
- A. Hunt, D. Thomas - Pragmatic Programmer, Ch.5 - Section 1: Decoupling and the Law of Demeter
Chapter 6 - Advanced Implementation Mechanisms
Suggested reading
- B. Eckel, Thinking in Java 4th Ed., Ch. Type information - The Class Object (Class literals, Generic class references, New cast), Checking before a cast (Using class literals, A dynamic instanceof), instanceof vs. Class equivalence, Reflection: runtime class information (A class method extractor)
- B. Eckel, Thinking in Java 4th Ed., Ch. Generics - Simple generics (A tuple library, A stack class, RandomList), Generic Interfaces, Bounds, Wildcards (until contravariance but without it)
Chapter 7 - Software Testing
Suggested reading
- R. Pressman - Software Engineering 5th Ed., Ch.18 - Software Testing Strategies (18.1.1-18.1.4; 18.3,18.4,18.5)
- R. Pressman - Software Engineering 5th Ed., Ch.17 - Software Testing Techniques (17.2, 17.3, 17.4, 17.5.3, 17.6 Intro, 17.6.2, 17.6.3)
- I. Sommerville - Software Engineering 8, Ch.4 - Software Processes (4.3.3), Ch 23 - Software Testing (23.3 Intro, 23.3.2, 23.3.3, 23.3.4)