Software Engineering Program Information (Curriculum 369)
LCDR Eric McMullen, USN
Program Manager (DL)
Man-Tak Shing, Ph.D.
The Software Engineering program is no longer accepting new entries into the degree programs. Students interested in Software Engineering are referred to the Computer Science (Curric 368) degree program’s Software Engineering and Architecture Track.
The defense community, through a NATO-sponsored workshop in 1968, strongly recommended making the developing and maintenance of software-intensive systems a true engineering endeavor. The participants at that workshop coined the term "software crisis" to describe the poor track record the defense community had at that time: Systems were being delivered behind schedule or not at all, the system development and maintenance efforts were usually over budget, and those systems that were delivered typically were missing functionality or even had unwanted or incorrect functionality. Since that time, software development and maintenance has slowly emerged from an ad hoc practice to an engineering discipline that is based on scientific knowledge from computer science. While computer science provides good models and theories to analyze problems and synthesize solutions, it fails to package the results for operational use, leading to the criticism sometimes made by software producers that computer science is irrelevant to practical software.
The software engineering curriculum is designed to address the seemingly never-ending "software crisis" within the defense community. It builds on the student's knowledge of both computer science and engineering sciences, in addition to leveraging the student's real-world, problem-solving experience working with software-intensive systems. The curriculum introduces students to a set of engineering practices that enable acquisition professionals to procure highly dependable, trustworthy software-intensive systems on schedule, within budget, and with the correct functionality. The curriculum introduces the students to the theory, principles, and practices of software engineering.
The Software Engineering curriculum consists of a master's degree program, a doctoral program, and specialized certificate programs. All three programs are offered in both resident and distance learning delivery formats, with accommodations for both full- and part-time students. The brief here provides an overview of the Software Engineering program.
M.S. in Software Engineering
The master's program is geared to the needs of entry- to senior-level engineers and other types of acquisition professionals. The master's program consists of a twelve-course plan of study and a thesis. The core courses cover the fundamentals of software engineering: software methodology, software engineering and management, formal methods in software engineering, principles of software design, and software risk management. There are thirty-five elective courses in software engineering, the majority of which are either DoD-unique or DoD-relevant, from which the student can tailor his or her program of study. Click here for details about the program.
Ph.D. in Software Engineering
In 1998, NPS established the first doctoral program in Software Engineering in the world. The program supports the DoD's efforts to advance software engineering principles and technology. Students in this program perform state-of-the-art research on issues related to the development and maintenance of large complex software systems. The student body consists of mid- to senior-level personnel within the systems-acquisition and engineering-research communities. As of the beginning of 2007, sixteen students had graduated from the program and assumed senior-level leadership roles in the DoD R&D community. Click here for details about the program.