Software Design - Agile Software Design - Athlone
What will I experience?
The Object Oriented Programming modules cover the Oracle Java Certified Associate syllabus and some material from the Oracle Java Certified Professional syllabus.
The Agile Design and Testing modules includes Scrum Master training material and ISTQB Foundation level material, as well as practical experience of test automation tools and version control systems.
In the Team Project modules learners will work as part of a team in a “simulated industry environment” to develop a solution to an industry type problem. The Team Projects are a fundamental element where the group work facilitates peer-supported learning.
Object Oriented Programming 1
This module introduces Java programming and provides hands-on learning regarding the fundamentals of the language. Initially the basics of variables, mathematical, logical and increment/decrement operators are covered. The selection and iteration constructs are subsequently detailed. This leads on to storage mechanisms such as arrays and ArrayLists. Object Oriented Programming concepts are then introduced; covering areas such as methods, constructors, classes and objects, instance versus class variables, encapsulation and access specifiers. This leads on to Inheritance whereby students understand how to extend and override the interface
Agile Design and Testing 1
This module will familiarise students with the area of software lifecycles and methodologies and give students the skills necessary to follow a software lifecycle model through requirements, design and testing phases with a focus on agile methods in particular.
Team Project 1
This module will provide students with an opportunity to practice object oriented design and programming skills and to follow a development methodology. Students will work in teams to design, code and test a simple object oriented system using an agile software methodology.
This module covers data modelling using Entity Relationship Diagrams, normalisation rules and database design. Students will assess transaction management and concurrency in DBMS including distributed databases. Students will assess data storage and retrieval for large data sets.
Networks and Cloud Architecture
This module provides the learner with a good understanding of the important aspects of network communication for software engineers within today’s Internet. It describes different network topologies, architectures and how communication networks support current applications in relation to Quality of Service (QoS) requirements and end users Quality of Experience (QoE). The module evaluates network performance, IP addressing and subnets, the TCP/IP model with its various layers and protocols. In this context, it will also provide an overview of cloud computing architectures and virtualisation in terms of how they support cloud application development.
Object Oriented Programming 2
Initially, a quick review of the core concepts from OOP1 is performed. Inheritance is now covered in more detail. Method overriding versus method overloading leading onto one of the cornerstones of OOP: polymorphism. Static versus dynamic binding is discussed. Understanding the difference between static and dynamic types; including how to safely upcast and downcast. Use of theinstanceof operator. Design features such as abstract classes and interfaces are then explained. How to use the static and final keywords and their implications is then covered. Immutable classes such as String is detailed and how to construct your own immutable class is covered. Type safety using enums is next in addition to how to both break up your code into packages and document it with javadoc. Lastly, how to design with inner classes and File I/O are then covered.
The module will provide a comprehensive overview of the latest client side and server side web technologies. On the server side it will concentrate in detail on using Java based technologies to develop web applications that incorporate database connectivity and can be deployed on the cloud. It will enable students to develop rich internet applications with rich client interactivity using the latest technologies including HTML5.
Agile Design and Testing 2
The primary focus of this module is to, within the agile process, provide theoretical and practical approaches to producing clean code. An emphasis is placed on Test Driven Development, Automation, Build and Deployment for a cloud environment.
It provides the student with insights into the methods for building clean code as per industry practices. The module will include exposure to most of the following tools or technologies: Java, Groovy, Ant, Maven, Rake, Hudson, Cucumber, Git, SVN, Eclipse and Refactoring.
ICT Placement Preparation
The purpose of this module is to increase student awareness of graduate and other job opportunities and to enable them develop the tools and skills to secure these roles.
ICT Internal Placement
Provide the learner with an alternative to placement in instances where it is not possible to undertake or complete a placement. The module will allow the learner to gain experience in the structure of team work through the development and delivery of an integrated project with regular deliverables. The learner will also develop their understanding of the wider ICT landscape.
Students will be required to spend a minimum of 16 weeks on placement with a software development company. The objective of the work placement is to give students an exposure to a range of learning experiences in a work environment setting. In this way, the student is faced with the challenge of relating material learned at college to real world situations. In addition, they will learn to perform competently in an actual work situation and to interact with other team members and colleagues.
Minimum Entry Requirements:
Level 7 qualification in ICT related discipline (engineering or software)
Level 8 qualification in a non-engineering/ICT discipline.
1 year full-time, 2 years part-time.
Course Commencement -September
Post Course Info
Graduates of this programme who attain honours in this programme will possess the necessary background to enable progression to the existing taught Master of Science in Software Engineering or the Master of Science in Applied Software Engineering at TUS. These students will also be in a position to apply for admission to taught level 9 programmes at other third level providers. Students have the option to progress to postgraduate research programmes both at TUS and other third level providers.