The purpose of this paper is to build the foundation for software architecture. We first develop an intuition for software architecture by appealing to several wellestablished architectural disciplines. On the basis of this intuition, we present a model of software architecture that consists of three components: elements, form, and rationale. Elements are either processing, data, or connecting elements. Form is defined in terms of the properties of, and the relationships among, the elements --that is, the constraints on the elements. The rationale provides the underlying basis for the architecture in terms of the system constraints, which most often derive from the system :requirements. We discuss the components of the model in the context of both architectures and architectural styles and present an extended example to illustrate some important architecture and style considerations. We conclude by presenting some of the benefits of our approach to software architecture, summarizing our contributions, and relating our approach to other current work.
Abstract-Locating bugs is important, difficult, and expensive, particularly for large-scale systems. To address this, natural language information retrieval techniques are increasingly being used to suggest potential faulty source files given bug reports. While these techniques are very scalable, in practice their effectiveness remains low in accurately localizing bugs to a small number of files. Our key insight is that structured information retrieval based on code constructs, such as class and method names, enables more accurate bug localization. We present BLUiR, which embodies this insight, requires only the source code and bug reports, and takes advantage of bug similarity data if available. We build BLUiR on a proven, open source IR toolkit that anyone can use. Our work provides a thorough grounding of IR-based bug localization research in fundamental IR theoretical and empirical knowledge and practice. We evaluate BLUiR on four open source projects with approximately 3,400 bugs. Results show that BLUiR matches or outperforms a current state-of-theart tool across applications considered, even when BLUiR does not use bug similarity data used by the other tool.
Empirical study play a fundamental role in modern science, helping us understand how and why things work, and allowing us to use this understanding to materially alter our world. Defining and executing studies that change how software development is done is the greatest challenge facing empirical researchers. The key to meeting this challenge lies in understanding what empirical studies really are and how they can be most effectively used -not in new techniques or more intricate statistics. If we want empirical studies to improve software engineering research and practice, then we need to create better studies and we need to draw more credible conclusions from them. Concrete steps we can take today include: designing better studies, collecting data more effectively, and involving others in our empirical enterprises. The AuthorsProfessor Dewayne E. Perry is currently the Motorola Regents Chair of Software Engineering at The University of Texas at Austin. The first half of his computing career was spent as a professional programmer, with the latter part combining both research (as a visiting faculty member in Computer Science at Carnegie-Mellon University) and consulting in software architecture and design. The last 16 years were spent doing software engineering research at Bell Laboratories in Murray Hill NJ. His appointment at UT Austin began January 2000. His research interests (in the context software system evolution) empirical studies, formal models of the software processes, process and product support environments, software architecture, and the practical use of formal specifications and techniques. He is particularly interested in the role architecture plays in the coordination of multi-site software development as well as its role in capitalizing on company software assets in the context of product lines. His educational interests at UT include building a great software engineering program both at the graduate and undergraduate levels, creating a software engineering research center, and focusing on the empirical aspects of software engineering to create a mature and rigorous empirical software engineering discipline. He is a Co-Editor in Chief of Wiley's Software Process: Improvement & Practice; an former associate editor of IEEE Transactions on Software Engineering; a member of ACM SIGSOFT and IEEE Computer Society; and has served as organizing chair, program chair and program committee member on various software engineering conferences. From 1979 through 1998, he was both a member of technical staff and a manager at Bell Labs, Lucent Technology Inc., working and managing development groups in switching and computer products. He was a founding member of the Software Production Research Department at Naperville, Illinois where he pursued research interest ~to understand how to measure, model, and do credible empirical studies with large and complex software developments. In 1999, he retired from Bell Labs, started his own consulting company (Brincos, Inc.), and joined Motorola, Inc. to build high availa...
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.