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.