11-791/792: Software Engineering for Information Systems

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.

Last Updated: 07/07/06 by Eric Nyberg