Software Development Methodologies
Instructor(s): | Prof. Christos Tjortjis |
Teaching Hours and Credit Allocation: | 30 Hours, 6 Credits |
Course Assessment: | Exam & Coursework |
Aims
The ever growing penetration of computers in everyday life has led to the need to develop a vast number of software programs, which in turn resulted to the emergence of a large number of programming languages, frameworks, SDKs, paradigms and techniques. Being able to write functional and maintainable code entails good knowledge of the most important programming concepts, methodologies and techniques. This is even more necessary now because of the extended fragmentation of the programming market. This course aims to teach students popular principles, techniques, tools and methods used to develop software efficiently. Requirement analysis, UML, Object-oriented analysis, design and programming, usage of Application Programming Interfaces (APIs), software maintenance, project and version management are some of the topics covered through theory and practice.
Learning Outcomes
On completing the course students will be able to:
- Appreciate principles, concepts, and techniques used to develop software efficiently
- Demonstrate how to effectively apply software engineering methods, tools and techniques
- Plan, manage and collaborate on a Software Development group project
- Obtain the knowledge and skills required for effective management of the software maintenance process
- Have developed effective software engineering, management and communication skills
Content
- Software development principles, techniques, methods and tools
- Requirement analysis
- UML
- Object-oriented analysis, design and programming
- Application Programming Interfaces (APIs)
- Software maintenance and evolution
- Project and version management
Reading
D. Avison, G. Fitzgerald, Information Systems Development methodologies, techniques and tools, 4e, McGraw Hill, 2006.
A. Dennis, B.H. Wixom, D. Teagarden, Systems Analysis and Design: An Object-Oriented Approach with UML, Wiley, 4th ed., 2012.
S. Bennett, S .McRobb, R. Farmer, Object-Oriented Systems Analysis and Design, 4th ed., McGraw Hill, 2010,
B. Oestereich, Developing software with UML : object-oriented analysis and design in practice, 2nd ed. Addison Wesley, 2002.
M. O' Docherty, Object-Oriented Analysis & Design. Understanding System Development with UML 2.0, Wiley, 2005.
R.S. Pressman, Software Engineering- A Practitioner's Approach, 8th ed. McGraw Hill, 2014.
I. Sommerville, Software Engineering, 9E ed. Addison-Wesley, 2010.