Integração da abordagem Domain-Driven Design e de técnica Behaviour-Driven Development no desenvolvimento de aplicações web - Santos, Eloisa Cristina Silva (Universidade Federal de São Carlos, 2015)
The agile methods of software development have emerged as an alternative to traditional approaches, to spend less time on documentation and more time with solving problems interactively and iteratively. In this context, the development approach Domain Driven Design (DDD) is a way of developing software in which the application design process is guided by a domain model. In conjunction with the DDD development approach, the existence of tests during the implementation of an application is required to ensure quality. Objective: This work aims to study the agile development approach Domain-Driven Design (DDD) and the software test techniques Test-Driven Development (TDD) and Behaviour-Driven Development (BDD). A case study was built to exemplify the integration of each test technique with DDD. The case study was developed with the support of the Apache Isis framework, from a well-defined domain model. Methodology: Based on the literature, the concepts of the DDD development approach and of the TDD and BDD test techniques, that provided the comparison between the techniques, and later, the implementation to illustrate this research, were extracted. The Apache Isis framework was used in this work because it allows develop DDD applications quickly. During the development of the sample system of this work, the possibility of creating an automatic generator tests and scenarios for BDD was noted. Results: A case study was created using the concepts of DDD and tests, with TDD and BDD. Furthermore, a prototype of tests and scenarios generator for software projects that use DDD, through the Apache Isis framework and tests using BDD, was developed. Conclusions: The combination of test techniques mentioned with DDD aim to boosting the development of applications, since DDD is not associate with any test technique. Writing scenarios with ubiquitous language is a great advantage to integrate DDD and BDD, because it allows a clear understanding for all involved in the project. Moreover, the creation of automatic generator speeds up the testing phase, and can detect errors that might go unnoticed or only be found as the project evolved.
Keywords: Engenharia de software; Métodos ágeis; Computação ubíqua; Agile methods; Domain-Driven Design (DDD); Test-Driven Development (TDD); Behaviour-Driven Development (BDD); Domain model; Ubiquitous language; CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::SISTEMAS DE COMPUTACAO; CIENCIAS EXATAS E DA TERRA