share this page

Overview

Apply Now >>

Architecture regardless of the domain is about creating structure and a vision.

As a noun, architecture is about create a “unifying or coherent form or structure” [Merriam-Webster]. As a verb, the process of architecting something involves gaining an understanding of what you need to build, creating a vision to realise this and making appropriate design decisions along the way. Across all disciples, requirements drive architecture and the communication of the vision forms a critical component of realising the end product or structure.

In software, architecture spans across a number of pillars which include the application, system, software and enterprise. Application architecture represent the fundamental building blocks of the software and at this layer an architect needs to make decisions about the programming language, the constructs, libraries and frameworks that will be used to develop the software. It is rare that an application lives in isolation and typically a system is composed of multiple collaborating applications. At this system level, software architects are concerned about issues such as reliability, interoperability and integration. Applications are developed using software and software architecture is concerned with the significant elements of the software system from the structure and design of the code to deployment of that code to the live environment. At this layer a software architect is concerned about issues such as security, reliability, authentication, performance etc.

Across these pillars, software architects make architectural decisions that shape a system and design decisions to ensure his/her vision is realised. In this programme, students will learn skills to fulfil the role of software architect or senior member of the development team. The programme is designed to form part of the evolutionary process that a software developer undertakes to undertake this role as software architect in their respective organisation.

CorkDev.io recorded video promoting the programme
Slide deck and presentation on the programme

Industry and academic experts leaders in their field

The programme is taught by industry and academic leaders in their field who are either practitioners as software architects or senior technical architects or research active in the field.  

What is the aim of the programme?

This programme aims to form part of the evolutionary path that a software developer takes in becoming a software architect, allowing them to advance their technical career path. As part of this programme students will learn and understand the role of a software architect, in creating an extensible and maintainable software solution by applying abstract knowledge and well known patterns to software architecture and design. This traditional role of software architect will also be critically assessed in the face of agile development methodologies and the adoption of tools and practices that avoid or decouple up front systems or architectural design.

What skills will I learn?

Students will learn skills to system architect an application, system and software. Modules have been created to develop competencies across these pillars.

  • Software Architecture & Design - Across these pillars, students will learn about the principles of software architecture and design and common architectural design patterns to solve problems when designing software. As poorly designed software and applications affect the non functional requirements of the underlying system, students will also be taught skills on how to develop algorithms and analyse these algorithms in terms of efficiency and performance. In addition, they will also be able identify and assess software vulnerabilities that impact the security of the underlying software system.
  • Application architecture - programming languages and their choice are an important tool in software development and knowledge and understanding on how programming languages are implemented are invaluable to success design, develop and maintain software systems. In this programme, students are given the opportunity to develop skills (as an elective) in programming language design.
  • System Architecture - Students will also develop skills in applying emerging trends and paradigms in software architecture, and the challenges, risks and opportunities in migrating from a monolithic software architecture to microservices. They will learn how to migrate complexity inherent in software to development and operations (DevOps) and how to automate, scale and manage a distributed system created from a collaborating components.

Who should apply for this programme?

  • Are you a software developer or engineer looking to advance your career with a professional master’s degree in the area?
  • Do you have 3 years professional experience in software development/engineering?
  • Do you want to move into the role as software architect or senior member of a development team?
  • Do you want to become a technical leader and communicator in your organisation?
  • Do you have deep design and programming skills and want to apply these skills as a software architect?

If you answer yes to all of the above then you should apply now for the programme.

Apply Now >>

Graduate Profile

At the end of this programme students will be able to fulfil a number of roles as a software architect, senior engineer/developer or IT/Software manager.

Contact

Dr Donna O’Shea
Department of Computer Science
E: cloud@cit.ie           
T: +353 (21) 4335116

 

© 2017 CIT | web development by Granite Digital