The Pace online MS in Software Development and Engineering is a 36-credit advanced program that focuses on the application of engineering principles to the development process. It is distinguished by a rigorous, in-depth study of managing, designing, developing, delivering, and maintaining large software systems.
This online master’s is predicated on the Software Engineering Body of Knowledge (SWEBOK). It is regularly updated based on feedback from our students, our industry partners, and our alumni.
The master’s program aims to create well-rounded, expert engineers who are prepared to:
- Identify, formulate, and solve software engineering problems
- Contribute value to or lead collaborative software development teams
- Effectively design systems, components, or processes that meets their organizations’ needs
- Take on advanced responsibilities while maintaining high business and ethical standards
- Employ advanced leadership, interpersonal, and communication skills to advance their careers
- Pursue lifelong learning opportunities, including those offered by the Pace network
Online MS in Software Development and Engineering Courses
PREPARATORY COURSES (4 credits)
Although competency in programming is required for admission into the program, any student lacking knowledge of the object-oriented paradigm will be required to take SE 602.
Students will be introduced to the fundamental concepts of object-oriented approach using Java as the programming language. The course places a strong focus on problem-solving and object-oriented thinking. The course will also provide an introduction to objects and object-oriented analysis and design, class libraries, packages and formatted output, and compiling and running applications. Fundamental issues of programming will also be covered including I/O, data types, assignments and expressions, conditional statements, loop statements, classes and objects, events, listeners, animations, strings, arrays, graphics, and colors.
CORE REQUIREMENTS (18 credits)
This course will examine the methodologies used in the design, documentation, verification, implementation, validation, performance, evaluation, and maintenance of large software systems. Methodologies included are structured programming and walk-throughs, top-down modular design, proof of correctness, and automated testing techniques. Participants will design and implement large modular software systems using techniques chosen or evolved from those presented.
This course covers a number of techniques for designing, implementing, and testing large-scale software systems, as well as principles and methods for developing high-quality software systems using object-oriented technology and its applications. Topics include object-oriented modeling, design, and implementation using design patterns and object-oriented frameworks. The course reviews object-oriented analysis and modeling principles, concepts, notations, case studies, design patterns, abstract factory, factory methods, singleton, composite, observer, as well as the use of design patterns, case studies, implementation techniques in Java and other related issues such as incremental development.
This course describes the role of requirements in the construction and continued maintenance of software-intensive systems. It provides a broad overview of the notations, techniques, methods, and tools that can be used to support the various activities of requirements engineering, offers a framework to assess their applicability, and complements this with the opportunity to gain experience in a selection of these. The course seeks to illustrate the wider relevance of requirements engineering to everyday projects, examine the breath of skills required, and explore the many contributing disciplines.
Reliability is a key attribute of software quality. It is defined as the probability of failure-free software operation for a specified period of time in a specified environment. The course focuses on modeling, measuring, and improving software reliability. It also covers the place of dependability in reliability. This course introduces different software reliability models, which are metrics to assess and techniques to improve software reliability. It also looks at the specific roles of auditing, testing, standards, and processes in the context of quality.
This is an introduction to advanced software engineering research and methodologies. It surveys the entire field of software engineering, drawing upon the latest advances that have been published in software engineering journals and conference proceedings. Topics to be covered include requirements engineering, software and system design, testing methodologies, maintenance techniques, project management practices, software engineering tools and methods, quality assurance procedures, software models and metrics, visualization in software engineering, and risk management.
ELECTIVES (12 credits)
Available elective options change each semester. Please work with your academic advisor to find out which ones are available and of interest to you each semester.
Students will take this course in order to complete a study in the area of their own interest in close cooperation with the professor. It is a variable credit course. The number of credits is determined by the professor and is based on the depth of the study and the volume of the work performed by the student.
This course provides in-depth coverage of object-oriented techniques in the design and development of software systems for enterprise applications. The following topics will be covered as part of the course: component architecture (Enterprise JavaBeans), GUI components such as Swing, database connectivity and object repositories, and server application integration using technologies such as servlets, JSP, and JDBC.
This course describes a variety of important aspects of modern software application development, looking at the data and document interchange between different applications. It covers emerging technologies such as Extensible Markup Language (XML), XML schema, XML style-sheet languages (XSL), and the Document Object Model (DOM). Existing applications and tools will be discussed and used in small projects for parsing, transforming, and manipulating documents.
The course focuses on an emerging and promising software development technique: formal methods. It emphasizes the practical applications of formal methods in various phases of software development. It starts with an introduction to formal methods logic and formal specifications and moves to programming techniques with specifications, assertions, invariants, and contracts.
This course covers software validation and verification techniques and their role in the software engineering process and quality assessment. Testing processes, metrics, and a variety of testing techniques (including unit, black box / white box, structural, security, and performance testing) and supportive tools are introduced. The course also addresses the use of logic to specify and prove properties of programs using model checking and theorem proving.
Design principles and practical techniques will be introduced for building and evaluating user-centered, intuitive, effective computing systems; these will be explored through a series of design projects and student presentations. Topics include principles of usable design, interface elements, user psychology, prototyping, and an introduction to interface evaluation. Project examples may include web design, multimedia interfaces, or mobile and specialized applications.
This course surveys methods for evaluating user interfaces. Students will learn essential knowledge to be able to perform a heuristic evaluation, a cognitive walkthrough, a usability test and a comparison study. Class meetings will also introduce, discuss, and occasionally practice additional techniques including user modeling, usage logging, surveys, and focus groups. A primary goal is to learn how to conduct various methods for evaluating user interfaces.
This course introduces design and implementation of network distributed systems. It covers design and formal specification of client-server applications using state machines and communication protocol techniques. It also teaches the fundamentals and techniques of developing distributed object-oriented applications, using a patterns-based approach. Concepts covered include networks, client-server architectures, dataflow networks, sockets, and message-passing systems.
This course will discuss software security touchpoints, i.e., software security best practices, including code review, architectural risk analysis, penetration testing, risk-based security testing, abuse cases, security requirements, and security operations. Additional topics such as enterprise software security programs will also be covered.
This course will discuss the capability maturity model (CMM) from the Software Engineering Institute. Each level of the CMM will be studied and case studies will be developed. Capability Maturity Model Integration will also be extensively discussed and studied.
CAPSTONE (6 credits)
Choose one of the following combinations:
- SE Advanced Elective + SE 785 Software Engineering Studio
- SE 701 Software Development Thesis I + SE 702 Software Development Thesis II
- SE Advanced Elective + IEEE Certification
SE Advanced Elective (3 credits)
The Software Engineering Studio is the capstone course for this program. It provides the opportunity for students to apply the knowledge and expertise that they have gained throughout the program to a significant, realistic, and practical problem. They plan, estimate, develop, and evaluate software solutions to these problems. The main goal is to apply the majority of the software engineering core content. The software projects will be used by clients such as the Information Systems Division at Pace University or local business and software development companies.
Students choosing this option will select and research a topic in software development in consultation with a faculty advisor. A brief, written thesis proposal must be approved by the advisor and a committee chosen by the student, advisor, and department chair. Students enrolled for Thesis I, will complete preparatory research culminating in a written Thesis Report.
This course continues the student’s work on a thesis. Those not electing to continue with Thesis II will receive a grade for Thesis I and may use it as an elective coursework.
Students who pass the IEEE Professional Software Developer Certification exam can elect to earn three graduate credits towards their master’s degree.
Total Credits: 36, not including preparatory courses
*SE 602 does not count towards the 36 credits needed to complete the master’s, but the final course grade will be part of the student’s overall GPA.
To learn more about online Master of Science in Software Development and Engineering, fill out the fields in this form to download a free brochure. If you have any questions at any time, please contact an admission advisor at (866) 843-7205.