Software Engineering Courses
Courses primarily for undergraduate students
S E 101. Software Engineering Orientation. Cr. R. Introduction
to the procedures, policies, and resources of Iowa State University and
the department of Computer Science and Electrical and Computer Engineering.
Information on engineering and computer-based professions.
S E 166. Careers in Software Engineering. Cr. R. Overview
of the nature and scope of the software engineering profession. Relationship
of coursework to careers. Departmental rules, student services operations,
degree requirements, program of study planning, career options, and student
organizations.
S E 185. Problem Solving in Software Engineering. (3-1)
Cr. 3. Prereq: Credit or enrollment in Math 142. Introduction to
Software Engineering and Computer Programming. Systematic thinking process
for problem solving in the context of software engineering. Group problem
solving. Solving software engineering problems and presenting solutions
through computer programs, written documents and oral presentations. Introduction
to principles of programming, software design, and extensive practice in
design, writing, running, debugging, and reasoning about programs.
S E 298. Cooperative Education. Cr. R. F. S. SS. Prereq:
Permission of department and Engineering Career Services. First professional
work period in the cooperative education program. Students must register
for this course before commencing work.
S E 319. Software Construction and User Interfaces. (Cross-listed
with Com S). (3-0) Cr. 3. F. Prereq: Com S 228. Basic theory of
grammars, parsing. Language paradigms. State-transition and table-based
software design. Rapid system prototyping. Review of principles of object
orientation, object oriented analysis using UML. Event-driven and clock-driven
simulation. Software construction methods. Frameworks and APIs. User interface
architecture, evaluation of user interface. Design of windows, menus, and
commands. Introduction to format specifi cation and model-based software
design. Introduction to domain-specifi c software engineering. Nonmajor
graduate credit.
S E 329. Software Project Management. (Crosslisted with
Cpr E). (3-0) Cr. 3. Prereq: Com S 309. Process-based software
development. Capability Maturity Model (CMM), Project planning, cost estimation,
and scheduling. Project management tools. Factors influencing productivity
and success. Productivity metrics. Analysis of options and risks. Planning
for change. Management of expectations. Release and confi guration management.
Software process standards and process implementation. Software contracts
and intellectual property. Inspections and reviews. Managing the testing
process. Software quality metrics. Case studies of real industrial projects.
Nonmajor graduate credit.
S E 339. Software Architecture and Design. (Crosslisted
with Cpr E). (3-0) Cr. 3. Prereq: S E 319. Modeling and design
of software at the architectural level. Architectural styles. Basics of
model-driven architecture. Object-oriented design and analysis. Iterative
development and unified process. Design patterns. Design by contract. Component
based design. Product families. Measurement theory and appropriate use of
metrics in design. Designing for qualities such as performance, safety,
security, reliability, reusability, etc. Analysis and evaluation of software
architectures. Introduction to architecture definition languages. Basics
of software evolution, reengineering, and reverse engineering. Case studies.
Introduction to distributed system software. Nonmajor graduate credit.
S E 396. Summer Internship. Cr. R. SS. Prereq: Permission of
department and Engineering Career Services. Summer professional work
period.
S E 397. Software Engineering Internship. Cr. R. F. S.
SS. Prereq: Permission of department and Engineering Career Services.
One semester maximum per academic year professional work period.
S E 398. Cooperative Education. Cr. R. F. S. SS. Prereq:
298, permission of department and Engineering Career Services. Second
professional work period in the cooperative education program. Students
must register for this course before commencing work.
S E 409. Software Requirements Engineering. (Cross-listed
with Com S). (3-0) Cr. 3. Prereq: Com S 309, 319. The requirements
engineering process, including identification of stakeholders, requirements
elicitation techniques such as interviews and prototyping, analysis fundamentals,
requirements specification, and validation. Use of Models: State oriented,
Function-oriented, and Object-oriented. Documentation for Software Requirements.
Informal, semi-formal, and formal representations. Structural, informational,
and behavioral requirements. Non-functional requirements. Use of requirements
repositories to manage and track requirements through the
life cycle. Case studies, software projects, written reports, and oral presentations
will be required. Nonmajor graduate credit.
S E 412. Formal Aspects of Specification and Verification.
(Cross-listed with Com S, Cpr E). (3-0) Cr. 3. Prereq: Com S 309, 319.
Introduction to prepositional/predicate/temporal logic, program verification
using theorem proving, model-based verification using
model checking, and tools for verification. Nonmajor graduate credit.
S E 416. Software Evolution and Maintenance. (Cross-listed
with Cpr E). (3-0) Cr. 3. Prereq: Com S 309, 319. Fundamental concepts
in software evolution and maintenance; practical software evolution processes;
legacy systems, program comprehension, impact analysis, program migration
and transformation, refactoring. Tools for software evolution and maintenance.
Case studies, experimental software projects. Written reports and oral presentation.
Nonmajor graduate credit.
S E 417. Software Testing. (Cross-listed with Com S). (3-0)
Cr. 3. Prereq: Com S 309, 319. Comprehensive study of software
testing, principles, methodologies, management strategies and techniques.
Test models, test design techniques (black box and white-box testing techniques),
integration, regression, system testing methods, and software testing tools.
Nonmajor graduate credit.
S E 490. Independent Study. Cr. arr. Prereq: Senior
classification in software engineering. Investigation of an approved
topic.
S E 491. Senior Design Project I and Professionalism. (2-3)
Cr. 3. Prereq: 329, completion of 29 credits in the S E core professional
program, Engl 314. Preparing for entry to the workplace. Selected professional
topics. Use of technical writing skills in developing project plan and design
report; project poster. First of two-semester team-oriented, project design
and implementation experience.
S E 492. Senior Design Project II. (1-3) Cr. 2. Prereq: 491.
Second semester of a team design project experience. Emphasis on the successful
implementation and demonstration of the design completed in S E 491 and
the evaluation of project results. Technical writing of fi nal project report;
oral presentation of
project achievements.
S E 498. Cooperative Education. Cr. R. F. S. SS. Prereq:
398, permission of department and Engineering Career Services. Third
and subsequent professional work periods in the cooperative education program.
Students must register for this course before commencing work.