We love the challenges of complex business critical software projects
Based on proven methods, processes and tools, we manage to handle every project in an orderly manner.
Software Development Life Cycle (SDLC)
On request, we support our customers in all phases of software development and use both conventional and agile software development models.
All software development models have different approaches, but the basic phases and activities remain the same for all models.
1. Analysis and Planning
What you want and don’t want
A detailed and comprehensive requirements analysis and planning is the basis for successful software projects.
This requires the involvement of all stakeholders.
Costs and necessary resources must of course be taken into account.
This phase includes:
- Identification of needs and current problems
- Strengths and weaknesses of current systems are identified
- Basic project planning and preparation of feasibility study
- Associated risks are detected
- Technical approaches are identified
2. Requirements Engineering
What you really need
The basis for successful requirements engineering (RE) is the involvement of the right stakeholders as well as embedding of the four main activities of requirements engineering (elicitation, documentation, validation/negotiation plus the management of requirements) into the software development process.
In general, a distinction is made between three types of requirements: functional requirements, quality requirements and constraints.
We pay special attention to the quality requirements as early as possible in the development process in order not to risk the success of the project or the later acceptance of the developed solution.
The result of the requirements engineering is the requirements specification of the software system.
This phase includes:
- Appropriate investigative techniques are selected
- Use cases are identified
- Information structures are modelled
- Prototypes are created for illustration
- Acceptance criteria are documented
How we reach the result
During the design phase, developers and technical architects start with the initial design of the software and the system in order to be able to meet any requirement.
The technical details of the design are discussed with stakeholders and parameters such as risks, technologies to be used, expertise, framework, time and budget are reviewed. Depending on this, the best design approach for the product is selected.
The selected architecture design defines all components that need to be developed, such as communication with third-party services, user flows and database communication, as well as front-end design and behavior of each component. The design is defined in the system specification.
The following are defined in this phase:
- Communication with third party service providers
- User flow (UI/UX) and database communication
- Front-end presentation
- Component behaviour
Create what you want
Once the design is completed, the implementation phase involves turning the architecture into program code.
The better the work in the previous phases, the less effort is required for implementation.
In this phase, the developers implement the project according to defined guidelines and selected process models.
This phase is implemented on the basis of:
- Coding Guidelines
- Process models such as Waterfall model, V-model, Scrum, Kanban, Extreme Programming, etc.
- Software Frameworks
5. Test and integration
Did you get what you want?
In modern software development methods, testing is already an integrated part of all phases. This phase refers to the acceptance of the system, in which errors are reported, tracked, corrected and tested again until the solution meets the quality standards defined in the specification.
The final software system must now be distributed, installed and rolled out to the target systems – distribution and installation are often referred to as deployment or rollout.
This phase includes the following activities:
- Test planning and test management
- Test data management
- Test execution (functional / non-functional tests)
- Creation of test report
What you really want
The market is changing or feedback shows that changes or enhancements to the software are necessary. The software is adapted to these needs in the maintenance process.
As soon as a version of the software is released for production, there is typically a maintenance team that takes care of any problems from production.
If a problem occurs in production, the development team is informed. Depending on the severity of the problem, it may require either a hotfix, which is created and delivered in a short time, or the problem is fixed with the next version of the software.
Of course, all of this is done again in accordance with the phases described above.
This phase includes:
- Corrective maintenance
- Adaptive maintenance
- Preventive maintenance
- Functional enhancements
- Support and assistance