Marvin Zelkowitz | |
---|---|
Born | 7 August 1945 |
Nationality | American |
Alma mater | Cornell University |
Known for | programming languages, software engineering |
Scientific career | |
Fields | computer science |
Institutions | U. of Maryland, College Park UMIACS [1] Fraunhofer Mid-Atlantic [2] |
Thesis | Reversible Execution as a Diagnostic Tool (1971) |
Marvin Victor Zelkowitz (born 7 August 1945) is an American computer scientist and engineer.
Zelkowitz earned a degree in mathematics from Rensselaer Polytechnic Institute in 1967 and a master's degree and doctorate [3] in computer science at Cornell University in 1969 and 1971, respectively. He then taught at the University of Maryland, College Park. While holding a professorship within the Department of Computer Science [4] and the University of Maryland Institute for Advanced Computer Studies (UMIACS), [1] he was also affiliated with the Fraunhofer Center for Experimental Software Engineering, since renamed The Fraunhofer USA Center Mid-Atlantic (CMA). [2] He is now Professor Emeritus, having retired in 2007.
His early research (1968-early 1980s) was in programming languages. He worked on implementation of programming language features to aid in program development and debugging as well as ways to implement tests for runtime correctness of executable code. [3] [5] [6]
His later research dealt with software engineering practices by looking at developing methods for improving the process of software development. [7] [8]
The years 2003-2009 were devoted to applying these experimental testing results to the field of High-performance computing. [9]
Zelkowitz served as editor of the series Advances in Computers for Academic Press (vols 41-56; 1995-2002) and later Elsevier (vols. 57-74; 2003-2008) [10]
Since 1994, Zelkowitz has been active in scientific skepticism as Board member and at times Secretary, Treasurer, and President of the National Capital Area Skeptics. NCAS was founded in 1987 in the Washington, D.C., Maryland and Virginia area and is an advocate for science and reason, actively promoting the scientific method, rational inquiry, and education. [11]
Computer science is the study of computation, information, and automation. Computer science spans theoretical disciplines to applied disciplines.
In computer science, static program analysis is the analysis of computer programs performed without executing them, in contrast with dynamic program analysis, which is performed on programs during their execution in the integrated environment.
The waterfall model is a breakdown of development activities into linear sequential phases, meaning they are passed down onto each other, where each phase depends on the deliverables of the previous one and corresponds to a specialization of tasks. The approach is typical for certain areas of engineering design. In software development, it tends to be among the less iterative and flexible approaches, as progress flows in largely one direction through the phases of conception, initiation, analysis, design, construction, testing, deployment and maintenance. The waterfall model is the earliest SDLC approach that was used in software development.
Software architecture is the set of structures needed to reason about a software system and the discipline of creating such structures and systems. Each structure comprises software elements, relations among them, and properties of both elements and relations.
In computing and computer programming, exception handling is the process of responding to the occurrence of exceptions – anomalous or exceptional conditions requiring special processing – during the execution of a program. In general, an exception breaks the normal flow of execution and executes a pre-registered exception handler; the details of how this is done depend on whether it is a hardware or software exception and how the software exception is implemented.
A domain-specific language (DSL) is a computer language specialized to a particular application domain. This is in contrast to a general-purpose language (GPL), which is broadly applicable across domains. There are a wide variety of DSLs, ranging from widely used languages for common domains, such as HTML for web pages, down to languages used by only one or a few pieces of software, such as MUSH soft code. DSLs can be further subdivided by the kind of language, and include domain-specific markup languages, domain-specific modeling languages, and domain-specific programming languages. Special-purpose computer languages have always existed in the computer age, but the term "domain-specific language" has become more popular due to the rise of domain-specific modeling. Simpler DSLs, particularly ones used by a single application, are sometimes informally called mini-languages.
Code review is a software quality assurance activity in which one or more people check a program, mainly by viewing and reading parts of its source code, either after implementation or as an interruption of implementation. At least one of the persons must not have authored the code. The persons performing the checking, excluding the author, are called "reviewers".
Per Brinch Hansen was a Danish-American computer scientist known for his work in operating systems, concurrent programming and parallel and distributed computing.
Ivar Hjalmar Jacobson is a Swedish computer scientist and software engineer, known as a major contributor to UML, Objectory, Rational Unified Process (RUP), aspect-oriented software development and Essence.
Diomidis D. Spinellis is a Greek computer science academic and author of the books Code Reading, Code Quality, Beautiful Architecture (co-author) and Effective Debugging.
Quantum programming is the process of designing or assembling sequences of instructions, called quantum circuits, using gates, switches, and operators to manipulate a quantum system for a desired outcome or results of a given experiment. Quantum circuit algorithms can be implemented on integrated circuits, conducted with instrumentation, or written in a programming language for use with a quantum computer or a quantum processor.
Software visualization or software visualisation refers to the visualization of information of and related to software systems—either the architecture of its source code or metrics of their runtime behavior—and their development process by means of static, interactive or animated 2-D or 3-D visual representations of their structure, execution, behavior, and evolution.
Experimental software engineering involves running experiments on the processes and procedures involved in the creation of software systems, with the intent that the data be used as the basis of theories about the processes involved in software engineering. A number of research groups primarily use empirical and experimental techniques.
Urs Hölzle is a Swiss software engineer and technology executive. As Google's eighth employee and its first VP of Engineering, he has shaped much of Google's development processes and infrastructure, as well as its engineering culture. His most notable contributions include leading the development of fundamental cloud infrastructure such as energy-efficient data centers, distributed compute and storage systems, and software-defined networking. Until July 2023, he was the Senior Vice President of Technical Infrastructure and Google Fellow at Google. In July 2023, he transitioned to being a Google Fellow only.
GQM, the initialism for goal, question, metric, is an established goal-oriented approach to software metrics to improve and measure software quality.
Victor R. Basili, is an emeritus professor at the Department of Computer Science, which is part of the University of Maryland College of Computer, Mathematical, and Natural Sciences, and the Institute for Advanced Computer Studies. He holds a Ph.D. in computer science from the University of Texas at Austin and two honorary degrees. He is a fellow of both the Association for Computing Machinery (ACM) and of the Institute of Electrical and Electronics Engineers (IEEE).
Software intelligence is insight into the inner workings and structural condition of software assets produced by software designed to analyze database structure, software framework and source code to better understand and control complex software systems in information technology environments. Similarly to business intelligence (BI), software intelligence is produced by a set of software tools and techniques for the mining of data and the software's inner-structure. Results are automatically produced and feed a knowledge base containing technical documentation and blueprints of the innerworking of applications, and make it available to all to be used by business and software stakeholders to make informed decisions, measure the efficiency of software development organizations, communicate about the software health, prevent software catastrophes.
Cache prefetching is a technique used by computer processors to boost execution performance by fetching instructions or data from their original storage in slower memory to a faster local memory before it is actually needed. Most modern computer processors have fast and local cache memory in which prefetched data is held until it is required. The source for the prefetch operation is usually main memory. Because of their design, accessing cache memories is typically much faster than accessing main memory, so prefetching data and then accessing it from caches is usually many orders of magnitude faster than accessing it directly from main memory. Prefetching can be done with non-blocking cache control instructions.
Hussein S. M. Zedan was a computer scientist of Egyptian descent, mainly based in the United Kingdom.
In computer science, a code property graph (CPG) is a computer program representation that captures syntactic structure, control flow, and data dependencies in a property graph. The concept was originally introduced to identify security vulnerabilities in C and C++ system code, but has since been employed to analyze web applications, cloud deployments, and smart contracts. Beyond vulnerability discovery, code property graphs find applications in code clone detection, attack-surface detection, exploit generation, measuring code testability, and backporting of security patches.