Master of Science in Software Engineering (MSSE) To contact the School of Engineering, call (203) 254-4147 or e-mail djoy@mail.fairfield.edu
Introduction
Over the past several decades computer use has become widespread in our daily lives. This use has expanded at an ever increasing rate. Software is the core mechanism by which we interact and make use of these systems. It increasingly plays a central role in the world around us. Software can be found in business, banking, education, entertainment, medicine, science, engineering, transportation, agriculture, manufacturing, and government: literally everywhere.
The size and complexity of software systems has steadily increased. Their complexity and usefulness has increased our productivity and allowed us to create new environments for work and play. Today there are hundreds of thousands of engineers and computing professionals that go by the title of "software engineer". The field is one of the most prevalent engineering disciplines.
Software Engineering is the center point at Fairfield for the study of software systems and their specification, design, implementation, testing, and maintenance. The department includes specializations familiar to the IT professional in web, database, networking, system administration, and security.
Students in software engineering study the most modern techniques, methodologies, tools, and hardware that comprise the software discipline and its applications. Programming languages used in our coursework are the most influential in the field. Design methodologies studied are the most up to date. Our students engage with topics such as programming in a variety of languages, UML design, project management, database interaction, operating systems, object oriented programming, client/server systems, algorithms, network administration, information security, data warehousing, and LAN/WAN engineering.
Students
Software Engineering appeals to students coming from a variety of settings. Typical examples include:
- Students that are retraining so that they can move into a higher paying or more prevalent employment category.
- Engineering students that are moving into software development and engineering due to changes in their career plans.
- Computer science students that want a graduate degree in software where that degree is more closely related to their job expectations and software development careers.
- Students in the IT area that want to undertake graduate studies that can include courses in network administration, system administration, database administration and information security.
- Undergraduate students from Fairfield who want to continue their studies and get a graduate engineering degree from Fairfield.
- Students who are interested in eventually pursuing a Ph.D.
- International students who are interested in pursuing a graduate degree at a small well respected University in the United States.
- Students interested in obtaining a certificate or in taking one or more courses as a special student.
Program Overview
The School of Engineering offers a master's degree in software engineering (MSSE) as well as graduate-level certificate programs in select areas of software engineering. The MSSE program is intended to serve the needs of network administrators, software designers, and other information technology professionals. Students who do not meet a minimum experience level or who have other skill deficiencies will find a number of bridge courses available to prepare them for the MSSE curriculum demands.
The certificate programs allow software professionals to upgrade their skills in selected areas. Certificate program students enroll under "special student" status and participate in courses offered through the MSSE program, earning credits toward the MSSE degree, should they choose to pursue it. Three certificate programs are available: Web Applications Development, Information Security Technologies, and Network Technologies.
Engineering education programs seek to impart technical, mathematical, and engineering design knowledge that can be applied to the creative development of products, or solutions to problems, that are useful to society. The MSSE program emphasizes software as the product to be built, recognizing a transformation of the national economy that embraces knowledge industries as well as traditional manufacturing.
Software Engineering Studio
The software engineering program is focused around a team driven software engineering studio. In the studio the student experiences the various phases of the software engineering development lifecycle while working on a significant software development project. The projects are chosen by the faculty. Criteria for projects are that they are complex, allow the students to experience advanced software engineering topics, and require several semesters for completion. During a students work in the software engineering program they must take at least one semester in each of the four studio areas that include:
- Requirements gathering and analysis
- Design and prototyping
- Implementation
- Testing and Maintenance
The courses in the software engineering studio are the following:
SW 400 Software Engineering Methods - an exploration of requirements gathering and system analysis and their application to a specific software project.
SW 401 Software Design Methods - an exploration of software design methods and prototyping and their application to a specific software project.
SW 550 Software Capstone Project I - an exploration into the continuing implementation of a specific software project.
SW 551 Software Capstone Project II - an exploration into the deployment, testing and maintenance of software and the application of these methods to a specific software development project.
In these courses there is a combination of material presented by lecture and team efforts focused on a specific project.
Specialization Areas
The MSSE program emphasizes the integration of design, implementation, and software engineering skills to meet the challenges of developing software systems. Specialization areas include:
• Enterprise Systems and Web Architecture. The focus of this specialization is on architectures of software systems, software system design, programming languages, system testing, operating systems, algorithms, and engineering systems such as graphics, image or voice processing.
• Enterprise Systems Database Architecture. The focus of this specialization is on databases, database access methods, database design, data mining, data warehousing, performance optimization, and advanced database topics.
• Software Development Management. The focus of this specialization is on software project planning and control, risk identification and management, network and computer capacity planning, customer/client communication and requirement gathering, software quality control and assurance techniques, measurement and metrics, people and team skills, and managing change.
• Information Security. Information security involves the student in the analysis of potential security violations, the design and implementation of countermeasures necessary to ensure security, the study of data transmission encryption schemes, and discussions of the social impacts of security methodologies.
• Network Technology. Students focus on the design and implementation of networks and the infrastructure needed to support enterprise-level software operations.
Additional Specializations
In addition, special design and technical program courses are offered that focus on specific technical needs of industrial and commercial companies in the area. Typically these courses are designed to meet specific needs of a company.
The MSSE Curriculum
MSSE students are required to complete the software engineering studio consisting of four courses. They must develop the skills necessary to pursue the studio through their additional elective coursework.
In addition, students must be proficient in programming. Students in the specializations of Software Development Management and Network Technology must be proficient in at least one programming language. Students in the other specializations must be proficient in two programming languages. In general this proficiency would be in Visual Basic and one of the languages Java, C++, or C#. The proficiencies would be at an advanced level. This can be accomplished either through coursework or through employment.
Students take elective courses in one or more of the specializations in which they have an interest namely: system architecture, database architecture, software development management, information security, and network technology
Students may also take elective courses offered in the MSMOT and the MSECE programs with permission from the instructor and their advisor.
Prerequisites and Foundation Competencies:
The MSSE degree requires students to have competencies that will allow them to pursue graduate coursework. Knowledge and/or experience in data structures, applications programming, systems analysis and design, and mathematics is required. Gaps in knowledge and experience in these areas can be remedied by bridge courses that are offered in the undergraduate software engineering program. Before continuing with graduate work students must correct deficiencies sufficiently to allow them to succeed. Generally a student who is retraining to move from a different discipline into software engineering can expect at least 12 credits of work to catch up in the field. For example: Students with no prior programming experience would be required to take CS 131 Computer Programming I, CS132 Computer Programming II and CS 232 Data Structures, under advisement from the program director. The student may also be encouraged to take additional non-credit courses during their graduate work as needed. These additional prerequisites will be determined on an individual basis.
Degree Requirements
Completion of a minimum of 8 three-credit courses plus a four-semester, twelve-credit software engineering studio (36 total credits), as indicated below, comprise the graduation requirements for the program.
Core Courses - Programming as needed
Students in the Software Development Management and Network Technology specialization must be proficient in one programming language. Students in the other specializations must be proficient in two or more programming languages. These proficiencies can be accomplished either through coursework or through employment or external work. The proficiencies must be at a level that will allow the student to be successful in the software engineering studio. Preparation success will be determined by the advisor and the studio instructors.
The programming proficiencies will be in one or more of the languages Visual Basic, Java, C++, or C#.
REQUIRED COURSES
- Software Engineering Studio - 12 credits
The studio covers the software development lifecycle of requirements gathering, requirements analysis, design, prototyping, implementation, testing, deployment and maintenance. Students are typically organized into teams that contribute to a significant software development project. These projects are chosen to advance the student's knowledge in topics related to the specialization areas. Topics are chosen by the faculty. Students consult with their advisors and instructors to determine which projects will contribute most to their education and are assigned to specific projects. Students may also suggest projects if they are of sufficient complexity and will advance their knowledge in an area of interest.
The studio consists of the four courses
SW 400 Software Engineering Methods
SW 401 Software Design Methods
SW 550 Capstone Project I
SW 551 Capstone Project 2
The results of these projects provide a library of case studies, designs, and tools that will be of general interest to information technology professionals and organizations in the area.
- Language Skills - 24 credits
The technically focused specialization allows professionals to develop in-depth knowledge in a technical area of interest. It also provides the technical basis for work in the Software Engineering Studio.
Students who have opted for the Software Development Management or the Network Technology specialization, listed below, must be
proficient in at least one programming language. Students in other specializations will be proficient in two programming languages. The programming language courses are:
SW 403 Visual Basic.Net for Programmers I
SW 408 Java for Programmers I
SW 409 Java for Programmers II
SW 427 Object-Oriented Programming with C++
SW 499 Algorithms in C#
SW 506 VisualBasic.Net for Programmers II
ELECTIVES
a. Specialization in Enterprise Systems and Web Architecture
This specialization allows professionals to gain a greater understanding of the leading technologies for building software systems.
Student work includes the software engineering studio in which the student works with a team from the system architecture point of view on the various phases of the software development life cycle. This includes requirements gathering and analysis, design and prototyping of systems, implementation of complex systems, testing of software, and software maintenance.
Coursework outside of the studio focuses upon topics important to the system architect such as programming languages, web development, graphical user interfaces, databases, information security, enterprise systems, operating systems, and engineering software such as image processing and graphics. The tools used by the student are the most up to date tools available such as JBoss, Rational Rose, Visual Studio .net, Eclipse, WebSphere, Internet Information Server, etc.
Students working in this specialization are expected to have mastered two or more programming languages by the time that they graduate.
Courses in this area are:
SW 406 Web Development I
SW 410 Enterprise Java
SW 505 Advanced Database Concepts
SW 508 Data Warehouse Systems
SW 511 Voice and Signal Processing
SW 512 Web Development II with ASP.Net
SW 513 Image Processing
SW 516 High Performance Database Web Applications with ASP.NET
SW 518 Data Mining
b. Specialization in Enterprise System Database Architecture
This specialization allows professionals to gain a greater understanding of database architecture and design.
Student work includes the software engineering studio in which the student works with a team stressing the database architecture point of view. This includes requirements gathering and analysis, design and prototyping of systems, implementation of complex databases, porting of existing data into a new database, testing of the database with associated software, and database maintenance.
Coursework outside of the studio focuses upon topics in database architecture such as database performance issues, database clusters, distributed databases, data warehousing, data mining, object relational mapping, information security, and web based databases.
Students working in this specialization are expected to have mastered two or more programming languages by the time that they graduate.
Courses in this area are:
SW 505 Advanced Database Concepts
SW 508 Data Warehouse Systems
SW 516 High Performance Database Web Applications with ASP.NET
SW 518 Data Mining
c. Specialization in Network Technology
Students work in networking laboratories and in classroom settings to get hands - on experience with network operating systems, routers and switches, local and wide area network topologies, and to develop the skills to perform network capacity planning and performance monitoring. This course of study combines vendor independent concepts and analytical skills development with work utilizing state of the art equipment from Cisco and Microsoft and other important vendors in the networking industry.
This coursework provides students with all the course materials needed to prepare for the well-respected Cisco Certified Networking Associate (CCNA) credential. Students completing SW 404, SW 596, and SW 597 are eligible to take the Cisco Certification Exams and are provided the opportunity for a voucher to cover the cost of that certification test.
Students working in this specialization are expected to have mastered one or more programming languages by the time that they graduate.
Courses in this area are:
SW 404 Network Concepts
SW 596 Network Routing and Switching
SW 597 LAN/WAN Engineering
SW 598 Computer and Network Capacity Management
d. Specialization in Information Security
Coursework and lab work in this specialization offer an analysis of potential security violations and countermeasures, guide the student through encryption schemes of transmission in web based technologies, and examines social engineering methods in information security.
Students working in this specialization are expected to have mastered two or more programming languages by the time that they graduate.
Courses in this area are:
SW 530 Information Security and Social Engineering Practices
SW 531 Applications and Data Security
SW 535 Internet Technologies and Data Transactions
SW 599 Information Security Measures and Countermeasures
e. Specialization in Software Development Management
Student work includes the software engineering studio in which the student works with a team from the project management point of view. This includes managing the phases of requirements gathering and analysis, design and prototyping of systems, implementation of complex systems, testing of software, and software maintenance.
Courses can be selected from the MSMOT curriculum. Students gain knowledge and skills related to the evaluation, selection, and management of new information technologies that are significant to the long-term viability of an organization.
Students working in this specialization are expected to have mastered one or more programming languages by the time that they graduate.
DM 460 Project Management
GK 420 Technology Management
RD 430 Strategic Management with Information Technology
RD 460 Leadership in Technical Enterprise
SW 502 Software Engineering Practices
SW 598 Computer and Network Capacity Management
SPECIAL TOPICS
Special topics courses are offered as student need and interest arise. These courses can be used to fulfill a portion of the 24 credit non-studio coursework. Students may take special topics courses with permission from their advisor and the course instructor. Special topics courses may have prerequisites and students should make sure that they have covered all prerequisites before taking these courses.
Other Elective Courses
Graduate students can take as additional electives the following courses from the junior and senior level undergraduate curriculum with the addition of a major project implemented under the supervision of the course instructor. Permission of the graduate advisor and the course instructor is required.
CS 331 Operating Systems
CS 342 Theory of Computation
CS 353 Principles of Compiler Design
CS 354 Theory of Programming Languages
CS 355 Artificial Intelligence
CS 391 Cognitive Science Seminar
Elective courses offered jointly through the School of Engineering MSMOT program and the Dolan School of Business MBA program can help students attain their career objectives. These include:
Design Skills
DM 407 Planning for Lean Manufacturing
DM 410 Creative Design and Development of Technology
MG 505 Human Resources Strategies
MK 400 Marketing Management
Engineering Management Skills
AC 500 Accounting and Decision-Making
MG 503 Legal and Ethical Environment of Business
QA 400 Applied Business Statistics
RD 460 Leadership in Technological Enterprise
Certificate Programs
The following certificates of advanced study programs are also available. To earn a certificate, students must complete all listed courses for the specified certificate.
Web Applications Development Certificate
SW 403 VisualBasic.Net for Programmers I
OR
SW 406 Web Development I
SW 506 VisualBasic.Net for Programmers II
SW 512 Web Development II with ASP.Net
SW 516 High Performance Database Web Applications with ASP.NET
Information Security Certificate
SW 530 Information Security and Social Engineering Practices
SW 531 Applications and Data Security
SW 535 Internet Technologies and Data Transactions
SW 599 Information Security Measures and Countermeasures
Network Technology Certificate
SW 404 Network Concepts
SW 596 Network Routing and Switching
SW 597 UN/WAN Engineering
SW 598 Computer and Network Capacity Management
Students completing SW 404 and SW 596 are eligible to take the Cisco Certification Exams and are provided the opportunity for a voucher to cover the cost of that certification test. |