Software Development Process Described Through a Case Study

Case Study included: Zuma Level Designer

Zuma-Single-Level-Image-partial.webp

Case Study > Phase 1: Preparing Requirement

Customer's Description

The customer owns the Zuma game engine, which accepts level configurations in a specific data format.

Writing level configurations manually is relatively complex, so the goal is to develop an application that would allow for easier configuration of levels.

Levels and their configurations can be accessed in Zuma Level Examples.

Zuma-Single-Level-Image-partial.png

Choosing the Development Approach

By analyzing the customer's description, the following characteristics have been identified: Product scope is final and the problem falls into the Precise Assignments category.

The chosen development approach is the Waterfall development approach, since it is the most reasonable choice when both the problem and solution are clearly known (without the need for continuous feedback).

Visualized an elegant and sophisticated office space dominated by a large, polished wooden desk. On the desk, there's an array of mathematical tools.webp

The Requirement and the Offer

Having a clear goal that is to be achieved with the software solution, and having chosen a development approach, the requirements and offer can be prepared.

Usually, in cooperation with the customer, both are combined into one document, which serves both as the specification and for legal obligations.

An example of this document can be accessed in the Zuma Level Designer Offer.

Image that represents the concept of offer documents. The scene is an elegant, well-lit office setting with a sleek, modern d.png.webp

Case Study > Phase 2: Choosing Tools

User Experience

The Level Designer needs to have a GUI, to be utilized with a mouse for drawing and a keyboard for inserting level parameters.

Concurrent Usage

The Level Designer is intended for use by a single user on a single PC.

Reasonable Options

Tools that are practical for building user interfaces are a good choice. This includes all popular libraries and frameworks for desktop application and web single-page application development.

Decision

The decision has been made to utilize the React library, based on the requirements and the development team's expertise.

Case Study > Phase 3: Implementing Solution

The Code Architecture

To start with the technical solution, the code architecture should be chosen. The goal is to apply general conventions and rules that best fit the requirement.

For individual components, the MVVM pattern is chosen.

In the integration part, a one-way hierarchy is achieved, with the App component utilizing the LevelBuilder component, and the LevelBuilder component utilizing the CanvasLevelBuilder.

The responsibilities include JSON processing, processing basic input level data, and managing canvas-drawn level data, respectively.

Level-Builder-Component-Organization.png

The Specific Functionality

Besides the general requirements found in all web projects, sometimes there are project-specific functionalities needed. General code patterns do not necessarily fit these.

In this project, that is the 'canvas drawing' section, particularly tunnel calculation. Tunnels can be opened and closed only on paths, which separates them from all other elements.

An abstraction named 'tools' is incorporated, and only pure functions are utilized.

Level-Builder-Tunnel-Data-Pure-Functions-Code-Section.png

Case Study > Phase 4: Testing

Level Designer Configuration

Apart from various automated tests for units such as tunnel calculations, a final manual test is performed.

One of the level designs that is tested is shown in the image.

Level-Designer-Test.png

Engine Results

In the applied test, the following can be observed:


The visible area is correctly matched.

All tunnels are oriented correctly.

Paths and platforms are correctly rendered.

Balls are correctly generated.

Zuma-Level-Test-Tunnels-Engine.png

Software Development Process Stages: An Overview

Preparing Requirements

e88f7e87-dd50-440a-8cbe-a08e56bf4be5.webp

With decisions which Software Development option will be utilized, and which business problems will be solved, requirements are prepared.

Choosing Tools

Illustration depicting the concept of 'making a choice'. Visualize a scene with two distinct paths diverging in a lu.webp

Some programming languages, frameworks and tools are more suited to certain problem domains than others.

Implementing Solution

52709bf9-2b0f-4001-b5cc-d10714ef2e73.webp

Software solution is built, configured and integrated in this phase.

Testing

Image that abstractly represents the concept of software testing, focusing on the critical aspects of quality assurance in so.webp

The final step is testing the integrated solution to make sure it works correctly and that the business improvement goal is achieved.

Additional Information

See Another Example

Follow the software development process described in a case study on the development of 'Generating Checksum Valid Credit Card Numbers'.

Read about the Complete Software Development Process

Read about all topics, from understanding the benefits of software and its areas of usage to software planning and development.

Read More on the Technical Side of Software Development

Explore the technical aspects of software development on our blog. It offers insights into various coding techniques.

Contact Us

Let us know if we can improve the description for your business case, and if you are interested in exploring cooperation options for your project.

See the Offers

Check out the business offers, services, and pricing models we have, and explore opportunities to take your business to the next level.