bluuebunny/crossref_metadata_2025_split huggingface dataset:
Testing of Graphical User Interfaces
Authors: White Lee 
Published: February 2015

AbstractGraphical user interfaces (GUIs) have become pervasive in software design, and constitute an accepted method for interacting with software and other products. Although they have become increasingly easy to design using contemporary tool sets, and they make software easy to use for all types of users, there are some fundamental problems in testing GUI systems.Testing GUI systems is difficult, in that a GUI may posses a large number of states to be tested, the input space is extremely large because of the different permutations of user inputs and events, and complex GUI dependencies may exist. However, probably the greatest difficulty is detecting an effect when an error occurs, because it may not be observable on the screen to the tester, or otherwise not observable at the time to the tester (unless a traumatic event, such as a “crash” occurs).The growth of the number of possible GUI tests is documented by, which illustrates why a GUI testing strategy must be systematic andscalable.Byscalable,we mean that as the size of the GUI system increases, the number of tests required by the strategy increases either linearly or at most quadratically with the size of the GUI system. Two measures of GUI system size are the number of GUI objects and the total number of selections to be chosen by the user taken over all GUI objects. To give an idea of the potential growth of possible tests, if we need to test for arbitrary interactions of GUI objects or selections without regard to their order, this may grow as large as the product of all selections taken over all the GUI objects (geometric growth). On the other hand, if the GUI interactions depend on theorderof the objects or selections, then the potential number of tests may grow as large as a factorial growth in terms of the GUI objects and their selections. As of this writing, little about the number of these interactions (and hence required tests) for practical systems as known.
Hash Coding
Authors: Berkovich Simon 
Published: February 2015

Abstract
Hash coding is a transformation that maps a set of alphanumeric strings into a set of integers, normally of a substantially smaller size (cardinality). A hash function performing this transformation is considered to be of a good quality if the produced integers will be scattered more or less uniformly over their range for typical samples of the presented strings. Using the hash code as an address, one can put the strings so that they can be found at the locations specified by the hash function. Thus the primary purpose of hash coding is searching, but it also finds a variety of other applications. Hash coding is one of the most popular programming techniques available.
Software Engineering in Health Systems
Authors: George Nancy F. 
Published: February 2015

Abstract
Health systems comprise many different components and perspectives. Based on many definitions, one could interpret the concept of health systems to be all systems affecting Health.
The software aspects of health systems are complex. When one considers the fact that the FDA and other government agencies want to ensure that consumers use safe and effective products that affect the general condition of the body or mind and that promote freedom from disease or ailment, software can have a large impact since companies or “establishments” rely heavily on software to conduct their business. Although the FDA did regulate software prior to 1985, it started to focus on it after the Therac‐25 incident. The Therac‐25 was a computer‐based radiation therapy device that had a software problem that resulted in six people being massively overdosed. All of the patients either died or were seriously injured. As the use of software has become more prevalent since 1985, the FDA has increasingly focused on the impact that software can have on product safety and effectiveness. On the basis of noted problems and the complexity of health systems, the FDA has been forced to consider software used in or on health systems from many perspectives, and these are discussed.
The healthcare industry is becoming more dependent on software through medical technology, automated manufacturing processes and the Internet. The benefits can be faster and more accurate preventive, diagnostic and treatment methods. In many cases these benefits would not be possible without software.
Human Factors in Software Development
Authors: Curtis Bill 
Published: February 2015

AbstractSince the 1950s, psychologists have studied the behavioral aspects of computer programming. However, it has been difficult to integrate their data with theory because of the mixture of psychological paradigms that have guided their research. This article reviews the research results that have been generated under the fives psychological paradigms used most often in exploring programming problems. These five paradigms are (1) individual differences, (2) group behavior, (3) organizational behavior, (4) human factors, and (5) cognitive science. The major theoretical and practical contributions of each area to the theory and practice of software engineering are discussed. Current trends indicate that research guided by the paradigm of cognitive science will be the easiest to integrate with new developments in artificial intelligence and computer science theory.
Independent Verification and Validation
Authors: Fujii Roger U. 
Published: February 2015

Abstract
Independent verification and validation (IV&V) is the verification and validation of computer software that is performed by an independent organization or group different from the software development team. IV&V is a systems engineering activity involving not only the software but also the interfaces to system hardware, human operators, and other external software. IV&V activities involve engineering tasks that examine the technical content and quality of the software products. The objective of IV&V is to ensure the technical correctness and completeness of the software. Traditionally, IV&V is applied to critical software programs where the consequence of a software failure could have an impact on safety, or could cause large financial or social loss. Three criteria are used to judge the degree of independence of the V&V effort technical; managerial, and financial. Over time, IV&V has evolved into four different forms (classified; modified; classical; internal and embedded)as a result of organization preferences and growth of software complexity and usage.
IV&V is a powerful systems engineering process that is used to verify and validate the technical correctness of the software. It is used in critical systems and in software applications where the consequence of a single software error results in loss of life or in unacceptable costs.
Integrated Process Models
Authors: Ibrahim Rosalind (Linda) L. R. 
Published: February 2015

AbstractCapability Maturity Models (CMM®s) (The following trademark symbols are used in this article:®—CMM and Capability Maturity Model are registered in the U.S. Patent and Trademark Office; SM—CMM Integration and CMMI are service marks of Carnegie Mellon University.) are reference models that provide guidance for improving organizational performance. These models are repositories for best practices that have been shown to be effective through widespread use in government and industry. Organizational performance can be measured and improved by comparing actual practice to essential practices contained in CMMs.The original CMMs were developed to improve performance within a single discipline, such as software engineering or systems engineering or software acquisition. Although many best practices are generic by nature, in single‐discipline models they are organized and expressed to focus guidance within a single‐discipline view. These models were developed by different teams, for different sponsors, and at different times. As a result, whereas certain underlying process improvement principles are embedded in all these models, they are represented and expressed in different ways. Furthermore, although there are similarities and relationships among many processes that are performed across disciplines, these similarities are not explicitly recognized in the single‐discipline models.For an organization concerned with improving its performance, but whose business processes encompass more than one discipline, the use of multiple single‐discipline CMMs to guide an overall improvement effort can be confusing because of the different ways of expressing similar concepts. It can be ineffective and suboptimal because of the lack of guidance for achieving cross‐discipline, enterprisewide improvement; it can be inefficient because of potentially redundant effort expended in separate improvement efforts without recognizing similarities and overlaps. The use of an integrated CMM helps eliminate these problems by providing guidance for integrated process improvement. What this process is, what integration entails, and the future of this process are discussed here.
Interactive Graphics
Authors: Gillies Duncan 
Published: February 2015

Abstract
Interactive graphics offers the software engineer a set of powerful tools for the creation of user interfaces that can convey information in a clear, direct manner. The applications are large in number and highly diverse. The engineer now uses interactive graphics to design and test components for anything from car body frames to silicon chips, the businessperson uses it to look at financial summaries and predictions, the scientist uses it to look at molecules to determine whether they will react, filmmakers use it to create special effects, advertisers use it to animate inanimate objects, and airline pilots use it to learn how to fly. It is also the basis of modern instrumentation systems and a host of games, from cheap children's toys to the virtual reality devices which are now appearing in entertainment parks.
The software implementing interactive graphics systems can best be described using three levels of abstraction, namely the functional, procedural and device levels.
An important aspect of interactive graphics is the use of physical models to produce either realistic appearance or plausible behavior. Full descriptions of interactive graphics algorithms are to be found in a number of sources.
Java
Authors: Jazayeri Mehdi 
Published: February 2015

Abstract

Java is a
strongly typed, object‐oriented
, programming language with emphasis on supporting the software engineering of distributed applications. Because of its facilities for
user interface
and
network
programming, it has been referred to as a
network‐centric
language. Introduced in 1995, the Java language incorporates many ideas of previous programming languages into a single language. For example, it combines strong typing, object orientation, modular program structure, exception handling, and concurrency. It also incorporates software engineering ideas for structuring and programming on a large scale. It was designed by James Gosling at Sun Microsystems and since has become an industry standard language.

Java's development coincided with the widespread adoption of the Internet; it therefore aims at supporting software engineering of distributed applications. Java relies on a rich environment of libraries that support specific application areas such as network programming, database programming, and graphical user interface programming. New libraries are periodically added to support other applications.
The Java virtual machine (JVM) is an abstract machine designed to execute Java (and other) programs. A Java compiler translates a Java program into a program for the JVM, that is, into a program written using the instructions of the JVM. To run the program, a JVM interpreter executes the program. JVM implementations, that is, JVM interpreters, exist for most computers and are embedded in many devices. A Java‐enabled browser is a Web browser that contains a JVM interpreter. It is therefore capable of executing Java programs and applets. The JVM is the main mechanism for achieving portability of Java programs across different machines. The JVM has also been used as the target machine for other language compilers as well.
Knowledge Representation
Authors: Donnell Michael 
Published: February 2015

Abstract
Solutions to many problems in AI depend more on the availability of a large amount of knowledge than on sophisticated algorithms. Knowledge representation is the study of ways of supplying programs with such knowledge. The term “knowledge base” is used to refer to the body of knowledge made available to the program.
The two main parts of any AI system are a knowledge base and an inferencing system. The specification of a knowledge representation consists of two major components: A description of the notation used to express facts and a description of the operations that can be performed on a knowledge base. A notation in which facts can be expressed is essential to any knowledge representation.
To build the knowledge base, a variety of knowledge representation schemes are used including logic, lists, semantic networks, frames, scripts, and production rules.
Although there is little agreement as to what knowledge representation actually is, many schemes have been proposed as general frameworks for representing and storing knowledge. Some have been successfully used as a basis for working systems. There are, however, many features of knowledge such as defaults that are not well understood. Until a better understanding of these features is reached, knowledge representation will remain an active area of study.
Larch
Authors: Leavens Gary T. 
Published: February 2015

AbstractLarch is a family of formal specification languages and tools. It consists of several interface specification languages, the Larch Shared Language (LSL), and the Larch Prover (LP). The interface specification languages can be used to document detailed design decisions about program modules, such as procedures and classes. LSL is used by these interface specification languages to describe the abstract values of objects; it can also be used independently to specify logical theories. LP can be used to verify properties stated in LSL; it can also be used independently as a general‐purpose theorem prover. The interface specification languages, LSL, and LP are described in detail.
Licensing and Certification of Software Engineering Personnel
Authors: Frailey Dennis J. 
Published: February 2015

AbstractCertification and licensing have often been viewed as hallmarks of a true professional discipline. Most fields that are generally recognized as “professions” have one or the other and often both of these mechanisms in place. As software engineering struggles to establish itself as a discipline and, at least in some quarters, as aprofessionaldiscipline the appropriateness of and mechanisms for certification and licensing have become the subject of widespread discussion and debate. This article reviews the role of licensing and certification and addresses their applicability to software engineering. It also presents a possible model of how licensing and certification might look in relation to accreditation, education programs, curricula, bodies of knowledge, taxonomies, and other artifacts of a discipline.If certification or licensing is appropriate for software engineers, certain facts need to be established: (1) that software engineering is a separate discipline, (2) that software engineering is a profession, (3) that software engineering is sufficiently established to justify certification or licensing, and (4) that certification or licensing of software engineers would be beneficial enough to justify the effort to establish them. We examine these in turn.
Logic Programming
Authors: Koschmann Timothy 
Published: February 2015

Abstract
In logic programming, a program is stipulated as a set of axioms; execution of such a program involves posing a goal statement (i.e., theorem) and having the system construct a proof.
Mechanical reasoning programs are not able to operate with logical sentences expressed in a broad form instead they use a simpler and more restricted form known as Horn Clauses.
Note that Horn clauses have the additional restriction of including at most one non‐negative disjunctive term.
The origins of logic programming can be found in the work of the French mathematician Jacques Herbrand. He developed a theorem, published in his doctoral dissertation and which now bears his name, that provides a method for mechanically determining whether a set of clauses is satisfiable. Robinson published a paper in 1965 describing the unification algorithm and the resolution principle. Kowalski built upon this work and demonstrated that Horn clause statements can be interpreted as recursive procedures.
Malcolm Baldrige Award
Authors: Dunn Robert H. 
Published: February 2015

Abstract
In 1987, disturbed by a perceived loss of American competitiveness, especially vis‐à‐vis the Pacific rim, Congress enacted legislation to establish the Baldrige Award.
The Baldrige Award is administered by the (U.S.) Department of Commerce's National Institute of Standards and Technology (NIST). Companies apply for an award in one of three categories: manufacturing, service, and small business. Beginning in 1999, categories in education and healthcare were added. Thus, nonprofit education and healthcare organizations may now apply. The applications, framed by criteria published by NIST, undergo evaluation by a panel of Judges and a Board of Examiners drawn from industry.

Apart from providing an assessment of a company's quality maturity, the Baldrige Award criteria provide a succinct roadmap for
total quality management
the Baldrige Award became a matter of public law in 1987, the office at the National Bureau of Standards (now NIST), entrusted with implementing the law, started to develop a framework for the award. seven categories of criteria were both necessary and sufficient to create and sustain a quality effort. In the years since, although the seven categories have been moved and subjected to name changes, they continue at the heart of the Award structure. In the 2001 edition of the criteria these categories are: Leadership, strategic planning, customer and market focus, Information and analysis, human resource focus, process management, business results.

The list of winners includes both small and large companies contanct information is given.
Measurement
Authors: Agresti William W. , Basili Victor R. , Caldiera Gianluigi , Rombach H. Dieter , Basili Victor R. , Caldiera Gianluigi , Rombach H. Dieter 
Published: February 2015

AbstractThis article discusses the following topics:History of software measurementDefinition and goals of software measurementTypes of software models and measuresExamples of descriptive and predictive models and measuresMeasurement methodologyMeasurement was an important activity from the earliest examples of computer programming. Early programs were often developed to perform repetitive calculations such as computing firing tables for military applications; to implement numerical methods for solving mathematical problems; to process business transactions and update files; and to develop systems software such as device drivers, assemblers, compilers, and operating systems. The measures of interest were specific to the program, and were strongly influenced by the resource limitations of the times. Programmers were concerned mostly with implementing the program correctly, improving the execution speed of their programs, and conserving limited fast memory on the machines.By the time of the influential conference at Garmisch, Germany, which introduced the term “software engineering” in 1968, the scope of software measurement had increased. For example, discussions at the conference reflect that the properties of productivity and reliability were recognized, along with the context of developing software by a group of people rather than an individual.Continuing from the late 1960s, through the 1970s and early 1980s, software measurement was marked by selected instances of progress. However, the measurement goals were neither explicit nor comprehensive.Progress since 1985 or so has brought software measurement to a more mature state with the following characteristics of this nature state are defined.
Middleware
Authors: Schantz Richard E. , Schmidt Douglas C. 
Published: February 2015

AbstractTwo fundamental trends influence the way we conceive and construct new computing and information systems. The first is that information technology of all forms is becoming highly commoditized; hardware and software artifacts are getting faster, cheaper, and better at a relatively predictable rate. The second is the growing acceptance of a network‐centric paradigm, where distributed applications with a range of quality of service (QoS) needs are constructed by integrating separate components connected by various forms of communication services. The nature of this interconnection can range from (1) the very small and tightly coupled, such as avionics mission computing systems to (2) the very large and loosely coupled, such as global telecommunications systems. The interplay of these two trends has yielded new architectural concepts and services embodying layers ofmiddleware. These layers are interposed between applications and commonly available hardware and software infrastructure to make it feasible, easier, and more cost‐effective to develop and evolve systems using reusable software. Middleware stems from recognizing the need for more advanced and capable support—beyond simple connectivity—to construct effective distributed systems. A significant portion of middleware‐oriented R&D activities have focused onThe identification, evolution, and expansion of our understanding of current middleware services in providing this style of developmentThe need for defining additional middleware layers and capabilities to meet the challenges associated with constructing future network‐centric systemsThese activities are expected to continue forward well into the 2000s to address the needs of next‐generation distributed applications.The trends outlined above are now yielding additional middleware challenges and opportunities for organizations and developers, both in deploying current middleware‐based solutions and in inventing and shaping new ones. To complete the overview, we summarize key challenges and emerging opportunities for moving forward are summariged, and the role that middleware plays in meeting these challenges.A discussion outlines the fundamental drivers that led to the emergence of middleware architectures and components in the previous decade, and will of necessity lead to more advanced middleware capabilities. We spend the rest of this article exploring these topics in more depth, with detailed evaluations of the current are future status of middleware.
Milestones in Software Engineering
Authors: Tomayko James E. 
Published: February 2015

Abstract

Computer software development is a discipline that is difficult to describe in terms familiar to other forms of science and engineering. Software is a unique mind product that serves as a constant challenge to its makers. It depends on, yet transcends, the hardware that it can both control and exploit. On one hand, it is embodied in the form of abstract algorithms formed in the science of computation theory. On the other hand, it is a pragmatic means of controlling computers and other devices attached to them. Many believe that to use the term
engineering
coupled with
software
is premature or even misleading. The word
art
or
craft
of software development seems more appropriate to current methods and their resultant products. This article to understand software and its development practices through an analysis of the nature and impact of outstanding developments in the field.