MODULE INDICATIVE CONTENT
Software development lifecycles
The Agile Manifesto
Rationale and Benefits of Agile
Major agile frameworks such as Scrum, XP, Lean and Kanban
Current development environments and technologies.
Current Software development practices utilising a current programming language
Practical experience of agile development
Agile techniques such as version control, refactoring, automated testing, continuous delivery
Legal and ethical aspects of software development
Security: typical threats, attacks and exploits, and the motivations behind them
Licensing and liability.
MODULE ADDITIONAL ASSESSMENT DETAILS
Report (1500 words) on the current software development practices used in industry, and recommendation for the approach to be taken
Presentation / Demonstration – creation of a small software application for a given context, presentation of the final solution, tests and way forward (30 mins)
MODULE LEARNING STRATEGIES
13 Lectures, and 26 Tutorials
The weekly lecture will supply the underlying knowledge for the module, supported by the 2 hour weekly tutorial.
MODULE TEXTS
https://www.agilealliance.org/agile101/the-agile-manifesto/
McCarthy R - Agile: What You Need to Know About Agile Project Management, the Kanban Process, Lean Thinking, and Scrum Primasta (24 Aug. 2020) ISBN-10 ¿ : ¿ 1952559499
Loubser N Software Engineering for Absolute Beginners: Your Guide to Creating Software Products
Publisher ¿ : ¿ Apress; 1st ed. edition (31 Jan. 2021)
ISBN-10 ¿ : ¿ 1484266218
Appropriate software language documentation
MODULE RESOURCES
Repository for version control
Suitable IDE for software development
MODULE LEARNING OUTCOMES
1. demonstrate a systematic understanding of the management of current software development practices used in industry.
knowledge and understanding
2. critically evaluate the current theory and practice of software development approaches used in industry, to make a recommendation on the process of developing a software application
analysis
enquiry
3. analyse a given context to design, implement and test an application in a suitable programming language
problem solving
application
analysis
4. reflect critically on the process undertaken, the professionalisation and skills developed during the development of a software application, and make recommendations for future development
communication
reflection