Bachelor of Science Degree in Software Engineering
Software Engineering BS Prepares Students to Meet Escalating Need
The interdisciplinary Bachelor of Science in Software Engineering, offered online and on campus, prepares students for jobs in high demand across industries and government agencies. Software engineers work in areas such as:
- Aerospace and space exploration
- Natural and fabricated environments
- Automation and connectivity
- Human and intelligent systems
- Data, computing and networks
In fact, according to the 2021 U.S. News & World Report, software engineers hold some of the best technology jobs.
Administered by the department of Systems and Industrial Engineering, the University of Arizona’s Bachelor of Science in Software Engineering is offered on the main campus in Tucson, Arizona Online, and Yuma Campus and encompasses all aspects of large-scale software development. The interdisciplinary curriculum covers design, evaluation and maintenance of multifaceted software systems.
Curriculum in Step with Industry
Elements of computer science, systems engineering and electrical engineering are part of the software engineering curriculum. However, students in this unique University of Arizona undergraduate degree program concentrate on solving complex engineering problems throughout the software development lifecycle, rather than solely on programming fundamentals and theoretical applications.
Among courses are:
- Software requirements analysis and testing
- Software architecture and design
- Software assurance
- Project management
- Cost estimation
- Digital logic
- Computer organization
Students choose electives – such as web and mobile applications, or embedded systems, for example – from across many of the college’s eight departments.
Real-World Learning Environment
Students learn about software DevOps, Agile methodology, and continuous integration and deployment. They use open-source integrated development environments, operating systems and cloud-based infrastructures to gain the specialized software skills in highest demand by top employers. These companies include global presences like Google, Amazon, Microsoft, and Snap Inc., as well as Arizona companies such as Raytheon, Wells Fargo and Honeywell.
Each semester, students develop leadership skills through real-world projects that emphasize not only technical skills, but also communication, teamwork, critical thinking and professionalism.
Interested in a snapshot of the UA SFWE undergrad program? Check out this one-page flyer:
Courses
SFWE 101: Introduction to Software Engineering
Units: 3
This course introduces students to the different software development lifecycle (SDLC) phases used in developing, delivering, and maintaining software products. Students will also acquire basic software development skills and understand common terminology used in the software engineering profession. Students will also learn and practice using traditional coding standards/guidelines. Python software development libraries and debugging tools will be explored and used in projects to familiarize students with basic tasks involved in modifying, building, and testing software. The course will also lay the foundation for achieving academic and career success in Software Engineering.
Co-requisite(s): MATH 122B or MATH 125
Usually offered: Fall, Spring
SFWE 101 Syllabus (PDF)
SFWE 201: Software Engineering Sophomore Colloquium
Units: 1
A colloquium designed to help students explore different career opportunities for Software Engineering professionals. Students will interact and learn from professional software engineers while exploring various roles that software engineers play in solving real engineering problems. The course helps students determine focus areas within the SFWE degree program related to specific application areas of interest. Additionally, students will prepare a professional technically focused resume highlighting their skills and experience. Students will explore strategies on how to secure an internship position in diverse industries prior to completing their BS degrees.
Prerequisite: SFWE 101
Usually offered: Fall, Spring
SFWE 201 Syllabus (PDF)
SFWE 301: Software Requirements Analysis and Test
Units: 3
This course will teach students 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, students will learn how to elicit, analyze, specify, and validate functional and non-functional software requirements. Students will develop software requirements models and specifications that capture the customer/user’s needs. They will also develop test plans and test procedures used in a formal software acceptance test to validate that the developed product meets its requirements as specified. In doing so, students will learn and use basic Java language constructs to implement specified requirements. Additionally, students will also learn how to establish and maintain a software requirement configuration baseline, and the processes used to incorporate subsequent changes, updates, and enhancements to the software requirements over time.
Prerequisite: Advanced standing and ECE 275
Usually offered: Fall
SFWE 301 Syllabus (PDF)
SFWE 302: Software Architecture & Design
Units: 3
This course explores current processes, methods, and tools used in modeling and designing SW systems. Working in teams, students develop a SW design utilizing industry best practices, common design patterns, and modeling tools. They analyze various SW quality attributes in design decision making. Traceability between SW requirements and designs, and ultimately code implementation, is also part of the semester project.
Co-requisite(s): ECE 275
Usually offered: Spring
SFWE 302 Syllabus (PDF)
SFWE 401: Software Assurance & Security
Units: 3
Students learn to develop and utilize secure SW coding standards and defensive programming techniques to ensure that the SW functions in its intended manner; free from coding errors and inadvertent bugs that may have been introduced during development. This course promotes software integrity, security, quality, and reliability in the SW as it is developed and tested.
Co-requisite(s): ECE 275
Usually offered: Spring
SFWE 401 Syllabus (PDF)
SFWE 402: DevSecOps
Units: 4
Students develop a SW product using a SW DevSecOps workflow approach with common tools used in industry. Using DevSecOps workflows and continuous integration/continuous delivery approaches, students assess if the quality and reliability of the SW is increased.
Pre-requisite(s): ECE 275
Usually offered: Spring
SFWE 402 Syllabus (PDF)
SFWE 403: Software Project Management
Units: 3
Students plan and track the progress of a SW development project using metrics to monitor team performance, predict cost and schedule execution, develop and assess risks/mitigation plans, and measure the quality and maturity/volatility of the software product itself.
Pre-requisite(s): SFWE 301
Usually offered: Fall
SFWE 403 Syllabus (PDF)
SFWE 411: 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.
Co-requisite(s): ECE 275, SFWE 401
Usually offered: Fall
SFWE 411 Syllabus (PDF)
SFWE 491: Software Engineering Preceptor
Units: 3
An opportunity for software engineering majors to work in engineering courses/labs with students taking ECE 175, ECE 275, SFWE 101, CSC 355, SFWE 301, or other similar courses (any of these courses may be referred to as "host course"). The students in this course, also known as "preceptors", will help students in a host course set up their software development environments and tools, work on related course projects as defined by the host course instructor, and provide guidance and help with designing, implementing, debugging/integration testing software developed for those projects.
Prerequisite: Department consent is required to enroll in this course.
Usually offered: Fall
SFWE 491 Syllabus (PDF)