Augmenting design patterns with design rationale

Author(s):  
Feniosky Peña-Mora ◽  
Sanjeev Vadhavkar

AbstractPresent-day software applications are increasingly required to be “reuse-conscious” in terms of the operating platforms, topology, and evolutionary requirements. Traditionally, there has been much difficulty in communicating specialized knowledge like design intents, design recommendations, and design justifications in the discipline of software engineering. This paper presents a methodology based on the combination of design rationale and design patterns to design reusable software systems. Design rationale is the representation of the reasoning behind the design of an artifact. Design patterns are descriptions of communicating objects and classes that are customized to solve a general design problem in a particular context. The paper details the use of an explicit software development process to capture and disseminate the specialized knowledge (i.e., intents, recommendations, and justifications) that augments the description of the cases in a library (i.e., design patterns) during the development of software applications by heterogeneous groups. The importance of preserving and using this specialized knowledge has become apparent with the growing trend of combining the software development process with the product (i.e., software code). The importance of codifying corporate memory in this regard is also important considering the changing nature of the workplace, where more people are on contract. The information on how and why a software code was developed becomes essential for efficient and smooth continuity of the present software project as well as for reusing the code in future projects. It has become essential to capture the design rationale to develop and design software systems efficiently and reliably. The software prototype developed using the combined methodology will be used as a part of an integrated design environment for reusable software design. This environment supports collaborative development of software applications by a group of software specialists from a library of building block cases represented by design patterns.

Author(s):  
FENIOSKY PEÑA-MORA ◽  
SANJEEV VADHAVKAR ◽  
SIVA KUMAR DIRISALA

This paper presents a framework and a prototype for designing Integrated Construction Management (ICM) software applications using reusable components. The framework supports the collaborative development of ICM software applications by a group of ICM application developers from a library of software components. The framework focuses on the use of an explicit software development process to capture and disseminate specialized knowledge that augments the description of the ICM software application components in a library. The importance of preserving and using this knowledge has become apparent with the recent trend of combining the software development process with the software application code. There are three main components in the framework: design patterns, design rationale model, and intelligent search algorithms. Design patterns have been chosen to represent, record, and reuse the recurring design structures and associated design experience in object-oriented software development. The Design Recommendation and Intent Model (DRIM) was extended in the current research effort to capture the specific implementation of reusable software components. DRIM provides a method by which design rationale from multiple ICM application designers can be partially generated, stored, and later retrieved by a computer system. To address the issues of retrieval, the paper presents a unique representation of a software component, and a search mechanism based on Reggia's setcover algorithm to retrieve a set of components that can be combined to get the required functionality is presented. This paper also details an initial, proof-of-concept prototype based on the framework. By supporting nonobtrusive capture as well as effective access of vital design rationale information regarding the ICM application development process, the framework described in this paper is expected to provide a strong information base for designing ICM software.


2014 ◽  
Vol 9 (1) ◽  
pp. 87-94
Author(s):  
Alexey Bevzov ◽  
Aleksandr Kurochkin ◽  
Anatoliy Lubkov ◽  
Aleksandr Petukhov ◽  
Pavel Filatov

The paper describes experience of software development for automated system for Large Solar Vacuum Telescope. Most attention is given to the work evolution on the different stages of this process. Automated system software has been developed using Object-Oriented Programming, Design Patterns and Qt tools to achieve reusable code, that can be used in other telescopes and be portable to different operating systems


Author(s):  
HONGHUA DAI ◽  
WEI DAI ◽  
GANG LI

To have an effective and efficient mechanism to store, manage and utilize software sources is essential to the automation of software engineering. The paper presents an innovative approach in managing software resources using software warehouse where software assets are systematically accumulated, deposited, retrieved, packaged, managed and utilized, driven by data-mining and OLAP technologies. The results lead to streamlined high efficient software development process and enhance the productivity in response to modern challenges of the design and development of software applications.


Author(s):  
Anas AL-Badareen

    Abstract— Since the idea of software reuse appeared in 1968, software reuse has become a software engineering discipline. Software reuse is one of the main techniques used to enhance the productivity of software development, which it helps reducing the time, effort, and cost of developing software systems, and enhances the quality of software products. However, software reuse requires understanding, modifying, adapting and testing processes in order to be performed correctly and efficiently. This study aims to analyze and discuss the process of software reuse, identify its elements, sources and usages. The alternatives of acquiring and using software assets either normal or reusable assets are discussed. As a result of this study, four main methods are proposed in order to use the concept of reuse in the software development process. These methods are proposed based on the source of software assets regardless the types of software assets and their usages.


Author(s):  
Oliver Mehl ◽  
Mike Becker ◽  
Andreas Köppel ◽  
Partho Paul ◽  
Daniel Zimmermann ◽  
...  

Author(s):  
Swathine.K , Et. al.

Software traceability is a crucial component of various exact software development process and it is needed for various component certification and approval process in security system. With the tremendous growth of system, traceability is considered as a recent research topic. The traceability is a software development process that is indefinable. Various manufacturers struggle in predicting the appropriate traceability degree for their needs and produce the appropriate set of traceability links. The effort, cost, and discipline have to be maintained with tracking links with the faster development of software systems that are extremely higher. Also, it produces various advantages in practical realization; as it can be either ad-hoc or not properly defined traceability process, produces poor training or lack of effectual tool support. Moreover, the traceability process has to be determined as it can diminish the development effort and to enhance the development process. Generally, traceability research is based on empirical investigations for exploring newer investigational queries or to compute newer tracing methods. Here, this work concentrates on traceability, functional requirements, link establishment. It shows a better trade-off among the prevailing approaches.


Author(s):  
Shirley A. Becker ◽  
Alan A. Jorgensen

Researchers and practitioners alike agree that the waterfall approach to software development results in poor quality software systems. Unfortunately, the waterfall approach is inherently used in almost all of today’s development efforts resulting in system failures. The problem lies in the forward, linear development effort that produces inconsistent and incorrect specifications, designs, and code artifacts. It is proposed in this paper that a recursive software development process be used as a means of managing the complexity of today’s software systems. The recursive approach has the flexibility needed to perform development activities in any order to ensure that system requirements are met.


Author(s):  
V. A. Fedorova ◽  
T. A. Moiseeva ◽  
E. V. Poddubnaya

Currently, software is used in many areas of human activity. But the developers of software systems often have problems that leads to exceeding the time and budget of development, as well as reduces the quality and security of software. The paper proposes a methodology developed by the authors, which allows you to standardize the process of creating software. The proposed approach greatly facilitates the organization of the process of collective development and management of software development, improves the quality of the developed software, reduces the risks of the developer and the customer and also reduces the time spent on the creation of software and the cost of its development. The developed technique fully standardizes the software development process, from the moment of creation of specification and ending with the introduction and support of the software product.


2020 ◽  
Vol 8 (1) ◽  
pp. 92-107
Author(s):  
Bilal Hussein ◽  
Aref Mehanna ◽  
Yahia Rabih

Design patterns of today play a fundamental role in software development and implementation and provide a wide range of design solutions for recurring problems. Most research in this area focus on the creation and update of design patterns in order to fill all the gaps produced by their original structures. The purpose of this article is to present the visitor design pattern, to show its advantages in the software development process, and to provide it in a new version that allows the software to be easily upgraded without making complex modifications. This contribution consists in updating the structure and implementation of the Visitor design pattern using the reflection mechanism.


Sign in / Sign up

Export Citation Format

Share Document