Software Component Relationships. Stephen H. Edwards. Department of Computer Science. Virginia Polytechnic Institute and State University

Size: px
Start display at page:

Download "Software Component Relationships. Stephen H. Edwards. Department of Computer Science. Virginia Polytechnic Institute and State University"

Transcription

1 Software Component Relationships Stephen H. Edwards Department of Computer Science Virginia Polytechnic Institute and State University 660 McBryde Hall Blacksburg, VA Tel: (540) David S. Gibson, Bruce W. Weide, and Sergey Zhupanov Department of Computer and Information Science The Ohio State University 2015 Neil Avenue Columbus, OH Tel: (614) Abstract Large complex software systems are composed of many software components. Construction and maintenance of component-based systems require a clear understanding of the dependencies between these components. To support reuse, components should be designed to minimize such dependencies. When component coupling is necessary, however, dependencies need to be expressed clearly and precisely. Most software analysis and design methodologies rely on relationships such as passes-data-to, calls, is-a-part-of, and inherits-from for this purpose. Our position is that component relationships such as these are not an eective way to convey important dependency information to implementors and maintainers working with reusable software components. Precisely-dened conceptual relationships are better suited to this task. Keywords: Software components, component relationships, software engineering, software reuse, behavioral substitutability Workshop Goals: Learning, feedback, networking Working Groups: (1) Rigorous Behavioral Specication as an Aid to Reuse, (2) Component Certication Tools, Frameworks and Processes, and (3) Object Technology, Architectures, and Domain Analysis: What's the Connection? Is There a Connection? Edwards- 1

2 1 Background As members of the Reusable Software Research Group (RSRG) at The Ohio State University, we have been exploring various aspects of software component engineering for over ten years. One recent focus of our research has been on the identication, formalization, and expression of dependency relationships between software components. Many of our ideas on software component relationships are based on the results of RSRG research which has been incorporated into the RESOLVE framework, language, and discipline for software component engineering [1]. Newer ideas and terminology for expressing these relationships are based on a formal model of software subsystems called ACTI, for \Abstract and Concrete Templates and Instances[2]. To demonstrate the application of our ideas on software component relationships, we have developed the RESOLVE/C++ and RESOLVE/Ada95 disciplines for software component engineering. Steve Edwards, Bruce Weide, and Sergey Zhupanov developed the RESOLVE/C++ discipline. David Gibson developed the RESOLVE/Ada95 discipline. These disciplines use the language mechanisms of C++ and Ada (as revised in 1995) to encode language-independent software component relationships. Bruce Weide is currently using the RESOLVE/C++ discipline in the introductory Computer Science course sequence at Ohio State. 2 Position Building software systems from reusable software components has long been a goal of software engineers. While other engineering disciplines successfully apply the reusable component approach to build physical systems, it has proven more dicult to apply in software engineering. A primary reason for this diculty is that distinct software components tend to be more tightly coupled with each other than most physical components. Furthermore, components are often designed with extremely subtle dependencies on other components are which are not explicitly described. These dependencies may signicantly complicate reasoning about program behavior[3]. Clearly some dependencies between software components are necessary and desirable. These dependencies need to be clearly expressed by component designers and well-understood by implementors and maintainers. The role of software component relationships is to express dependencies between components and, in doing so, to provide information about how components may and should be used in conjunction with other components. Our position is that the software component relationships used by most analysis and design methodologies are not well-suited for building and maintaining large complex systems and that there are more suitable alternatives. Commonly used component relationships suer from one or more of the following problems: they only describe particular component compositions, not what compositions are possible, they express vague meanings, which are of limited use, and they reect language-specic views of component composition rather than a conceptual view. Traditional techniques based on functional decomposition of systems have software \part" relationships depicted in notations such as data ow diagrams and structure charts. Relationships such as passes-data-to, calls, and is-a-part-of are common to these notations. These relationships may Edwards- 2

3 be useful for understanding how components of a particular system are related. However, they do not directly address how one might reuse individual components to build a new system or modify an existing system. That is, these notations do not describe the dependencies of a component independent of a particular use of that component. Object-oriented analysis, design, and programming methodologies usually rely heavily on the inherits-from component (class) relationship. Unlike those described above, this relationship can describe component dependencies independent of a specic component (class instance) usage. However, inherits-from typically fails to convey precise useful information about component dependencies. Even if the vague and varied meanings of inherits-from play a useful role during analysis and design, this relationship is much less useful when working with specic components during implementation and maintenance. Inheritance is a programming language mechanism that can be used to encode conceptual relationships between software components. Inheritance is not itself a conceptual relationship. Some people in the object-oriented community argue that inheritance should only be used to express the is-a relationship between two components. Unlike inherits-from, is-a is a conceptual relationship between components. However, the is-a relationship does not have a single precisely-dened meaning. Furthermore, even when formally dened in terms of behavioral substitutability, the is-a relationship generally does not convey specic design intent. For example, stating that component X is-a Y does not suggest any information about why X was designed to be substitutable for Y and thus how X might be used. To address the problems described above, component relationships should: concisely express dependencies describing possible component compositions, have precise meanings useful to clients, implementors, and maintainers, and reect a clear conceptual view of component-based software engineering. We have dened a small set of language-independent component relationships which satisfy these three criteria. Our relationships describe the dependencies between components at a conceptual level. The relationships provide implementers and maintainers precise information about how components may and should be used. Furthermore, they may be used to express specic design intent. In the remainder of this section, we briey introduce the component relationships: implements, uses, and extends. While we have dened several other useful component relationships, these are the most general and easiest to understand. The software component relationships we have dened relate components which may either be abstract (specications) or concrete (implementations) 1. An abstract component describes functional behavior what services a subsystem provides. A concrete component describes an implementation how a subsystem's services are provided. Having separate abstract and concrete components supports data abstraction, information hiding, multiple implementations, and self-contained descriptions of component behavior. The most fundamental component relationship upon which all others rely for meaning and utility is implements. Implements describes the key relationship between an implementation, a concrete 1 In addition to the abstract versus concrete dimension, components are either templates or instances. These two orthogonal dimensions give rise to four kinds of components: abstract templates, abstract instances, concrete templates, and concrete instances. While the relationships introduced in this paper only deal with the abstract versus concrete dimension, we have identied template-specic relationships. Edwards- 3

4 component, and a specication, an abstract component. dened informally as follows: The implements relationship may be Concrete component X implements abstract component Y if and only if X exhibits the behavior specied by Y. This is a fairly intuitive relationship between a specication and an implementation. However, a fully formal and general denition of the implements relationship is very intricate and has been the subject of much research. Implements expresses a dependency between two components in the following sense. If component X implements component Y, then X depends on Y to provide an abstract, client-level description of its behavior { a \cover story" hiding all implementation details. While justifying a claim that X implements Y may require signicant eort, especially if done formally, considerable leverage is gained from doing so. If two dierent concrete components both implement the same abstract component, then either of them may be used in a context requiring the functional behavior described by the abstract component. In this case, the two implementations are behaviorally substitutable with respect to the specication they both implement. The two implementations may dier in non-functional characteristics such as execution time, space requirements, cost, warranty, legal use restrictions, level of trust in correctness, and so forth. The implements relationship describes a dependency between an implementation and a specication. The uses relationship may describe a dependency that exists between two dierent abstractions. The relation name uses actually applies to three dierent yet closely related component relationships. Uses may describe a dependency between two implementations, between two speci- cations, or between an implementation and an specication. The last of these three relationships is dened as follows: Concrete component X uses abstract component Y behavior specied by Y. if and only if X depends on the This form of the uses relationship expresses a polymorphic relationship between implementations. Any component that implements abstract component Y may serve as the actual concrete component used by instances of component X. Thus, this form of uses reduces unnecessary dependencies between components. Note that none of the three uses relationships is equivalent to the is-a-partof relationship. If implementation X uses implementation Y, Y may or may not be a part of the data representation of X. The client wishing to use component X does not need to know Y 's specic role in X, just that component Y is required in order to use component X. A third component relationship is extends. The name extends applies to two dierent, yet closely related, component relationships. One extends expresses a dependency between two abstract components. The other expresses a dependency between two concrete components. Both extends relationships may be dened informally as follows: Component X extends component Y if and only if all of the interface and behavior described by Y is included in the interface and behavior described by X. This denition conveys the intuitive meaning of extends, that is, component X extends the interface and behavior of component Y. It implies the essential property of behavioral substitutability. If Edwards- 4

5 abstract component X extends abstract component Y, concrete component X1 implements X, and concrete component Y 1 implements Y, then X1 is behaviorally substitutable for Y 1 with respect to Y. Note that Y 1 is not behaviorally substitutable for X1 with respect to X in this case. Thus behavioral substitutability is a ternary relationship, not a binary equivalence relation. To some readers, the extends relationship may sound very much like an inheritance relationship. It is important to understand that extends is not an inheritance relationship. Extends describes a behavioral relationship between two components. Inherits-from does not. Furthermore, while inheritance may be a convenient programming language mechanism for expressing structural aspects of the extends relationship, extends may be encoded in programming languages without any use of inheritance. 3 Comparison Perhaps the most widely known work which includes denitions of software component relationships is that by Grady Booch, Ivar Jacobson, and James Rumbaugh on the Unied Modeling Language (UML). The UML includes software component relationships in the form of class relationships de- ned in Booch's method for object-oriented analysis and design [4]. Booch identies three basic kinds of class relationships: those expressing is-a relationships, those expressing is-a-part-of relationships, and association relationships which denote some semantic dependency between otherwise unrelated classes. The specic class relationships used by Booch include association, inheritance, aggregation, and using. The meanings of these relationships are largely inuenced by available programming language mechanisms (in particular, those of C++). Booch's association relationship is primarily useful for design and analysis of a particular application or composition of components. It does not convey information about what compositions are possible for a reusable component. Booch's use of the inheritance relationship is limited to expressing is-a relationships. However, his denition of is-a is not strict enough to imply behavioral substitutability with respect to some specication (as does implements). Thus the component relationships expressed as class relationships in the UML appear to suer from all of the problems described in the last section. Some object-oriented programming advocates such as Bertrand Meyer do not insist that inheritance only be used to express the conceptual is-a relationship. Meyer has described twelve dierent component relationships that may be expressed using inheritance, only one of which expresses the is-a relationship [5]. As with the UML's use of inheritance, Meyer's is-a use of inheritance is not dened precisely enough to imply behavioral substitutability. Some researchers have studied precisely dened class relationships which do imply behavioral substitutability of components [6, 7]. This research largely focuses on how the inheritance language mechanism can and should be used in a manner that supports reasoning about program behavior. Unlike our research, this work does not address conceptual component relationships from a language-independent perspective. References [1] M. Sitaraman and B. W. Weide, editors, \Special feature: Component-based software using RESOLVE," ACM SIGSOFT Software Engineering Notes, vol. 19, no. 4, pp. 21{67, Edwards- 5

6 [2] S. H. Edwards, A Formal Model of Software Subsystems. PhD thesis, The Department of Computer and Information Science, The Ohio State University, Columbus, Ohio, [3] B. W. Weide and J. E. Hollingsworth, \Scalability of reuse technology to larege systems requires local certiability," in Proceedings of the Fifth Annual Workshop on Software Reuse (L. Latour, ed.), Oct [4] G. Booch, Object-Oriented Analysis and Design With Applications. Menlo Park, CA: Benjamin/Cummings, 2nd ed., [5] B. Meyer, \The many faces of inheritance: A taxonomy of taxonomy," IEEE Computer, vol. 29, pp. 105{108, May [6] B. H. Liskov and J. M. Wing, \A behavioral notion of subtyping," ACM Transactions on Programming Languages and Systems, vol. 16, pp. 1811{1841, Nov [7] K. K. Dhara and G. T. Leavens, \Forcing behavioral subtyping through specication inheritance," in Proceedings of the 18th International Conference on Software Engineering, pp. 258{ 267, IEEE Computer Society Press, Mar Biography Stephen Edwards is a Visiting Assistant Professor in the Department of Computer Science at the Virginia Polytechnic Institute and State University. He received a B.S. in Electrical Engineering at the California Institute of Technology in 1988 and his M.S. and Ph.D in Computer and Information Science at The Ohio State University in 1992 and 1995, respectively. David Gibson is a Major in the United States Air Force and a Ph.D. candidate in the Department of Computer and Information Science at The Ohio State University. He received a B.S. in Physics and Computer Science from Duke University in 1983 and his M.S. in Computer and Information Sciences from Trinity University in San Antonio in Bruce Weide is a Professor of Computer and Information Science at The Ohio State University. He received a B.S. in Electrical Engineering from the University of Toledo in 1974 and a Ph.D. in Computer Science from Carnegie-Mellon University in He is a co-founder of the Reusable Software Research Group at The Ohio State University. Sergey Zhupanov is a Research Associate in the Department of Computer and Information Science at The Ohio State University. He received his B.S. and M.S in Computer and Information Science at The Ohio State University in 1994 and 1996, respectively. We gratefully acknowledge nancial support from the National Science Foundation (grant number CCR , DUE , and CDA ), the Advanced Research Projects Agency (contract number F C-0243, monitored by the USAF Materiel Command, Rome Laboratories, ARPA order number A714), and the Fund for the Improvement of Post-Secondary Education under project number P116B Any opinions, ndings, and conclusions or recommendations expressed in this paper are those of the authors and do not necessarily reect the views of the National Science Foundation, the Defense Advanced Research Projects Agency, or the U.S. Department of Education. Edwards- 6

Part V: Annotated Bibliography of RESOLVE Research

Part V: Annotated Bibliography of RESOLVE Research SOFTWARE ENGINEERING NOTES 19, 4 (OCT. 1994), 64-67. Part V: Annotated Bibliography of RESOLVE Research Stephen H. Edwards This brief annotated bibliography describes a select subset of the RESOLVE literature,

More information

A taxonomy of race. D. P. Helmbold, C. E. McDowell. September 28, University of California, Santa Cruz. Santa Cruz, CA

A taxonomy of race. D. P. Helmbold, C. E. McDowell. September 28, University of California, Santa Cruz. Santa Cruz, CA A taxonomy of race conditions. D. P. Helmbold, C. E. McDowell UCSC-CRL-94-34 September 28, 1994 Board of Studies in Computer and Information Sciences University of California, Santa Cruz Santa Cruz, CA

More information

Reuse Contracts As Component Interface. Descriptions. Koen De Hondt, Carine Lucas, and Patrick Steyaert. Programming Technology Lab

Reuse Contracts As Component Interface. Descriptions. Koen De Hondt, Carine Lucas, and Patrick Steyaert. Programming Technology Lab Reuse Contracts As Component Interface Descriptions Koen De Hondt, Carine Lucas, and Patrick Steyaert Programming Technology Lab Computer Science Department Vrije Universiteit Brussel Pleinlaan 2, B-1050

More information

Algorithms and Object-Oriented Programming: Bridging the Gap

Algorithms and Object-Oriented Programming: Bridging the Gap Algorithms and Object-Oriented Programming: Bridging the Gap Paolo Bucci, Wayne Heym, Timothy J. Long, Bruce W. Weide Department of Computer & Information Science The Ohio State University Columbus, Ohio,

More information

Judith N. Froscher. Charles N. Payne, Jr. Code Naval Research Laboratory. Washington, D.C. October 12, 1992

Judith N. Froscher. Charles N. Payne, Jr. Code Naval Research Laboratory. Washington, D.C. October 12, 1992 THE HANDBOOK FOR THE COMPUTER SECURITY CERTIFICATION OF TRUSTED SYSTEMS Judith N. Froscher Charles N. Payne, Jr. Code 5542 Naval Research Laboratory Washington, D.C. October 12, 1992 Abstract The Navy

More information

Bibliography. [Baldwin 01] Baldwin, D., Gries, D., Henderson, P., Marion, B., Schwartz, D. Panel:

Bibliography. [Baldwin 01] Baldwin, D., Gries, D., Henderson, P., Marion, B., Schwartz, D. Panel: Bibliography [Baber 97] Baber, R. L., The Ariane 5 Explosion: A Software Engineer s View, Technical Report, Computer Science, University of the Witwatersrand, South Africa, February 1997; http://www.cs.wits.ac.za/ariane5.htm.

More information

Keywords: Abstract Factory, Singleton, Factory Method, Prototype, Builder, Composite, Flyweight, Decorator.

Keywords: Abstract Factory, Singleton, Factory Method, Prototype, Builder, Composite, Flyweight, Decorator. Comparative Study In Utilization Of Creational And Structural Design Patterns In Solving Design Problems K.Wseem Abrar M.Tech., Student, Dept. of CSE, Amina Institute of Technology, Shamirpet, Hyderabad

More information

perspective, logic programs do have a notion of control ow, and the in terms of the central control ow the program embodies.

perspective, logic programs do have a notion of control ow, and the in terms of the central control ow the program embodies. Projections of Logic Programs Using Symbol Mappings Ashish Jain Department of Computer Engineering and Science Case Western Reserve University Cleveland, OH 44106 USA email: jain@ces.cwru.edu Abstract

More information

second_language research_teaching sla vivian_cook language_department idl

second_language research_teaching sla vivian_cook language_department idl Using Implicit Relevance Feedback in a Web Search Assistant Maria Fasli and Udo Kruschwitz Department of Computer Science, University of Essex, Wivenhoe Park, Colchester, CO4 3SQ, United Kingdom fmfasli

More information

A Comparison of the Booch Method and Shlaer-Mellor OOA/RD

A Comparison of the Booch Method and Shlaer-Mellor OOA/RD A Comparison of the Booch Method and Shlaer-Mellor OOA/RD Stephen J. Mellor Project Technology, Inc. 7400 N. Oracle Rd., Suite 365 Tucson Arizona 85704 520 544-2881 http://www.projtech.com 2 May 1993 The

More information

Object-Oriented Design

Object-Oriented Design Object-Oriented Design Lecturer: Raman Ramsin Lecture 15: Object-Oriented Principles 1 Open Closed Principle (OCP) Classes should be open for extension but closed for modification. OCP states that we should

More information

OBJECT-ORIENTED SOFTWARE DEVELOPMENT Using OBJECT MODELING TECHNIQUE (OMT)

OBJECT-ORIENTED SOFTWARE DEVELOPMENT Using OBJECT MODELING TECHNIQUE (OMT) OBJECT-ORIENTED SOFTWARE DEVELOPMENT Using OBJECT MODELING TECHNIQUE () Ahmed Hayajneh, May 2003 1 1 Introduction One of the most popular object-oriented development techniques today is the Object Modeling

More information

Components-First Approaches to CS1/CS2: Principles and Practice

Components-First Approaches to CS1/CS2: Principles and Practice Components-First Approaches to CS1/CS2: Principles and Practice Emily Howe, Matthew Thornton, and Bruce W. Weide Department of Computer and Information Science The Ohio State University Columbus, OH 43210

More information

Martin P. Robillard and Gail C. Murphy. University of British Columbia. November, 1999

Martin P. Robillard and Gail C. Murphy. University of British Columbia. November, 1999 Migrating a Static Analysis Tool to AspectJ TM Martin P. Robillard and Gail C. Murphy Department of Computer Science University of British Columbia 201-2366 Main Mall Vancouver BC Canada V6T 1Z4 fmrobilla,murphyg@cs.ubc.ca

More information

Lecture #2 on Object-Oriented Modeling

Lecture #2 on Object-Oriented Modeling Outline Lecture #2 on Object-Oriented Modeling Thierry Géraud EPITA Research and Development Laboratory (LRDE) 2006 Thierry Géraud Lecture #2 on Object-Oriented Modeling EPITA-LRDE 2006 1 / 38 Outline

More information

Automation of Semantic Web based Digital Library using Unified Modeling Language Minal Bhise 1 1

Automation of Semantic Web based Digital Library using Unified Modeling Language Minal Bhise 1 1 Automation of Semantic Web based Digital Library using Unified Modeling Language Minal Bhise 1 1 Dhirubhai Ambani Institute for Information and Communication Technology, Gandhinagar, Gujarat, India Email:

More information

Thunks (continued) Olivier Danvy, John Hatcli. Department of Computing and Information Sciences. Kansas State University. Manhattan, Kansas 66506, USA

Thunks (continued) Olivier Danvy, John Hatcli. Department of Computing and Information Sciences. Kansas State University. Manhattan, Kansas 66506, USA Thunks (continued) Olivier Danvy, John Hatcli Department of Computing and Information Sciences Kansas State University Manhattan, Kansas 66506, USA e-mail: (danvy, hatcli)@cis.ksu.edu Abstract: Call-by-name

More information

A Boolean Expression. Reachability Analysis or Bisimulation. Equation Solver. Boolean. equations.

A Boolean Expression. Reachability Analysis or Bisimulation. Equation Solver. Boolean. equations. A Framework for Embedded Real-time System Design? Jin-Young Choi 1, Hee-Hwan Kwak 2, and Insup Lee 2 1 Department of Computer Science and Engineering, Korea Univerity choi@formal.korea.ac.kr 2 Department

More information

Integrating UML and SOFL for Object-Oriented Design

Integrating UML and SOFL for Object-Oriented Design Integrating UML and SOFL for Object-Oriented Design Shaoying Liu Department of Computer Science Hosei University, Tokyo, Japan Email: sliu@k.hosei.ac.jp Abstract This paper presents a decompositional approach

More information

JBCDL: An Object-Oriented Component Description Language*

JBCDL: An Object-Oriented Component Description Language* JBCDL: An Object-Oriented Component Description Language* Wu Qiong, Chang Jichuan, Mei Hong, Yang Fuqing (Department of Computer Science & Technology, Peking University, Beijing 100871) Abstract This paper

More information

Introduction to Software Engineering. 5. Modeling Objects and Classes

Introduction to Software Engineering. 5. Modeling Objects and Classes Introduction to Software Engineering 5. Modeling Objects and Classes Roadmap > UML Overview > Classes, attributes and operations > UML Lines and Arrows > Parameterized Classes, Interfaces and Utilities

More information

KeyNote: Trust Management for Public-Key. 180 Park Avenue. Florham Park, NJ USA.

KeyNote: Trust Management for Public-Key. 180 Park Avenue. Florham Park, NJ USA. KeyNote: Trust Management for Public-Key Infrastructures Matt Blaze 1 Joan Feigenbaum 1 Angelos D. Keromytis 2 1 AT&T Labs { Research 180 Park Avenue Florham Park, NJ 07932 USA fmab,jfg@research.att.com

More information

Lecture 33 April 4, Unied Modelling Language. ECE155: Engineering Design with Embedded Systems Winter Patrick Lam version 1

Lecture 33 April 4, Unied Modelling Language. ECE155: Engineering Design with Embedded Systems Winter Patrick Lam version 1 ECE155: Engineering Design with Embedded Systems Winter 2013 Lecture 33 April 4, 2013 Patrick Lam version 1 Unied Modelling Language The Unied Modelling Language (UML) is a language for specifying and

More information

Visualization and Measurement of Source Code

Visualization and Measurement of Source Code 1 of 7 11/18/2002 11:34 AM Visualization and Measurement of Source Code James H. Cross II, Kai H. Chang, T. Dean Hendrix, and Richard O. Chapman Auburn University Patricia A. McQuaid California Polytechnic

More information

INFORMS 4th Conference on Information Systems and Technology. Generalizations as Data and Behavior Abstractions

INFORMS 4th Conference on Information Systems and Technology. Generalizations as Data and Behavior Abstractions INFORMS 4th Conference on Information Systems and Technology Generalizations as Data and Behavior Abstractions,..- Dale L. Lunsford The University of Southern Mississippi, College of Business Administration,

More information

Dewayne E. Perry. Abstract. An important ingredient in meeting today's market demands

Dewayne E. Perry. Abstract. An important ingredient in meeting today's market demands Maintaining Consistent, Minimal Congurations Dewayne E. Perry Software Production Research, Bell Laboratories 600 Mountain Avenue, Murray Hill, NJ 07974 USA dep@research.bell-labs.com Abstract. An important

More information

OBJECT-ORIENTED MODELING AND DESIGN. Introduction

OBJECT-ORIENTED MODELING AND DESIGN. Introduction OBJECT-ORIENTED MODELING AND DESIGN Introduction Contents: Introduction. Course Relevance Learning Outcomes Overview of the syllabus Introduction to Object Orientation Introduction Object Oriented Approach

More information

Teaching Object-Oriented Systems Analysis and Design with UML

Teaching Object-Oriented Systems Analysis and Design with UML Teaching Object-Oriented Systems Analysis and Design with UML Robert V. Stumpf rvstumpf@csupomona.edu Lavette C. Teague lcteague@csupomona.edu Computer Information Systems Department California State Polytechnic

More information

PC204. Lecture 5 Programming Methodologies. Copyright 2000 by Conrad Huang and the Regents of the University of California. All rights reserved.

PC204. Lecture 5 Programming Methodologies. Copyright 2000 by Conrad Huang and the Regents of the University of California. All rights reserved. PC204 Lecture 5 Programming Methodologies Copyright 2000 by Conrad Huang and the Regents of the University of California. All rights reserved. Programming Paradigms Software Engineering Exploratory Programming

More information

NOTES ON OBJECT-ORIENTED MODELING AND DESIGN

NOTES ON OBJECT-ORIENTED MODELING AND DESIGN NOTES ON OBJECT-ORIENTED MODELING AND DESIGN Stephen W. Clyde Brigham Young University Provo, UT 86402 Abstract: A review of the Object Modeling Technique (OMT) is presented. OMT is an object-oriented

More information

2 Addressing the Inheritance Anomaly One of the major issues in correctly connecting task communication mechanisms and the object-oriented paradigm is

2 Addressing the Inheritance Anomaly One of the major issues in correctly connecting task communication mechanisms and the object-oriented paradigm is Extendable, Dispatchable Task Communication Mechanisms Stephen Michell Maurya Software 29 Maurya Court Ottawa Ontario, Canada K1G 5S3 steve@maurya.on.ca Kristina Lundqvist Dept. of Computer Systems Uppsala

More information

An Approach to Software Component Specification

An Approach to Software Component Specification Page 1 of 5 An Approach to Software Component Specification Jun Han Peninsula School of Computing and Information Technology Monash University, Melbourne, Australia Abstract. Current models for software

More information

Design Pattern What is a Design Pattern? Design Pattern Elements. Almas Ansari Page 1

Design Pattern What is a Design Pattern? Design Pattern Elements. Almas Ansari Page 1 What is a Design Pattern? Each pattern Describes a problem which occurs over and over again in our environment,and then describes the core of the problem Novelists, playwrights and other writers rarely

More information

COMPOSABILITY, PROVABILITY, REUSABILITY (CPR) FOR SURVIVABILITY

COMPOSABILITY, PROVABILITY, REUSABILITY (CPR) FOR SURVIVABILITY AFRL-IF-RS-TR-2002-61 Final Technical Report April 2002 COMPOSABILITY, PROVABILITY, REUSABILITY (CPR) FOR SURVIVABILITY Kestrel Institute Sponsored by Defense Advanced Research Projects Agency DARPA Order

More information

Outline. Computer Science 331. Information Hiding. What This Lecture is About. Data Structures, Abstract Data Types, and Their Implementations

Outline. Computer Science 331. Information Hiding. What This Lecture is About. Data Structures, Abstract Data Types, and Their Implementations Outline Computer Science 331 Data Structures, Abstract Data Types, and Their Implementations Mike Jacobson 1 Overview 2 ADTs as Interfaces Department of Computer Science University of Calgary Lecture #8

More information

Introducing MESSIA: A Methodology of Developing Software Architectures Supporting Implementation Independence

Introducing MESSIA: A Methodology of Developing Software Architectures Supporting Implementation Independence Introducing MESSIA: A Methodology of Developing Software Architectures Supporting Implementation Independence Ratko Orlandic Department of Computer Science and Applied Math Illinois Institute of Technology

More information

Developing Expertise in Software Security: An Outsider's Perspective. Gary McGraw & Anup K. Ghosh. Abstract

Developing Expertise in Software Security: An Outsider's Perspective. Gary McGraw & Anup K. Ghosh. Abstract Developing Expertise in Software Security: An Outsider's Perspective Gary McGraw & Anup K. Ghosh Reliable Software Technologies Corporation 21515 Ridgetop Circle, Suite 250 Sterling, VA 20166 (703) 404-9293

More information

Part IV: RESOLVE Components in Ada and C++

Part IV: RESOLVE Components in Ada and C++ SOFTWARE ENGINEERING NOTES 19, 4 (OCT. 1994), 52-63. Part IV: RESOLVE Components in Ada and C++ Joseph E. Hollingsworth Sethu Sreerama Bruce W. Weide Sergey Zhupanov By observing a careful discipline you

More information

JOURNAL OF OBJECT TECHNOLOGY Online at Published by ETH Zurich, Chair of Software Engineering. JOT, 2002

JOURNAL OF OBJECT TECHNOLOGY Online at  Published by ETH Zurich, Chair of Software Engineering. JOT, 2002 JOURNAL OF OBJECT TECHNOLOGY Online at www.jot.fm. Published by ETH Zurich, Chair of Software Engineering. JOT, 2002 Vol. 1, No. 2, July-August 2002 Representing Design Patterns and Frameworks in UML Towards

More information

Capturing Design Expertise in Customized Software Architecture Design Environments

Capturing Design Expertise in Customized Software Architecture Design Environments Capturing Design Expertise in Customized Software Architecture Design Environments Robert T. Monroe School of Computer Science, Carnegie Mellon University, Pittsburgh, PA 15213 Abstract: Software architecture

More information

Programming Language Constructs as Basis for Software Architectures

Programming Language Constructs as Basis for Software Architectures Programming Language Constructs as Basis for Software Architectures 1 From individual parts to components In the 50s: Machine/Assembler programs: bound to specific hardware In the 60s-70s: Higher programming

More information

(b) extended UML state machine diagram. (a) UML state machine diagram. tr D2 tr D1 D2 D1 D2

(b) extended UML state machine diagram. (a) UML state machine diagram. tr D2 tr D1 D2 D1 D2 A Semantic Model for the State Machine in the Unied Modeling Language Kevin Compton 1, James Huggins 3, and Wuwei Shen 1? 1 EECS Department, University of Michigan 1301 Beal Avenue, Ann Arbor, MI 48109-2122

More information

Course 3 7 March

Course 3 7 March Course 3 7 March adiftene@info.uaic.ro 1 From Courses 1, 2 Modeling Modeling Languages Graphic Languages UML History UML Definition UML Diagram Types UML Use Case Diagram Actors Use Case UML Class Diagrams

More information

CISC 322 Software Architecture

CISC 322 Software Architecture CISC 322 Software Architecture UML - The Unified Modelling Language Nicolas Bettenburg 1 DEFINITION The Unified Modelling Language (UML) is a graphical language for visualizing, specifying, constructing,

More information

INTEGRATING DESIGN RATIONALE WITH A PROCESS MODEL

INTEGRATING DESIGN RATIONALE WITH A PROCESS MODEL INTEGRATING DESIGN RATIONALE WITH A PROCESS MODEL J. E. BURGE, D. C. BROWN AI in Research Group Department of Computer Science WPI, 100 Institute Road Worcester, MA 01609, USA Abstract. One goal for having

More information

H&A Engineering. Systems

H&A Engineering. Systems Introduction to Structured Methods The idea that system descriptions are more clear and easier with pictures rather than words provided the basis for the development of structured methods. Structured analysis

More information

Unit 1 Introduction to Software Engineering

Unit 1 Introduction to Software Engineering Unit 1 Introduction to Software Engineering João M. Fernandes Universidade do Minho Portugal Contents 1. Software Engineering 2. Software Requirements 3. Software Design 2/50 Software Engineering Engineering

More information

Automated Improvement for Component Reuse

Automated Improvement for Component Reuse Automated Improvement for Component Reuse Muthu Ramachandran School of Computing The Headingley Campus Leeds Metropolitan University LEEDS, UK m.ramachandran@leedsmet.ac.uk Abstract Software component

More information

ASPECT GENERATOR. Audit Trail WEAVER. Aspect Editor. Weaving Strategies Editor. Model Editor. Mapping. Instructions. Original Model (XMI)

ASPECT GENERATOR. Audit Trail WEAVER. Aspect Editor. Weaving Strategies Editor. Model Editor. Mapping. Instructions. Original Model (XMI) Tool Support for Aspect-Oriented Design Francois Mekerke 1, Geri Georg 2, Robert France 3, and Roger Alexander 3 1 Ecole Nationale Superieure des Etudes et Techniques d'armement, Brest, France mekerkfr@ensieta.fr

More information

Software Engineering from a

Software Engineering from a Software Engineering from a modeling perspective Robert B. France Dept. of Computer Science Colorado State University USA france@cs.colostate.edu Softwaredevelopment problems Little or no prior planning

More information

Software Engineering Fall 2015 (CSC 4350/6350) TR. 5:30 pm 7:15 pm. Rao Casturi 11/03/2015

Software Engineering Fall 2015 (CSC 4350/6350) TR. 5:30 pm 7:15 pm. Rao Casturi 11/03/2015 Software Engineering Fall 2015 (CSC 4350/6350) TR. 5:30 pm 7:15 pm Rao Casturi 11/03/2015 http://cs.gsu.edu/~ncasturi1 Object Design Software Engineering -CSC4350/6350 - Rao Casturi 2 Object Design Close

More information

A Comparison of Modelling Frameworks. Norwegian Institute of Technology, Trondheim, Norway. The close relationship between the elds is indicated by a

A Comparison of Modelling Frameworks. Norwegian Institute of Technology, Trondheim, Norway. The close relationship between the elds is indicated by a A Comparison of Modelling Frameworks for Software Processes and Information Systems Reidar Conradi, Geir Magne Hydalsvik, Guttorm Sindre, Norwegian Institute of Technology, Trondheim, Norway. Abstract.

More information

Unified Modeling Language

Unified Modeling Language Unified Modeling Language Modeling Applications using Language Mappings Programmer s Reference Manual How to use this Reference Card: The consists of a set of fundamental modeling elements which appear

More information

Comparative Analysis of Architectural Views Based on UML

Comparative Analysis of Architectural Views Based on UML Electronic Notes in Theoretical Computer Science 65 No. 4 (2002) URL: http://www.elsevier.nl/locate/entcs/volume65.html 12 pages Comparative Analysis of Architectural Views Based on UML Lyrene Fernandes

More information

CHAPTER 1. Topic: UML Overview. CHAPTER 1: Topic 1. Topic: UML Overview

CHAPTER 1. Topic: UML Overview. CHAPTER 1: Topic 1. Topic: UML Overview CHAPTER 1 Topic: UML Overview After studying this Chapter, students should be able to: Describe the goals of UML. Analyze the History of UML. Evaluate the use of UML in an area of interest. CHAPTER 1:

More information

Inheritance (Chapter 7)

Inheritance (Chapter 7) Inheritance (Chapter 7) Prof. Dr. Wolfgang Pree Department of Computer Science University of Salzburg cs.uni-salzburg.at Inheritance the soup of the day?! Inheritance combines three aspects: inheritance

More information

Object-Oriented Design

Object-Oriented Design Object-Oriented Design Department of Computer Engineering Lecture 12: Object-Oriented Principles Sharif University of Technology 1 Open Closed Principle (OCP) Classes should be open for extension but closed

More information

User Interface Modelling Based on the Graph Transformations of Conceptual Data Model

User Interface Modelling Based on the Graph Transformations of Conceptual Data Model User Interface Modelling Based on the Graph Transformations of Conceptual Data Model Martin Molhanec Department of e-technology, Faculty of Electrical Engineering Czech Technical University in Prague Technická

More information

Definition of Information Systems

Definition of Information Systems Information Systems Modeling To provide a foundation for the discussions throughout this book, this chapter begins by defining what is actually meant by the term information system. The focus is on model-driven

More information

Modeling Cooperative Behavior Using Cooperation Contracts. Peter Lang. Abstract

Modeling Cooperative Behavior Using Cooperation Contracts. Peter Lang. Abstract Modeling Cooperative Behavior Using Cooperation Contracts Michael Schre Department of Data & Knowledge Engineering University of Linz Altenbergerstr. 69, A-4040 Linz, Austria schre@dke.uni-linz.ac.at Gerti

More information

Steering. Stream. User Interface. Stream. Manager. Interaction Managers. Snapshot. Stream

Steering. Stream. User Interface. Stream. Manager. Interaction Managers. Snapshot. Stream Agent Roles in Snapshot Assembly Delbert Hart Dept. of Computer Science Washington University in St. Louis St. Louis, MO 63130 hart@cs.wustl.edu Eileen Kraemer Dept. of Computer Science University of Georgia

More information

SOFTWARE DESIGN COSC 4353 / Dr. Raj Singh

SOFTWARE DESIGN COSC 4353 / Dr. Raj Singh SOFTWARE DESIGN COSC 4353 / 6353 Dr. Raj Singh UML - History 2 The Unified Modeling Language (UML) is a general purpose modeling language designed to provide a standard way to visualize the design of a

More information

Object-Oriented Software Development Goal and Scope

Object-Oriented Software Development Goal and Scope Object-Oriented Software Development Goal and Scope Koichiro Ochimizu Japan Advanced Institute of Science and Technologies School of Information Science Scope and Goal Goal enable you to understand basic

More information

Teaching Encapsulation and Modularity in Object-Oriented Languages with Access Graphs

Teaching Encapsulation and Modularity in Object-Oriented Languages with Access Graphs Teaching Encapsulation and Modularity in Object-Oriented Languages with Access Graphs Gilles Ardourel, Marianne Huchard To cite this version: Gilles Ardourel, Marianne Huchard. Teaching Encapsulation and

More information

How and Why to Use the Unified Modeling Language. among software components, architectural-based

How and Why to Use the Unified Modeling Language. among software components, architectural-based This article addresses the Unified Modeling Language and its purpose, constructs, and application to defense software development applications. The Unified Modeling Language (UML) is a notation that can

More information

Construction of Application Generators Using Eli. Uwe Kastens, University of Paderborn, FRG. Abstract

Construction of Application Generators Using Eli. Uwe Kastens, University of Paderborn, FRG. Abstract Construction of Application Generators Using Eli Uwe Kastens, University of Paderborn, FRG Abstract Application generators are a powerful means for reuse of software design. They produce special purpose

More information

Lecture Notes UML UNIT-II. Subject: OOAD Semester: 8TH Course No: CSE-802

Lecture Notes UML UNIT-II. Subject: OOAD Semester: 8TH Course No: CSE-802 UNIT-II Lecture Notes On UML IMPORTANCE OF MODELING, BRIEF OVERVIEW OF OBJECT MODELING TECHNOLOGY (OMT) BY RAMBAUGH, BOOCH METHODOLOGY, USE CASE DRIVE APPROACH (OOSE) BY JACKOBSON. KHALID AMIN AKHOON 1

More information

2.0.3 attributes: A named property of a class that describes the range of values that the class or its instances (i.e., objects) may hold.

2.0.3 attributes: A named property of a class that describes the range of values that the class or its instances (i.e., objects) may hold. T0/04-023 revision 2 Date: September 06, 2005 To: T0 Committee (SCSI) From: George Penokie (IBM/Tivoli) Subject: SAM-4: Converting to UML part Overview The current SCSI architecture follows no particular

More information

Session 8: UML The Unified Modeling (or the Unstructured Muddling) language?

Session 8: UML The Unified Modeling (or the Unstructured Muddling) language? Session 8: UML The Unified Modeling (or the Unstructured Muddling) language? A few observations, opinions, pros & cons COMP 320 / 420 Spring, 2018 Mr. Weisert Where did the UML come from? Object-oriented

More information

2.0.3 attributes: A named property of a class that describes the range of values that the class or its instances (i.e., objects) may hold.

2.0.3 attributes: A named property of a class that describes the range of values that the class or its instances (i.e., objects) may hold. T0/06-6 revision 2 Date: May 22, 2006 To: T0 Committee (SCSI) From: George Penokie (IBM/Tivoli) Subject: SAM-4: Converting to UML part Overview The current SCSI architecture follows no particular documentation

More information

Extensible Realm Interfaces 1

Extensible Realm Interfaces 1 Extensible Realm Interfaces 1 UT-ADAGE-94-01 Don Batory Department of Computer Sciences The University of Texas Austin, Texas 78712 Abstract The synthesis of avionics software depends critically on components

More information

Two Image-Template Operations for Binary Image Processing. Hongchi Shi. Department of Computer Engineering and Computer Science

Two Image-Template Operations for Binary Image Processing. Hongchi Shi. Department of Computer Engineering and Computer Science Two Image-Template Operations for Binary Image Processing Hongchi Shi Department of Computer Engineering and Computer Science Engineering Building West, Room 331 University of Missouri - Columbia Columbia,

More information

For 100% Result Oriented IGNOU Coaching and Project Training Call CPD: ,

For 100% Result Oriented IGNOU Coaching and Project Training Call CPD: , Q.1 What is Object Orientation? Explain the concept of class, objects, instance, generalization, and associations. Ans :-- In the past, information systems used to be defined primarily by their functionality:

More information

Video Representation. Video Analysis

Video Representation. Video Analysis BROWSING AND RETRIEVING VIDEO CONTENT IN A UNIFIED FRAMEWORK Yong Rui, Thomas S. Huang and Sharad Mehrotra Beckman Institute for Advanced Science and Technology University of Illinois at Urbana-Champaign

More information

Using semantic causality graphs to validate MAS models

Using semantic causality graphs to validate MAS models Using semantic causality graphs to validate MAS models Guillermo Vigueras 1, Jorge J. Gómez 2, Juan A. Botía 1 and Juan Pavón 2 1 Facultad de Informática Universidad de Murcia Spain 2 Facultad de Informática

More information

A Conceptual Basis for Feature Engineering C. Reid Turner, 1 Alfonso Fuggetta, 2 Luigi Lavazza, 2 and Alexander L. Wolf 1 1 Department of Computer Sci

A Conceptual Basis for Feature Engineering C. Reid Turner, 1 Alfonso Fuggetta, 2 Luigi Lavazza, 2 and Alexander L. Wolf 1 1 Department of Computer Sci A Conceptual Basis for Feature Engineering C. Reid Turner, 1 Alfonso Fuggetta, 2 Luigi Lavazza, 2 and Alexander L. Wolf 1 1 Department of Computer Science 2 Dipartimento di Elettronica e Informazione University

More information

Formal Object Oriented Development of Software Systems using LOTOS.

Formal Object Oriented Development of Software Systems using LOTOS. See discussions, stats, and author profiles for this publication at: https://www.researchgate.net/publication/2628818 Formal Object Oriented Development of Software Systems using LOTOS. Article December

More information

Lecture 2 - Graph Theory Fundamentals - Reachability and Exploration 1

Lecture 2 - Graph Theory Fundamentals - Reachability and Exploration 1 CME 305: Discrete Mathematics and Algorithms Instructor: Professor Aaron Sidford (sidford@stanford.edu) January 11, 2018 Lecture 2 - Graph Theory Fundamentals - Reachability and Exploration 1 In this lecture

More information

Architectural Blueprint

Architectural Blueprint IMPORTANT NOTICE TO STUDENTS These slides are NOT to be used as a replacement for student notes. These slides are sometimes vague and incomplete on purpose to spark a class discussion Architectural Blueprint

More information

Object-Oriented Design

Object-Oriented Design Object-Oriented Design Lecture 14: Design Workflow Department of Computer Engineering Sharif University of Technology 1 UP iterations and workflow Workflows Requirements Analysis Phases Inception Elaboration

More information

SAMOS: an Active Object{Oriented Database System. Stella Gatziu, Klaus R. Dittrich. Database Technology Research Group

SAMOS: an Active Object{Oriented Database System. Stella Gatziu, Klaus R. Dittrich. Database Technology Research Group SAMOS: an Active Object{Oriented Database System Stella Gatziu, Klaus R. Dittrich Database Technology Research Group Institut fur Informatik, Universitat Zurich fgatziu, dittrichg@ifi.unizh.ch to appear

More information

Modellistica Medica. Maria Grazia Pia, INFN Genova. Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico

Modellistica Medica. Maria Grazia Pia, INFN Genova. Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico Modellistica Medica Maria Grazia Pia INFN Genova Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico 2002-2003 Lezione 6 UML Introduction Structural diagrams Basics What is? Please explain

More information

Chapter 4. Fundamental Concepts and Models

Chapter 4. Fundamental Concepts and Models Chapter 4. Fundamental Concepts and Models 4.1 Roles and Boundaries 4.2 Cloud Characteristics 4.3 Cloud Delivery Models 4.4 Cloud Deployment Models The upcoming sections cover introductory topic areas

More information

Stackable Layers: An Object-Oriented Approach to. Distributed File System Architecture. Department of Computer Science

Stackable Layers: An Object-Oriented Approach to. Distributed File System Architecture. Department of Computer Science Stackable Layers: An Object-Oriented Approach to Distributed File System Architecture Thomas W. Page Jr., Gerald J. Popek y, Richard G. Guy Department of Computer Science University of California Los Angeles

More information

Correctness Algorithms

Correctness Algorithms Ben-Gurion University of the Negev Faculty of Natural Sciences Department of Computer Science Metric-Driven Approach to Benchmarking Model Correctness Algorithms by Victor Makarenkov Supervised by: Prof.

More information

Automatic Code Generation for Non-Functional Aspects in the CORBALC Component Model

Automatic Code Generation for Non-Functional Aspects in the CORBALC Component Model Automatic Code Generation for Non-Functional Aspects in the CORBALC Component Model Diego Sevilla 1, José M. García 1, Antonio Gómez 2 1 Department of Computer Engineering 2 Department of Information and

More information

CSC Advanced Object Oriented Programming, Spring Overview

CSC Advanced Object Oriented Programming, Spring Overview CSC 520 - Advanced Object Oriented Programming, Spring 2018 Overview Brief History 1960: Simula first object oriented language developed by researchers at the Norwegian Computing Center. 1970: Alan Kay

More information

Centre for Parallel Computing, University of Westminster, London, W1M 8JS

Centre for Parallel Computing, University of Westminster, London, W1M 8JS Graphical Construction of Parallel Programs G. R. Ribeiro Justo Centre for Parallel Computing, University of Westminster, London, WM 8JS e-mail: justog@wmin.ac.uk, Abstract Parallel programming is not

More information

Object-Oriented Analysis and Design

Object-Oriented Analysis and Design 0. Object Orientation: An Subject/Topic/Focus: over this lecture Summary: Lecturer, lecture, rooms, assistants, lab classes, credit points... Need for systems analysis and software engineers Literature

More information

Welcome to Design Patterns! For syllabus, course specifics, assignments, etc., please see Canvas

Welcome to Design Patterns! For syllabus, course specifics, assignments, etc., please see Canvas Welcome to Design Patterns! For syllabus, course specifics, assignments, etc., please see Canvas What is this class about? While this class is called Design Patterns, there are many other items of critical

More information

Object-Oriented Concepts and Design Principles

Object-Oriented Concepts and Design Principles Object-Oriented Concepts and Design Principles Signature Specifying an object operation or method involves declaring its name, the objects it takes as parameters and its return value. Known as an operation

More information

Programming Language Constructs as Basis for Software Architectures. Stefan Resmerita, WS2015

Programming Language Constructs as Basis for Software Architectures. Stefan Resmerita, WS2015 Programming Language Constructs as Basis for Software Architectures 1 From individual parts to components In the 50s: Machine/Assembler programs: bound to specific hardware In the 60s-70s: Higher programming

More information

Pattern-Oriented Development with Rational Rose

Pattern-Oriented Development with Rational Rose Pattern-Oriented Development with Rational Rose Professor Peter Forbrig, Department of Computer Science, University of Rostock, Germany; Dr. Ralf Laemmel, Department of Information Management and Software

More information

A STUDY OF OBJECT ORIENTED ANALYSIS AND DESIGN

A STUDY OF OBJECT ORIENTED ANALYSIS AND DESIGN A STUDY OF OBJECT ORIENTED ANALYSIS AND DESIGN GARJE RAKESH RAMESHRAO RESEARCH SCHOLAR, DEPT. OF COMPUTER SCIENCE CMJ UNIVERSITY, SHILLONG, MEGHALAYA INTRODUCTION Object-oriented Analysis and Design is

More information

Ontology Development. Qing He

Ontology Development. Qing He A tutorial report for SENG 609.22 Agent Based Software Engineering Course Instructor: Dr. Behrouz H. Far Ontology Development Qing He 1 Why develop an ontology? In recent years the development of ontologies

More information

2.0.3 attributes: A named property of a class that describes the range of values that the class or its instances (i.e., objects) may hold.

2.0.3 attributes: A named property of a class that describes the range of values that the class or its instances (i.e., objects) may hold. T0/06-6 revision 0 Date: March 0, 2006 To: T0 Committee (SCSI) From: George Penokie (IBM/Tivoli) Subject: SAM-4: Converting to UML part Overview The current SCSI architecture follows no particular documentation

More information

University of Maryland. fzzj, basili, Empirical studies (Desurvire, 1994) (Jeries, Miller, USABILITY INSPECTION

University of Maryland. fzzj, basili, Empirical studies (Desurvire, 1994) (Jeries, Miller, USABILITY INSPECTION AN EMPIRICAL STUDY OF PERSPECTIVE-BASED USABILITY INSPECTION Zhijun Zhang, Victor Basili, and Ben Shneiderman Department of Computer Science University of Maryland College Park, MD 20742, USA fzzj, basili,

More information

Multi-Paradigm Approach for Teaching Programming

Multi-Paradigm Approach for Teaching Programming Multi-Paradigm Approach for Teaching Laxmi P Gewali* and John T Minor School of Computer Science University of Nevada, Las Vegas 4505 Maryland Parkway, Las Vegas Nevada 89154 Abstract: Selecting an appropriate

More information

CS487 Midterm Exam Summer 2005

CS487 Midterm Exam Summer 2005 1. (4 Points) How does software differ from the artifacts produced by other engineering disciplines? 2. (10 Points) The waterfall model is appropriate for projects with what Characteristics? Page 1 of

More information

Design Process Ontology Approach Proposal

Design Process Ontology Approach Proposal Design Process Ontology Approach Proposal Grzegorz J. Nalepa 1 and Weronika T. Furma«ska 1 Institute of Automatics, AGH University of Science and Technology, Al. Mickiewicza 30, 30-059 Kraków, Poland gjn@agh.edu.pl,

More information