Background for the header
To the home page of the University of Antwerp

 

 

LORE / Teaching / SE3BAC --- Software Engineering

Tijdschema | Cursusnota's | Practica | Tools

Doelstelling en Inhoud

De student zal een brede basis verwerven in het bouwen van softwaresystemen die te complex zijn om door één persoon gerealiseerd te worden. De inhoud van de cursus beslaat het volledige gamma aan activiteiten die in een typisch project aan bod komen, zoals daar zijn planning, communicatie, kwaliteitscontrole, evolutie en onderhoud.

Onderwijsvorm

Hoorcollege en practicum.

Examenvorm

Schriftelijk en mondeling examen. Tijdens het schriftelijk examen wordt getest op de aangeleerde technieken terwijl het mondeling examen vooral peilt naar het inzicht in de materie.

Enkele weetjes over de examenvorm (incl voorbeeldvraagjes):

  • Examenvorm (laatst aangepast op december 2011)
  • Alle examenvragen georganiseerd per hoofdstuk [PDF, PDF 2pgup] (herzien in 2011)
  • Criteria mondeling examen [ PDF | .rtf ] (laatst aangepast op december 2011)

Oudere examenvragen en model-antwoorden:

Schema

De theorie gaat wekelijks door op dinsdagmorgen in sessies van 2u, alhoewel we per uitzondering ook een inhaalles houden op een andere dag. De oefeningen zijn verspreid over het semester, ook in sessies van 2uur. De oefeningen zullen in principe doorgaan op donderdagvoormiddag in het computerlabo.

Het basisschema vertrekt van de volgende logische onderverdeling over de academische kalender. Vakanties e.d. zorgen er echter voor dat deze logische opbouw in de praktijk doorbroken kan worden.

week 1	[T] Introduction         -- geen les
week 2	[T] Project Management	[P] Project Management
week 3	[T] Use Cases            -- geen les
week 4	[T] Domain Models       [P] Use Cases/Domain Models
week 5	[T] Testing             [P] Testing
week 6	[T] Design by Contract  [P] Design by Contract
week 7	[T] Formal Specifications [P] Formal Specifications (I)
week 8	[T] Software Architecture [P] Formal Specifications (II)
week 9	[T] Quality Control     [P] Software Architectuur
week 10	[T] Software Metrics    [P] Quality Control
week 11	[T] Refactoring         [P] Metrics
week 12	[T] Conclusion	        [P] Refactoring

Cursusnota's

De cursusnota's worden tijdens de loop van het semester herzien. Digitale exemplaren worden hier beschikbaar gemaakt.

  1. Practical [PDF, PDF 4pgup] (herzien in 2011)
  2. Introduction [PDF, PDF 4pgup]
  3. Project Management [PDF, PDF 4pgup]
  4. Use Cases [PDF, PDF 4pgup]
  5. Domain Models [PDF, PDF 4pgup]
  6. Testing [PDF, PDF 4pgup]
  7. Design By Contract [PDF, PDF 4pgup]
  8. Formal Specifications [PDF, PDF 4pgup]
  9. Software Architecture [PDF, PDF 4pgup]
  10. Quality Control [PDF, PDF 4pgup]
  11. Software Metrics [PDF, PDF 4pgup]
  12. Refactoring [PDF, PDF 4pgup]
  13. Conclusion [PDF, PDF 4pgup] (herzien in 2011)
  1. Appendix -- alle examenvragen [PDF, PDF 2pgup] (herzien in 2011)
  2. Errata -- enkele foutjes [TXT] (verzameld in 2011)

Practica

Literatuur

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

[Ghez02a]
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 ]
[Pres01a]
Software Engineering - A Practitioner's Approach, R. Pressman, Mc-Graw Hill, Fifth Edn., 2001.
Very practical and quite deep, but contains a lot of material and is therefore quite thick and a bit expensive.
[online resources for the 5th edition of the book: http://www.mhhe.com/engcs/compsci/pressman/ ]
[online resources from the author of the book: http://www.rspa.com/spi/index.html ]
[Somm04a]
Software Engineering, I. Sommerville, Addison-Wesley, Seventh Edn., 1996
Very popular and broad plus reads quite easily, but often lacks profoundness.
[ online resources for the 7th edition of the book: http://www.comp.lancs.ac.uk/computing/resources/IanS/SE7/ ]

Extra informatie

  1. Introductie (UML) 
    • UML Distilled, M. Fowler and K. Scott, Addison-Wesley, 1997.
      Brief intro to the notation
    • UML Toolkit, H.-E. Eriksson and M. Penker, Wiley & Sons, 1997.
      A comprehensive overview of the notation

      Also available in Dutch ! (De UML toolkit, H.-E. Eriksson and M. Penker, Academic Service 1999)
    • UML Modeling Language -- Notation Guide, version 1.3
      [ http://www.uml.org/ | http://www.rational.com/uml/ ]
      The specification of the UML notation.
    • "Iterative and Incremental Development: A Brief History"Craig Larman and Victor R. Basili, IEEE Computer, June 2003
      [ local copy | http://www2.umassd.edu/SWPI/xp/articles/r6047.pdf ]
      The specification of the UML notation.
  2. 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
      Article decribing typical management problems ocuuring with software projects, including some quotes from managers on how to avoid such problems.
      [ local copy | http://tijd.be/r/?t=1&id=5318639&highlight=De+vloek+op+het+informaticaproject ]
    • Various papers on diverse aspects of project scheduling (incl. earned value analysis)
      [ http://www.rspa.com/ -> software engineering resources -> software project scheduling |
      http://www.rspa.com/spi/proj-sched.html ]
    • ProjeX, an Excel add-in for creating Gantt charts
      [ http://waa-inc.tripod.com/projex/ ]
    • Open Workbench: An Open source tool for projectplanning
      [http://www.openworkbench.org/
  3. Use Cases 
    • 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 [ Black and White Version | Coloured Version ]
    • A dilbert cartoon about requirements and negotiating with customers [ JPG ]
    • "Structuring Use Cases with Goals", Alister Cockburn, Journal of Object-Oriented Programing Sept-Oct & Nov-Dec 1997.
      [ http://alistair.cockburn.us/crystal/articles/sucwg/structuringucswithgoals.htm ]
      Some practical guidelines concerning use-cases.
    • "Are Your Requirements Complete?", Donald G. Firesmith, Journal of Object Technology, vol. 4, no. 1, January-February 2005, pp. 27-43.
      [ local copy | http://www.jot.fm/issues/issue_2005_01/column3]
      Some advice on how to check "Completeness", incl. a link to some (formal) modelling techniques.
    • "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.
      [ local copy | http://www.csc.ncsu.edu/faculty/anton/pubs/icse2000.pdf]
  4. Domain Models (Requirements Engineering)
    • "Requirements Engineering: A Roadmap", B. Nuseibeh and S. Easterbrook, Proceedings of International Conference on Software Engineering (ICSE-2000), 4-11 June 2000, Limerick, Ireland, ACM Press.
      [ local copy | http://mcs.open.ac.uk/ban25/papers/sotar.re.pdf | http://www.cs.ucl.ac.uk/staff/A.Finkelstein/fose/finalnuseibeh.pdf ]
      An overview of the state-of-the-art in Requirements Engineering. Part of the Future of Software Engineering where a number of prominent authors gave their year 2000 vision on how their software engineering subfield would evolve.
    • The CRC Card Book, David Bellin and Susan Suchman Simone, Addison-Wesley, 1997.
      An easy to read and practical guide on how apply CRC cards in brainstorm sessions with end users.
    • Designing Object-Oriented Software, R. Wirfs-Brock, B. Wilkerson, L. Wiener, Prentice Hall, 1990.
      The book introducing responsibility-driven design, i.e. explaining through some good examples how to identify the objects in a requirements specification.
    • "Introduction to CRC Cards", David M. Rubin, White Paper by Softstar Research.
      [ local copy | http://www.softstar-inc.com/Download/Intro%20to%20CRC.pdf] ]
      As the title says, an introduction ...
    • "A Laboratory For Teaching Object-Oriented Thinking", Kent Beck, Ward Cunningham, OOPSLA'89 Conference Proceedings.
      [ http://c2.com/doc/oopsla89/paper.html ]
      The initial paper introducing CRC cards.
    • "Overview of Generative Software Development" by K. Czarnecki. In J.-P. Banatre et al. (Eds.): Unconventional Programming Paradigms (UPP) 2004, Mont Saint-Michel, France, LNCS 3566, pp. 313-328, 2005
      [ local copy | http://www.swen.uwaterloo.ca/~kczarnec/gsdoverview.pdf ]
      As the title says, an overview of generative programming which includes feature modelling
  5. 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
      [ http://www.XProgramming.com/software.htm ]
      Template code for quickly setting up a testing framework, available in different languages (C++, Java, Python, VisualBasic, ...)
    • "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
      [ http://members.pingnet.ch/gamma/junit.htm ]
      Explains "JUnit", one of the instances of the xUnit testing framework.
  6. Design by Contract 
  7. Formal Specifications
  8. 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. [ local copy | http://doi.ieeecomputersociety.org/10.1109/52.469759]
      A paper that illustrates convincingly the need for various persepectives on the design of a system.
  9. Software Quality
  10. Metrics
  11. 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
      [ http://c2.com/cgi/wiki?CodeSmell ]
      Wiki-web with discussion on code smells, i.e. symptoms of poorly designed code.
    • Refactoring
      [ http://www.refactoring.com/ ]
      refactoring web-site discussing solutions for the above code-smells.
    • "Big Ball of Mud", Brian Foote and Joseph Yoder; Fourth Conference on Patterns Languages of Programs (PLoP '97/EuroPLoP '97)
      [ local copy | http://www.laputan.org/mud/mud.html ]
      Quite a funny read, illustrating very well how software systems degrade into poor designs.
  12. Conclusion (Ethics and Professional Practice)

Tools

Tool-support voor planning zijn o.a.:

Heb je zelf een programma gevonden dat hulp kan bieden bij een software engineering activiteit, stuur het dan door naar jan.vlegels (at) ua.ac.be, waarna het aan deze lijst wordt toegevoegd.

Valid HTML 4.01! Valid CSS!

 Lab On REengineering - Antwerpen, last modified 14:32:03 27 January 2012