Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Brent Hailpern is active.

Publication


Featured researches published by Brent Hailpern.


Ibm Systems Journal | 2006

Model-driven development: the good, the bad, and the ugly

Brent Hailpern; Peri L. Tarr

In large software development organizations, increased complexity of products, shortened development cycles, and heightened expectations of quality have created major challenges at all the stages of the software life cycle. As this issue of the IBM Systems Journal illustrates, there are exciting improvements in the technologies of model-driven development (MDD) to meet many of these challenges. Even though the prevalent software-development practices in the industry are still immature, tools that embody MDD technologies are finally being incorporated in large-scale commercial software development. Assuming MDD pervades the industry over the next several years, there is reason to hope for significant improvements in software quality and time to value, but it is far from a foregone conclusion that MDD will succeed where previous software-engineering approaches have failed.


Ibm Systems Journal | 2002

Software debugging, testing, and verification

Brent Hailpern; Padmanabhan Santhanam

In commercial software development organizations, increased complexity of products, shortened development cycles, and higher customer expectations of quality have placed a major responsibility on the areas of software debugging, testing, and verification. As this issue of the IBM Systems Journal illustrates, there are exciting improvements in the underlying technology on all three fronts. However, we observe that due to the informal nature of software development as a whole, the prevalent practices in the industry are still immature, even in areas where improved technology exists. In addition, tools that incorporate the more advanced aspects of this technology are not ready for large-scale commercial use. Hence there is reason to hope for significant improvements in this area over the next several years.


IEEE Transactions on Communications | 1983

Modular Verification of Computer Communication Protocols

Brent Hailpern; Susan S. Owicki

Programs that implement computer communications protocols can exhibit extremely complicated behavior, and neither informal reasoning nor testing is reliable enough to establish their correctness. In this paper we discuss the application of modular program verification techniques to protocols. This approach is more reliable than informal reasoning, but has an advantage over formal reasoning based on finite-state models, the complexity of the proof need not grow unmanageably as the size of the program increases. Certain tools of concurrent program verification that are especially useful for protocols are presented, history variables that record sequences of input and output values, temporal logic for expressing properties that must hold in a future system state such as eventual receipt of a message), and module specification and composition rules. The use of these techniques is illustrated by verifying two data transfer protocols from the literature: the alternating bit protocol and a protocol proposed by Stenning.


ACM Queue | 2003

Web Services: Promises and Compromises

Joanne L. Martin; Ali Arsanjani; Peri L. Tarr; Brent Hailpern

Much of web services’ initial promise will be realized via integration within the enterprise, either with legacy applications or new business processes that span organizational silos. Enterprises need organizational structures that support this new paradigm.


IEEE Transactions on Software Engineering | 1990

Extending objects to support multiple interfaces and access control

Brent Hailpern; Harold Ossher

A mechanism, called views, that allows programmers to specify multiple interfaces for objects and to control explicitly access to each interface is described. This mechanism provides a simple and flexible means of specifying enforceable access restrictions at many levels of granularity. It also results in system organization that supports browsing based on a number of different criteria. Views is defined, some examples of its uses are given, the impact of views on system organization is discussed, and five approaches to implementing views are outlined. >


ACM Transactions on Programming Languages and Systems | 1992

An object-based programming model for shared data

Gail E. Kaiser; Brent Hailpern

The classical object model supports private data within objects and clean interfaces between objects, and by definition does not permit sharing of data among arbitrary objects. This is a problem for real-world applications, such as advanced financial services and integrated network management, where the same data logically belong to multiple objects and may be distributed over multiple nodes on the network. Rather than give up the advantages of encapsulated objects in modeling real-world entities, we propose a new object model that supports shared data in a distributed environment. The key is separating distribution of computation units from information-hiding concerns. Minimal units of data and control, called facets, may be shared among multiple objects and are grouped into processes. Thus, a single object, or information-hiding unit, may be distributed among multiple processes, or computation units. In other words, different facets of the same object may reside in different address spaces on different machines. We introduce our new object model, describe a motivating example from the financial domain, and then explain facets, objects, and processes, followed by timing and synchronization concerns.


international conference on distributed computing systems | 1991

Dynamic reconfiguration in an object-based programming language with distributed shared data

Brent Hailpern; Gail E. Kaiser

An approach to dynamic reconfiguration in online distributed applications based on a data sharing model is presented. The data sharing model consists of facets, objects, and processes, with facets as the unit of sharing. The primary contribution of this work is the addition of important special cases of dynamic reconfiguration, without resorting to general dynamic allocation. A metaphor consistent with PROFITs data sharing model for expressing dynamic reconfiguration facilities within the programming language is proposed.<<ETX>>


Sigplan Notices | 1986

A generalized object model

Van Nguyen; Brent Hailpern

Since the introduction of Smalltalk, the object-oriented paradigm has become a popular technique for the organization of data and programs. In this paradigm, objects (collections of data and programs) are organized in a class hierarchy. These classes collect similar objects and serve as a repository for methods (programs) shared by those objects. We present a new simple model of objects that allows multi-dimensional inheritance. Objects, in our model, behave like communicating processes in Hoare’s CSP language, but with a different message-passing mechanism. This leads to a simple formal semantics for objects and inheritance.


IEEE Transactions on Communications | 1985

A Simple Protocol Whose Proof Isn't

Brent Hailpern

Aho, Ullman, and Yannakakis have proposed a set of protocols that ensure reliable transmission of data across an error-prone channel. They have obtained lower bounds on the complexity required of the protocols to assure reliability for different classes of errors. They specify these protocols with finite-state machines. Although the protocol machines have only a small number of states, they are nontrivial to prove correct. In this paper we present proofs of one of these protocols using the finite-state-machine approach and the abstract-program approach. We also show that the abstract-program approach gives special insight into the operation of the protocol.


principles of distributed computing | 1983

Script: A communication abstraction mechanism

Nissim Francez; Brent Hailpern

In this paper, we introduce a new abstraction mechanism, called a <italic>script</italic>, which hides the low-level details that implement <italic>patterns of communication</italic>. A script localizes the communication between a set of <italic>roles</italic> (formal processes), to which actual processes <italic>enroll</italic> in order to participate in the action of the script. The paper discusses the addition of scripts to the languages CSP and Ada, as well as to a shared-variable language with monitors.

Collaboration


Dive into the Brent Hailpern's collaboration.

Researchain Logo
Decentralizing Knowledge