A silicon ticket: Your software factory guided tour

Aug 5, 2024 by Owen Williams, Andreas Mütsch

 

  

In brief

  • Modern software, particularly in fields like autonomous driving and software-defined vehicles, is massively complex, involves intricate requirements and the adherence to strict standards 
  • Traditional software development methods often fall short, being too slow, costly and inefficient for these complex, high-end software projects 
  • The software factory (SWF) model offers a streamlined, systematic approach to handling these challenges, improving efficiency and meeting all demands effectively 

  

 

Why modern software development requires new methodologies

 

In today's fast-paced digital world, software development has evolved far beyond the days of single-developer projects. Nowadays, software products consist of dozens of modules with thousands of lines of code each. They are produced in teams and on a large scale, just like products in a real-world brick-and-mortar factory. Traditional software development cycles are too slow, time-consuming and expensive for these kinds of high-end software projects. Imagine trying to build a skyscraper singlehandedly with just a hammer and nails it's an impossible task. But this is the reality that many companies face when developing complex software for autonomous vehicles and other high-tech applications. Traditional development cycles simply can't keep up with the demand for speed, precision and compliance it’s time for the development methodologies to adapt. 

Enter the software factory: A revolutionary approach designed to streamline and supercharge the software development process. Let’s take a tour through a software factory and discover how it can transform your development projects. 

  

What is a software factory?

 

Think of a software factory as a structured and systematic approach for producing software. More specifically, its a group of software assets used to help produce computer software applications or components according to specific end-user requirements. These requirements need to be specific, testable and end-user oriented; they’re typically defined by clients and are often referred to as 'externally defined end-user requirements'. Put simply, a software factory is like a well-organized workshop where everything is set up to build software quickly and correctly, making sure the finished product does exactly what it is supposed to do. 

 

A guided tour through the factory

 

Imagine walking through a bustling, state-of-the-art factory. Different departments, each with a specific role, working together seamlessly to create a final product. The same concept applies to a software factory. Let’s take a tour. 

 

 

  • Requirements and design 
    Our first stop is the requirements and design department. Here, software architects and designers gather and refine the requirements from clients and stakeholders — think of it as creating a detailed blueprint for a building. Nowadays, model-based architecture is often used to ensure that every detail is accounted for, making the foundation strong and reliable.
  • Developer environment 
    Next, we move to the developer wing — the start of the production line. This is where the magic happens: A team of talented developers writes and modifies code, using state-of-the-art Generative AI technology, which is then stored in a source code repository. From there, the code is built into usable software, pre-tested and prepared for the next stages. 
  • Processes and quality standards 
    Now we enter the processes and quality standards bureaus. Here, experts analyze industry regulations and standards, ensuring that the software meets all necessary criteria. For a software factory focused on automated driving, this includes adhering to standards like ASPICE, FuSa, and SOTIF. It's like having a quality control team in a traditional factory, making sure everything meets the highest standards.
  • Test and scenario creation 
    With a version of the software ready, we head to the test and scenario creation department. Here, testing experts put the software through rigorous tests to ensure that it meets all requirements and quality standards. One common method is to use simulations, with scenario files describing the testing environments. Other methods range from local test runs using software in the loop (SiL) or hardware in the loop (HiL) to virtual electronic control units (ECUs) and cloud-based remote testing platforms like DXC Zoreza Global’s Test Automation Platform (TAP) — a first step toward virtual validation. This stage ensures the product is robust and reliable before moving forward.
  • Build and test strategy 
    At the heart of the factory we find the build and test strategy department. This command center is responsible for coordinating all the steps from initial requirements to final release. The team has many responsibilities: Managing artifacts, automating builds and conducting virtual testing, for example. They use a variety of tools, including CI/CD and DevOps tools, test benches for SiL and HiL testing, and digital twins. Moreover, quality gates ensure that the software product is flawless before it is released.
  • Release 
    Next, we visit the release department. Here, the completed software versions are stored in the artifact repository (think of it as the warehouse of a factory), ready to be delivered to clients.
  • Monitoring and traceability 
    Finally, monitoring and traceability: This department ensures that every step of the software creation process is documented and traceable. Not only do clients demand this level of transparency, but it’s also required by standards like ISO/SAE 21434. This department keeps detailed records, ensuring everything can be reviewed and audited if necessary. 

And there you have it: The tour is complete. Hopefully, the many similarities between software development and the production of real goods are obvious. But, creating a software factory is no mean featsoftware has its own needs and demands, and every grown development environment has its own tools and processes. That’s where software factory experts like our SWF offering come in. 

With our extensive expertise in all aspects of software factory implementation, were ready to guide you in establishing your own. Our unique transformation process serves as the blueprint for success. 

  

The DXC Zoreza Global transformation process

 

We have developed a four-step process for a successful transformation toward a software factory: 

  1. Assessment 
    We start with an in-depth analysis of the current environment and target structure. This includes evaluating tool chains, the degree of automation, and test centralization. Based on this assessment, we identify a lead project for the transformation.
  2. Proof of concept 
    The lead project serves as a proof of concept. During this phase, we set up and closely monitor tools and processes, focusing on known bottlenecks and critical key points like the use of virtual ECUs for testing.
  3. Implementation and return on investment 
    Once the lead project meets all the requirements, we roll out the changes to a production project. This stage allows us to accurately calculate the return on investment and demonstrate the tangible benefits of the transformation.
  4. Scale to organization 
    With the new software factory process up and running for the first project, we scale it to other projects within the organization, configuring each one individually to fit its unique needs.

 

 

Bringing it all together

 

A software factory offers numerous advantages, including easier software reuse, early bug detection, and stress-free passing of assessments. At DXC Zoreza Global, we have the expertise to help you build your own software factory. Contact us today to start your transformation journey.  

 

Owen Williams , Content Marketing Manager

Owen Williams author linkedin

Content Marketing Manager

As the senior content writer at DXC Zoreza Global, Owen excels in translating complex technical concepts into engaging and accessible stories. Currently focusing on the automotive sector, he helps experts create insightful articles on software-defined vehicles and other advanced technologies for DXC Zoreza Global's external audiences. With a keen eye for detail and a passion for clear communication, Owen is dedicated to bridging the gap between technical experts and the broader public. On a personal note, Owen enjoys irony, satire and humor, loves gonzo journalism, and finds it strange writing this bio in the third person.

Andreas Mütsch , Senior Software Developer | Technical Writer

Andreas Mütsch author linkedin

Senior Software Developer | Technical Writer

Andreas is a technical writer and software developer at DXC Zoreza Global. As part of the solutions team, he is responsible for the accuracy and reliability of technical articles and documentation. As a software developer, he helped to bring several generations of in-car infotainment systems to market. His mission is to close the gap between writing and coding in technical projects. Andreas holds a degree in applied physics. In his private life, he is the author of several books and an award-winning self-publisher.