Software engineering is the core focus of Wolf Software. Software engineering covers all areas from the initial idea right the way through to the final installation of the software and ultimately the support of that software.
At every stage of the development process, from conceptual design to product release, the highest quality standards are maintained and industry best practices are followed.
Implementation is not seen as the end goal but simply another of the steps in the full product life cycle and we are able to assist you and your business in any stage of this life cycle.
We are able to work with your internal development team (if you have one) in order to facilitate timely completion of all or any of these stages, or if preferred you can simply outsource the entire process (or single project) to us to complete on your behalf.
We can assist in any or all of the following areas within the product life cycle. Each stage of the process will be concluded with a formal sign off from you the client to ensure that each stage is being completed your satisfaction.
The capturing of requirements is the first part of any project (or consultancy). This is one of the most important stages to get right as this will form the direction for the rest of the project. Collecting poor, incomplete or inaccurate requirements will result in something that is not fit for purpose being built and ultimately be a waste of time, money and resources for everyone involved.
We have extensive experience of capturing requirements and we take every effort to ensure that the requirements are not only complete but also accurate and appropriately detailed. We will work directly with the client to ensure all of their requirements are captured correctly and that those requirements are signed off by the client as an accurate record of their requests.
The feasibility stage of a project is a very important stage and is one that should not be rushed or skipped. This stage of the project will establish which of the requirements are actually feasible and which are not. This will contribute to key decision points later in the project. It is important to remember that just because a client has a requirement doesn't mean that requirement is actually feasible.
We will carry all of the necessary research and where required a level of prototyping of the solution or key aspects of the solution in order to verify the feasibility of the requirements. The outcomes of the feasibility will be fully documented and will form a key input to the functional specification stage of the project.
The outcome of the feasibility will assist in the decision making aspect of this part of the project. Anything which is found to be infeasible will be marked as such in the functional specification.
The functional specification is the technical reply to the client; it will include a reply to each of the requirements that were captured at the start of the project. The functional specification will detail which of the requirements will be answered by the solution and which ones will not.
The final stage of the functional specification is to return it to the client so that they can see what will and won't be included in the design and ultimately the implementation. This could well be the end of the project if it is found that to many of the clients requirements are not possible. This is a key decision point for the project and a project will only progress to the design stage if the client is happy to accept the decisions detailed in the functional specification.
The design stage converts the initial requirements, feasibility results and the functional specification into a cohesive solution. The design will include sufficient details on how to implement the entire solution that is required. It will address all of the accepted requirements in enough detail that it is possible to engineer to implement the complete solution.
Data flow diagrams, database schemas, pseudo code and many other software engineering techniques will be utilised at this stage of the project in order to ensure clear guidance is given for the implementation stage.
There must be no ambiguity around any aspect of the solution, so where there is any doubt in how the implementation will be carried out or where multiple possible options exist, then sufficient detail will be included to ensure that only the desired solution is implemented.
During the design stage special attention will be given to any security concerns and any legal or regulatory compliance requirements that you or your business may have, for example Data Protection (DPA) or ISO27001.
If all of the previous stages have been completed correctly the implementation should be a fairly straight forward task. All of the necessary feasibility, research and prototyping will have already been carried out and documented.
The implementation is a simple process of following the design and building each component of the solution and testing it fully firstly in isolation and then as a whole once all of the components are connected together.
Testing is not a single one off stage of the process but instead testing will be carried out at various stages of the process, but primarily during the implementation and after completion of the implementation.
There are 2 areas that require specific testing. The first set of testing is to ensure that the software that has been implemented is actually fit for purpose. This will ensure that correct error checking is in place, and data is validated and verified fully.
The second set of testing is to ensure the software as a whole meets all of the agreed requirements and that it achieves the aims and objectives of the project. A full test specification document will be created for both key areas for testing.