Investigating the Use of Object-Oriented Design Patterns in Open-Source Software: A Case Study

Author(s):  
Apostolos Ampatzoglou ◽  
Sofia Charalampidou ◽  
Ioannis Stamelos
2020 ◽  
Author(s):  
Samuel Genheden ◽  
Amol Thakkar ◽  
Veronika Chadimova ◽  
Jean-Louis Reymond ◽  
Ola Engkvist ◽  
...  

We present the open-source AiZynthFinder software that can be readily used in retrosynthetic planning. The algorithm is based on a Monte Carlo tree search that recursively breaks down a molecule to purchasable precursors. The tree search is guided by an artificial neural network policy that suggests possible precursors by utilizing a library of known reaction templates. The software is fast and can typically find a solution in less than 10 seconds and perform a complete search in less than 1 minute. Moreover, the writing of the code was guided by a range of software engineering principles such as automatic testing, system design and continuous integration leading to robust software. The object-oriented design makes the software very flexible and can straightforwardly be extended to support a range of new features. Finally, the software is clearly documented and should be easy to get started with. The software is available at http://www.github.com/MolecularAI/aizynthfinder.


2007 ◽  
Vol 06 (04) ◽  
pp. 701-722 ◽  
Author(s):  
SIN BAN HO ◽  
IAN CHAI ◽  
CHUIE HONG TAN

Design patterns have become an important part of modern object-oriented design. It is necessary to evaluate and compare the effectiveness of different methods of pedagogical documentation in teaching design patterns. We compared patterns-style documentation with minimalist documentation. Patterns style disagrees with minimalism in that contextual information is not minimal — it usually contains information other than what needs to be done. The discoveries in this empirical study were two fold. First, the MANOVA (multivariate analyses of variance) shows that the effect of patterns-style documentation and minimalism are different. Second, we proposed a prediction model using a regression modeling technique. Considering these results, we formulate some guidelines for effective framework documentation by applying five of the design patterns within the Swing environment as our case study. Different documentation philosophies are better for different goals. For a simple task, use minimalist documentation. For a much more complex problem such involving five of the design patterns, our empirical results suggest using patterns-style documentation.


2020 ◽  
Author(s):  
Samuel Genheden ◽  
Amol Thakkar ◽  
Veronika Chadimova ◽  
Jean-Louis Reymond ◽  
Ola Engkvist ◽  
...  

We present the open-source AiZynthFinder software that can be readily used in retrosynthetic planning. The algorithm is based on a Monte Carlo tree search that recursively breaks down a molecule to purchasable precursors. The tree search is guided by an artificial neural network policy that suggests possible precursors by utilizing a library of known reaction templates. The software is fast and can typically find a solution in less than 10 seconds and perform a complete search in less than 1 minute. Moreover, the writing of the code was guided by a range of software engineering principles such as automatic testing, system design and continuous integration leading to robust software. The object-oriented design makes the software very flexible and can straightforwardly be extended to support a range of new features. Finally, the software is clearly documented and should be easy to get started with. The software is available at http://www.github.com/MolecularAI/aizynthfinder.


2008 ◽  
Author(s):  
◽  
Pariksha Singh

Competitive pressure on the software industry encourages organizations to examine the effectiveness of their software development and evolutionary processes. Therefore it is important that software is measured in order to improve the quality. The question is not whether we should measure software but how it should be measured. Software measurement has been in existence for over three decades and it is still in the process of becoming a mature science. The many influences of new software development technologies have led to a diverse growth in software measurement technologies which have resulted in various definitions and validation techniques. An important aspect of software measurement is the measurement of the design, which nowadays often means the measurement of object oriented design. Chidamer and Kemerer (1994) designed a metric suite for object oriented design, which has provided a new foundation for metrics and acts as a starting point for further development of the software measurement science. This study documents theoretical object oriented cohesion metrics and calculates those metrics for classes extracted from a sample of open source software packages. For each open source software package, the following data is recorded: software size, age, domain, number of developers, number of bugs, support requests, feature requests, etc. The study then tests by means of association rules which theoretical cohesion metrics are validated hypothesis: that older software is more cohesive than younger software, bigger packages is less cohesive than smaller packages, and the smaller the software program the more maintainable it is. This study attempts to validate existing theoretical object oriented cohesion metrics by mining open source software data with association rules.


2021 ◽  
Vol 23 (1) ◽  
pp. 34-41
Author(s):  
Alejandro Vera-Baquero ◽  
Owen Phelan ◽  
Pawel Slowinski ◽  
John Hannon

2017 ◽  
Vol 134 ◽  
pp. 211-227 ◽  
Author(s):  
Maria-Eleni Paschali ◽  
Apostolos Ampatzoglou ◽  
Stamatia Bibi ◽  
Alexander Chatzigeorgiou ◽  
Ioannis Stamelos

Sign in / Sign up

Export Citation Format

Share Document