Below on this page are SFWE graduate courses with descriptions, prerequisites and syllabi.
Additional information, including fees and grading bases, is available through the UA Catalog under Course Descriptions.
SFWE 501 - Software Assurance and Security
Units: 3
Software plays a vital role in modern life, managing essential services, like the financial systems, social networks, the Internet, and Cyber-Physical Systems, to name a few. Modern software must be bug-free, secure, and function reliably while controlling our critical systems. Software Assurance is the level of confidence in software being free of intentional or accidental vulnerabilities (including flaws, faults, and bugs) inserted at any time during its lifecycle.
Usually offered: Spring
SFWE 502- Software DevSecOps
Units: 3
This course will allow software engineering students to explore key principles of a DevSecOps approach to software development. Development (Dev) and operations (Ops) is the union of people, process, and technology to continually automate and develop higher quality/more reliable software products faster. Security (Sec) is integrated into a typical DevOps pipeline to address potential security issues in code as soon as possible in the software development lifecycle.
Co-requisite(s): ECE 275 recommended prior to enrollment.
Usually offered: Spring
SFWE 503 - Software Project Management
Units: 3
This course will teach software engineering students how to plan, track and communicate the status of large-scale software projects to a diverse group of stakeholders. Using modern traditional and Agile software development methodologies and tools, and emulating a realistic software development project, students will be immersed in the activities used by industry to develop, manage, and monitor the development of a software product throughout the semester. Students will learn why planning a software project is important, what constitutes a good plan, how to adapt to the unexpected and unknowns that are likely to occur throughout the project development, and how to track and share the status of the project with their team members, other teams, and the customers/business managers. They will also learn how to monitor and track cost expenditures and compare against allocated budgets. Along the way, students will learn the importance of identifying risks and how to develop mitigation plans to address those risks, learn the role that software quality plays in project management, and have the opportunity to develop/hone their leadership and team collaboration skills while being part of an Agile team.
Co-requisite(s): **SFWE 302(Software Architecture & Design) Recommended prior to enrollment.
Usually offered: Fall
SFWE 504 - Software Requirements Analysis and Test
Units: 3
In this course you will learn how to derive and develop software requirements that are measurable, testable and lead to a compliant software design and implementation. Using industry best practices and tools, you will learn how to elicit, analyze, specify, and validate functional requirements (what should the software system do) and non-functional software requirements (how should the software system fulfill the functional requirements). You will develop software requirement models and specifications that capture the customer / user's needs. The requirements will be captured in a commercially available software requirements management tool and exported to create a Software Requirements Specification (SRS). You will also develop a formal Software Test Plan (STP) that can be used in a software acceptance test to validate that the product will meet its requirements as specified. Additionally, you will also establish and maintain a software requirement configuration baseline, utilizing widely adopted industry processes to incorporate any subsequent additions, deletions, and enhancements to the software requirements over its lifecycle.
Co-requisite(s): Prerequisite or concurrent enrollment in SFWE 507.
Usually offered: Fall
SFWE 507 - Foundations of Software Engineering
Units: 3
This course will provide students with the foundational skills and knowledge used by software engineers in diverse industries. Students will understand what software engineering is and why it is more than "just writing code." The course introduces students to the different software development lifecycle (SDLC) phases used in developing, delivering, and maintaining software products for a wide variety of applications. Common software process models will be introduced, along with developing an understanding of the importance of defining software requirements, developing software architectures and designs, and the various forms of testing that go into delivering reliable and resilient software systems.
Co-requisite(s): Programming experience (in any language) is strongly recommended for graduate students.
Usually offered: Spring
SFWE 511 - Software for Industrial Control Systems
Units: 3
The increased connectivity due to the rise of the Internet and the growth of smart connected devices (Internet of Things) has brought rapid changes in cyber physical systems operational in many areas including manufacturing, healthcare, transportation, power system, home automation, etc. These changes, dubbed as the Fourth Industrial Revolution (4IR), amalgamate artificial intelligence, advanced robotics, smart sensors, and communication networks, blurring lines between the physical, digital, and biological worlds to automate industrial processes. At the forefront of this revolution are connected Industrial Control Systems (ICS), a group of control systems and associated instrumentation, which include the devices, systems, networks, and controls used to operate and/or automate industrial processes. As ICS and automation become more critical components of our digital world, it will be critical for engineers to know to design, develop, control, and manage these ICS. Moreover, the engineers will not just design and develop optimized ICS; they will also have to ensure their security from cyberattacks.
Co-requisite(s): ECE 275 and SFWE 401 recommended.
Usually offered: Fall
SFWE 513 - Research Methods
Units: 3
This course provides a basic introduction to the principles, methods, and techniques of engineering research. Topics include the fundamentals of the scientific method and scientific inquiry, ethical considerations in research, basic methods of quantitative and qualitative data collection, and strengths and weaknesses of various data collection methods. The course is designed to make you a more informed consumer of scientific research through discussion, analysis, and hands-on practice.
Usually offered: Fall