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