Marvin Zelkowitz

Last updated
Marvin Zelkowitz
Born (1945-08-07) 7 August 1945 (age 78)
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.

Contents

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]

Awards

Books

Selected publications

Related Research Articles

<span class="mw-page-title-main">Computer science</span> Study of computation

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.

<span class="mw-page-title-main">Software architecture</span> High level structures of a software system

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".

<span class="mw-page-title-main">Per Brinch Hansen</span> Danish-American computer scientist

Per Brinch Hansen was a Danish-American computer scientist known for his work in operating systems, concurrent programming and parallel and distributed computing.

<span class="mw-page-title-main">Ivar Jacobson</span>

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.

<span class="mw-page-title-main">Diomidis Spinellis</span> Greek computer science academic

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.

<span class="mw-page-title-main">Urs Hölzle</span> Swiss computer scientist

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.

<span class="mw-page-title-main">GQM</span>

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.

<span class="mw-page-title-main">Hussein Zedan</span>

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.

References

  1. 1 2 "Marv Zelkowitz". UMIACS. Retrieved 2022-09-18.
  2. 1 2 "Fraunhofer USA Center Mid-Atlantic CMA". Fraunhofer USA.
  3. 1 2 "Ph.D. Alumni". Computer Science, Cornell University. 1971. Retrieved 2022-09-17.
  4. "Marvin Zelkowitz". University of Maryland Department of Computer Science. Retrieved 13 May 2022.
  5. 1 2 (September 1973). "Reversible execution". CACM . 16 (9): 566–566. doi: 10.1145/362342.362360 .
  6. 1 2 (January 1981). "Implementation of language enhancements". Computer Languages. 6 (3–4): 139–153. doi:10.1016/0096-0551(81)90026-6.
  7. 1 2 ; Yeh, R.T.; Hamlet, R.G.; Gannon, J.D.; Basili, V.R. (June 1984). "Software Engineering Practices in the US and Japan". Computer. 17 (6): 57–66. doi:10.1109/MC.1984.1659162. S2CID   1557487 . Retrieved 2022-09-18.
  8. Basili, V.R.; ; McGarry, F.; Page, J.; Waligora, S.; Pajerski, R. (November 1995). "SEL's software process improvement program". IEEE Software. 12 (6): 83–87. doi:10.1109/52.469763 . Retrieved 2022-09-18.
  9. 1 2 Basili, V.R.; Carver, J.C.; Cruzes, D.; Hochstein, L.; Hollingsworth, J.K..; Shull, F.; (July 2008). "Understanding the High-Performance-Computing Community: A Software Engineer's Perspective" (PDF). IEEE Software. 25 (4): 29–36. doi:10.1109/MS.2008.103. S2CID   3731515 . Retrieved 2022-09-18.
  10. Zelkowitz, Marvin V. (ed.). "Advances in Computers". Elsevier . Retrieved 2022-09-19.
  11. "National Capital Area Skeptics" . Retrieved 2022-09-17.
  12. "Golden Core Recognition". IEEE Computer Society. 4 April 2018. Retrieved 2022-09-17.
  13. "IEEE Fellows Directory". IEEE . Retrieved 2022-09-17.
  14. "Distinguished Service Award". ACM SIGSOFT . Retrieved 2022-09-17.
  15. (1976). PL/I Programming with PLUM. Paladin House Publishers, Geneva, Ill.
  16. Gannon, J.D.; Purtilo, J.M.; (1994). Software Specifications: A comparison of formal methods. Ablex Publishing Co., Norwood, NJ. p. 249. Retrieved 2022-09-19.
  17. Pratt, T.; (1996). Programming Languages: Design and Implementation. Prentice Hall, Upper Saddle River, NJ. p. 669. ISBN   978-0-13-678012-0 . Retrieved 2022-09-19.
  18. Boehm, B.; Rombach, H.D.; , eds. (2005). Foundations of Empirical Software Engineering: The Legacy of Victor R .Basili. Springer Berlin Heidelberg New York. Retrieved 2022-09-19.
  19. (2020). The Golden Age of Computer Technology: Through the Eyes of an Aging Geek. p. 324. Retrieved 2022-09-19.
  20. (June 1971). "Interrupt Driven Programming". CACM . 14 (6): 417–418. doi: 10.1145/362604.362618 . hdl: 1813/5936 .
  21. ; Bail, William G. (January 1974). "Optimization of Structured Programs". Software: Practice and Experience. 4 (1): 51–57. doi:10.1002/spe.4380040106. S2CID   43233171.
  22. (June 1978). "Perspectives on software engineering". ACM Computing Surveys . 10 (12): 197–216. doi: 10.1145/356725.356731 .
  23. (December 1980). "A case study in rapid prototyping". Software: Practice and Experience. 10 (12): 1037–1042. doi:10.1002/spe.4380101209. S2CID   206507919.
  24. (November 1990). "A functional correctness model of program verification". IEEE Computer . 23 (11): 30–39. doi:10.1109/2.60878. S2CID   8408684.
  25. ; Cárdenas, Sergio (September 1991). "The role for executable specifications in system maintenance". Information Science. 57: 347–359. doi:10.1016/0020-0255(91)90086-A.
  26. Basili, V.; ; McGarry, F.; Page, J.; Waligora, S.; Pajerski, R. (August 1996). "SEL's software process-improvement program". IEEE Software . 12 (6): 83–87. doi:10.1109/52.469763.
  27. (August 1996). "Software engineering technology infusion within NASA". IEEE Transactions on Engineering Management. 43 (3): 250–261. doi:10.1109/17.511836.
  28. ; Wallace, D. (May 1998). "Experimental models for validating computer technology". IEEE Computer . 31 (5): 23–31. doi:10.1109/2.675630.
  29. ; Tesoriero, R. (September 1998). "A web-based tool for data analysis and presentation". IEEE Internet Computing . 2 (5): 63–69. doi:10.1109/4236.722232.
  30. Dangle, K.C.; Larsen, P.; Shaw, M.; (November 2005). "Software process improvement in small organizations: A case study". IEEE Software . 22 (6): 68–75. doi:10.1109/MS.2005.162. S2CID   8736088.