
Course Offerings
The Department of Computer Science and
Software Engineering (CSSE) proposes a project-based master's
degree in software engineering. The course descriptions are listed
below in the areas of core courses, software engineering electives,
specialty electives, capstone projects and seminars.
Prerequisites to the
Program (or work equivalents)
- All Rose-Hulman requirements for graduate student
admission
- At least one year's work experience in software development or
maintenance
- Technical communication skills, both oral and written
-
Background in: 1) Object-oriented
concepts, 2) Data structures, 3) Analysis of algorithms, and 4)
Discrete mathematics.
Required Core Courses (6
courses)
CSSE 571 Software Requirements and
Specification
CSSE 574 Software Architecture and Design I
CSSE 575 Software Maintenance and Evolution
CSSE 576 Software Quality Assurance
EMGT 587 Systems Engineering
EMGT 527 Project Management
Software Engineering (SE)
Electives (2 courses). Some examples include:
CSSE 572 Software Process Improvement
CSSE 573 Formal Methods in Specification and Design
CSSE 577 Software Architecture and Design II
CSSE 578 Software Construction
Specialization Electives
(2 courses)
The specialization electives are intended to provide a student
additional background suited to particular job classifications.
Some examples include:
CSSE 513 Intelligent Systems
CSSE 532 Computer Networks
CSSE 533 Database Systems
CSSE 542 Computer Security
EMGT 522 Organizational Behavior
EMGT 523 Marketing Issues in a Technical Environment
EMGT 526 Technology Management and Forecasting
EMGT 533 Intercultural Communication
EMGT 535 Globalization, Strategy and Organizational Change
Required Capstone Sequence
(2 course sequence)
The Capstone Project courses, CSSE 597 and 598, are the final
courses for completion of the MSSE degree. They are a two-term (8
credit hour) course pair that have a team of 4 or more students
working on a software project (supervised by an CSSE faculty
member) for real-world clients, using knowledge and skills obtained
through their coursework.
CSSE 597 Capstone Software Project I
CSSE 598 Capstone Software Project II
Seminar Topics (1 day / 1
credit courses)
A variety of seminar topics are offered as 1 day/1 credit courses
on the RHIT campus. Recent topics have included: Entrepreneurship,
Legal Aspects of Business, and International Business. Typically
one seminar is offered each term and often includes speakers from
the software engineering and business communities.
Required Core Course Descriptions
CSSE 571 Software Requirements and
Specification
Students will learn how to capture software requirements and
handle difficult situations in gathering data to build systems.
Special emphasis is given to working with clients and to learning
about the needs of users who interact with a system. The course
addresses elicitation, specification, and management of software
system requirements. Additionally, the course examines iterative
prototyping user interactions for a system.
CSSE 574 Software
Design
Students learn about effective approaches for designing complete
software systems using object-oriented techniques and design
patterns. Architectural principles and alternatives, detailed
design documentation, and relationships between levels of
abstraction are examined in the context of an evolving system
requiring tradeoff analysis and communication of the
alternatives.
CSSE 575 Software Maintenance and
Evolution
This course builds upon the key methods and techniques associated
with constructing software to ensure the maintainability and
evolution of software products. Key elements of software
maintenance process, impact analysis, software
reengineering/reverse engineering/design recovery, source code
analysis are examined. Then topics on how to produce software
systems with the measurable maintainability properties are covered
from both theoretical and practical perspectives. Advanced topics
in model-based engineering for evolvable products are also examined
along with emerging technologies that are relevant to the
sustainability of software.
CSSE 576 Software Quality
Assurance
This course examines the theory and practice of assuring that a
product conforms to its specification and intended use. Basic
topics include software quality assurance methods, test plans and
strategies, unit level and system level testing, software
reliability, peer review methods, and configuration control
responsibilities in quality assurance. This course stresses quality
in the software process, and introduces quality programs such as
the Software Engineering Institutes Capability Maturity Models,
Total Quality Management, and Six Sigma as well as programs from
systems engineering such as Lean Development.
EMGT 527 Project
Management
Addresses the major issues and techniques of project management,
including team building, project evaluation and selection,
scheduling techniques, quality management, development of
negotiation and conflict management skills. Also examines project
management success factors. Uses a large scenario planning exercise
and several case studies to illustrate course content. Can be used
as part of the technical or management core.
EMGT 587 Systems
Engineering
Introduces system engineering and analysis techniques, including
the systems life cycle, system design procedures, risk analysis,
analysis methods including reliability and maintainability.
Provides applications for mechanical, electrical and a wide variety
of other systems. Uses Visio or CORE software to create IDEFO
drawings and other documentation for system design.
Software Engineering Elective Courses
CSSE 572 Software Process
Improvement
This course explores the key processes and activities necessary to
produce software. Software processes exist for various forms
ranging from a standard systems engineering oriented linear process
to highly iterative discovery processes. The course examines how to
select the effective process(es) for the types of projects that
confront today's software engineers. To determine process
effectiveness and performance, software metrics is also covered
from a process perspective in order to understand statistically
based process improvement approaches. This includes introduction to
foundations of measurement, models of software engineering
measurement, software products and process metrics, and metrics
management.
CSSE 573 Formal Methods in
Specification and Design
This course provides both an introduction to the use of
mathematical models of software systems for their specification and
validation as well as a deeper examination of emerging formal
specification methods and models. With the advancement of
model-based software engineering, formal specification and
generative topics has taken center stage. This course provides the
student with the fundamentals of formal methods and provides
insights into practical applications using current tools like Z, B,
VDM++, and Alloy. Topics include finite state machine models,
axiomatic and algebraic approaches, models of concurrent systems,
verification of models, and limitations of these techniques.
CSSE 577 Software
Architecture
This is a course in the architecture and design issues and
tradeoffs, of complete commercial systems. Topics include building
on components and make/buy decisions, quality attribute
optimization, architectural principles and alternative styles,
high-level design documentation, and modeling practices in human
interface design.
CSSE 578 Software
Construction
This advanced course goes beyond programming and examines
construction methods and techniques associated with producing
software products. In addition to detailed design methods and
notations, implementation tools/environments, coding standards and
styles, peer review techniques, and the like, the student is
exposed to component-based systems, reuse-based software
construction, and generative systems approaches to provide an
appreciation for how software systems are constructed in
contemporary software engineering organizations.
Specialization Elective Courses
CSSE 513 Intelligent
Systems
Theory, design, and engineered use of knowledge-based and
case-based AI systems using available commercial tools as
illustrations. Modeling and implementing intelligent behavior using
such systems. Examples will be drawn upon from agent-based systems,
swarms, and autonomous systems to give the student an appreciation
for the techniques involved.
CSSE 532 Computer
Networks
This course examines the fundamentals of computer network
organization, design, and implementation of computer networks,
especially the Internet. Network protocols, protocol layering, flow
control, congestion control, error control, packet organization,
routing, gateways, connection establishment and maintenance,
machine and domain naming, security. Each of the top four layers of
the Internet protocol stack: application (FTP, HTTP, SMTP),
transport (TCP, UDP), network (IP), link (Ethernet). Advanced
topics in computer networks are presented with respect to emerging
computing trends and architectures.
CSSE 533 Database
Systems
This course provides a brief introduction to key relational
database concepts with a review of entity relationship diagrams for
data modeling, properties and roles of transactions, and SQL for
data definition and data manipulation. The course then provides a
substantive examination of contemporary APIs for access to
databases through enterprise examples from several application
domains. Advanced topics are selected from object-oriented
databases, object-relational databases, query processing,
transactions, transaction logging, concurrency control, database
recovery, parallel and distributed databases, security and
integrity, data mining and data warehousing to round out the course
for the software engineering professional.
CSSE 542 Computer
Security
This course introduces foundational computer security topics such
as access control matrices and standard system models, as well as
policies for security, confidentiality, and integrity. Additional
topics include malicious logic, vulnerability analysis, and
auditing. Computer network attack techniques are discussed and
explored in a closed environment to motivate and inform discussion
and exploration of computer network defense techniques. Design and
implementation issues include key management, cipher techniques,
authentication, principles of secure design, representation of
identity, access control mechanisms, and formal evaluation and
certification techniques are presented in the context of
engineering security properties into a software system from the
beginning (rather than bolting them on afterwards). Throughout the
course, the student will be given an appreciation of ethical,
theoretical, and practical issues of information security in light
of vulnerabilities that enable impersonation, viruses, worms, and
other emerging threats. Key threat models will be examined with
respect to the current security practice.
EMGT 522 Organizational
Behavior
Review of fundamental activities (planning, organizing, leading,
controlling) related to the management of organizations. The
concepts and techniques for maximizing the effectiveness of human
resources in the achievement of organizational and project goals
are emphasized. Topics include communication, team process,
motivation, selection, development, and appraisal. Special focus is
given to the management of human resources in a technical
environment.
EMGT 523 Marketing Issues in a
Technical Environment
A study and overview of the components of marketing principles and
how those mesh with management in a technical environment. Topics
will include activities associated with product, price, promotion,
and distribution and how these impact the technical manager from
idea generation through delivery to and service for the
customer.
EMGT 526 Technology Management and
Forecasting
Elements of managing the growth and operation of the technological
systems. Technology forecasting tools including expert methods,
quantitative trend analysis, simulation, and gaming. Consideration
of secondary forecasts, especially those of social and economic
nature. Techniques for enhancing creativity, managing
multi-disciplinary projects and impact assessment techniques are
considered. Computer-based forecasting tools are
applied.
EMGT 533 Intercultural
Communication
The core of this course is the presentation of the Constructivist
theory of communication and its application. Students are exposed
to ethnographic interview methods and the concept of culture shock
using the BAFA role-play simulation. Discussion of organizational
culture includes a review of publications on this topic, the impact
of culture on organizations, as well as strategies for change. May
be used as a management core class.
EMGT 535 Globalization, Strategy and
Organizational Change
Reviews the strategy literature and the issues surrounding
strategy implementation in the context of organizational change.
Includes a team project that explores the strategic implications of
globalization for specific industries during the next 10 years and
the construction of scenarios as a tool for understanding and
communication. Individual students will develop and evaluate
strategy for a specific organization within the scenarios developed
in the team project.
Required Capstone Project Sequence
CSSE 597/8 Capstone Software Project
I and II
Credits as assigned; however, not more than 8 credits can
be applied to MS degree requirements
Pre: Completion of technical component and business core or
permission of instructor
The integration of software project, process, and technical
considerations in new software product production and evolution.
The identification of software engineering challenges faced in
producing a commercially viable product. The focus is on a
substantial team project involving 4-5 team members interacting
with a software consuming/producing organization. This integrated
project must include the identification of a new product including
key business and technical issues, development of a viable software
project plan, a valid requirements specification, a relevant
software architecture, a verifiable software product design, and a
testable software product to be delivered to the customer. A final
report with oral presentations is required.