A Recursive Approach to Software Development

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):  
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):  
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):  
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):  
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.


Author(s):  
Vyron Damasiotis ◽  
Panos Fitsilis ◽  
James F. O'Kane

Modern software systems are growing increasingly complex, requiring increased complexity of software and software development process (SDP). Most software complexity measurement approaches focus on software features such as code size, code defects, number of control paths, etc. However, software complexity measurement should not only focus on code features but on features that cover several aspects of SDP in order to have a more complete approach to software complexity. To implement this approach, an extensive literature review for identifying factors that contribute to the complexity of SDP was performed and seventeen complexity factors were identified. As there were indications that the identified factors were not independent from each other but there were interrelations between them, statistical methods for identifying the underlined relations and refining them were applied, resulting to the final set of measures used in the proposed model. Finally, the proposed model has been tested in five software projects and the results were evaluated.


Information ◽  
2020 ◽  
Vol 11 (6) ◽  
pp. 302
Author(s):  
Afrah Umran Alrubaee ◽  
Deniz Cetinkaya ◽  
Gernot Liebchen ◽  
Huseyin Dogan

Developing high quality, reliable and on time software systems is challenging due to the increasing size and complexity of these systems. Traditional software development approaches are not suitable for dealing with such challenges, so several approaches have been introduced to increase the productivity and reusability during the software development process. Two of these approaches are Component-Based Software Engineering (CBSE) and Model-Driven Software Development (MDD) which focus on reusing pre-developed code and using models throughout the development process respectively. There are many research studies that show the benefits of using software components and model-driven approaches. However, in many cases the development process is either ad-hoc or not well-defined. This paper proposes a new software development process model that merges CBSE and MDD principles to facilitate software development. The model is successfully tested by applying it to the development of an e-learning system as an exemplar case study.


Author(s):  
Bokolo Anthony Jnr ◽  
Mazlina Abdul Majid ◽  
Awanis Romli

Currently, sustainability is a pertinent issue that should be considered in the software development process; hence it is imperative to recognize how environmental-friendly practices can be applied in the electronic industries that develop and deploy software products. However, sustainability is not fully considered when electronic industries implement modern software systems. Additionally, software developers in electronic industries believe that software is environmental friendly mainly because it is virtual. Conversely, the life cycle process and approaches applied to implement, deploy and maintain software do possess social and environmental impacts that are usually not accounted for by electronic industries. Therefore this study identified the predictors that determine sustainable software practice applications in electronics industries by presenting a model to facilitate sustainable software products development. The identified predictors influence sustainable software practices applications which correlate to environmental, technical, economic, social and individual dimensions of sustainability in electronics industries. Based on the identified predicators, this research developed a set of indicators for survey questions and collected data from 133 respondents from Information Technology (IT), software, environmental and electronic- based industries. The survey data aimed to verify each of the identified predictors that influence sustainable software practice applications. Descriptive and inferential statistical results from the survey data show that each of the predictors is significant and do influence sustainable software development. The finding from this study provides insights to electronic industries in implementing sustainable software practice applications.


Author(s):  
Ambra Molesini ◽  
Enrico Denti ◽  
Andrea Omicini

Since most complex software systems are intrinsically multi-paradigm, their engineering is a challenging issue. Multi-paradigm modeling (MPM) aims at facing the challenge by providing concepts and tools promoting the integration of models, abstractions, technologies, and methods originating from diverse computational paradigms. In this chapter, the authors survey the main MPM approaches in the literature, evaluate their strengths and weaknesses, and compare them according to three main criteria—namely, (1) the software development process, (2) the adoption of meta-model techniques, (3) the availability of adequate supporting tools. Furthermore, the authors explore the adoption of other promising approaches for the engineering of multi-paradigm systems, such as multi-agent systems (MAS) and systems of systems (SoS), and discuss the role of situational process engineering (SPE) in the composition of multi-paradigm software processes.


Author(s):  
Fouad Abdulameer Salman ◽  
Aziz Bin Deraman ◽  
Masita Binti Abdul Jalil

As consumer demand for user friendly software increases, usability evaluation is crucial to develop software systems which are easy to learn and use. However, implementation of usability evaluation is challenging for small and medium-sized enterprises (SMEs) due to factors such as lack of technical expertise, knowledge and experience of methods and standards. This results in neglect, or poorly executed evaluations of projects, resulting in software that disappoints and frustrates clients. To overcome this loss of competitiveness, we propose here a visual incorporation tool derived from ISO standards that would assist software development teams in SMEs in understanding and implementing usability evaluations. It shows fundamental Usability Engineering (UE) and Software Engineering (SE) activities and artifacts relevant to the usability evaluation and software development process, with potential incorporation points being highlighted. Dependencies and relationships are shown by links between activities and artifacts. Additionally, convergent artifacts of both disciplines were identified and shown. Evaluation of the proposed tool was based on the questionnaire results of software development practitioners from SMEs.


Sign in / Sign up

Export Citation Format

Share Document