bluuebunny/crossref_metadata_2025_split huggingface dataset:
Design
Authors: Shumate Ken 
Published: February 2015

AbstractSoftware design is the devising and documenting of the overall architecture for a software system. Design consists of identifying the major components of the system, specifying what they are to accomplish, and establishing the interfaces among the components. Design is the first step of transforming the requirements (a statement ofwhatis to be done) into the functioning software (howthe requirements are accomplished). Design also includes lower level work such as detailed specification of data structures and algorithms within the identified components, but this article primarily deals with overall architecture.The general strategy for this overview of software design is to establish the framework for design in the context of overall system development, discuss how theprocessof development embodies and influences the design approach, address general approaches to design with some extra detail on the lesser known topic of concurrent and real‐time systems, and finally, emphasize the importance of requirements analysis and specification, and the transition to design. The “transition to design” is logically part of the topic “approaches to design” but is best deferred until after the discussion of requirements. Along the way some design methods that have become sufficiently well known that they have a name will be discussed. The specific topics areDesign and the overall system development process.Approaches to process.Approaches to design.Concurrent and real‐time systems.Requirements analysis.Requirements‐to‐design transition.Present and future.Software design is the devising and documenting of the overall architecture for a software system. Design consists of identifying the major components of the system, specifying what they are to accomplish, and establishing the interfaces among the components. Design is the first step of transforming the requirements (a statement ofwhatis to be done) into the functioning software (howthe requirements are accomplished). Design also includes lower level work such as detailed specification of data structures and algorithms within the identified components, but this article primarily deals with overall architecture.The general strategy for this overview of software design is to establish the framework for design in the context of overall system development, discuss how theprocessof development embodies and influences the design approach, address general approaches to design with some extra detail on the lesser known topic of concurrent and real‐time systems, and finally, emphasize the importance of requirements analysis and specification, and the transition to design. The “transition to design” is logically part of the topic “approaches to design” but is best deferred until after the discussion of requirements. Along the way some design methods that have become sufficiently well known that they have a name will be discussed. The specific topics areDesign and the overall system development process.Approaches to process.Approaches to design.Concurrent and real‐time systems.Requirements analysis.Requirements‐to‐design transition.Present and future.
Distributed Software Engineering
Authors: Buy Ugo , Shatz Sol 
Published: February 2015

AbstractDistributed software engineering is an area of software engineering that is concerned with the development and the maintenance of reliable software for distributed systems. These systems are characterized by the presence of units that can be executed in parallel with respect to each other. In addition, these units communicate with one another by passing messages over a communication network rather than by sharing structures stored in common areas of memory.
Empirical Research on Program Comprehension
Authors: Boehm‐Davis Deborah A. 
Published: February 2015

AbstractComputer programmers are required to perform a number of different software tasks. Fundamental to most of these is software comprehension–the ability to understand what a program does and how it does it. It has argued that the costs arising from the process of program comprehension represents the majority of maintenance costs, which themselves account for a large proportion of the costs involved in the total software life cycle. As a result, there has been a fair amount of research devoted to understanding the process of software comprehension and even more work examining the factors affecting performance on various software tasks.This article describes existing models of comprehension, a summary of measures that have been used to measure comprehension, and problems with these measures. The chapter also describes empirical research on factors influencing software comprehensibility.
European Software Institute
Authors: Bandinelli Sergio 
Published: February 2015

Abstract
Created in 1993, the European Software Institute (ESI) is a foundation launched by the initiative of the European Commission and with the support of leading European companies and the Basque government. The primary objective of ESI is to contribute to the development of the competitiveness of the European industry through the promotion, continuous improvement, and knowledge in information and communication technologies. To this end, ESI identifies, validates, packages, and disseminates good software development and management practices.
ESI is situated in the Technology Park of Zamudio, close to Bilbao in northern Spain.
ESI works close to the market to identify current needs and to anticipate future needs in the constantly changing sector of information and communication technologies. ESI develops innovative products and services that ease the transfer of technology and contribute to improve industry competitiveness. Product and service development puts the emphasis on the validation of the approaches by performing experimental trials that ensure its effectiveness. The result is a portfolio of packaged products and services.
Evaluation, Security
Authors: Alberts Christopher J. 
Published: February 2015

Abstract

Security evaluation
is a broad term that encompasses diverse subjects, from product and system certification to an organization's operational security risk (Summers, 1997). Four common types of security evaluations are 1. Security evaluations of products and systems against evaluation criteria (standards); 2. Information systems audits; 3. Vulnerability evaluations; 4. Information security risk evaluations, there four types are the subjects of this article.

Standards define criteria to help assure users and stakeholders that a product or system provides a defined level of security. Security evaluations against these criteria help ensure that products and systems meet their information technology security objectives and requirements.
The other three types of evaluation—information systems audits, vulnerability evaluations, and information security risk evaluations—take into account the operational environment of organizations that use information technology. These evaluations focus on how organizations use information technology products and systems in their day‐to‐day operations.
Information systems auditing is an independent appraisal of an organization's internal controls to assure management, regulatory authorities, and company shareholders that information is accurate and valid.
Vulnerability and risk evaluations are performed by information security specialists and are often driven by an organization's management as part of a security improvement initiative. A vulnerability evaluation examines organizational policies and procedures, administrative controls, internal controls, implementation of technology, and physical layout for weaknesses.
An information security risk evaluation also focuses on an organization's operational environment by examining organizational policies and practices as well as the installed technology base to identify risks to an organization's important information assets. As information security risk evaluation focuses on the following three items: an organization's important assets, the threats to the assets, and the vulnerabilities that expose the asset to the threats. Thus, a vulnerability evaluation is a subset of an information security risk evaluation.
Fault‐Tolerant Computing
Authors: Laprie Jean‐Claude , Arlat Jean , Beounes Christian , Kanoun Karama 
Published: February 2015

AbstractThere exist two largely differing approaches to software fault tolerance, depending on the forecasted aim, either preventing a task failure to lead to the system complete disruption, or ensuring service continuity. In the former case, an erroneous task will be detected as soon as possible, and will be halted in order to prevent error propagation; this approach is often termed asfail‐fast. The latter case necessitates the existence of at least another component able to fulfill the task, designed and implemented separately from the same specification; this approach thus requires the use ofdesign diversity. This article is devoted to software fault tolerance based on design diversity.This article, is composed of three sections. The first section is devoted to a unified presentation of the approaches for software fault tolerance; in addition to the recovery blocks andN‐version programming methods, a third type of approach is identified from the careful examination of current, real‐life systems:Nself‐checking programming. In the second section, the three approaches to software fault tolerance are analyzed with respect to two viewpoints: dependability and cost. The third section is devoted to the definition and analysis of a set of hardware‐and‐software fault‐tolerant architectures.
Software Engineering and Litigation
Authors: Cosgrove John 
Published: February 2015

Abstract
Litigation involving computers and software has exploded. For good or otherwise, the legal system has discovered the world of computers and its practitioners. On balance, the net effect of this attention may be positive in that it provides the practitioners with an economic incentive to improve performance. In other words, the lawyers may well be the ones who provide the incentives for realistic contractual commitments, worst‐case software engineering development practices, and a total organizational commitment to quality.

In the software engeneering profession,
forensic engineering
refers to professional services associated with the legal system. In practice, this has two meanings. The first is the engineering support provided to the legal system, usually as an expert witness or consultant in litigation. The second meaning is the concern that all software professionals should have for the forensic (i.e., litigation potential) implications of their work. The role of the software engineering forensics expert, the implications for developers, and a proposed means for survival in a litigation‐intensive computer world constitute the core issues. Since this is a new field, the use of disguised examples from actual cases is a primary basis for the explanations.

The pervasive nature of computers in every aspect of society has been noticed by the legal system. There has been a flood of litigation involving computers and software. In fact, software/computer forensic consulting has multiplied. Usually this involves disputes over computer projects and contracts but often requires an expert opinion in unlikely matters. Forensic clients have included a divorce dispute needing an economic evaluation of a software product, a wrongful termination involving computer system crashes, production of evidence of gambling during business hours, and academic dishonesty charges of plagiarism. Resolution of all of these disputes required computer expertise.
More important are the computer‐related issues that threaten the economics of organizations and the health and safety of people in their day‐to‐day lives. This has been the case for some time, but only since the late 1990s has the legal system identified the litigation potential of computers and software.
Typical issues in litigation are discussed, unacceptable performance or quality, disputes computer‐related human or economic losses, role of expect in litigation.
Formal Methods
Authors: Wing Jeannette M. 
Published: February 2015

AbstractFormal methods used in developing computer systems are mathematically based techniques for describing system properties. Such formal methods provide frameworks within which people can specify, develop, and verify systems in a systematic, rather thanad hocmanner.A method is formal if it has a sound mathematical basis, typically given by a formal specification language. This basis provides the means of precisely defining notions like consistency and completeness and, more relevantly, specification, implementation, and correctness. It provides the means of proving that a specification is realizable, proving that a system has been implemented correctly, and proving properties of a system without necessarily running it to determine its behavior.A formal method also addresses a number of pragmatic considerations: who uses it, what it is used for, when it is used, and how it is used. Most commonly, system designers use formal methods to specify a system's desired behavioral and structural properties.Formal methods are used to reveal ambiguity, incompleteness, and inconsistency in a system. When used early in the system development process, they can reveal design flaws that otherwise might be discovered only during costly testing and debugging phases. When used later, they can help determine the correctness of a system implementation and the equivalence of different implementations.For a method to be formal, it must have a well‐defined mathematical basis. It need not address any pragmatic considerations, but lacking such considerations would render it useless. Hence, a formal method should possess a set of guidelines, or astyle sheet, that tells the user the circumstances under which the method can and should be applied as well as how it can be applied most effectively.One tangible product of applying a formal method is a formal specification. A specification serves as a contract, a valuable piece of documentation, and a means of communication among a client, a specifier, and an implementer. Because of their mathematical basis, formal specifications are more precise and usually more concise than informal ones.Since a formal method is a method and not just a computer program or language, it may or may not have tool support. If the syntax of a formal method's specification language is made explicit, providing standard syntax analysis tools for formal specifications would be appropriate. If the language's semantics are sufficiently restricted, varying degrees of semantic analysis can be performed with machine aids as well. Thus, formal specifications have the additional advantage over informal ones of being amenable to machine analysis and manipulation.
Fraunhofer Institute for Experimental Software Engineering (
IESE
)
Authors: Rombach H. Dieter 
Published: February 2015

Abstract
The Fraunhofer‐Gesellschaft is the leading organization for applied research and technology transfer in Germany and Europe. Approximately 9,000 people are employed at 48 institutes throughout Germany, most of them scientists and engineers. International collaboration is promoted through Fraunhofer branches in the United States and Asia. The association's headquarters are in Munich, Germany. Fraunhofer institutes develop products and processes in eight focal research fields ranging from material sciences and production technology to information and communication technology and life sciences. Individual solutions are generated in close collaboration with industrial partners.
Visual Programming
Authors: Ferrucci Filomena , Tortora Genoveffa , Vitiello Giuliana 
Published: February 2015

AbstractThe widely recognized value of icons, diagrams, and other graphical notations in human–computer interaction and human–human (interhuman) communication, and the decreasing cost of hardware technologies and graphics software have caused the development of a novel approach termedvisual programmingorgraphical programming.Visual programming covers a wide variety of activities that make extensive use of icons and diagrams to convey information and to allow for multimodal communication and interaction between humans and computers. Indeed, in spite of the terminology adopted, “visual programming” does not denote merely the specification of visual programs but rather refers to the ability of using graphics as a communication means in any activity that involves human–computer interaction. Typical activities that benefit from the use of visual languages are generation of graphical user interfaces, database manipulation, supporting novice users in program comprehension, and program composition. Thus, a huge amount of visual programming languages have been introduced. Such languages allow a user to communicate with the system by spatially arranging visual objects on the screen, so as to compose a “visual sentence.”It is worth pointing out that despite their names, Visual Microsoft languages are not actually visual programming languages. Indeed, they are textual programming languages enhanced with a graphical user interface builder meant to support the programmer in the construction of the user interface portion of the program. These languages and there formal specifications are discussed. Also discussed is the implementation of systems that generate these measurements.
Groupware
Authors: Olson Gary M. , Olson Judith S. 
Published: February 2015

AbstractGroupware is software designed to run over a network in support of the activities of a group. These activities can occupy any of several combinations of same or different place and same or different time. Groupware has been designed for all of these combinations. Early groupware tended to focus on one of these cells, but more recently groupware has emerged that supports several cells and the transitions among them.The emergence of groupware is closely linked to two related developments: the growth of networked computing, both local‐area networks (LANs) and wide‐area networks (WANs), and the widespread adoption of personal computing. The earliest efforts to create groupware used time‐shared systems but were closely linked to the development of key ideas that propelled the personal computer revolution.There are many specific kinds of groupware and these are discussed. The list presented follows represents some of the more major types, but since this landscape is evolving this list should not be taken as a fixed inventory. groupware success factors are discussed.
Institute of Electrical and Electronics Engineers (
IEEE
)
Authors: Moore James W. 
Published: February 2015

Abstract

This article focuses on the development of software engineering standards in the Institute of Electrial and Electronics Engineers (IEEE). (Portions of this article are reprinted, with permission, from
Software Engineering Standards: A User's Road Map
, by James W. Moore, IEEE Computer Society Press, copyright 1997 IEEE). It briefly describes the overall IEEE, its Computer Society, and its Standards Association. It then goes on to describe the Software Engineering Standards Committee, where software engineering standards are developed.

The Institute of Electrical and Electronics Engineers (IEEE) is the world's largest technical professional society, with membership numbering more than 350,000 individuals in 150 countries. The organization claims to produce 30% of the world's published literature in electrical engineering, computing, and control technology. It conducts more than 300 major conferences per year and maintains more than 800 standards, with another 700 under development. The IEEE is organized into 36 Technical Societies. Software engineering is of interest to several societies, e.g., the Communications Society and the Power Engineering Society, but its primary focus is within the Computer Society.
Integration Testing
Authors: White Lee J. , Leung Hareton K. N. 
Published: February 2015

AbstractIn unit testing, the focus is placed on the performance of the individual module or procedure, looking for defects in that module. In function testing or system testing, the concern is with overall behavior and whether the software meets its functional specifications or performance characteristics or how well the software and hardware work together. This explains the importance and necessity of integration testing for which the emphasis is on interactions between modules and their interfaces. Test cases are specifically selected to test these interfaces rather than the functionality of the modules. A study has shown that approximately 40% of software errors can be traced to integration and interface problems, and these errors should be discovered early during integration testing to reduce the costs of correction. Most of these detected errors are the result of a misinterpretation of the module specifications.Integration testing is best done by the software developer, as he or she will know the module interfaces best to develop test cases. However, the developer may often be unconvinced of the necessity to do integration testing. The function tester is very motivated to do integration testing to systematically eliminate interface defects before moving on to function testing. This is why some organizations specify that testers should conduct integration testing. A few organizations have found benefit in building teams of developers and testers to perform integration testing.
International Standards Organizations
Authors: Moore James W. 
Published: February 2015

Abstract

International standards organizations are increasingly important because of the growth of global marketplaces. The two organizations most relevant to software engineering are the International Electrotechnical Commission (IEC) and the International Organization for Standardization (ISO). [The third international standards organizations, the International Telecommunications Union (ITU), deals exclusively with telecommunications. Unlike ISO and IEC, it is a
treaty
organization, hence representing governments rather than the private sector.] For purposes of standardizing
information technology
, they have formed Joint Technical Committee 1 (JTC1). Nevertheless, several disciplines related to information technology remain within one or the other of the two parent organizations.

ISO, IEC and JTC1 are discussed in this article with particular attention paid to their technical committees and subcommittees that are strongly related to software engineering.