SUBJECT

Title

Software Technology

Code

IPM-18fatCISE

Type of instruction

lecture + practical

Level

Master

Part of degree program
Credits

2+2+1

Recommended in

Semester 1

Typically offered in

Autumn semester

Course description

The course gives a broad overview of the processes and methodologies of software development and its execution. We cover all phases of development from requirements to maintenance and quality assurance with emphasis on architectural design.

Main topics: Software Lifecycle and Software Development Process, Software Development Models (from Waterfall to Agile), role of UX, DevOps tool-chain, ways of code verification, OOP, Modelling and Design, SOLID, UML and xtUML, Architectural Improvements, Creational, Structural, Behavioral and Concurrency Design Patterns, Architectural Patterns

Readings

Compulsory readings:

  • Ian Sommerville: Software Engineering.Pearson Education Limited 2007. ISBN 978-0137035151
  • E.Gamma, R.Helm, R.Johnson, J. Vlissides: Design Patterns: Elements of reusable Object-Oriented Softare, ISBN 0201633612,  Pearson Education Inc., Adison Wesley Professional, 1995.

Recommended readings:

  • Martin Fowler: UML Distilled (3rd ed.), Addison-Wesley, 2003. ISBN 978-0137035151
  • Hassan Gomaa: Software Modeling and Design: UML, Uses Cases, Patterns and Software Architectures, Cambridge, 2011. ISBN 978-0521764148
  • Steve McConnell: Software Project Survival Guide, Microsoft Press, 1997. ISBN 978-1572316218
  • Russ Miles: Learning UML 2.0, O'Reilly, 2006. ISBN 978-1572316218
  • Ron Patton: Software Testing, Sams, 2005. ISBN 978-0672327988