
Online Software Engineering Master's Program
The Software Engineering master’s program combines a deep core in software engineering principles and practices with application to a series of increasingly complex systems challenges drawn from the real world.
Through this program, our students are equipped with advanced knowledge in software architecture, project management, technical planning, risk management and software assurance – areas that are essential in implementing and overseeing software-intensive projects of high technical complexity.
The master’s degree requires ten courses (30 credits): seven core required courses and three elective courses. For a guide on how you can structure your course enrollments each semester, take a look below:
Term 1
This course introduces the subject of software engineering, also known as software development process or software development best practice from a quantitative, i.e., analytic- and metrics-based point of view. Topics include introductions to: software life-cycle process models from the heaviest weight, used on very large projects, to the lightest weight, e.g., extreme programming; industry-standard software engineering tools; teamwork; project planning and management; object-oriented analysis and design. The course is case history and project oriented.
In software problem areas that require exploratory development efforts, those with complex requirements and high levels of change, agile software development practices are highly effective when deployed in a collaborative, people-centered organizational culture. This course examines agile methods, including Extreme Programming (XP), Scrum, Lean, Crystal, Dynamic Systems Development Method and Feature-Driven Development to understand how rapid realization of software occurs most effectively. The ability of agile development teams to rapidly develop high quality, customer-valued software is examined and contrasted with teams following more traditional methodologies that emphasize planning and documentation. Students will learn agile development principles and techniques covering the entire software development process from problem conception through development, testing and deployment, and will be able to effectively participate in and manage agile software developments as a result of their successfully completing this course. Case studies and software development projects are used throughout.
Term 2
Requirements Acquisition is one of the least understood and hardest phases in the development of software products, especially because requirements are often unclear in the minds of many or most stakeholders. This course deals with the identification of stakeholders, the elicitation and verification, with their participation, of the requirements for a new or to-be-extended software product. It deals further with the analysis and modeling of requirements, the first steps in the direction of software design. Finally, it deals with the quality assurance aspects of the software requirements phase of the software development process. This course is case-history and project-oriented, and uses industry-standard software tools.
This course introduces students to the software design process and it’s models; representations of design/architecture; software architectures and design plans; design methods; design state assessment; design quality assurance; and design verification.
Term 3
This course introduces students to systematic testing of software systems, software verification, symbolic execution, software debugging, quality assurance, measurement and prediction of software reliability, project management, software maintenance, software reuse and reverse engineering.
The course deals with the management of software projects using objective metrics that help developers and managers to understand the scope of the work to be accomplished, the risks that will occur, the tasks to be performed, the resources and effort to be expended, and the schedule to be observed. It provides the student with a thorough introduction to facility with, and understanding of such industry-standard software sizing metrics as Function, Feature, and Object Points and their relationship to the lines-of-code metric. It provides the student with a thorough introduction to and understanding of such industry-standard software estimation tools such as COCOMO II used in cost estimation.
Term 4
This course presents the fundamental principles and process for designing effective and reliable, supportable, and maintainable systems. The participants will also understand the concept of system operational effectiveness, and the inherent "cause and effect" relationship between design decisions and system operation, maintenance and logistics. Furthermore, the course will also discuss system life cycle cost modeling as a strategic design decision making methodology and present illustrative case studies.
This course enables the Engineering Management student to acquire the knowledge and skills he/she will need to handle the variety and volume of information encountered in today’s workplace. The course uses Python, which is rapidly becoming the language of choice for information handling and data analysis. Students will work with both structured and semi-structured data.
Term 5
This course illustrates the theory and practice of designing and analyzing supply chains. It provides tool sets to identify key drivers of supply chain performance such as inventory, transportation, information and facilities. Recognizing the interactions between the supply and demand components, the course provides a methodology for implementing integrated supply chains, enabling a framework to leverage these dynamics for effective product/process design and enterprise operations.
This course will provide students with a first strong approach of internet programming. It will give the basic knowledge on how the Internet works and how to create advanced web sites by the use of script languages, after learning the basics of HTML. The course will teach the students how to create a complex global site through the creation of individual working modules, giving them the skills required in any business such as proper team work and coordination between groups.