Explore chapters and articles related to this topic
Adaptive Life Cycle Models
Published in Gary L. Richardson, Brad M. Jackson, Project Management Theory and Practice, 2018
Gary L. Richardson, Brad M. Jackson
Behavior-driven development (or BDD) is an agile software development technique that encourages collaboration between developers, quality assurance (QA) and non-technical or business participants in a software project. It focuses on obtaining a clear understanding of desired software behavior through discussion with stakeholders. It extends TDD by writing test cases in a natural language that non-programmers can read. Behavior-driven developers use their native language in combination with the ubiquitous language of domain-driven design to describe the purpose and benefit of their code. This allows the developers to focus on why the code should be created, rather than the technical details, and minimizes translation between the technical language in which the code is written and the domain language spoken by the business, users, stakeholders, project management, and so forth (North, 2018).
Creating Formal Models from Informal Design Artefacts
Published in International Journal of Human–Computer Interaction, 2023
Judy Bowen, Benjamin Weyers, Bowen Liu
In 2003, Agiledox, which some consider the predecessor of behaviour-driven languages and frameworks such as Gherkin and Cucumber (discussed later) was created by Stevenson (Stevenson, n.d.). Agiledox is a tool that automatically generates simple documentation from the method names in JUnit test cases, providing a way of tying together different parts of the development process (in this case using the testing procedures to assist with user documentation). Later, North introduced Behaviour Driven Development (BDD) (North, 2006), an agile software development process that built on the ideas of Test Driven Development (Beck, 2002). BDD combines the practices, techniques and principles of Test Driven Development, Acceptance Test Driven Development (Acceptance Test Driven Development (ATDD), n.d.) and Domain-Driven Design (What is Domain-driven design,2007). The key concept of BDD is that it supports “…implementing an application by describing its behaviour from the perspective of its stakeholders” (North, 2009).
Editorial notes: Industrial Internet-of-Things (IIoT)-enabled digital servitisation
Published in International Journal of Production Research, 2023
Li et al. ( 2021a) proposed a blockchain-enabled digital twin collaboration platform, as an integrated solution, to address the insufficient collaboration among social, cyber and physical spaces when developing open architecture products, under a decentralised social manufacturing resource (SMR) network. A hybrid domain-driven design method was presented to design and implement business-knowledge-driven systems. To address the heterogeneity of SMRs, a ubiquitous object structure was designed to flexibly adjust the functionality of the digital twin. Blockchain was introduced to construct a peer-to-peer network to organise SMRs in a decentralised manner. Additionally, a timed coloured Petri net-based workflow was adopted to formulise the collaboration logic into a smart contract executed on the blockchain. At last, a demonstrative case study was conducted to verify and evaluate the proposed BcDTCP under a 3D printing scenario.
Blockchain-enabled digital twin collaboration platform for heterogeneous socialized manufacturing resource management
Published in International Journal of Production Research, 2023
Ming Li, Yelin Fu, Qiqi Chen, Ting Qu
Most of the current DDD methods depend on business scope and logic to partition the domains in order to facilitate the extraction of domain knowledge for further design reuse (Rademacher, Sorgalla, and Sachweh 2018). However, these methods neglect the theoretical and technical knowledge that is potentially presented in a business domain. It is difficult for domain experts who specialised in business to identify, master, and apply these types of knowledge, especially with emerging advanced technologies or optimisation algorithms, in their domain designs. Hence, a hybrid domain-driven design (HDDD) method is proposed in Figure 1 to separate the business domain from the knowledge domain, and aims to facilitate the design and development of complex systems that are driven by both business and knowledge. In HDDD, a problem space will be divided into three domains with four overlapping domain components. Specific descriptions for each part are given as follows: Core Domain