A Factory for Better Software Development, With More to Come
Project Title: College of Engineering Software Factory
Team 22012 Members:
Meshari Hamad R Al Dossary, industrial engineering
Vincent Michael Giacoppo, project lead, systems engineering
Roberto Kupps, electrical and computer engineering
Ali Tavakoly, engineering management
Jeremiah Michael Weber, electrical and computer engineering
Sponsor: Craig M. Berge Engineering Design Program
Five students who built a proof-of-concept software factory – a cloud-based development platform – are giving the College of Engineering’s newest degree program, software engineering, a technological boost. They’re also laying a foundation for engineering students to work together more efficiently on a variety of projects that include software development.
“The effects will be felt by hundreds of students for years to come,” said project mentor and director of Software Engineering Sharon ONeal. “We’re talking with departments about revolutionizing the curriculum to meet industry’s needs and keep up as technology advances.”
Professional Preparation With the Software Factory
The interdisciplinary software engineering degree debuted in fall 2021 in person and online. The program is administered jointly by the departments of Electrical and Computer Engineering and Systems and Industrial Engineering and focuses on software for large-scale products and systems.
The College of Engineering Software Factory capstone team prototyped a platform to help the program’s students gain experiences to compete in the workforce. The platform provides the tools students need to collaborate with ease through each phase of the software development lifecycle.
That cycle, explained team lead and systems engineering major Vincent Giacoppo, consists of developing project requirements; translating them into models; planning development; writing code; testing to make sure the code works – and that code originated by different developers works together; and finishing, assembling and deploying the code.
The College of Engineering Software Factory enables one team to take a project from ideation to deployment, rather than the outdated model of employing different groups for development and operations.
“It's really bringing students into the modern way of doing engineering,” said Giacoppo.
The software factory also supports a Continuous Integration/Continuous Development, or CI/CD, which is an integral part of the DevOps pipeline.
With CI/CD, teams test code and implement small changes frequently, using automated processes.
“Automation is a major feature of the software factory model, and it improves the end product’s quality and reliability,” said ONeal, adding that testing provides an excellent example. “You can run software through aggressive testing thousands of times, because it’s not somebody sitting at the keyboard and running tests manually.”
The Digital Engineering Factory to Come
Software engineers collaborate with engineers specializing in other fields to create products ranging from Internet of Things devices to self-driving cars. And the software factory methodology can be expanded to improve work processes for those projects, said ONeal.
With $250,000 in funding from the Arizona Board of Regents Technology and Research Initiative Fund, or TRIF, ONeal plans to build on the software factory and establish a more comprehensive digital engineering factory for the college.
Next year, another Interdisciplinary Capstone team will expand the software factory. Early discussions about how to integrate with curriculums in other college departments and use the digital engineering factory as an integral part of all students’ capstone experience are underway.
“The companies I’ve talked to are very excited about this revolutionary way of preparing our students for their future careers. They feel that the University of Arizona College of Engineering is very much forward-looking, and they want to be part of making this a success because they know they’re going to reap the benefits,” ONeal said.
Next Steps
It’s important for all software factory, and future digital engineering factory, users to access the system through a web portal to avoid compatibility issues and ensure version control. This requires high-performance computing resources, and the team is exploring a hybrid approach to meeting this need.
They’re working with the college to dedicate servers for best resource stewardship and investigating leasing overflow server space from a commercial provider.
At Craig M. Berge Design Day, the team will present a prototype for users to experience the platform and its tools. Additionally, the team is producing a user manual for students, faculty and administrators who will rely on the software factory in classes, and possibly a video to demonstrate more of the project’s capabilities and back-end functionality.
As the team finalizes these decisions, project lead Giacoppo and his teammate Roberto Kupps feel like they accomplished what they set out to do.
For Kupps, an electrical and computer engineering major, the main attraction was completing a project using agile methodology for iterating quickly over time.
“My cousin is my role model in engineering. She works for Cisco and graduated from systems engineering from the UA a few years ago. She told me to try to find a capstone project using agile methodology,” he said.
This project was Giacoppo’s first choice because he plans to pursue a career in the software field. Now he’s helped create something that will continue to benefit students.
“It feels good to be on the ground floor of it. Five months ago, it didn’t exist,” he said.