George Mason University 1997-98 Catalog Catalog Index
Course Descriptions

Search the 1997-1998 Catalog:


Software Systems Engineering Courses (SWSE)


School of Information Technology and Engineering

619 Software Construction (3:3:0). Prerequisite: SWSE foundation courses or equivalent. An in-depth study of software construction using a modern language. Concepts such as information hiding, data abstraction, concurrency, and object-oriented software construction are discussed.

620 Software Requirements and Prototyping (3:3:0). Prerequisite: SWSE foundation courses or equivalent. An in-depth study of methods, tools, notations, and validation techniques for the analysis and specification of software requirements. Students participate in a group project on software requirements.

621 Software Design (3:3:0). Prerequisite: SWSE 619, or CS 540 and 571, or permission of instructor. Concepts and methods for the architectural design of large-scale software systems. Fundamental design concepts and design notations are introduced. Several design methods are presented and compared, with examples of their use. Students participate in a group software design project.

623 Formal Methods and Models in Software Engineering (3:3:0). Prerequisite: SWSE 619, or CS 540 and 571, or permission of instructor. Formal mechanisms for specifying, validating, and verifying software systems. Topics include program verification through Hoare's method and Dijkstra's weakest preconditions; formal specifications, including initial specification and refinement toward implementation; integration of formal methods with existing programming languages, and the application of formal methods to requirements analysis, testing, safety analysis, and object-oriented approaches.

625 Software Project Management (3:3:0). Prerequisites: SWSE foundation courses or equivalent. Life-cycle and process models; process metrics; planning for a software project; mechanisms for monitoring and controlling schedule, budget, quality, and productivity; and leadership, motivation, and team building.

626 Software Project Laboratory (3:3:6). Prerequisites: SWSE 619, or CS 540 and 571; SWSE 620, 621, 623, and 625; or permission of instructor. Students analyze, design, implement, and manage a software system project. Students work in teams to develop or modify a software product, applying sound principles of software systems engineering. Both industrial and academic standards are used to assess the quality of the work products.

630 Software Engineering Economics (3:3:0). Prerequisite: SWSE 625. Quantitative models of the software life cycle; cost-effectiveness analysis in software engineering; multiple-goal decision analysis; uncertainty and risk analysis; software cost estimation; software engineering metrics; and quantitative life-cycle management techniques.

631 Object-Oriented Software Development (3:3:0). See CS 631.

632 User Interface Design and Development (3:3:0). Prerequisite: SWSE 619, or CS 540 and 571, or permission of instructor. Principles of user interface design, development, and programming. Topics include user psychology and cognitive science, adaptive user interfaces, icon and window design, command language design, user guidance systems, and collaborative working.

637 Software Testing and Quality Assurance (3:3:0). Prerequisite: SWSE 619, or CS 540 and CS 571, or permission of instructor. Concepts and techniques for testing software and assuring its quality. Topics cover software testing at the unit, module, subsystem, and system levels, automatic and manual techniques for generating and validating test data, the testing process, static vs. dynamic analysis, functional testing, inspections, and reliability assessment.

699 Special Topics in Software Systems Engineering (3:3:0). Prerequisite: Permission of instructor. Special topics not occurring in the regular SWSE sequence. May be repeated for credit when the topic is different.

706 Concurrent Software Systems (3:3:0). See CS 706.

720 Advanced Software Requirements (3:3:0). Prerequisites: SWSE 620 and 621. State of the art and state of the practice in software requirements engineering. The course gives in-depth coverage of selected methods, tools, notations, or validation techniques for analysis and specification of software requirements. The course work includes a project investigating or applying approaches to requirements engineering.

721 Advanced Software Design Methods (3:3:0). Prerequisites: SWSE 620 and 621. A study of advanced design methods for large-scale software systems, including concurrent, real-time, and distributed systems. Course work includes a project investigating or applying software design methods.

735 Concurrency (3:3:0). See CS 735.

763 Software Engineering Experimentation (3:3:0). Prerequisites: SWSE 621 and STAT 610 (or equivalent), or permission of instructor. A detailed study of the scientific process, particularly using the experimental method. The course examines how empirical studies are carried out in software engineering. The distinction between analytical techniques and empirical techniques is reviewed. Other topics include experimentation required in software engineering, kinds of problems that can be solved using experimentation, methods used to control variables and eliminate bias in experimentation, and analysis and presentation of empirical data for decision making.

796 Directed Readings in Software Systems Engineering (3:3:0). Prerequisite: Permission of instructor. An analysis and investigation of a contemporary problem in software engineering. Prior approval is required by a faculty member who supervises the student's work. A written report is also required. A maximum of six hours may be earned.

799 Thesis (6:0:0). Prerequisite: Permission of adviser. A research project completed under the supervision of a faculty member, which results in a technical report accepted by a three-member faculty committee. The report must be defended in an oral presentation.


Return to Course Index
Return to Catalog Index