Software Development Process Described Through a Case Study

4 Steps case study included:

Simulating User Profiles: Generating Checksum Valid Credit Card Numbers

An abstract digital artwork depicting a computer monitor in a modern office, showing a credit card validation interface. The screen displays a generic.webp

Case Study > Step 1: Preparing Requirement

Customer's Description

The customer owns a payment gateway service and is developing anti-fraud protection. For this, the customer requires up to 500 simulated users per batch, complete with relevant information and credit card numbers that comply with geographical, payment network, and checksum rules.

Creating a batch of this size manually for every test is a straightforward but time-consuming process. Therefore, a software solution is to be built.

The full requirement can be accessed in the Test Client Data Generation Service.

An abstract digital artwork depicting a computer monitor in a modern office, showing a credit card validation interface. The screen displays a generic.webp

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 Repeating Tasks 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).

Repetitive tasks are shown consuming a large portion of a clock, symbolizing lost time.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.

In this case, the customer provided a clearly defined requirement, as is visible in the previous section.

A concise stack of documents on a white background, this time with a focus on software specifications. The top document should visibly contain element.webp.webp

Case Study > Step 2: Choosing Tools

User Experience

There is no need for a GUI. The solution must be designed to be used as an API service.

Concurrent Usage

Solution should be used by multiple HTTP clients.

Reasonable Options

Tools that are practical for building web APIs are a good choice. This includes all popular libraries and frameworks used in web application development.

Decision

The decision has been made to utilize the Nest.js framework, based on the requirements and the development team's expertise.

Case Study > Step 3: Implementing Solution

The Code Architecture

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

For the complete application, the MVC pattern has been chosen.

In the integration part, modules are loosely coupled, with the TestClientsModule depending on the TestBasicDataModule, TestEmailDataModule, and TestFinanceDataModule.

The responsibilities include CSV generation and process coordination, generating basic data, generating email data, and generating finance data, respectively.

Services-And-Modules.png

The External Libraries and Services

To successfully generate country-specific names and addresses, the 'faker' library is utilized, with localization included.

For credit card generation, an open-source BIN list is utilized, and the Luhn checksum is respected.

Finally, for temporary email services, Temp Mail is utilized.

Statically-Valid-Credit-Card-Number-Generation.png

Case Study > Step 4: Testing

Test Clients API Endpoint Invocation

CSV-Test-Result.png

The API is tested with various inputs based on countries and customer counts. It is ensured that all basic data is correct.

Test Credit Card Information

Credit-Card-Validity-Check.png

Various independent services are utilized to check do generated credit cards satisfy Luhn check, country and payment network.

Software Development Process Stages: An Overview

Preparing Requirements

A concise stack of documents on a white background, this time with a focus on software specifications. The top document should visibly contain element.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

Image that captures the essence of software development with minimal human presence, and no animals. Focus on technological e.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 'Zuma Level Designer'.

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.