Technology

Technology

PRODUCT DEVELOPMENT & TECHNOLOGY

Formalis develops software products by using iterative and incremental software development methodologies. In the iterative approach, a version of the product is created in the early stages of project. Each iteration covers main software development stages and is aimed to gain the software product a series of new features and behavior.

Formalis applies practices such as case driven requirement gathering, user interaction diagrams, object oriented design, UML modeling, solution design workshops in order to develop products that meet the requirements of our customers with high quality and in a timely manner

Formalis performs product development by strictly applying critical engineering principles;

  • With n-layered architect design; presentation, business and data access are isolated.
  • Keeping software product development iterations short and thus ensuring early adaptation to business requirements.
  • Using the service based on loosely coupled techniques in order to provide flexible and scalable software design.
  • Performing functional tests separately by testing & quality management teams, instead of as a part of the development.
  • Providing customers with user friendly interfaces that are easy to use and isolated from the complexity handled in the software development

During software development process, the first stage for any product feature development is the preparation of the Solution Design Report. Solution Design Report consists of two parts; The first part defines the product feature to be developed, use-cases and interface are designed. In the second part, impact analysis is realized, for the modeling of the software, UML class and interaction diagrams are preferred.

The design is presented by the development engineer to the assessment team consisting of peers such as the software architect and project manager. The software is then improved in accordance with the suggestions received from this team. After the design is approved, the code development is initiated.

During the code development, code review is conducted and pair programming methods are applied. Test codes are developed for unit tests. During the code development process, tools and techniques facilitating the development of the code by the software specialist are utilized. Following the unit tests, codes developed by all software specialists are merged on the code versioning system. The testing process is initiated based on the deployments performed from the code versioning system.

Testing is performed by Quality and Testing specialists. Functional tests are carried out based on use cases, the bugs and shortcomings encountered are reported. Following the debugging efforts, preproduction and production tests are performed and the iteration is completed. After each iteration, the works performed during the concerning iteration are evaluated and the suggestions for process and product improvement are taken into consideration.

Formalis applies object oriented design and development principles during its software stages. Software and Product development team utilizes the appropriate technologies, tools and techniques for creating long lasting and flexible solutions. One of the primary goals is to produce results that posses the necessary quality and performance characteristics to meet any and all expectations in the process.

Formalis makes efficient use of the Design Patterns in its Object Oriented Design Knowledgebase and applies the best practices used for problem solving.

Formalis utilizes the application development components it has created with an object oriented approach in the Reusable Component Factory during the design and development efforts for its software development projects.

In the architecture design, XML based web services, open source application frameworks, n-layered architectures are utilized in accordance with the requirements of the project. For data access, Entity Framework and similar O/R Mapping technologies are preferred. Microsoft Windows Presentation Framework (WPF) technology is used for application interface designs while Windows Communication Framework (WCF) technology is preferred for the service design and development.

Formalis integrates object oriented design and development principles with software development life cycle and produces long lasting and sustainable engineering solutions. Flexible and parametric object oriented design approach enables Formalis to design and develop dynamic systems that can readily answer your changing needs