Results 1 - 10
of
13
Building Knowledge through Families of Experiments
- IEEE TRANSACTIONS ON SOFTWARE ENGINEERING
, 1999
"... ... This paper discusses the experience of the authors, based upon a collection of experiments, in terms of a framework for organizing sets of related studies. With such a framework, experiments can be viewed as part of common families of studies, rather than being isolated events. Common families ..."
Abstract
-
Cited by 148 (15 self)
- Add to MetaCart
... This paper discusses the experience of the authors, based upon a collection of experiments, in terms of a framework for organizing sets of related studies. With such a framework, experiments can be viewed as part of common families of studies, rather than being isolated events. Common families of studies can contribute to important and relevant hypotheses that may not be suggested by individual experiments. A framework also facilitates building knowledge in an incremental manner through the replication of experiments within families of studies. To support the framework, this paper discusses the experiences of the authors in carrying out empirical studies, with specific emphasis on persistent problems encountered in experimental design, threats to validity, criteria for evaluation, and execution of experiments in the domain of software engineering.
Process Agility and Software Usability: Toward Lightweight Usage-Centered Design
, 2001
"... A streamlined and simplified variant of the usage-centered process that is readily integrated with lightweight methods is outlined. Extreme programming and other so-called agile or lightweight methods promise to speed and simplify applications development. However, as this paper highlights, they sha ..."
Abstract
-
Cited by 21 (0 self)
- Add to MetaCart
A streamlined and simplified variant of the usage-centered process that is readily integrated with lightweight methods is outlined. Extreme programming and other so-called agile or lightweight methods promise to speed and simplify applications development. However, as this paper highlights, they share with the "unified process" and other heavyweight brethren some common shortcomings in the areas of usability and user interface design. Usage-centered design is readily integrated with these lightweight methods. As in extreme programming , ordinary index cards help streamline the process of modeling and prioritizing for design and implementation in successive increments. Links to selected Web resources on extreme programming, agile modeling, and other agile processes are also provided.
Intentional Programming - Innovation in the Legacy Age
, 1996
"... Syntax Tree (AST), where the DCLs correspond to the productions of the syntax of some programming language. This would be misleading, however, because there is no syntax and there are no productions. The DCL corresponds only to what the programmer had I am indebted to Dr. Hendrik Boom for the term ..."
Abstract
-
Cited by 14 (0 self)
- Add to MetaCart
Syntax Tree (AST), where the DCLs correspond to the productions of the syntax of some programming language. This would be misleading, however, because there is no syntax and there are no productions. The DCL corresponds only to what the programmer had I am indebted to Dr. Hendrik Boom for the term. in mind, it corresponds to an intention. But to understand precisely the distinction, we have to take a few more steps to complete the definition. To make an intention actionable, we associate with the DCL a method which describes the semantics of the intention by specifying the process of transforming the subtree headed by the intention instance into a tree containing only primitive executable nodes with fixed semantics. Now to obtain a runnable program, we need only traverse the intentional tree and apply the transformations indicated by the DCLs pointed to by the nodes, in a process we term "reduction". To distinguish the transforming method from traditional object oriented methods which are to be invoked in run time, the term "extension method" or xmethod will be used. The tree containing only primitive executable nodes will be called "reduced tree" which is written in a fixed language called "R-code". The transformations can be whimsically called "reduction enzymes". The reduced tree is really an intermediate language for interfacing with a machine-specific code generator. The reason that we use trees for this purpose is purely an engineering decision: since reduction enzymes must already operate on trees which are their inputs, it is only natural that their outputs be in the same form also. To be sure, the reduction need not take place in a single step, so the above description is somewhat simplified. A node may be transformed several times until the subtree is comple...
Perspectives on Software Engineering
- ACM Computing
, 1978
"... Software engineering refers to the process of creating software systems. It applies loosely to techniques which reduce high software cost and complexity while increasing reliability and mochfiability. This paper outlines the procedures used in the development of computer software, emphasizing large- ..."
Abstract
-
Cited by 8 (0 self)
- Add to MetaCart
Software engineering refers to the process of creating software systems. It applies loosely to techniques which reduce high software cost and complexity while increasing reliability and mochfiability. This paper outlines the procedures used in the development of computer software, emphasizing large-scale software development, and pmpomtmg areas
Towards the Generation of Efficient Code from Verified Programs
, 1984
"... An investigation was made of the characteristics of computer programming languages intended for the implementation of provably correct programs and of the characteristics of programs written in these languages. It was discovered that potential run time exceptions and the necessity of providing a rig ..."
Abstract
-
Cited by 6 (1 self)
- Add to MetaCart
An investigation was made of the characteristics of computer programming languages intended for the implementation of provably correct programs and of the characteristics of programs written in these languages. It was discovered that potential run time exceptions and the necessity of providing a rigorously correct implementation of exception handlers so dominate the potential control paths of programs written in verifiable languages that the usual code optimization techniques are ineffective. It was further discovered that the call intensive control structures of these programs, necessitated by verification constraints, also thwart optimization and lead to inefficient code. It is shown that theorems can be derived at potential exception sites which, if true, guarantee that the exception condition will never arise permitting removal of the exception path from the program’s flow graph. These theorems are proved using the automatic theorem prover which is part of the program verification system. Is is also shown that many of the routine calls contained in verifiable programs may be reduced in expense by converting parameters to global variables or eliminated completely by expanding the called routines at their call sites. Both the exception suppression and call reduction techniques reduce the complexity of the program’s call graph and facilitate conventional optimizations. Several examples are presented and the potential improvements in code size resulting from the application of these techniques are discussed.
Academic Legitimacy of the Software Engineering Discipline
, 1992
"... Abstract: This article examines the academic substance of software engineering. It identifies the basic research questions and the methods used to solve them. What is learned during this research constitutes the body of knowledge of software engineering. The article then discusses at length what abo ..."
Abstract
-
Cited by 5 (0 self)
- Add to MetaCart
Abstract: This article examines the academic substance of software engineering. It identifies the basic research questions and the methods used to solve them. What is learned during this research constitutes the body of knowledge of software engineering. The article then discusses at length what about software makes its production so difficult and makes software engineering so challenging an intellectual discipline. 1
Evolution of Open Source Software Systems – A Large-Scale Investigation
- International Conference on Open Source Systems
, 2005
"... Abstract – In this paper, the evolution of a large sample of open source software projects will be analysed. The evolution of commercial systems has been an issue that has long been a center of research, thus a coherent theoretical framework of software evolution has been developed and empirically t ..."
Abstract
-
Cited by 4 (0 self)
- Add to MetaCart
Abstract – In this paper, the evolution of a large sample of open source software projects will be analysed. The evolution of commercial systems has been an issue that has long been a center of research, thus a coherent theoretical framework of software evolution has been developed and empirically tested. Therefore these results can be used to compare the situation in open source projects to the evolution of commercial projects. This allows to assess whether the underlying software process indeed significantly differs. The data collection methodology relying on a large software repository and the respective source code control systems is described, and an overview on the collected data on several thousand projects is given. The evolutionary behaviour is explored using both a linear and a quadratic model, with the quadratic model significantly outperforming the linear one. The most interesting fact is that while in the mean the growth rate is decreasing over time according to the laws of software evolution, especially larger projects with a higher number of participants might be more often able to sustain super-linear growth. I.
AND
"... Software quahty is achieved through the apphcatlon of development techniques and the use of verification procedures throughout the development process Careful consideratmn of specific quality attmbutes and validation reqmrements leads to the selection of a balanced collection of review, analysis, an ..."
Abstract
- Add to MetaCart
Software quahty is achieved through the apphcatlon of development techniques and the use of verification procedures throughout the development process Careful consideratmn of specific quality attmbutes and validation reqmrements leads to the selection of a balanced collection of review, analysis, and testing techmques for use throughout the life cycle. This paper surveys current verification, validation, and testing approaches and discusses their strengths, weaknesses, and life-cycle usage. In conjunction with these, the paper describes automated tools used to nnplement vahdation, verification, and testmg. In the discussion of new research thrusts, emphasis is gwen to the continued need to develop a stronger theoretical basis for testing and the need to employ combinations of tools and techniques that may vary over each apphcation. Categories and Subject Descriptors: D 2 1 [Software Engineering]: Requirements/ Specifications--methodologws, tools; D 2 2 [Software Engineering]: Tools and Techniques--dec~smn tables; modules and interfaces, structured programming; top-down programmtng; user ~nterfaces; D.2.3 [Software Engineering]: Coding--standards; D.2.4 [Software Engineering]. Program Verification--assertion checkers, correctness proofs; rehabd~ty, validation; D.2.5 [Software Engineering] Testmg and Debugging--debugging a~ds; monitors; symbohc executmn; test data generators; D.2.6
If the Error Cannot Be Located Exactly in 1) Then
, 75
"... this paper to present an organizational framework for the programming task which can be taught to the introductory student and utilized by him at the elementary and advanced levels of programming. Such a framework is embodied in the proposed method for designing programs. The introduction of the ..."
Abstract
- Add to MetaCart
this paper to present an organizational framework for the programming task which can be taught to the introductory student and utilized by him at the elementary and advanced levels of programming. Such a framework is embodied in the proposed method for designing programs. The introduction of the method at the introductory level of a computer science curriculum has positive implications for the student; these were discussed previously. Besides affecting the student, the method for designing programs can have a positive affect on the remainder of the curriculum. A brief summary of the advantages for the student is given below This summary is followed by a more detailed discussion of how the proposed method can be used in the more advanced courses in the curriculum
Agile Project Management Methods for ERP: How to Apply Agile Processes to Complex COTS Projects and Live to Tell About It
, 2002
"... The selection, procurement, and deployment of an Enterprise Resource Planning (ERP) system is fraught with risk in exchange for significant business and financial rewards [26]. In many cases the packaged ERP product does not provide the entire solution for the business process. These gaps can be ..."
Abstract
- Add to MetaCart
The selection, procurement, and deployment of an Enterprise Resource Planning (ERP) system is fraught with risk in exchange for significant business and financial rewards [26]. In many cases the packaged ERP product does not provide the entire solution for the business process. These gaps can be closed with third party products or by customizing existing products. Management of this customization, as well as the selection of the core ERP system has traditionally been addressed through high--ceremony, science--based, project management methods [13]. Well--publicized failures using this approach creates the need for new methods for managing ERP projects [11]. This compendium paper describes an alternative to the traditional high--ceremony IT projects management methods. Although many of the methods described are not new assembling them into a single location and focusing on a single issue provides the tools to make decisions in the presence of uncertainty, focus on the critical success factors, and address the managerial and human side of project management Agility allows the project management methods as well as the system to be adaptively tailored to the business needs.

