Corporate News
a qualified service-disabled, veteran-owned software development company

Our Software Engineering Process

Learn more about SyRIS

Our proven engineering process and attention to detail is what makes our team stand out amongst other consulting firms. Having worked for years on projects with defense contractors and commercial entities, we have found that many are skilled in a wide variety of areas, but few have solid systems engineering and project management expertise in the software arena. Our project teams actively employ a proven process and associated tools based upon “best practices” as advocated by the Software Engineering Institute’s Capability Maturity Model.

DSoft Technology - Software Engineering ProcessOver the past ten years, DSoft Technology has continuously improved its object oriented methodology and management processes. DSoft Technology uses our success-proven systems engineering and earned value management processes to control and guide custom software development. Managing diverse technologies and clients requires a disciplined technical approach to produce applications and support service on time and within our Client's available budget and resources.

DSoft Technology follows a proven iterative engineering approach to architecting, developing, enhancing, and maintaining IT systems. It applies collaborative and continuous improvement concepts to software development, emphasizing close collaboration between development teams and clients, frequent delivery of deployable code, face-to-face communication with clients, small teams, and identification of self-improvement activities. Our approach conforms to best practices used in the industry. These "best practices", championed and instituted by world-class IT firms, include: (1) Develop Iteratively, (2) Manage Requirements, (3) Use Component Architectures, (4) Model Visually, (5) Verify Quality, and (6) Control Changes.

One of software development's bitter truths is that, like it or not, requirements change. Traditional waterfall techniques ignore this fact and the result is a system that does not fulfill all the user's expectations. Our iterative approach allows for requirements to be factored into the design, even at later stages of the development cycle, resulting in higher quality applications. We expect to receive feedback -- and actively seek it -- about our work, and are prepared to incorporate that feedback into the requirements repository. Trying to baseline requirements too early in the life of a software development project simply guarantees less than optimal project delivery.

Our Agile approach stresses 1) a common understanding of all requirements between the client’s software project staff and ourselves, 2) development of expert knowledge of the system's functionality, and 3) system documentation in SyRIS for reference, testing and maintenance.

DSoft Technology - Software Engineering Process

 

1) Requirements and Fusion. DSoft Technology engineers work with our Client's staff to review and refine the business objectives, business rules, and detailed requirements. As the components are defined, preliminary drafts are reviewed with the Client to validate our approach and identify potential issues. This is an iterative process maximizing Client input into the process. The documents produced for the detail requirements package are reviewed with the Client while in progress to identify and resolve potential issues. Preliminary reviews of work in progress are held frequently to validate our approach and to identify/resolve potential issues early on. The real product of this process is the expert knowledge gained and documentation from which the system will be built. Using a requirements traceability matrix coupled with a testing process, we ensure 100 percent of the requirements are implemented in the delivered product.

DSoft Technology - Software Engineering Process

 

2) Analysis and Design. Based on the above requirements and fusion process, dialog flow diagrams and prototyped conceptual screen mock-up images are developed to "play back" the typical usage scenarios to the users. In true use case fashion, we prototype a series of user screens to represent the project's business critical functions. Feedback from Client review is used to further refine the requirements.

 

DSoft Technology - Software Engineering Process

 

3) Development. This step provides for the actual code development. DSoft Technology will develop software according to best commercial coding practices. We also encourage a rapid prototyping approach to deploy components to a test/staging server as new functionality is made available. We proactively encourage incremental reviews of our work-in-progress by our Clients to validate the product is meeting all expectations.

DSoft Technology - Software Engineering Process

4) Test and Evaluation. We understand operational software products, having developed operational systems for the government and commercial Clients that have to work 24x7. Therefore, we dedicate significant time to testing the software using a Multi-Tiered Testing Strategy including appropriate time for 1) unit testing, 2) integration testing, 3) system testing, 4) user acceptance testing, and 4) build and deployment testing. Testing will be performed in a test/staging environment specifically designed for testing and staging software to the production system. Although we perform informal unit testing in the development environment, formal testing is based on test cases developed against the final requirements set. We perform testing and inspections of all project components to ensure the technical adequacy and accuracy of all our work.

 

DSoft Technology - Software Engineering Process

5) Deployment, Integration, and Optimization. This stage involves final integration configuration and deployment to run properly in the Client's production environment. Working with Client project staff, we assist in loading the software to the server and configuring it to run properly. Once integration has been completed, Client acceptance testing is initiated upon acceptance of the operational test report and approval of the acceptance test plan from the previous phase. DSoft Technology also provides assistance with operations, upgrades and optimization of the solution as new requirements emerge. It is at this point where the DSoft Technology warranty and maintenance periods start.