Literatuur

Volgende boeken zijn aangeraden als algemene achtergrondinformatie bij de cursus. Ze zijn allen beschikbaar in de bibliotheek van de UA.

  • [Ghez02] Fundamentals of Software Engineering, C. Ghezzi, M. Jazayeri, D. Mandroli, 2nd edition, Prentice Hall, 2002.
    • Timeless because of its emphasis on principles, but a bit difficult.
    • [ online resources for the 2nd edition of the book: http://www.prenhall.com/ghezzi ]
  • [Pres00] Software Engineering - A Practitioner's Approach, R. Pressman, Mc-Graw Hill, Fifth Edn., 2000.
  • [Somm05] Software Engineering, I. Sommerville, Addison-Wesley, Ninth Edn., 2011

Extra information on SCRUM; the process you will use for the Capstone Project

  • [Rubi13] Essential Scrum: A Practical Guide to the most popular agile process. Kenneth S.Rubin. Addison-Wesley, 2013

 

Introductie (UML)

Project Management 

  • The Mythical Man-Month, F. Brooks, Addison-Wesley, 1975.
    • The classic "adding people to a late project makes it later" but also lots of other timeless wisdom.
  • Peopleware - Productive Projects and Teams (2nd ed.), Tom DeMarco and Timothy Lister, Dorset House Publishing Company, 1998
    • Lots of advice on how the sociology in teams affect productivity.
  • Software Project Management, B. Hughes and M. Cotterell, McGraw Hill, 1999.
    • Good practical examples on PERT, Gantt, Time-sheets, ...
  • Modern Production / Operations Management - Eighth Edition, Elwood S. Buffa and Rakesh K. Sarin, Wiley 1987.
    • Another book with good practical examples on PERT and Gantt
  • Succeeding with Objects: Decision Frameworks for Project Management, A. Goldberg and K. Rubin, Addison-Wesley, 1995
    • Explains how to define your own project management strategy. Especially usefull if you ever have to start an object-oriented, incremental and iterative project and you need lots of good arguments to help convince your colleagues.
  • De vloek op het informaticaproject, William Visterin. Financieel Economische Tijd van 14/06/2002
  • Using Belbin's leadership role to improve team effectiveness: An empirical investigation. Sallie M. Henry, K. Todd Stevens,Journal of Systems and Software, Volume 44, Issue 3, January 1999, Pages 241-250, ISSN 0164-1212.
  • Several on-line tests exists to determine your preferred role in a team
  • Various papers on diverse aspects of project scheduling (incl. earned value analysis)
  • ProjeX, an Excel add-in for creating Gantt charts

Requirements 

  • Applying Use Cases - a Practical Guide, Geri Schneider, Jason, P. Winters, Addison-Wesley, 1998.
    • An easy to read an practical guide on how to iteratively develop a set of use cases and how to exploit it for project planning.
  • Object-Oriented Software Engineering: A Use-Case Driven Approach, I. Jacobson et. al., Addison-Wesley, 1992.
    • The book introducing use cases. Also tells how to use them during a complete software project.
  • The software specification cartoon
  • A dilbert cartoon about requirements and negotiating with customers
  • "Requirements engineering: a roadmap", Bashar Nuseibeh and Steve Easterbrook. ICSE '00 Proceedings of the Conference on The Future of Software Engineering.
  • "Structuring Use Cases with Goals", Alister Cockburn, Journal of Object-Oriented Programing Sept-Oct & Nov-Dec 1997.
  • "Are Your Requirements Complete?", Donald G. Firesmith, Journal of Object Technology, vol. 4, no. 1, January-February 2005, pp. 27-43.
  • "Managing Use Cases During Goal-Driven Requirements Engineering: Challenges Encountered and Lessons Learned", Annie I. Antón, John H. Dempster, Devon F. Siege. In ICSE2000 Proceedings, IEEE, 2000.
  • "User stories as lightweight requirements for agile clinical decision support development", Vaishnavi Kannan,  Mujeeb A Basit,  Puneet Bajaj,  Angela R Carrington,  Irma B Donahue, Emily L Flahaven,  Richard Medford,  Tsedey Melaku,  Brett A Moran,  Luis E Saldana. In  Journal of the American Medical Informatics Association, Volume 26, Issue 11, November 2019, Pages 1344–1354
    • local copy | https://doi.org/10.1093/jamia/ocz123 ]
    • An experience report applying user stories in combination with use case diagrams to manage the requirements in a health care application. In healthcare, human lives might be affected, so explict requirements play an important role.

Domain Models (Requirements Engineering)

Testing

  • Testing Object-Oriented Systems (Models, Patterns, and Tools), Robert V. Binder, Addison-Wesley, 2000.
    • A very practical (and thick !) overview of what you need to do when testing large OO systems.
  • Unit Testing Framework
  • "Simple Smalltalk Testing: With Patterns", Kent Beck
    • [ http://www.XProgramming.com/testfram.htm
    • Explains how to set up a unit testing harness for regression testing.It's explained in Smalltalk, but the framework has been ported to other languages as well. 
  • "Test Infected: Programmers Love Writing Tests", Kent Beck, Erich Gamma
  • "A Survey of Unit Testing Practices", Per Runeson
    • Disusses the state-of-the-practive with unit testing. A nice quote "Most respondents said that running all unit tests took just seconds or minutes, but some respondents had unit test suites that took hours to execute".
    • [ local copy | original: http://dx.doi.org/10.1109/MS.2006.91
  • "Test Fatigue", Gerard J. Holzman. in IEEE Software, vol. 37, no. 4, pp. 11-16, July-Aug. 2020

Design by Contract 

Formal Specifications

  • D. Cofer et al., "A Formal Approach to Constructing Secure Air Vehicle Software," in Computer, vol. 51, no. 11, pp. 14-23, Nov. 2018, doi: 10.1109/MC.2018.2876051..
  • J. Kapinski, J. V. Deshmukh, X. Jin, H. Ito and K. Butts, "Simulation-Based Approaches for Verification of Embedded Control Systems: An Overview of Traditional and Advanced Modeling, Testing, and Verification Techniques," in IEEE Control Systems Magazine, vol. 36, no. 6, pp. 45-64, Dec. 2016.
  • Jan Tretmans, Klaas Wijbrans and Michel Chaudron "Software Engineering with Formal Methods: the Development of a Storm Surge Barrier Control System", Formal Methods in System Design, 19:195-215, 2001.
  • The Use of Industrial-Strength Formal Methods, Jonathan P. Bowen and Michael G. Hinchey, COMPSAC'97 Conference.
  • Perdita Stevens and Rob Pooley, Using UML - Software Engineering with Objects and Components, Addison-Wesley 2000.
    • Chapters 11 & 12 provides a good introduction to UML-State Diagrams
  • A HTML page with errors 

Architecture

  • Pattern-Oriented Software Architecture: A System of Patterns, Frank Buschman, Regine Meunier, Hans Rohnert, Peter Somerlad, Michael Stal, Wiley and Sons, 1996.
    • Introduces architectural styles in pattern form. Also covers some design patterns and idioms.
  • Design Patterns: Elements of Reusable Object-Oriented Software, Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides, Addison-Wesley, 1995.
    • The classic. At design level but also viewed as ìmicro-architecture.
  • Software architecture: perspectives on an emerging discipline, Mary Shaw, David Garlan, Prentice-Hall, 1996.
    • The book introducing software architecture.
  • Software architecture in practice, Len Bass, Paul Clements, Rick Kazman, Addison-Wesley, 1998.
    • A very deep and practical treatment of software architecture.
  • Design and use of software architectures: adopting and evolving a product-line approach, Jan Bosch, Addison-Wesley, 2000.
    • How to build product-line architectures, inluding a number of cases.
  • Philippe Kruchten "The 4+1 View Model of Architecture ", IEEE Software, November 1995 (Vol. 12, No. 6) pp. 42-50.

Software Quality

Metrics

Refactoring

  •  Refactoring, Improving the Design of Existing Code by Martin Fowler, Addison-Wesley, 1999.
    • A practical book explaining when and how to use refactorings to cure some typical code-smells.
  • Object-Oriented Reengineering Patterns by Serge Demeyer, Stéphane Ducasse and Oscar Nierstrasz, Morgan Kaufmann, 2002.
    • A book describing how one can reengineer object-oriented legacy systems.
  • Code smells
  • Refactoring
  • "Big Ball of Mud", Brian Foote and Joseph Yoder; Fourth Conference on Patterns Languages of Programs (PLoP '97/EuroPLoP '97)

Conclusion (Ethics and Professional Practice)