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 

  • Software Project Management, B. Hughes and M. Cotterell, McGraw Hill, 2006. (4th Edition)
    • Good practical examples on PERT, Gantt, Time-sheets, ...
  • 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.
  • All Late Projects Are the Same. Tom De MarcoIEEE Software, pp. 102-103, November/December, 2011

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.
  • A dilbert cartoon about requirements and negotiating with customers
  • "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.
  • "Structuring Use Cases with Goals", Alister Cockburn, Journal of Object-Oriented Programing Sept-Oct & Nov-Dec 1997.

Domain Models

Testing

  • "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
  • 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.
  • 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)