Hasil untuk "cs.SE"

Menampilkan 20 dari ~272313 hasil · dari DOAJ, arXiv, CrossRef

JSON API
arXiv Open Access 2017
Unhappy Developers: Bad for Themselves, Bad for Process, and Bad for Software Product

Daniel Graziotin, Fabian Fagerholm, Xiaofeng Wang et al.

Recent research in software engineering supports the "happy-productive" thesis, and the desire of flourishing happiness among programmers is often expressed by industry practitioners. Recent literature has suggested that a cost-effective way to foster happiness and productivity among workers could be to limit unhappiness of developers due to its negative impact. However, possible negative effects of unhappiness are still largely unknown in the software development context. In this paper, we present the first results from a study exploring the consequences of the unhappy developers. Using qualitative data analysis of the survey responses given by 181 participants, we identified 49 potential consequences of unhappiness while developing software. These results have several implications. While raising the awareness of the role of moods, emotions and feelings in software development, we foresee that our classification scheme will spawn new happiness studies linking causes and effects, and it can act as a guideline for developers and managers to foster happiness at work.

en cs.SE, cs.CY
CrossRef Open Access 1980
Darstellung und Kristallstruktur der Dialkalimetalltrichalkogenide Rb<sub>2</sub>S<sub>3</sub>, Rb<sub>2</sub>Se<sub>3</sub>, Cs<sub>2</sub>S<sub>3</sub> und Cs<sub>2</sub>Se<sub>3</sub>

P. Böttcher

AbstractMan erhält die Substanzen in kristallinerform durch Umsetzung der reinen Alkalimetalle mit den Chalkogenen in flüssigem Ammoniak im Molverhältnis 2:3 bei Drucken bis zu 3000 bar und Temperaturen um 600 K. Sie kristallisieren alle im K2S3‐Typ (Raumgruppe Cmc21 (Nr. 36)). Ihre Gitterkonstanten lauten: Das charakteristische Merkmal der Struktur sind die gewinkelten Chalkogenid‐Polyanionen X32−. Die neu beschriebenen Verbindungen werden mit den anderen bis jetzt bekannten Dialkalimetall‐trichalkogeniden verglichen.

CrossRef Open Access 1989
Notizen: Darstellung und Kristallstruktur von Cs<sub>4</sub>Sn<sub>2</sub>Se<sub>6</sub> / Preparation and Crystal Structure of Cs<sub>4</sub>Sn<sub>2</sub>Se<sub>6</sub>

W. S. Sheldrick, H. G. Braunbeck

The selenostannate(IV) Cs4Sn2Se6 has been prepared by methanolothermal reaction of Cs2CO3 with SnSe2 at 160°C and 13 bar. The [Sn2Se6]4— anions contain two edge-bridged SnSe4 tetrahedra and display crystallographic C2h symmetry. The bridging Sn—Se distances of 2.587(1) are markedly longer than the terminal Sn—Se distances of 2.447(1) and 2.452(2) Å.

CrossRef Open Access 1983
Cs<sub>6</sub>Ga<sub>2</sub>Se<sub>6</sub>, ein ternäres Selenogallat(III) mit isolierten [Ga<sub>2</sub>Se<sub>6</sub>]<sup>6-</sup>-Ionen/Cs<sub>6</sub>Ga<sub>2</sub>Se<sub>6</sub>, a Ternary Selenogallate(III) with Isolated [Ga<sub>2</sub>Se<sub>6</sub>]<sup>6-</sup> Ions

Hans-Jörg Deiseroth, Han Fu-Son

Abstract Cs6Ga2Se6 can be prepared from mixtures of Cs2Se and Ga2Se3. The transparent single crystals of the moisture sensitive compound (m.p. 685 °C) crystallize in the monoclinic system with a = 848.0(5), b = 1364.4(5), c = 1111.5(5) pm, β = 126.22(5)° (T = -150 °C, Z = 2, space group P21/c). The gallium atoms pairwisely occupy selected tetrahedral holes between layers formed by the cesium and selenium ions. This structural principle leads to the formation of double tetrahedral isolated [Ga2Se6] 6- ions.

CrossRef Open Access 1974
Zur Struktur der Selenide Cs<sub>2</sub>Pd<sub>3</sub>Se<sub>4</sub>, Rb<sub>2</sub>Pd<sub>3</sub>Se<sub>4</sub> und K<sub>2</sub>Pd<sub>3</sub>Se<sub>4</sub> / On the Crystal Structure of Cs<sub>2</sub>Pd<sub>3</sub>Se<sub>4</sub>, Rb<sub>2</sub>Pd<sub>3</sub>Se<sub>4</sub>, and K<sub>2</sub>Pd<sub>3</sub>Se<sub>4</sub>

Jürgen Huster, Welf Bronger

The ternary selenides Cs2Pd3Se4, Rb2Pd3Se4 and K2Pd3Se4 have been prepared by fusion reactions of alkali carbonates with palladium and selenium at 850°C. According to X-ray powder patterns (Guinier-Simon technique) Cs2Pd3Se4 is monoclinic with α= 6,493 Å, b =14,204Å, c = 6,414Å, β=120,41° and is isotypic with Cs2Pd3S4 (C 2/m, No. 12). Rb2Pd3Se4 and K2Pd3Se4 are orthorhombic and isotypic with K2Pd3S4 (Fddd, No. 70). Rb2Pd3Se4: α=11,076 Å, b = 27,092 Å, c= 6,353 Å; K2Pd3Se4: a= 10,954 Å, b = 26,196 A, c = 6,317 Å.

CrossRef Open Access 1998
Synthesis and Thermoelectric Properties of Cs<sub>2</sub>Bi<sub>7.33</sub>Se<sub>12</sub>, A<sub>2</sub>Bi<sub>8</sub>Se<sub>13</sub> (A = Rb, Cs), Ba<sub>4-x</sub>Bi<sub>6+2/3x</sub>Se<sub>13</sub>, and Ba<sub>3±x</sub>Pb<sub>3±x</sub>Bi<sub>6</sub>Se<sub>15</sub>

Lykourgos Iordanidis, Paul W. Brazis, Carl R. Kannewurf et al.

AbstractWe are continuing our synthetic investigations in the ternary A/Bi/Se systems and also expanded our interests into the quaternary A/M/Bi/Se (A = Rb, Cs, Sr and Ba; M = lanthanide or Pb) systems. We have synthesized several new ternary and quaternary bismuth selenides with band gaps <0.6eV such as Cs2Bi7.33Se12, A2Bi8Se13 (A = Rb, Cs), Ba4-xBi6+2/3xSe13, and Ba3±xPb3±xBi6Se15. The synthesis, crystal structures and charge transports properties of these new compounds are presented.

arXiv Open Access 2003
Automated Fault Localization Using Potential Invariants

Brock Pytlik, Manos Renieris, Shriram Krishnamurthi et al.

We present a general method for fault localization based on abstracting over program traces, and a tool that implements the method using Ernst's notion of potential invariants. Our experiments so far have been unsatisfactory, suggesting that further research is needed before invariants can be used to locate faults.

en cs.SE
arXiv Open Access 2000
Collecting Graphical Abstract Views of Mercury Program Executions

Erwan Jahier

A program execution monitor is a program that collects and abstracts information about program executions. The "collect" operator is a high level, general purpose primitive which lets users implement their own monitors. "Collect" is built on top of the Mercury trace. In previous work, we have demonstrated how this operator can be used to efficiently collect various kinds of statistics about Mercury program executions. In this article we further demonstrate the expressive power and effectiveness of "collect" by providing more monitor examples. In particular, we show how to implement monitors that generate graphical abstractions of program executions such as proof trees, control flow graphs and dynamic call graphs. We show how those abstractions can be easily modified and adapted, since those monitors only require several dozens of lines of code. Those abstractions are intended to serve as front-ends of software visualization tools. Although "collect" is currently implemented on top of the Mercury trace, none of its underlying concepts depend of Mercury and it can be implemented on top of any tracer for any programming language.

en cs.SE, cs.PL
arXiv Open Access 2000
Automatic Debugging Support for UML Designs

Johann Schumann

Design of large software systems requires rigorous application of software engineering methods covering all phases of the software process. Debugging during the early design phases is extremely important, because late bug-fixes are expensive. In this paper, we describe an approach which facilitates debugging of UML requirements and designs. The Unified Modeling Language (UML) is a set of notations for object-orient design of a software system. We have developed an algorithm which translates requirement specifications in the form of annotated sequence diagrams into structured statecharts. This algorithm detects conflicts between sequence diagrams and inconsistencies in the domain knowledge. After synthesizing statecharts from sequence diagrams, these statecharts usually are subject to manual modification and refinement. By using the ``backward'' direction of our synthesis algorithm, we are able to map modifications made to the statechart back into the requirements (sequence diagrams) and check for conflicts there. Fed back to the user conflicts detected by our algorithm are the basis for deductive-based debugging of requirements and domain theory in very early development stages. Our approach allows to generate explanations on why there is a conflict and which parts of the specifications are affected.

en cs.SE, cs.PL
arXiv Open Access 2003
Towards declarative diagnosis of constraint programs over finite domains

Gerard Ferrand, Willy Lesaint, Alexandre Tessier

The paper proposes a theoretical approach of the debugging of constraint programs based on a notion of explanation tree. The proposed approach is an attempt to adapt algorithmic debugging to constraint programming. In this theoretical framework for domain reduction, explanations are proof trees explaining value removals. These proof trees are defined by inductive definitions which express the removals of values as consequences of other value removals. Explanations may be considered as the essence of constraint programming. They are a declarative view of the computation trace. The diagnosis consists in locating an error in an explanation rooted by a symptom.

en cs.SE
arXiv Open Access 2003
Availability Guarantee for Deterministic Replay Starting Points in Real-Time Systems

Joel Huselius, Henrik Thane, Daniel Sundmark

Cyclic debugging requires repeatable executions. As non-deterministic or real-time systems typically do not have the potential to provide this, special methods are required. One such method is replay, a process that requires monitoring of a running system and logging of the data produced by that monitoring. We shall discuss the process of preparing the replay, a part of the process that has not been very well described before.

en cs.SE
arXiv Open Access 2003
Model-Based Debugging using Multiple Abstract Models

Wolfgang Mayer, Markus Stumptner

This paper introduces an automatic debugging framework that relies on model-based reasoning techniques to locate faults in programs. In particular, model-based diagnosis, together with an abstract interpretation based conflict detection mechanism is used to derive diagnoses, which correspond to possible faults in programs. Design information and partial specifications are applied to guide a model revision process, which allows for automatic detection and correction of structural faults.

en cs.SE, cs.AI
arXiv Open Access 2001
Automated Debugging In Java Using OCL And JDI

David J. Murray, Dale E. Parson

Correctness constraints provide a foundation for automated debugging within object-oriented systems. This paper discusses a new approach to incorporating correctness constraints into Java development environments. Our approach uses the Object Constraint Language ("OCL") as a specification language and the Java Debug Interface ("JDI") as a verification API. OCL provides a standard language for expressing object-oriented constraints that can integrate with Unified Modeling Language ("UML") software models. JDI provides a standard Java API capable of supporting type-safe and side effect free runtime constraint evaluation. The resulting correctness constraint mechanism: (1) entails no programming language modifications; (2) requires neither access nor changes to existing source code; and (3) works with standard off-the-shelf Java virtual machines ("VMs"). A prototype correctness constraint auditor is presented to demonstrate the utility of this mechanism for purposes of automated debugging.

en cs.SE, cs.PL
arXiv Open Access 2001
Generation of and Debugging with Logical Pre and Postconditions

Angel Herrranz-Nieva Juan Jose Moreno Navarro

This paper shows the debugging facilities provided by the SLAM system. The SLAM system includes i) a specification language that integrates algebraic specifications and model-based specifications using the object oriented model. Class operations are defined by using rules each of them with logical pre and postconditions but with a functional flavour. ii) A development environment that, among other features, is able to generate readable code in a high level object oriented language. iii) The generated code includes (part of) the pre and postconditions as assertions, that can be automatically checked in the debug mode execution of programs. We focus on this last aspect. The SLAM language is expressive enough to describe many useful properties and these properties are translated into a Prolog program that is linked (via an adequate interface) with the user program. The debugging execution of the program interacts with the Prolog engine which is responsible for checking properties.

en cs.PL, cs.SE
arXiv Open Access 2003
Instrumenting self-modifying code

J. Maebe, K. De Bosschere

Adding small code snippets at key points to existing code fragments is called instrumentation. It is an established technique to debug certain otherwise hard to solve faults, such as memory management issues and data races. Dynamic instrumentation can already be used to analyse code which is loaded or even generated at run time.With the advent of environments such as the Java Virtual Machine with optimizing Just-In-Time compilers, a new obstacle arises: self-modifying code. In order to instrument this kind of code correctly, one must be able to detect modifications and adapt the instrumentation code accordingly, preferably without incurring a high penalty speedwise. In this paper we propose an innovative technique that uses the hardware page protection mechanism of modern processors to detect such modifications. We also show how an instrumentor can adapt the instrumented version depending on the kind of modificiations as well as an experimental evaluation of said techniques.

en cs.SE
arXiv Open Access 2003
Timestamp Based Execution Control for C and Java Programs

Kazutaka Maruyama, Minoru Terada

Many programmers have had to deal with an overwritten variable resulting for example from an aliasing problem. The culprit is obviously the last write-access to that memory location before the manifestation of the bug. The usual technique for removing such bugs starts with the debugger by (1) finding the last write and (2) moving the control point of execution back to that time by re-executing the program from the beginning. We wish to automate this. Step (2) is easy if we can somehow mark the last write found in step (1) and control the execution-point to move it back to this time. In this paper we propose a new concept, position, that is, a point in the program execution trace, as needed for step (2) above. The position enables debuggers to automate the control of program execution to support common debugging activities. We have implemented position in C by modifying GCC and in Java with a bytecode transformer. Measurements show that position can be provided with an acceptable amount of overhead.

en cs.SE
arXiv Open Access 2003
Debugging Backwards in Time

Bil Lewis

By recording every state change in the run of a program, it is possible to present the programmer every bit of information that might be desired. Essentially, it becomes possible to debug the program by going ``backwards in time,'' vastly simplifying the process of debugging. An implementation of this idea, the ``Omniscient Debugger,'' is used to demonstrate its viability and has been used successfully on a number of large programs. Integration with an event analysis engine for searching and control is presented. Several small-scale user studies provide encouraging results. Finally performance issues and implementation are discussed along with possible optimizations. This paper makes three contributions of interest: the concept and technique of ``going backwards in time,'' the GUI which presents a global view of the program state and has a formal notion of ``navigation through time,'' and the integration with an event analyzer.

en cs.SE
arXiv Open Access 2003
Generalized Systematic Debugging for Attribute Grammars

Akira Sasaki, Masataka Sassa

Attribute grammars (AGs) are known to be a useful formalism for semantic analysis and translation. However, debugging AGs is complex owing to inherent difficulties of AGs, such as recursive grammar structure and attribute dependency. In this paper, a new systematic method of debugging AGs is proposed. Our approach is, in principle, based on previously proposed algorithmic debugging of AGs, but is more general. This easily enables integration of various query-based systematic debugging methods, including the slice-based method. The proposed method has been implemented in Aki, a debugger for AG description. We evaluated our new approach experimentally using Aki, which demonstrates the usability of our debugging method.

en cs.SE
arXiv Open Access 2003
Event-based Program Analysis with DeWiz

Ch. Schaubschlaeger, D. Kranzlmueller, J. Volkert

Due to the increased complexity of parallel and distributed programs, debugging of them is considered to be the most difficult and time consuming part of the software lifecycle. Tool support is hence a crucial necessity to hide complexity from the user. However, most existing tools seem inadequate as soon as the program under consideration exploits more than a few processors over a long execution time. This problem is addressed by the novel debugging tool DeWiz (Debugging Wizard), whose focus lies on scalability. DeWiz has a modular, scalable architecture, and uses the event graph model as a representation of the investigated program. DeWiz provides a set of modules, which can be combined to generate, analyze, and visualize event graph data. Within this processing pipeline the toolset tries to extract useful information, which is presented to the user at an arbitrary level of abstraction. Additionally, DeWiz is a framework, which can be used to easily implement arbitrary user-defined modules.

en cs.SE
arXiv Open Access 2003
Debugging Tool for Localizing Faulty Processes in Message Passing Programs

Masao Okita, Fumihiko Ino, Kenichi Hagihara

In message passing programs, once a process terminates with an unexpected error, the terminated process can propagate the error to the rest of processes through communication dependencies, resulting in a program failure. Therefore, to locate faults, developers must identify the group of processes involved in the original error and faulty processes that activate faults. This paper presents a novel debugging tool, named MPI-PreDebugger (MPI-PD), for localizing faulty processes in message passing programs. MPI-PD automatically distinguishes the original and the propagated errors by checking communication errors during program execution. If MPI-PD observes any communication errors, it backtraces communication dependencies and points out potential faulty processes in a timeline view. We also introduce three case studies, in which MPI-PD has been shown to play the key role in their debugging. From these studies, we believe that MPI-PD helps developers to locate faults and allows them to concentrate in correcting their programs.

en cs.SE

Halaman 2 dari 13616