This paper proposes a method to select the software architecture for a family of systems that meets user requirements. The method is based on a set of universally accepted design principles and tactics that aims to establish a systematic correlation between the quality requirements of a system and an architectural style that best implements it. The proposed method can also be a valuable assistant to a novice software engineer in selecting an optimal architectural style because the selection of an appropriate architectural style plays an important role in success or failure of a system. IntroductionSoftware architecture is the very first step in the software lifecycle in which the nonfunctional requirements (NFR) are addressed [7,8]. The nonfunctional requirements (e.g., security) are the ones that are blamed for a system re-engineering, and they are orthogonal to system functionality [7]. Therefore, software architecture must be confined to a particular structure that best meets the quality of interest because the structure of a system plays a critical role in the process (i.e., strategies) and the product (i.e., notations) used to describe and provide the final solution.In this paper, we propose a quality driven approach to software architecture that attempts to bridge the chasm between the problem domain, namely requirement speculations, and the first phase in the solution domain, namely software architecture. The proposed method is a systematic approach based on the fact that the functionality of any software system can be met by all kinds of structures but the structure that also supports and embodies non-functional requirements (i.e., quality) is the one that best meets user needs. To this end, we have developed a method based on non-functional requirements of a system; the method employs computational model, communicational model, and coordination model in order to identify the corresponding set of nonfunctional requirements (NFRs) associated to that model. We then use NFRs to select the software architecture for a family of systems. The identification of the computational (i.e., the nature of computation activities), communicational (i.e., the nature of interactions), and the coordination models (i.e., the nature of binding by separate components are put together to become one). As result, the identifications of computation, communication, and coordination models should minimize the original set of requirements to what is known as a set of architecturally significant requirements or nonfunctional requirements (NFRs) of systems.Examples of computational model based on sequential behavior (or concurrent) include state-based, event-based, object-based, data-based, or feedback-based models. Examples of communication model include message passing, such as query-based, event-based, shared memory, and data stream. Examples of coordination models include blocking (or synchronized) and non-blocking (or asynchronized).To identify the models of a system (i.e., computation, communication, and coordination), we can app...
The ability to accurately estimate the cost needed to complete a specific project has been a challenge over the past decades. For a successful software project, accurate prediction of the cost, time and effort is a very much essential task. This paper presents a systematic review of different models used for software cost estimation which includes algorithmic methods, non-algorithmic methods and learning-oriented methods. The models considered in this review include both the traditional and the recent approaches for software cost estimation. The main objective of this paper is to provide an overview of software cost estimation models and summarize their strengths, weakness, accuracy, amount of data needed, and validation techniques used. Our findings show, in general, neural network based models outperforms other cost estimation techniques. However, no one technique fits every problem and we recommend practitioners to search for the model that best fit their needs.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.
customersupport@researchsolutions.com
10624 S. Eastern Ave., Ste. A-614
Henderson, NV 89052, USA
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.
Copyright © 2024 scite LLC. All rights reserved.
Made with 💙 for researchers
Part of the Research Solutions Family.