2001-2002 University Catalog -- George Mason University 2000-2001 Catalog

Catalog Index
Course Descriptions
Search the 2001-2002 Catalog:

 

Software Engineering (SWE)

Information and Software Engineering

432 Design and Implementation of Software for the Web (3:3:0). Prerequisites: Math 125, INFS 311, and CS 421. This course teaches students how to develop software for web applications. The concepts of client-server computing, theories of usable graphical user interfaces, and models for web-based information retrieval and processing are covered. Goals are to understand how to design usable software interfaces and implement them on the web, learn how to build software that accepts information from users across the web and returns data to the user, and understand how to interact with database engines to store and retrieve information. Specific topics that are included are HTML, CGI programming, Java, Java applets, Javascripts, and Java servlets.

619 Software Construction (3:3:0). Prerequisites: SWE foundation courses or equivalent. An in-depth study of software construction using a modern, object-oriented language with support for graphical user interfaces and complex data structures. Specifications, design patterns, and abstraction techniques, including procedural, data, iteration, type, and polymorphic. Information hiding, classes, objects, and inheritance. Exception handling, event-based systems, and concurrency.

620 Software Requirements Analysis and Specification (3:3:0). Prerequisites: SWE foundation courses or equivalent. An in-depth study of methods, tools, notations, and validation techniques for the analysis, specification, prototyping, and maintenance of software requirements. In-depth study of object-oriented requirements modeling, including use case modeling, static modeling and dynamic modeling using the Unified Modeling Language (UML) notation. Students participate in a group project on software requirements and specification using a modern method.

621 Software Design (3:3:0). Prerequisites: SWE 619, with 620 recommended, 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. In-depth study of object-oriented analysis and design modeling using the Unified Modeling Language (UML) notation. Students participate in a group project on object-oriented software design.

623 Formal Methods and Models in Software Engineering (3:3:0). Prerequisites: SWE 619 or permission of instructor. Formal mechanisms for specifying, validating, and verifying software systems. Program verification through Hoare's method and Dijkstra's weakest preconditions. Formal specification via algebraic specifications and abstract model specifications, including initial specification and refinement towards 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. Formal methods using the Object Constraint Language (OCL).

625 Software Project Management (3:3:0). Prerequisites: SWE foundation courses or equivalent. Lifecycle 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: SWE 619, 620, 621 and 625, or permission of instructor. Students are involved in requirements analysis, design, implementation, and management of a software development project. Students work in teams to develop or modify a software product, applying sound principles of software engineering. Both industrial and academic standards are used to assess the quality of the work products.

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

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

632 User Interface Design and Development (3:3:0). Prerequisite: SWE 619, or CS 540 and 571, or permission of instructor. Principles of user interface design, development, and programming. Includes user psychology and cognitive science, menu system design, command language design, icon and window design, graphical user interfaces and web-based user interfaces.

637 Software Testing and Quality Assurance (3:3:0). Prerequisite: SWE 619 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.

641/SYST 621 Systems Engineering of Information
Architectures (3:3:0).
See SYST 621.

642 Software Engineering for the World Wide Web (3:3:0). Prerequisites: SWE 619, or CS 540 and CS 571, or permission of instructor. Detailed study of the engineering methods and technologies for building highly interactive web sites for ecommerce and other web-based applications. Engineering principles for building web sites that exhibit high reliability, usability, security, availability, scalability, and maintainability are presented. Methods such as client-server programming, component-based software development, middleware, and reusable components are taught.

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

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

707/CS 707 Distributed Software Systems (3:3:0). Prerequisite: CS 706 or permission of instructor. Issues in the design and implementation of distributed applications. Topics covered include distributed programming using sockets as well as higher-level technologies such as remote procedure calls and distributed object middleware technologies including Java RMI, CORBA, and DCOM.

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

721 Reusable Software Architectures (3:3:0). Prerequisites: SWE 620 and 621. This course investigates the software concepts that promote reuse of software architectures. The influence of object technology on software design and reuse is studied. Domain Modeling methods, which model the application domain as a software product family from which target systems can be configured, are investigated. The course also covers reusable software patterns including architecture patterns and design patterns, software components, and object-oriented frameworks.

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

763 Software Engineering Experimentation (3:3:0). Prerequisite: SWE 621 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 Engineering (3:3:0). Prerequisite: Permission of instructor. Analysis and investigation of a contemporary problem in software engineering. Prior approval by a faculty member who supervises the student's work is required. A written report is also required. A maximum of six hours may be earned. (In order to register, the student must complete an independent study form, which is available in the department office. The form must be initialed by the faculty sponsor and approved by the department chairman.)

799 Thesis (6:0:0). Prerequisite: Permission of advisor. Aresearch 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. (In order to register, the student must complete an independent study form, which is available in the department office. The form must be initialed by the faculty sponsor and approved by the department chairman.)


George Mason University: 2001-2002 University Catalog: Catalog Index: Course Descriptions:Software Engineering (SWE)