Lectures
Models
EA model related to lectures 1–3
EA model related to lectures 4–8
- Regarding lecture 6, note the conditions in OCL – a summary is in a note added to the Ordering Process Elements class diagram in the Packages package
- Regarding lecture 8, note the OrderList class diagram in the Design/Packages package, which contains a parameterized class
The feature model example appearing in the lecture 8 slides created in the FeatureIDE tool;
in order to open it, just create a new FeatureIDE project (the possibility available in the Other item) and pull into it the XML files from the archive
- [September 21]
L1: Use Cases
- Reading:
- A. Cockburn. Writing Effective Use Cases. Addison–Wesley, 2000.
[alternative link]
- Chapter 1 introduction (introductory paragraphs), Section 1.1–1.3 – what is a use case
- Chapter 5 introduction, Section 5.1–5.3, Section 5.5 – use case levels
- Chapter 4 – actors
- Chapter 6 – conditions (the guarantees notion denotes postconditions)
- Chapter 7 – use case language: how to express individual steps
- W. V. Galen. Use Case Preconditions: A Best-Kept Secret? BATimes, 2012.
- [September 28]
L2: Modularizing Use Cases and Expressing Them in UML
- Reading:
- A. Cockburn. Writing Effective Use Cases. Addison–Wesley, 2000.
[alternative link]
- Chapter 8 – alternative flows
- Chapter 9 – use case generalization and specialziation
- Chapter 10 – include and extend; extend as an external alternative flow
- Chapter 14 – CRUD and parameterization
- Chapter 19 – typical mistakes in use case modeling
- Transforming a sequence diagram into a communication diagram (afterwards, open the Properties dialog at the first messageand select the Start New Group option within it, which will repair the enumeration)
- [October 5]
L3: Software Architecture and Use Cases
- [October 12]
L4: Modularization and Conceptualization of the Structure
- [October 19]
L5: State Diagrams
- Reading:
- Section 5.3 from the book Object-Oriented Analysis and Design with Applications (Grady Booch, Addison-Wesley, 2nd edition, 1993)
[link]
or Section 5.11 from the third edtion of this book
[link]
- The chapter on state diagrams from the book UML 2 and the Unified Process: Practical Object-Oriented Analysis and Design or from its first edition (Jim Arlow and Ila Neustadt, Addison-Wesley, 2005/2001)
- On state space explosion on the calculator example: UML state machine, Wikipedia, the section UML extensions to the traditional FSM formalism
- Further illustrative examples of state diagrams with notes on the notation: UML State Machines, Bernhard Beckert, Universität Koblenz-Landau
- [October 27]
L6: A Detailed Model of a Method and How to Avoid It with OCL (formerly: Conditions and Constraints: OCL)
- Transforming a sequence diagram into a communication diagram (afterwards, open the Properties dialog at the first messageand select the Start New Group option within it, which will repair the enumeration)
-
Circle and Ellipse example (to recall Liskov Substitution Principle in code)
- Reading:
- References:
- [November 2]
Recapitulation and Discussion
- [November 9]
L7: Algebraic Specification
- Reading:
- Bertrand Meyer. Object-Oriented Software Construction. Prentice Hall, 2nd edition, 1997. – Chapter 6 – Abstract Data Types
– link
- [November 16]
L8: Software Variance Modeling
- FeatureIDE, a feature modeling tool
- pure::variants, a commercial tool for variant management and feature modeling (free community version)
- Reading:
- Chapters 2, 3, and 5 from K. Czarnecki. Generative Programming: Principles and Techniques of Software Engineering Based on Automated Configuration and Fragment-Based Component Models. Ph.D. Thesis, Computer Science Department, Technical University of Ilmenau, Ilmanau, Germany, 1998.
(almost the same published as Chapters 2 and 4 in K. Czarnecki and U. Eisenecker. Generative Programming: Methods, Tools, and Applications, Addison-Wesley, 2000.)
- OMG. OMG Unified Modeling Language. Version 2.5.1, December 2017. [direct link to PDF] (template class: Section 9.3.5, p. 104; template package: Section 7.4.5.1, p. 30–31)
- K. Fakhroutdinov. UML Template. The Unified Modeling Language, 2016
- Bran Selić. Getting It Right on the Dot. OMG, 2013.
- [November 23]
L9: Agile and Lean Approaches to Software Modeling
- Reading:
- References:
- J. Sutherland and K. Schwaber. Scrum Guides. 2020.
- J. Sutherland. Jeff Sutherland’s Scrum Handbook. Scrum Training Institute Press, 2010.
- V. Vranić. Promoting Natural Human Attitude Towards Work: Scrum. In Proceedings of Conference Mreža 2013 – Internet in Educational and Business Environment, Singidunum University, Business Faculty in Valjevo, Valjevo, Serbia, 2013.
- J. O. Coplien and N. B. Harrison. Organizational Patterns of Agile Software Development. Prentice Hall, 2004.
- Organizational Patterns
- J. Sutherland, J. Coplien et al. Scrum as Organizational Patterns. Gertrud&Cope, 2011.
- J. O. Coplien and G. Bjørnvig. Lean Architecture: for Agile Software Development. Wiley, 2010.
- M. Kohn. User Stories Applied: For Agile Software Development. Addison-Wesley, 2004.
- A. Cockburn. Beyond the Agile Manifesto: The Heart of Agile. CrossTalk, 2016.
- A. Cockburn. Let's Dive into the Heart of Agile. 2nd Agile Serbia Conference, 2017.
- [November 30]
Recapitulation and Consultations
- [December 7]
Consultations
fiit.stuba.sk/~vranic/msoft/index_en.html