Home | About Us | Contact
 
  Software Development Process  
     
 
Normally we apply the following sequential steps, to manage our software engineering processes.

Requirements Analysis  
Extracting the requirements of a desired software product is the first task in creating it. While customers probably believe they know what the software is to do, it may require skill and experience in software engineering to recognize incomplete, ambiguous or contradictory requirements.

We will define the requirements by creating Use Cases. Also a general schedule for delivery will be produced.

Specification  
Specification is the task of precisely describing the software to be written, in a mathematically rigorous way. In practice, most successful specifications are written to understand and fine-tune applications that were already well-developed, although safety-critical software systems are often carefully specified prior to application development. Specifications are most important for external interfaces that must remain stable.

During this phase the team prepares the functional specifications, works the design process through, and prepares work plans, cost estimates and schedules for the various deliverables.

This work can be carried out by us for a separate fee. If the customer also assigns Cadena to develop the application after the Specification phase a development contract will be signed at this point .

In complicated cases a screen prototype of a new system can also be developed. This allows the customer to review the future system and to give their feedback at an early stage of the development.

Software architecture  
The architecture of a software system refers to an abstract representation of that system. Architecture is concerned with making sure the software system will meet the requirements of the product, as well as ensuring that future requirements can be addressed. The architecture step also addresses interfaces between the software system and other software products, as well as the underlying hardware or the host operating system.

Coding
Translating a design to code may be the most obvious part of the software engineering job, but it is not necessarily the largest portion.

Interim status reports will inform customer about the progress of the project.

Testing  
We apply the following testing methods:

  • Test Case derived Use Case
  • Deriving test cases from use cases ensures that the required functionality of the system is both developed in the software and reflected in the test plan.  By working from the same specification, the use cases, development and test are more likely to arrive at test time with the same expectations of the system. Coordination between development and test is further ensured by having the test organization take ownership of the use cases. In our organization, this method has been used successfully on multiple projects.
  • Testing during development (test individual functions)
  • Production parallel run (2 or more programmers working on different functions that can be tested separately)
  • Performance testing (large volume testing)     

 After rigorous testing, we launch the application.

Documentation
An important (and often overlooked) task is documenting the internal design of software for the purpose of future maintenance and enhancement. Documentation is most important for external interfaces.

Delivery and Support
Cadena’s team deploys the core technology and site components, stabilizes the deployment, transitions the project to operations and support, and obtains final customer approval for the project.

Usually a typical software package includes:  

  • Software product
  • Technical requirements documentation and design documentation
  • User's Guide
  • Installation program and instructions
  • Documented source code
  • Maintenance instructions

The development team keeps supporting the system after installation, and we also provide a warranty.