SWE 205: Introduction to Software Engineering
(3-0-3)
Introduction to software engineering and software processes. Construction techniques and principals. Concepts of Programming Languages: Syntax and semantics. Analysis and Design Modes. Ethical and professional responsibilities. Prerequisites: ICS 102: Introduction to Computing I
|
SWE 215: Software Requirements Engineering
(2-3-3)
Requirements engineering process. Methods, tools and techniques for eliciting, organizing and documenting software requirements. Analysis and validation techniques, including need, goal, and use case analysis. Requirements documentation standards. Traceability. Requirements management. Handling requirements changes. Students participate in a group project on software requirements. Prerequisites: ICS 201: Introduction to Computing IISWE 205: Introduction to Software Engineering
|
SWE 311: Principles of Software Engineering
(3-3-4)
History and overview of software engineering. Software processes. Software project management. Software requirements and specification. Software design. Software testing and validation. Software metrics. Software quality assurance. Software evolution. Using APIs. Software tools and environments. Note: Not to be taken by SWE students. Prerequisites: ICS 202: Data Structures
|
SWE 312: User Interface Design
(3-0-3)
Study of both theoretical and practical issues in human-computer interfaces. User interface design process. Usability engineering. Development, programming, and evaluating interface designs. Design of windows, and menus. Commands and natural languages I/O. Visual prototyping. User manuals, online help and tutorials. Students participate in a group project on software user interface design. Prerequisites: SWE 205: Introduction to Software Engineering
|
SWE 316: Software Design and Architecture
(3-0-3)
Study of design concepts and notations. Architecture, middleware architectures, design patterns, frameworks and components. Designing for qualities such as performance, security, reusability, reliability. Metrics and measurement. Basics of software evolution, re-engineering, and reverse engineering. Students participate in a group project on software design. Prerequisites: ICS 202: Data StructuresSWE 215: Software Requirements Engineering
|
SWE 321: Formal Methods and Models in Software Engineering
(3-0-3)
Mathematical foundations for formal methods. Formal languages and techniques for specification and design, including specifying syntax using grammars and finite state machines. Analysis and verification of specifications and designs. Use of assertions and proofs. Automated program and design transformation. Prerequisites: ICS 202: Data StructuresICS 253: Discrete Structures I
|
SWE 326: Software Testing and Quality Assurance
(3-0-3)
Concept of software quality, and software quality metrics. Software quality assurance planning & implementation. Quality process standards. Validation & verification. Reviews, walkthroughs, & inspections. Mechanisms for validating software systems. Techniques for generating and validating test data. Students participate in a group project on software validation and verification. Prerequisites: SWE 215: Software Requirements EngineeringSWE 312: User Interface Design
|
SWE 344: Internet Protocols and Client-Server Programming
(2-3-3)
Principles of inter-network architecture and communication protocols. Open systems and interoperability. Case studies of particular protocols from network layer and above. Socket programming. Remoting. Selected examples of networked client-server applications such as e-mail, news, file-transfer, HTTP. Client-Server Programming Project(s). Using APIs. Software tools and environments. Prerequisites: ICS 202: Data Structures
|
SWE 363: Web Engineering and Development
(3-0-3)
Web Engineering fundamentals: requirements, analysis modeling, design modeling, testing. Internet basics for web applications. Technologies and tools for developing web applications: markup languages, styling, data description and transformation, client and server side programming. Web services. Advances in web engineering. Eligibility Requirements: Junior Standing
|
SWE 387: Software Project Management
(3-0-3)
Introduction project management concepts, tools, and techniques: integration management and project planning, scope management, scheduling, budget control, human resource management, communication management, risk analysis and management, project quality management, and procurement management. Eligibility Requirements: Junior Standing
|
SWE 416: Software Architecture
(3-0-3)
Study the concepts, principles, methods, and best practices in software architecture. Different architectural styles, patterns and product lines are presented and compared. Methods to analyze, evaluate and document software architectures are also discussed. Students participate in a group project on software architecture design. Prerequisites: SWE 316: Software Design and Architecture
|
SWE 417: Software Engineering Project I
(1-6-3)
This is the first part of a two-semester senior-year capstone project. Student teams employ knowledge gained from courses throughout the program such as development of requirements, design, implementation, and quality assurance to develop a software solution to a real-world problem from conception to completion. In this part students develop project plan, software requirement specification and software design document. Prerequisites: SWE 387: Software Project ManagementSWE 316: Software Design and Architecture
|
SWE 418: Software Engineering Project II
(0-6-2)
This is the second part of a two-semester, senior-year capstone project. Student teams employ knowledge gained from courses throughout the program such as development of requirements, design, implementation, and quality assurance to develop a software solution to a real-world problem from conception to completion. In this part, students implement the design they produced in SWE 417, test their code, and evaluate their final product. Prerequisites: SWE 417: Software Engineering Project ISWE 326: Software Testing and Quality Assurance
|
SWE 436: Object-Oriented Design Patterns
(3-0-3)
A depth study of object-oriented design patterns. How design patterns solve design problems? How to select a design pattern? How to use a design pattern? Detailed study of creational patterns, structural patterns, and behavioral patterns. Case studies. Prerequisites: SWE 316: Software Design and Architecture
|
SWE 399: Summer Training
(0-0-0)
A summer period of 8 weeks spent as a trainee in industry, business, or government agencies for the purpose of familiarizing the student with the real job world and enabling him to apply and relate his academic knowledge to a real work environment. The student is required to participate in computer science related activities and use his time to get acquainted with the computer science related functions and resources used by his employing organization. Besides progress reports, the student is required to submit a final report and do a presentation on his experience and the knowledge he gained during his summer training program. The student receives a zero-credit Pass/Fail grade. Eligibility Requirements: Department Approval Prerequisites: ENGL 214: Academic & Professional CommunicationSWE 363: Web Engineering and Development
|
SWE 469: Software Metrics
(3-0-3)
|
SWE 487: Software Processes and Process Improvements
(3-0-3)
Software process models. Software process analysis. Life cycle process models and standards. Process implementation at various levels like organization, project, team, or individual. Measurement and analysis of software process. Process improvements. Prerequisites: SWE 326: Software Testing and Quality Assurance
|
SWE 490: Special Topics I
(3-0-3)
In-depth study of a selected special topic relevant to software engineering. Eligibility Requirements: Senior Standing
|
SWE 491: Special Topics II
(3-0-3)
In-depth study of a selected special topic relevant to software engineering. Eligibility Requirements: Senior Standing
|