Steve Roach's research while affiliated with ITT Exelis and other places
What is this page?
This page lists the scientific contributions of an author, who either does not have a ResearchGate profile, or has not yet added these contributions to their profile.
It was automatically created by ResearchGate to create a record of this author's body of work. We create such pages to advance our goal of creating and maintaining the most comprehensive scientific repository possible. In doing so, we process publicly available (personal) data relating to the author as a member of the scientific community.
If you're a ResearchGate member, you can follow this page to keep up with this author's work.
If you are this author, and you don't want us to display this page anymore, please let us know.
It was automatically created by ResearchGate to create a record of this author's body of work. We create such pages to advance our goal of creating and maintaining the most comprehensive scientific repository possible. In doing so, we process publicly available (personal) data relating to the author as a member of the scientific community.
If you're a ResearchGate member, you can follow this page to keep up with this author's work.
If you are this author, and you don't want us to display this page anymore, please let us know.
Publications (65)
For over 40 years, the ACM and IEEE-Computer Society have sponsored international curricular guidelines for undergraduate programs in computing. The rapid evolution and expansion of the computing field and the growing number of topics in computer science have made regular revision of curricular recommendations necessary. Thus, the Computing Curricu...
In this feature of the Bulletin, we highlight recent accomplishments of our members. For this issue, Bulletin co-editor Christine Alvarado interviewed Barbara Boucher Owens, Southwestern University. Barbara is leaving the SIGCSE Board this year after ...
Beginning with the publication of Curriculum 68, ACM and IEEE-Computer Society have sponsored various efforts to establish international curricular guidelines for undergraduate programs in computing. Work on the next volume, Computer Science 2013 is well underway, with the Ironman draft out shortly before SIGCSE 2013. The Ironman draft includes cou...
For over 40 years, the ACM and IEEE-Computer Society have sponsored the creation of international curricular guidelines for undergraduate programs in computing. These Computing Curricula volumes are updated approximately every 10-year cycle, with the aim of keeping curricula modern and relevant. The next volume in the series, Computer Science 2013...
Beginning over 40 years ago with the publication of Curriculum 68, the major professional societies in computing--ACM and IEEE-Computer Society--have sponsored various efforts to establish international curricular guidelines for undergraduate programs in computing. As the field has grown and diversified, so too have the recommendations for curricul...
Work began in late 2010 on a project to revise the ACM/IEEE-Computer Society Computer Science volume of Computing Curricula 2001 and the interim review CS 2008. The new guidelines for computer science are scheduled for release in 2013. This interactive session will give the computing education community an opportunity to review current working docu...
Project retrospectives are an established “best practice” in software process improvement. As a tool for learning how to perform better as a development organization, retrospectives may provide an additional learning opportunity for students in software engineering project courses. This paper describes a project retrospective approach that has been...
Following a roughly 10 year cycle, the Computing Curricula volumes have helped to set international curricular guidelines for undergraduate programs in computing. In the summer of 2010, planning for the next volume in the series, Computer Science 2013, began. This panel seeks to update and engage the SIGCSE community on the Computer Science 2013 ef...
The Property Specification (Prospec) tool uses patterns and scopes defined by Dwyer et al., to generate formal specifications in Linear Temporal Logic (LTL) and other languages. The work
presented in this paper provides improved LTL specifications for patterns and scopes over those originally provided by Prospec. This improvement comes in the effic...
The Prospec software tool facilitates the construction of formal specifications in LTL by automating Dwyer's Specification Pattern System as extended by Mondragon and Salamah. The LTL generation has been verified through the automated creation of a rigorous test set. Over 3 million test cases were generated and executed, providing extensive coverag...
This paper presents a formal correctness proof for some properties of restricted finite directed acyclic graphs (DAGs). A restricted graph has a single root and arbitrary siblings. The siblings are assigned integers, string values, or restricted DAGs. Leafs must be assigned string values. The main property is the transitive closure. Our restricted...
The difficulty of writing, reading, and understanding formal specifications remains one of the main obstacles in adopting formal verification techniques such as model checking, theorem and runtime verification. In order to train a future workforce that can develop and test high-assurance systems, it is essential to introduce undergraduate students...
Design decisions and constraints of a software system can be specified precisely using a formal notation such as the Object Constraint Language (OCL). However, they are not executable, and assuring the conformance of an implementation to its design is hard. The inability of expressing design constraints in an implementation and checking them at run...
Design decisions and constraints of a software system can be specified precisely using a formal notation such as the Object Constraint Language (OCL). However, they are not executable, and assuring the conformance of an implementation to its design is hard. The inability of expressing design constraints in an implementation and checking them at run...
An affinity research group is a comprehensive model for the creation and maintenance of dynamic, productive, and inclusive research groups in engineering and computing. The model is comprised of a set of fundamental principles and effective practices that emphasize the conscious development of studentspsila domain knowledge as well as research and...
Educating scientists and engineers with respect to the ethical implications of their professional actions is an increasingly
urgent, demanding, and complex task, and we do them and society a disservice if they inadequately grasp the ethical significance
of the work they do. Education in ethics in engineering and the sciences has been recognized as...
An approach that results in the development of Workflow-Driven Ontologies (WDO) (called the WDO approach) allows domain scientists to capture process knowledge in the form of concepts as well as relations between concepts. Program synthesis techniques can be employed to generate algorithmic solutions by transforming the process knowledge expressed...
The Property Specification (Prospec) tool uses patterns and scopes defined by Dwyer et. al., to generate formal specifications in linear temporal logic (LTL) and other languages. The work presented in this paper provides improved LTL specifications for patterns and scopes over those originally provided by Prospec. This improvement comes in the effi...
Peer teaching and peer mentoring is in use at many colleges and universities in the United States in an effort to improve undergraduate education. At the University of Texas at El Paso (UTEP), peer-led team learning (PLTL) is being used in the Departments of Chemistry, Mathematics, and Computer Science (CS). In CS, we have enhanced the traditional...
This chapter describes a two-semester software engineering course that is taught in a computer science program at the University of Texas at El Paso. The course is distinguished from other courses in that it is based on the Affinity Research Group (ARG) philosophy that focuses on the deliberate development of students' team, professional and techni...
Numerous formal approaches to software assurance are available, including: runtime monitoring, model checking, and theorem proving. All of these approaches require formal specifications of behavioral properties to verify a software system. Creation of formal specifications is difficult, and previously, there has been inadequate tool support for thi...
Most formal software verification techniques are based on formal specifications of software behavior. Approaches to facilitate the creation of formal specifications include the Specification Pattern System (SPS) and Composite Propositions (CPs). Recent research into generating Linear Temporal Logic (LTL) formulas from SPS patterns resulted in a set...
The use of property classifications and patterns, i.e., high-level abstractions that describe common behavior, have been shown to assist practitioners in generating formal specifications that can be used in formal verification techniques. The Specification Pattern System (SPS) provides descriptions of a collection of patterns. The extent of program...
Formal verification techniques for software typically start with formal specifications of software behavior. Several automated tools use linear temporal logic (LTL) to specify behavioral properties of software. A significant hurdle to the use of formal approaches is the development of formal specifications.This paper introduces the property testing...
The use of property classifications and patterns, i.e., high-level abstractions that describe common behavior, have been shown to assist practitioners in generating formal specifications that can be used in formal verification techniques. The Specification Pattern System (SPS) provides descriptions of a collection of patterns. The extent of program...
Property classifications and patterns, i.e., high-level abstractions that describe common behavior, have been used to assist practitioners in generating formal specifications that can be used in formal verification techniques. The Specification Pattern System (SPS) provides descriptions of a collection of patterns. Each pattern is associated with a...
This paper describes a technique to generate AspectJ aspects from formal specifications written for the Java-MaC runtime verification tool. The aspects are used to instrument programs for runtime verification. To demonstrate the described approach, it is applied to a "benchmark" from formal methods research, i.e., a safety-critical railroad crossin...
This paper presents an approach to support run-time verification of software systems that combines two existing tools, Prospec and Java-MaC, into a single framework. Prospec can be used to clarify natural language specifications for sequential, concurrent, and nondeterministic behavior. In addition, Prospec assists the user in reading, writing, and...
Property classiications and patterns, i.e., high-level ab-stractions that describe common behavior, have been used to assist practitioners in generating formal speciications that can be used in formal veriication techniques. The Speciication Pattern System (SPS) provides descriptions of a collection of patterns. Each pattern is associated with a sc...
The SSP is a hardware implementation of a subset of the JVM for use in high consequence embedded applications. In this context, a majority of the activities belonging to class loading, as it is dened in the specication of the JVM, can be performed statically. Static class loading has the net result of dramatically simplifying the design of the SSP...
The Specification Pattern System (SPS) and the Property Specification (Prospec) tool assist a user in generating formal specifications
in Linear Temporal Logic (LTL), as well as other languages, from property patterns and scopes. Patterns are high-level abstractions
that provide descriptions of common properties, and scopes describe the extent of p...
Genetic testing is becoming an important tool for detection of many genetic diseases. Designing a genetic test requires accurate data and an efficient means of comparing sequences that are present in the databases. However, as prodigious amount of data continue to emerge, querying the database to make important predictions is becoming arduous. It i...
The Geoscience Network (GEON) project is a collaborative effort among numerous institutions to create the geoinformatics infrastructure. Because of the criticality of the grid services that will be deployed, scientists need assurance of the integrity of the data supplied by the service and assurance that the workflows and other scientific applicati...
Deductive program synthesis systems based on automated theorem proving offer the promise of software that is correct by construction. However, the difficulty encountered in constructing usable deductive synthesis systems has prevented their widespread use. Amphion is a real-world, domain-independent, completely automated program synthesis system. I...
A goal of runtime software-fault monitoring is to observe software behavior to determine whether it complies with its intended behavior. Monitoring allows one to analyze and recover from detected faults, providing additional defense against catastrophic failure. Although runtime monitoring has been in use for over 30 years, there is renewed interes...
The SSP is a hardware implementation of a subset of the JVM for use in high consequence embedded applications. In this context, a majority of the activities belonging to class loading, as it is defined in the specification of the JVM, can be performed statically. Static class loading has the net result of dramatically simplifying the design of the...
Runtime monitoring is aimed at ensuring correct runtime behavior with respect to specified constraints. It provides assurance that properties are maintained during a given program execution. The dynamic monitoring with integrity constraints (DynaMICs) approach is a runtime monitoring system under development at the University of Texas at El Paso. T...
Program transformation through the repeated application of simple rewrite rules is conducive to formal verification. In practice, program transformation oftentimes requires data to be moved throughout the program structure. This ar- ticle explores the use of higher-order rewrite rules as the mechanism for accomplishing such data movement. The effec...
Software design is an essential yet challenging concept for students in computer science and software engineering. Classes, Responsibilities, and Collaborations (CRC) is a design method focused on creating highly cohesive and modular systems. Classes describe real-world objects that exist in a system. These classes are assigned responsibilities, i....
In high-consequence systems, there is a high cost associated with failure. Thus, there should be strong evidence that the systems will not fail in field. Such evidence cannot be obtained by traditional verification methods such as testing. Transformation-oriented programming (TOP) is a promising formal software development technique. In TOP, a sour...
The SSP is a hardware implementation of a subset of the JVM for use in high consequence embedded applications. In this context, a majority of the activities belonging to class loading, as it is defined in the specification of the JVM, can be performed statically. Static class loading has the net result of dramatically simplifying the design of the...
The SSP is a high assurance systems engineering effort spanning both hardware and software. Extensive design review, first principle design, n-version programming, program transformation, verification, and consistency checking are the techniques used to provide assurance in the correctness of the resulting system.
A software development paradigm known as Transformation-Oriented Programming (TOP) is introduced. In TOP, software development consists of constructing a sequence of transformations capable of systematically constructing a software implementation from a given formal specification. As such TOP falls under the category of formal methods.The general t...
The ability of students to work in multidisciplinary teams is a recognized goal of engineering education. There are many challenges to teaching team skills to students and ensuring that students practice these skills during their team projects. This panel session is devoted to exploring issues and sharing best practices in these areas. The session...
When instructors learn about participatory learning strategies such as cooperative, active, problem-based, or team-based learning, often the reaction is something along the lines of "sounds great but it would not work in my class--with such an approach I could not cover the required volume of material." We are pleased to report, via this paper, tha...
Deductive program synthesis systems based on automated theorem proving offer the promise of "correct by construction" software. However, the difficulty encountered in constructing usable deductive synthesis systems has prevented their widespread use. Amphion is a real-world, domain-independent program synthesis system. It is specialized to specific...
Constructing certifiably reliable software systems is difficult. Deductive program synthesis techniques (Flener 1995, Manna and Waldinger 1980) can currently be used to construct small software systems or to organize small sets of software components in a reliable manner. In order for synthesis techniques to be applicable to real-world problems out...
Software engineering strives to enable the economic construction of software systems that behave reliably, predictably, and safely. In other engineering disciplines, safety is assured in part by detailed monitoring of processes. In software, we may achieve some level of confidence in the operation of programs by monitoring their execution. DynaMICs...
This paper describes an approach called Dynamic Monitoring with Integrity Constraints (DynaMICs) that consists of a specification language for defining constraints and tools that permit automated instrumentation of constraints, runtime monitoring that minimizes performance degradation, and tracing. The goal is to capture domain and system knowledge...
DynaMICs is a system under development that manages integrity constraints to ensure the correct runtime behavior of programs. The intent of this approach is to facilitate the insertion of constraint-checking code into programs so that correctness properties are maintained throughout execution. Automation of the synthesis of constraint monitoring co...
In this paper, we describe the experiences of the Automated Software Engineering Group at the NASA Ames Research Center in the development and application of three different transformation systems. The systems span the entire technology range, from deductive synthesis, to logic-based transformation, to almost compiler-like source-to-source transfor...
The college instructor of the future will certainly have more
technology, available for use in the classroom. The decision to utilize
instructional technology should be based on sound principles. The three
guiding principles of using technology to enable, planning to support
technology, and using technology judiciously are discussed in this paper
The Cyber-ShARE (1) Center of Excellence (Sharing Resources through Cyberinfrastructure to Advance Research and Education) was established in 2007 to advance and integrate education and research in uncertainty, trust, and optimization in support of cyber-infrastructures (CI). A concern in using CI is the inability to know whether services (discover...
Property classifications and patterns, i.e., high-level abstractions that describe common behavior, have been used to assist practitioners in spec-ifying properties. The Specification Pattern System (SPS) provides de-scriptions of a collection of patterns. Each pattern is associated with a scope that defines the extent of program execution over whi...
Property classifications and patterns, i.e., high-level abstractions that describe common behavior, have been used to assist practitioners in specifying properties. The Specification Pattern System (SPS) provides descriptions of a collection of patterns. Each pattern is associated with a scope that defines the extent of program execution over which...
Amphion is a domain-independent program-synthesis system. It is specialized to specific ap- plications through the creation of an operational domain theory. The Meta-Amphion system is be- ing developed to empower domain experts to develop and maintain their own Amphion applications. Operationalization, a technology for automatically transforming de...
Property classiflcations and patterns, i.e., high-level abstractions that describe common behavior, have been used to assist practitioners in gen- erating formal speciflcations that can be used in formal veriflcation tech- niques. The Speciflcation Pattern System (SPS) provides descriptions of a collection of patterns. Each pattern is associated wi...
Citations
... Peers as mentors, facilitators, and team leaders are not new ideas [1]. They have been tried out in many forms over the years [2,3] and have been shown to generally improve student outcomes in the first years of college [4,5,6]. ...
... One of the most demanded skills nowadays for engineering students is computer programming. They should be able to [1]: analyze and understand how programs work; master a programming language; develop computer programs (design, implement, test and debug); among others. However, learning these skills is not an easy task. ...
... Juliet attributed peer support and Peer Led Team Learning 2 (PLTL) to her learning computer science principles and being able to code. At this institution, PLTL [12,18] is overseen by a professional staff person who conducts workshops to guide the peer leaders throughout each semester to ensure integrity in the sessions (e.g., ensuring group members are fully participating). ...
... • The academic profession has a feature identifying the main major for the respondents (Your Major/Specialization). It had almost 251 unique values and we followed the ACM.org curricula recommendations [21] to transform the specialization into its root. According to [21], there are 5 categories for computing specialists: Computer Science, Information Systems, Information Technology, Computer Engineering, and Software Engineering. ...
... Given as input parameters to patterns and scopes, they ease the specification of concurrency, sequences, and non-consecutive sequential behaviors. In [32], Salamah et al. provide with a formal proof of correctness, the equivalent LTL formula for each combination of pattern, scope and composite propositions. In [23], a tool, called Prospec, is developed to provide guidance mechanisms to help users to identify the patterns, the scopes and the composite propositions they need. ...
... IEEE and ACM joint task groups on SECSIT curricula encourage academic institutions to establish capstone project courses for validating students' application of knowledge in practical situations (T. G. on Information Technology Curricula, 2017; Sahami et al., 2014;Ardis et al., 2015). They also recommend accreditation agencies to regard such courses as one of the major criteria to affirm quality assurance of an academic program. ...
... In CC2001, 14 KAs representing the Computer Science Body of Knowledge were identified. These KAs increased to 18 in CS2013 [2,10]. A tabular summary of these changes is given in [8]. ...
... A simple extension to runtime monitoring is post-mortem analysis. Postmortem analysis 14,21] is similar to run-time monitoring in that sequences of states from a particular execution of a program are examined. In addition, as the program executes, information about the states visited by the program is stored. ...
... So, in logical terms, we want to know whether these variables are deducible from the knowledge base. We can therefore use logical deduction tools to check whether y is deducible from x i ; see, e.g., [12], [13], [14], [15], [16], [17], [19], [20]. Triangle example. ...
... Dwyer et al. [10] proposed pattern system for property specification, which consists of hierarchical pattern classification, scope and templates of temporal logic formula such as LTL or CTL, and users can build up property formulae by pointing patterns and scopes. Following this research, many works proposed approaches to achieve high expressiveness by expanding or specializing Dwyer's property patterns [6,7,13,18]. ...