Search

This is an archived copy of the 2012-2013 catalog. To access the most recent version of the catalog, please visit http://catalog.iastate.edu.

Software Engineering (S E)

Courses

Courses primarily for undergraduates:

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 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.S. 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 specification and model-based software design. Introduction to domain-specific software engineering. Nonmajor graduate credit.

S E 329. Software Project Management.

(Cross-listed 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. Version control and configuration management. Inspections and reviews. Managing the testing process. Software quality metrics. Modern software engineering techniques and practices. Nonmajor graduate credit.

S E 339. Software Architecture and Design.

(Cross-listed 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. Repeatable. SS. Prereq: Permission of department and Career Services
Summer professional work period.

S E 397. Software Engineering Internship.

Cr. R. Repeatable. F.S. Prereq: Permission of department and Career Services
One semester maximum per academic year professional work period.

S E 398. Cooperative Education.

Cr. R. F.S.SS. Prereq: S E 298, permission of department and 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.

(Dual-listed with 509). (Cross-listed with COM S). (3-0) Cr. 3. F. Prereq: COM S 309, ENGL 250, SP CM 212
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: S E 319, COM S 309
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
Practical importance of software evolution and maintenance, systematic defect analysis and debugging techniques, tracing and understanding large software, impact analysis, program migration and transformation, refactoring, tools for software evolution and maintenance, experimental studies and quantitative measurements of software evolution. Written reports and oral presentation. Nonmajor graduate credit.

S E 417. Software Testing.

(Cross-listed with COM S). (3-0) Cr. 3. S. Prereq: COM S 309, COM S 319, ENGL 250, SP CM 212
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. Repeatable. 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: S E 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: S E 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 final project report; oral presentation of project achievements.

S E 494. Software Engineering Portfolio Development.

Cr. R. F.S. Prereq: Credit or enrollment in S E 491
Portfolio assessment for Software Engineers. Guidelines and Advice to improve software engineering portfolios and to better use portfolios as a tool to enhance career opportunities.

S E 498. Cooperative Education.

Cr. R. Repeatable. F.S.SS. Prereq: S E 398, permission of department and Career Services
Third and subsequent professional work periods in the cooperative education program. Students must register for this course before commencing work.

Courses primarily for graduate students, open to qualified undergraduates:

S E 509. Software Requirements Engineering.

(Dual-listed with 409). (Cross-listed with COM S). (3-0) Cr. 3. F. Prereq: COM S 309
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.