Kendra M.L. Cooper
Dr. Cooper is an Associate Professor in Computer Science at the University of
Texas at Dallas. She holds a B.A.Sc., M.A.Sc. and a Ph.D, all in Electrical and
Computer Engineering from The University of British Columbia, Canada. Her
research interests include the use of COTS components, metrics, empirical
analysis, and formal methods in requirements engineering and software
architecture. Dr. Cooper also has industrial experience in the requirements specification
and architectural design of complex, large scale, software intensive systems.
Before joining UTD, she worked as a senior systems engineer on Motorola's GPRS
core network project developing system requirements and extending the product
architecture.
Dr. Cooper's graduate studies have focused on the requirements specification
phase in the software engineering lifecycle. In her Master's research, Dr.
Cooper developed a new Petri net model, Time Stream Petri Nets with User
Interactions (TSPNUI), which supports the specification of user interaction and
jitter requirements for multimedia applications. Continuing in the area of
requirements engineering for her Ph.D. research, she developed a requirements
specification language, the Stimulus Response Requirements Specification
Notation (SRRS), that looks like natural language text yet is amenable to
automated tool support (e.g., typechecking, translation to high order logic,
generation of test specifications, etc.). As part of this research, an experimental
evaluation demonstrated that using this notation reduces the costs of
developing software requirements specifications by 39% and reduces the number
of defects detected in peer reviews by 81%. Tool support for the notation had
been developed for the language using lex, yacc, and C (approximately 20
KSLOC).
At the University of Texas at Dallas, Dr. Cooper is a member of the
Software Engineering Group and the Embedded Software
Center. Her research is focussed on topics in requirements
engineering and software architecture. Dr. Cooper has been working on
fascinating projects in three paradigms: component-based software
engineering (CBSE), aspect-oriented software development (AOSD) and,
most recently, product-line engineering (PLE) methodologies. A common
theme in these projects is the systematic modularization and re-use of
software engineering artifacts. Although the re-usable artifacts are
specific to each approach (e.g., components in CBSE, aspects in AOSD,
core assets in PLE), they share key characteristics: 1) the re-usable
artifacts may be at multiple levels of abstraction (requirements,
design, code); 2) the behavior of the artifacts needs to be rigorously
represented (both functional and quality/non-functional); 3)
techniques are needed to systematically reason about the artifacts.