Skip to content

Master of Software Engineering Online Courses

Curriculum Details

30 Total Credits Required

Our online master’s degree in software engineering focuses on practical knowledge, processes and technologies. Our courses cover design, development, cutting-edge technology and the maintenance of software systems.

Focus your education with diverse electives, including database management, web development, cloud computing, agile software development, design patterns and more, or choose our cybersecurity concentration, where you’ll learn cloud and network security, identity management and access control, and secure development technologies.

Required Courses

Credits

This course examines Java technologies a software engineer can use to meet the challenges of software development for large-scale development projects. Large-scale systems typically support a complex system architecture, incorporate a significant amount of business logic, interoperate with a variety of back-end and partner systems, and access various data stores. This course will focus on the following major technologies that meet these challenges: Spring Framework and RESTful Web Services.
Object-oriented modeling and design form the foundation of many software projects today and are pre-requisites to developing in C++, Java, and other object-oriented programming languages. This course covers object modeling and design techniques as they are applied from the point the high-level project requirements are established, through high level and detailed design, to the point where implementation is ready to start. The course focuses on Unified Modeling Language (UML), an approach that combines previously competing object modeling theories, as well as concepts including distributed object frameworks; design patterns; existing object-oriented languages such as C++ and Java; and lifecycle and maintenance issues of object-oriented applications.
This course covers non-programming related aspects and best practices of the software development process, from requirements engineering, architectural design, and quality management to software maintenance and process improvement. Concepts addressed include software engineering tools, models, and methodologies; requirements engineering and specifications; system modeling; business process analysis; VORD and Use Case analysis; control and distribution models; estimating and scheduling; risk management; software maintenance and improvement; and ethics within the industry.
This course provides an introduction to theory, tools and techniques needed by software release engineers. It is intended to give students the skills to evaluate and use tools for continuous integration and delivery (DevOps).
This course provides an opportunity for students to work collaboratively on a complex software project. Organized in teams, students will analyze a software problem, develop requirements, designs, test plans, and deliver code. Students will synthesize skills learned in the core courses of the Software Engineering program to deliver a significant project, under the guidance of faculty.
This course covers topics related to software testing methodology, with a focus on realistic, pragmatic steps for testing consumer and business software. Concepts covered include test cycles; testing objectives; testing in the software development process; types of software errors; reporting and analyzing software errors; problem tracking systems; test case design; testing tools; test planning; test documentation; and managing a test group.

Cybersecurity Concentration Courses – Choose 4

Credits

Foundations of Cybersecurity for Software Engineering Professionals will expose students to higher-level security concepts, infrastructures, standards, protocols and best practices that are necessary for today’s Software Engineering professional. Building on the knowledge of fundamental security technologies covered in Foundations of Information Security, students will develop an understanding of the fundamental tenets of information assurance solutions for businesses, government agencies and enterprises which require the establishment of a comprehensive security strategy and execution plan. This course will expose students to key concepts and principles in security operations; security architecture and design; information security governance and risk management; business continuity and disaster recovery planning; and topics in legal, regulations, investigations and compliance.

This course covers the concepts and practices of using user access control techniques and mechanisms to appropriately address security requirements such as confidentiality, integrity, authentication, authorization, and accountability. Concepts explored include common IT security challenges; the role of cryptography; access control principles, mechanisms, and techniques related to user identification and strategies for enabling stronger authentication using Public-Key Infrastructure (PKI), smartcards, and biometrics; enterprise identity management concepts; and industry standards for enabling identity provisioning, single sign-on, and federation.
This course covers applied security concepts, technologies, techniques, patterns, best practices and checklists intended for securing Web based applications, XML Web services and SOA. The course illustrates the real-world security challenges in IT applications and drills down on strategies for identifying security threats and risks; adopting a security design methodology; implementing security architecture using patterns and best practices; and performing security testing and production deployment.

Cloud computing is ubiquitous. Understanding Cloud and adding value in the migration, implementation, auditing and management of Cloud solutions and service models is the frontier of today’s security leader. Increasingly our role is demanding advisory guidance and insight to groups such as Legal, Procurement, and Senior Executives. Being conversant in SaaS, PaaS, IaaS is no longer an option but is now a requirement, and integrating Cloud knowledge into a security program and security leadership will demand a multifaceted understanding of the technical, the managerial, and the business objectives. The focus of this course is to provide insight into:

  • Cloud definitions and service models
  • Cloud risk assessment and auditing
  • Cloud security and controls
  • Data governance and management
  • Cloud contract management and managed service provider management
  • Legal and regulatory considerations

Our goal is a comprehensive view on Cloud that will enable the security leader to become fluent in assessing, negotiating, managing, controlling and reporting upon Cloud value and Cloud data protection in their organization.

Network security is a broad term that can refer to the security of devices that comprise the network infrastructure, the traffic sent over that infrastructure, the hosts (clients and servers) attached to the infrastructure, the applications that utilize the network, the user community and the policies that govern usage of that network.

In this course, we will use the first four layers of the OSI protocol stack (physical, link, network, and transport) to introduce many aspects of network security. In particular, we will consider how devices at each layer provide ‘defense in depth’ by securing communications traffic as well as preventing unauthorized access. Our examination will be enhanced by using various security tools to observe network traffic that illustrates how security can be applied throughout today’s enterprise.

Elective Courses – Choose 4

Credits

This course explores advanced topics of Java programming language, including object- oriented programming concepts; exceptions; generic programming and annotations; collections; Java foundations classes (JFC); delegation event model; layout managers; swing components including panels, menus, toolbars, and text components; multi-threading; streams and input/output programming; networking; and Java database connectivity (JDBC).
This course provides a solid foundation of C++ with focus on object-oriented concepts and programming techniques. Concepts covered include classes, objects, abstract data types, file processing, inheritance, encapsulation, polymorphism, overloading, reuse, and templates.
This course introduces user interface design principles and concepts of user-centered design. User interface concepts for web, desktop and mobile applications are practiced in a variety of design projects. Universal design concepts, accessibility design, navigational schemas and elements of screen design are also discussed.

This course provides hands-on experience with functional programming—a style of programming that has seen increasing popularity due to its ability to work with complex concepts through highly adaptable models. Functional programming supports higher-level abstractions, customizable data structures, as well as concurrency and parallelism inherent in cloud computing and big data analytics. Students will use functional extensions of Java and a popular functional programming language Scala to apply functional programming approach to a variety of design, modeling and implementation challenges.

This course provides an extensive examination of the following Web Development Technologies used in developing web applications: HTML5, Cascading Style Sheets (CSS3), Responsive Web Design, Modern JavaScript, React JS.
Design Patterns form an advanced area in object oriented design and architecture. Design patterns focus on solutions to problems commonly found in design of object oriented programs. The first part of the course examines the fundamentals of the core patterns: creational, behavioral, structural, and system patterns. The second part of the course examines patterns of enterprise applications. Enterprise applications handle display, business operations, and database interaction of large amount of often complex data. Examples include financial systems, reservation systems, supply chain system, and many others that run modern business. Enterprise applications are structured in layers. Discussions of layers of enterprise architecture is followed by design patterns that are used in each layer.

Microservices provide a proven architecture for building service-oriented enterprise applications of any scale. Microservices architecture enables development of complex software applications by decomposing them into smaller services that work together to form larger business services. Microservices are independent of each other, self-contained, and independently deployable.

The Architecture part of the course will examine a technology-agnostic microservice capability model that addresses monitoring, managing, distributing, scaling, and discovery of microservices. The Development part of the course will focus on implementing responsive microservices at scale. This part of the course will use the latest proven frameworks and products to build scalable microservices: Spring Boot, Spring Cloud, Docker, Mesos, and Marathon.

At the end of the course, students will be able to:

  • Build REST- based and message-based microservices using the Spring framework.
  • Deploy autonomous services in a serverless mode using Spring Boot.
  • Scale microservices with Spring Cloud.
  • Containerize microservices with Docker.
  • Manage Dockerized microservices with Mesos and Marathon.
  • Develop logging and monitoring aspects of microservices.

This course covers data modeling, including relational, object-oriented, and object-relational database design concepts and issues. Concepts addressed include relational theory and database design; entity relationship modeling; normalization; issues of design and implementation; issues of database integrity, security, recovery and concurrence; and object-oriented databases.

At the end of the course, students will be able to:

  • Identify and clearly document business requirements and proposed solutions.
  • Define database requirements and design an entity-relationship diagram.
  • Create a conceptual model from an entity-relationship diagram.
  • Translate a conceptual model into a physical design.
  • Apply knowledge of DDL to create a set of tables from a physical design.
  • Develop a set of class diagrams for an object-oriented database design.
  • Code ODL scripts to create a set of tables based upon class diagrams.

The data center is increasingly virtual. In this class, students will explore “cloud”-based services, ranging from “Software as a Service” using internet-based software suites such as Google Docs or Salesforce.com, through platform-based systems (PaaS) such as Microsoft’s Azure environment that make it easy to focus on developing new apps or services, to complete cloud-based infrastructure (IaaS) such as Amazon’s Web Services. The class also explores how use of the cloud also changes how we ‘do’ IT. Cloud-based services are especially well-suited to Agile development and Lean Startup thinking. This leads to new ideas such as DevOps and ‘continuous deployment.’ In addition, use of SaaS security systems changes how we integrate systems, how we handle identity and access management (IAM), opening up new threats’ and new opportunities’ to keep data secure. Finally, we will look at how the cloud enables us to work with more data than ever before, “Big Data” NoSQL databases and scalable infrastructure (e.g., Hadoop). Students will learn how to evaluate the various cloud-based services and how to communicate that evaluation to decision-makers in the organization. There will also be a hands-on practicum using Amazon Web Services (AWS) and exploring the most common features of Infrastructure as a Service (IaaS), and how IaaS, overall, differs from older paradigms of systems management and program architecture.

Agile Software Development has evolved into a flexible software lifecycle model, framework, and set of development techniques that present an answer to challenges of developing software projects under tight timelines and changing requirements.

This course will explore how to best implement an Agile process in an organization that needs a transformation, or how to improve Agile processes in an organization that already uses them. We will examine the barriers to Agile change and how to avoid some of the common pitfalls encountered by Agile adopters. Leadership, organizational culture and team dynamics are a few of the topics that will be studied.

While reviewing a variety of Agile methodologies, including Scrum and Kanban, Scrum will be explored at a deeper level in the execution of a course project. Scaling Agile processes to the larger organization or portfolio of projects will also be reviewed.

Special topics are offered periodically.

Request More Information

Complete this form to receive information about coursework, admissions, tuition and more.