Software Engineering for Industry
Module aims
In this module you will have the opportunity to:
- Find out more about industrial practices for working on large, existing, software systems
- Discuss how to successfully design, modify, maintain and operate the large software systems that form so much of the infrastructure of trade, commerce, communication and entertainment in the modern world
- Discuss current issues faced by the practising software engineer, and particularly look at engineering trade-offs in different situations
- Understand that software engineering problems do not always have right and wrong answers.
Recommended:The contents of the 3rd Year Software Engineering Group Project or equivalent experience.
Learning outcomes
Upon successful completion of this module you will be able to:
- Discuss trade-offs that must be made in software engineering projects caused by various engineering and business forces
- Reflect critically on theory in the context of industrial software engineering practice
- Construct an evidence-based argument by conducting your own literature research
- Apply relevant software engineering tools, techniques and practices in a given scenario
- Reflect on your own software engineering experience in the context of the wider industry
Module syllabus
The topics that this module covers vary from year to year, as we try to stay current with issues and ideas being discussed in the industry. However, an indicative set of topics from recent years would be:
- Working with Legacy Code
- Software Architecture
- Software Evolution
- Agile Methods in Practice
- Continuous Delivery
- Microservice Architectures
- Cloud Computing
- Resilience at Scale
Teaching methods
The learning in this module is mostly self-directed. For each different topic we will give you some starting points and suggested reading, but expect that you will also read other related articles etc that you find yourself. You will undertake small practical exercises related to some of the topics, and also write short articles explaining your thoughts on a particular question, backed up with evidence from literature.
During live class sessions we will discuss the latest topic based on what you have read and thought about during your research, and your own experiences working in industry (for example on placements and internships). We will invite expert guests from industry to join these discussions and present experiences from their work.
Assessments
This is a coursework-only module, with no exam. There will be a number of assessed exercises (combining research, practical work, writing and reflection) undertaken in small groups through the term, plus a final larger coursework allowing you to demonstrate everything that you have learned from the module.
Reading list
Cloud
-
Cloud native transformation : practical patterns for innovation
First edition., O'Reilly
-
Cloud native attitude : how the world's best companies use the cloud to speed up, scale up and find prduct market fit
Right Book Press
-
Cloud native patterns : designing change-tolerant software
1st edition, Manning Publications
Microservices
-
Building microservices : designing fine-grained systems
Second edition., O'Reilly Media, Incorporated
-
Building secure and reliable systems : best practices for designing, implementing, and maintaining systems
First edition., O'Reilly Media
-
Microservices patterns : with examples in Java
1st edition, Manning Publications
-
Monolith to microservices : evolutionary patterns to transform your monolith
O'Reilly
-
Learning Domain-Driven Design
O'Reilly Media Inc
-
Enabling microservice success
First edition., O'Reilly Media Inc
Architecture
-
Software systems architecture : working with stakeholders using viewpoints and perspectives
2nd ed., Upper Saddle River, NJ : Addison-Wesley
-
Release it! : design and deploy production-ready software / by Michael T. Nygard
Pragmatic Bookshelf
-
The Software Architect Elevator : Redefining the Architect's Role in the Digital Enterprise : Redefining the Architect's Role in the Digital Enterprise
-
Continuous Architecture in Practice: Software Architecture in the Age of Agility and DevOps
Addison-Wesley Professional
-
Continuous Architecture in Practice
Pearson Education (US)
-
Continuous architecture : sustainable architecture in an agile and cloud-centric world
1st edition, Morgan Kaufmann
-
The 4+1 View Model of architecture
IEEE software IEEE
DevOps
-
Accelerate : the science behind DevOps : building and scaling high performing technology organizations
First edition., IT Revolution
-
The DevOps Handbook : How to Create World-Class Agility, Reliability, and Security in Technology Organizations
-
The Phoenix Project : a novel about IT, DevOps, and helping your business win
Revised with new resource guide., IT Revolution Press
-
Team topologies : organizing business and technology for fast flow of value
2nd ed.,
-
Team topologies : organizing business and technology for fast flow of value
2nd ed., IT Revolution
Sustainable Software
-
Building green software : a sustainable approach to software development and operations
O'Reilly Media Inc
-
Building Green Software
O'Reilly Media
-
Green software engineering : navigate green technology for sustainable it solutions
Packt Publishing
-
101 Green Software: A Practical Guide for Developers & Architects
Software Engineering for AI Systems
-
Designing machine learning systems
Designing machine learning systems / [First edition]., Ascent Audio; Ascent Audio
-
Designing Machine Learning Systems
O'Reilly Media
-
AI ENGINEERING : building applications with foundation models
O'Reilly Media Inc
-
AI Engineering
O'Reilly Media
-
Building machine learning powered applications : going from idea to product
First edition., O'Reilly
Module leaders
Dr Eoin WoodsDr Robert Chatley