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
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.
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 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.
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.
Request More Information
Complete this form to receive information about coursework, admissions, tuition and more.