Software Engineering for Information Systems (SEIS) is a
two-semester course sequence offered by the Language Technologies
Institute at Carnegie Mellon.
-
The first course, 11-791 (SEIS I), is offered during Fall semester and
teaches the fundamentals of system engineering (requirements,
analysis, design, implementation) and project management (teaming,
planning, scheduling, tracking). The course is taught from the
perspective of object-oriented systems and agile methods, and students
learn how to use UML and design patterns to model software.
The course makes use of Craig Larman's excellent textbook, Applying
UML and Patterns : An Introduction to Object-Oriented Analysis and
Design and Iterative Development.
A variety of additional case studies are used to illustrate the
concepts from the textbook, with an emphasis on large-scale text
processing frameworks such as IBM's Unstructured Information
Management Architecture (UIMA). Students in the Fall course work on a
team project with 3-4 other students, and implement a system based on
a pre-defined set of requirements plus existing code and data. Grades
in the course are based on homeworks, quizzes and exams, and the
team project.
-
The second course, 11-792 (SEIS II), is offered in Spring semester and
focuses on applying the skills acquired in 11-791 in a more realistic
project context. Students select a project topic from among a set of
available topics (from problem areas such as text annotation, text
mining, information retrieval, question answering, etc.) and work in
teams of 4-5 students. In contrast to the Fall course, where
requirements, data and code are provided,
students in the Spring course interact with real-world clients as an extension of
ongoing research projects at LTI, and work more independently to
document requirements, develop a design, and implement a working
solution for a real-world problem. Grades in the course are based on the quality of the team
process (weekly progress meetings and team organization) and the
quality of the software artifacts that are produced (requirements,
design and plan documents, test plans, test cases, code-level
documentation, final deployed system/demo, etc.). At the end of the
semester, each team prepares a public presentation and
a final report which summarize the concrete results and
learning outcomes for the project.
Abstracts for the projects completed in the course are posted on the
11-792 course
wiki.
|