A New Approach to Object Oriented Simulation of Concurrent Systems

合集下载

Explicit Relationships in Object Oriented Development

Explicit Relationships in Object Oriented Development

1 Introduction
Seamlessness is one of the most important bene ts of object orientation (Henderson-Sellers 1994). In an object oriented system development lifecycle, the same conceptual model (the object model) is used to organise the analysis of a problem, the design of a solution, and the implementation of a running program. Seam-
James Noble
John Grundy
Abstract
Traditional object oriented analysis methodologies are based not only upon objects, but also upon relationships between objects. Object oriented programming languages do not provide support for relationships, and so analysis relationships must be expressed indirectly within a program's design, and then incorporated into implementations of other objects in a program's code. By using explicit relationships in design and implementation, analysis relationships can be expressed directly within a program's code. Programs which use explicit relationships are often smaller and easier to comprehend than traditional OO programs, and are generally quicker to write and easier to mainemented directly in an object oriented language. In this way, analysis relationships (as well analysis objects) can be seamlessly traced through design into objects in the implemented program. This paper is centred around a case study | the implementation of a simple invoicing system. Section 2 describes the system's requirements, using generally accepted techniques of object oriented analysis. Section 3 describes how standard object oriented design and implementation can be used to implement the invoicing system based upon this analysis, and shows that although these techniques preserve the objects identi ed in analysis, they do not preserve the relationships between objects. Section 4 then applies our alternative design approach to the same invoicing system, and shows how this approach maintains analysis relationships through design to implementation. Section 5 compares this explicit relationship approach to design with the standard object oriented approach. Section 6 discusses related work, and Section 7 presents our conclusions.

An object-oriented framework for creating offerings

An object-oriented framework for creating offerings

An object-oriented framework for creating offeringsR. L. Milidiú, C. J. Lucena, J. A. R. P. SardinhaTecComm Group, Software Engineering Laboratory (LES)Computer Science Department, Pontifical University Catholic of Rio de Janeiro, Brazil Rua Marquês de São Vicente, 225, 22.453-900 Rio de Janeiro, Brazil,e-mail: {milidiu, lucena, sardinha}@inf.puc-rio.brAbstractMany benefits can be obtained with the union of consumers into consumer groups. Reduced prices, gifts, auto-financing, and time-sharing are some of the usual benefits. One of the main goals of the object-oriented framework VGroups is to discover the most appealing offerings for consumers who want to participate in a consumer group transaction. An online retailer is able to create marketing campaigns more efficiently with the framework VGroups. An instantiated application called uses some data mining techniques and evolutionary software agents to build a tool that automatically generates offerings. This tool turns out to be very useful, since it is able to select the best offerings to the future consumer groups.Keywords: Object-oriented frameworks, e-commerce, consumer groups, evolutionary software agents1. IntroductionE-commerce applications have introduced a new paradigm in the way companies are making business. An important aspect about e-commerce is that every transaction done is also digitally stored. This opens a great opportunity for marketing. The millions of transactions that are saved in databases, together with some relevant information about customers, can be converted into extremely important information for decision-making persons in an organization. Based on this information they can improve the efficiency of their companies' marketing campaigns.The object-oriented framework [1] VGroups[2] uses the transaction history and customer information to help create consumer groups for marketing campaign purposes. In this paper, we will illustrate the methodology involved and present an application that creates offerings to specific consumer groups. We use target marketing [3] and software agents [4] [5] to build a tool that automatically selects the best offerings for the target consumer group.Target marketing is conceptually based on the construction of personalized offerings for specific market segments. These market segments are groups of consumers that share common characteristics, such as people who live in a same neighborhood, or even persons that share the same consumption patterns and have similar lifestyle. Market segmentation [3] is the process of dividing a market into several segments. After applying market segmentation, a retailer must decide which market segments he is willing to offer services and goods. Usually, this decision is based on the profitability that the retailer can obtain with the chosen segments.Multi-Agent Systems [4] [5] is a new technology that has been recently used in many simulators and intelligent systems that help humans on several tasks. To achieve the system’s goal, agents have to react to events, define strategies, interact, and participate in organizations. Recently, software agents have been used in e-Commerce applications for negotiation purposes [6] [7] and we believe that they can also be used to simulate marketplaces. The simulation can help predict many properties related to consumers and their consumption patterns.2. The framework VGroupsThe main goal of the object-oriented framework VGroups is to create instantiated applications that encourage consumers to form groups and buy personalized offerings. The union of these consumers give them power toobtain benefits that would never be achieved by a consumer on his own, such as: reduced prices; gifts; auto-financing; and time-sharing.The framework has been divided into two subsystems. One is in charge of creating customized offerings, and another creates organizations to encourage people to perform a consumer group transaction.In this paper, we explore only the Offering Creation Subsystem. The main goal of this subsystem is to detect the most appealing offerings for the potential consumer groups. In order to do this, we use software agents, market segmentation and detection of consumption patterns based solely on transactions history and consumer records.3. The Offering Creation SubsystemThe process of offering creation is the same as predicting what kind of products the consumers are willing to buy in the future. As our prediction tool, we use a multi-agent system that simulates a marketplace and its consumption patterns.In our system, the sellers of offerings are modeled as software agents. Their goal is to sell the most possible amount of offerings to consumer groups in the marketplace. On the other hand, consumer groups have been modeled as objects and provide a service that is capable of deciding how many persons and total revenue can be obtained by an offering. Therefore, software agents use this service to obtain information of how many consumers would buy the offering.However, to simulate the decision process of a consumer group, a marketing model has to be developed. This marketing model needs specific data and information. In a digital context, these knowledge pieces are usually obtained through data mining techniques. In our system, a consumer group is considered as a partition of a market segment and every property that can be found for this segment also applies to the consumer group.Therefore, market segmentation needs to be done in order to discover the key properties of each segment. We use clustering algorithms in our framework to detect market segments and stereotypical consumption patterns. To obtain additional information about every encountered segment, we perform some extra queries.The object-oriented framework hot spots [1] of this subsystem are: (1) The segmentation algorithm and the results obtained - different algorithms and diverse data models can produce varied results; (2) Information about the goods that will make up the offerings - a good specification depends on the business a seller is participating; (3) The agent and consumer group in the simulator - this has been made flexible so that different simulators can be constructed.4. The applicationThis instantiated application implements the concepts described in the offering creation subsystem. Our first step involves the use of a clustering algorithm for the segmentation process. The chosen algorithm is Isodata[8][9], a very simple and quick implementation ofa clustering algorithm. The result obtained is a group of segments, also known as clusters, and the characteristics of each segment.We use some queries to obtain the following additional information for each segment: number of consumers; total number of transactions; total revenue; distribution of revenue per product class; Minimum dollar amount; Maximum dollar amount. The Minimum (Maimum) dollar amount is the minimum (maximum) price of product class in which all (no) consumers in this segment would be willing to buy it.The construction of offerings can be considered as an optimization problem. The aim of this problem is to find out the best group of offerings that maximize total return. Our heuristic is to search for the ones that maximize their own fitness (revenue; profit; etc.). Hence, we would like to have an algorithm capable of finding not only the global maximum but several local maxima too.Figure 1 - The agent's state machineTherefore, we design the agents in our marketplace simulator such that they are capable to discover these offerings, sell them to the consumer groups and maximize the revenue obtained. We use evolutionary agents in our application. These agents are inspired by natural evolution [10]. Only the agents with the best fitness (the same as the offering) survive in the system. The state machine of each agent is in the figure 1.For every generation that the agent survives, the first state corresponds to reproduction. In this state, an agent swaps products with another agent to create a new offering and an agent offspring. The second state corresponds to mutation, and the new offspring has the same products as his creator but with different characteristics (for example, price). In the third state, the agent tries to sell the offering to a target-consumer group and receives energy equivalent to the amount of revenue obtained. If the agent doesn't have enough energy to survive to the next generation (one of the initial parameters of this system), the agent is auto-eliminated. Otherwise, the agent survives for another generation, and undergoes all the states again. If an agent is able to achieve a certain energy threshold (initial parameter), this agent and his corresponding offering earn "eternal life". When the agent reaches this state, it stops undergoing states changes involved in the generation. Instead, it only stays in the system for reproduction purposes. In this way, the system can use these "eternal life" agents to produce even better offerings for the consumer groups.The multi-agent system typically undergoes through the stages described in the graph in figure 2. In the first stage, the energy is abundant and the consumer groups are greedy to obtain offerings from the agents. This causes an initial steep slope in the curve that corresponds to the offerings that have been bought by the consumer groups. In the second stage, there isn't much energy in the system, which forces the agents to evolve and produce better offerings for the consumer groups. In the third stage, the agents have passed through evolution and now possess better offerings. The agents use their offerings to compete for the energy left in the consumer groups. When the residual energy in all the objects is too small, evolution is stopped. Agents that survive until the last generation, output their offerings.Figure 2 - The system's evolution5. Final CommentsUsing multi-agent system is a good strategy to simulate markets and obtain interesting characteristics from them. In our application, we use the natural evolution paradigm to obtain a list of offerings that can be sold to consumer groups in the future. This technique works very well, but the quality of results is sensitive to: (1) The data mining process - an incorrect information can lead to a very bad simulation in the multi-agent system;(2) The marketing model used in the consumer group object - if the object is not capable of predicting consumer decisions, the multi-agent system will produce inappropriate results.The system's evolution graph should have a smooth slope in the first stage. The greedy behavior can be diminished if the consumer group objects are able to analyze a group of offerings before deciding which one to buy. An alternative is to use also agents to represent the consumer groups. This is easily incorporated into VGroups.References[1] M. Fayad, D. Schmidt. Building Application Frameworks: Object-Oriented Foundations of Design. First Edition, John Wiley & Sons, 1999.[2] Sardinha, J. A. R. P. VGroups – Um framework para grupos virtuais de consumo. Master's dissertation – Departamento de Informática – PUC-Rio. Mar/2001.[3] Kotler, P. Kotler on marketing: how to create, win, and dominate markets. The Free Press, 1999.[4] Weiss, G. Multiagent systems: a modern approach to distributed artificial intelligence. The MIT Press, Second printing, 2000.[5] Ferber, J. Multi-Agent Systems : An Introduction to Distributed Artificial Intelligence. Addison-Wesley Pub Co, 1999.[6] Ripper, P.; Fontoura, M. F.; Neto, A. M.; Lucena, C. J. V-Market: A Framework for e-Commerce Agent Systems. World Wide Web, Baltzer Science Publishers, 3(1), 2000.[7] Maia, A. CommercePipe: Um Framework para criação de Canais Comerciais Consumer to Business na Internet. Dissertação de Mestrado, Departamento de Informática, PUC-Rio, 1999.[8] Richard O. Duda, Peter E. Hart. Pattern Classification and Scene Analysis. John Wiley & Sons, 1973.[9] L. Lebart, A. Morineau, M. Piron. Statistique exploratoire multidinensionnelle. Dunod, Paris, 1997.[10] Winston, P.H. Artificial Intelligence. Addison Wesley, 1992.。

ObjectOriented

ObjectOriented

Object design
.10
UML (Unified Modelling Language)
A standard object-oriented modelling language Expected to become an industry standard
Extends and unifies the approaches and notations proposed by 3 experts: Grady Booch, James Rumbaugh, and Ivar Jacobson
.2
Object-oriented development
An object is a thing (tangible or a concept) that has a well-defined role in the application domain It has an identity, state and behaviour and is something to which actions are directed Its state encompasses its properties (attributes and relationships) and their values Its behaviour is how it acts and reacts
System design: overall system architecture, subsystems (the context for physical design decisions) Object design: add design detail e.g. internal data structures and algorithms, efficiency tuning, control, associations, module packaging

Object-Oriented Analysis and Design

Object-Oriented Analysis and Design
– Books and journals - Several copies of a given book. - Short-term loans. - Long-term week loans. - Only staff members can borrow journals. - An individual can borrow up to 6 books at a time. - Staff can borrow up to 12 books at a time. – Searching – Borrowing • Track when books are borrowed and returned. • Issue reminders. • Possible future requirement for loan-extension functionality.

Software products may be
– – Generic - developed to be sold to a range of different customers: • PC software such as Excel or Word. Bespoke (custom) - developed for a single customer according to their specification.
– The system is planned to support only books and journals. Addition of CDs implies changes to the design (and code).
Mira Balaban and Arnon Sturm Object-Oriented Analysis and Design

Coad's Object-Oriented Analysis

Coad's Object-Oriented Analysis

VII. Implementation & Evaluation On-going Maintenance Phase
OOAD only affects phase III, IV, and V. The other phases remain the same.
© 1995 John Mylopoulos
© 1995 John Mylopoulos
Object-Oriented Analysis -- 9
s
s
Phase V: Develop and Document
s
s
s s s
The system is implemented on the basis of the design specification. Analyst works with programmers to develop any original software needed Analyst uses structured techniques (pseudo code, flowcharts,…) to communicate with the programmers Programming of the system is carried out Program testing is carried out Procedures, system manuals, software specifications and documentation are completed
Object-Oriented Analysis -- 14
Five Layers to OOA
s s s s s
Class/Object Layer Structure Layer Service Layer Attribute Layer Subject Layer

What is the “Object” in Object-oriented Programming 1

What is the “Object” in Object-oriented Programming 1

What is the“Object”in Object-oriented Programming?1O.M.NierstraszAbstractObject-oriented programming has become quite widespread in recent years,although there arefew guidelines to help us distinguish when a system is“truly”object-oriented or not.In thispaper we discuss what have emerged as the main concepts in the object-oriented approach,andwe attempt to motivate these concepts in terms of how they aid in software development.R´e sum´eBien que la programmation-objet soit devenue assez courante ces derni`e res ann´e es,il n’existeque peu de r`e gles qui nous permettent de savoir si un syst`e me est v´e ritablement orient´e objetou pas.Le pr´e sent article expose les concepts principaux associ´e s`a l’approche orient´e e objet,qu’il tente de justifier en mettant en exergue leur rˆo le dans le d´e veloppement d’applicationslogicielles.1IntroductionThere is much confusion about the term“object-oriented”,which it appears can be applied to anything from an operating system to an interface for a text editor.Although there are a number of things the term normally brings to mind,there is no clear way of telling whether system A is “really”object-oriented,and system B is not.In this paper we will discuss a number of object-oriented“concepts”,and put forward the hypothesis that object-orientation is an approach rather than a specific set of language constructs. In fact,one can probably use an arbitrary programming language and still write in an object-oriented style.However,object-oriented programming languages do exist with built-in constructs that support(or enforce)this style of programming.The principle that is fundamental to the object-oriented approach is encapsulation,or more precisely,data abstraction:an“object”packages an entity(data)and the operations that apply to it.In its most basic form we may have a module of a program consisting of a number of static variables together with the set of procedures that are used to manipulate the variables.In general, those variables are“private”:the object is defined by its behaviour,not its representation.So if I have an object called“Jaguar”,I do not change its colour by modifying its“colour”variable,but by executing an operation such as“paint”.The notion of data abstraction is especially useful if one can apply it to multiple instances of an object“type”.A language like Fortran provides afixed set of data types,such as integers and real numbers,each of which supports a number of operations(addition,subtraction...).Languages like C and Pascal support the construction of programmer-defined types,one cannot define new type-specific operations.Object-oriented languages enable the programmer to create his(or her) own object types.Each object is then an instance of some type,and supports the operations(called 1In Proceedings of the CERN School of Computing,CERN87-04,pp.43-53,Renesse,The Netherlands,Aug. 31-Sept.13,1986.2What is the“Object”in Object-oriented Programming? methods)that are defined for that type.(The word“class”is often used interchangeably with the word“type”when talking about objects,however,it is more precise to think of an object class as the set of instances of an object type.)Object“independence”is the notion that each object is ultimately responsible for itself.Objects can only be manipulated via their methods.Supporting this idea of object independence is a model for object communication which replaces the notion of operating on objects with that of passing messages to them.Every method invocation is seen as a message requesting the object to perform some action.The method is(conceptually) not performed by the caller,but by the object receiving the message.It follows,then,that the recipient of such a message is,in some sense,free to refuse the request,or choose from a variety of possible implementations of the method.Classes of objects may not be disjoint.Object types may form a hierarchy in which a subtype “inherits”the methods of one or more parent types.The implementation of the subtype’s methods may or may not be inherited from the parent.In fact,one may even have multiple implementations of a single type which only share their interface.By properly organizing such a type hierarchy,one may concentrate on the similarities between objects rather than on their differences.Fully object-oriented systems have a strong degree of homogeneity.This means that everything is an object.One does not distinguish between,say,programs and processes andfiles and objects –one only has objects,and objects are both active(like processes)and persistent(likefiles).In particular,the object types(or,more precisely,the type specifications)are objects of the type called“type”.A natural step to take is to map objects to an“actor”model of computation.Simply put, an actor is a cheap,persistent,message-passing process.(The actor formalism as described in [11]is more rigorous,however this simple definition suffices for our purposes.)An actor must be inexpensive because we would like to be able to easily create and destroy them.If there is a one-to-one mapping between actors and objects,then it is clear that we may have many more actors than there are processes in a traditional multiprocessing environment,though at any one time only a few actors will actually be doing anything.The message-passing paradigm supports the notion of actors communicating with one another whether they are running on the same machine or not. If we consider objects to be active entities running“on top of”actors,then we see that the object-oriented approach also provides us with an easy way to understand concurrency,and applications running on a network of machines.At the same time,we note that there are several object-oriented languages and environments that do not support the notion of concurrently executing objects.The main object-oriented concepts,then,are:1.Data abstraction.2.Independence.3.Message-passing paradigm.4.Inheritance.5.Homogeneity.6.Concurrency(some systems).O.M.Nierstrasz3 We shall elaborate on each of these concepts in turn,and attempt to explain their importance. 2Data abstraction.By far the most important concept in the object-oriented approach is data abstraction.By this we mean that we are interested in the behaviour of an object rather than in its representation.Every object has a clearly defined interface which is independent of the object’s internal representation. The interface is a collection of operations,or“methods”,which may be invoked by another object.Furthermore,one may have many instances of an object type.The programmer is not restricted to afixed set of types,but is free to add new types as required.This capabilityfirst appeared in the programming language“Simula”[3],a simulation language in which the programmer was able to define his own“classes”of objects(i.e.,corresponding to the real objects one wished to model).A type definition looks very much like a module:there are a collection of permanent variables that encode the“state”of the object,and a set of methods that use and change that state.A module,however,only defines a single instance,whereas one may have many instances of a new type.In order to make use of an instance of that type,one only needs to know what the interface is, namely,the names of the methods,and the types of the input and output parameters.(Naturally some specification of the semantics of the methods is also required.)The most immediate benefit of this approach is that the programmer is free to use higher levels of abstraction as appropriate.(I.e.,at each level of abstraction one concentrates on that level’s functionality,while hiding the lower-level details of implementation.)One is encouraged to decompose a programming problem into a collection of cooperating objects of varying levels of complexity.The separation of interface and implementation of a new type means that types are,to some extent,representation-independent.This makes it easier to experiment with different implementa-tions of an object type,and increases the portability of software.It is,however,crucial to design an interface very carefully,since that is the part of an object type that remains stable across different implementations.A language that allows programmers to define their own types is a natural candidate for strong typing.Type-checking is done as soon as possible,usually at compile-time.(Sometimes one does not know at compile-time what kinds of objects will be manipulated,so one must do explicit type-checking at run-time;for example,a mailbox object may hold various types of mail objects.) In an object-oriented language,one is typically allowed to use the same method names for a variety of different object types.This is called“overloading”,or polymorphism.For example,one may wish to define addition for complex numbers,and use the symbol“+”as the method name, even though it is already defined for integers.The type of the object to which such a method applies is,in a sense,an implicit argument to the method.Without overloading,one would be forced to define the methods“complex add”,“integer add”,and so on.Overloading allows for more readable code.If used in an undisciplined fashion,however,overloading can have quite the opposite effect.(As a grotesque example,consider the use of the symbol“+”as the method name for complex subtraction.)Well-designed objects are typically applicable in a number of situations.One can therefore expect in an object-oriented environment that most of the object types one defines can be re-used,4What is the“Object”in Object-oriented Programming? or,conversely,that when putting together an application,one canfind many of the parts one needs already available as pre-defined object types.3Independence.There are several notions of independence displayed by objects.The most fundamental is that objects have control over their own state.An object’s methods are the only interface to its state. Since this is not always guaranteed in languages that enable programmers to add new data types, it is worth emphasizing.Clearly,if one has access to the internal representation of an object,then one loses the property that the implementation is independent of the interface.Objects also have control over their own existence.Once created,an object will continue to exist(or persist)even if its creator dies.Persistent objects eliminate the need for“files”.One need not be concerned as a programmer with the location of an object in main memory or secondary memory.Ideally,dormant objects automatically“migrate”to passive memory.Garbage collection, however,is compatible with this notion,since an object that is neither active nor accessible is effectively dead already.Another form of independence is the ability to add new object types at run-time.This is crucial if the object-oriented environment is also the development environment.Otherwise the addition of new types must take place“outside”.If new types are to be added dynamically,then old objects must be capable to talking to instances of the newly-created types.(Compile-time type-checking is clearly not possible for those objects that will talk to objects of types that do not exist yet.)4Message-passing paradigm.Independence of objects is supported conceptually by using message-passing as a model for object communication.In terms of the model it is clear that an object cannot“operate on”another object. The only way an object can interact with the outside world is by sending messages.Consequently, object A“invokes”a method of object B by sending B the message,“please execute this method”.Assuming all goes well and the message can actually be delivered,B is free to interpret the message as it pleases.It may choose amongst several ways of handling the request,it may delay responding,or it may decide that it does not wish to handle the request at all,and return an exception report.“Returning”is also accomplished by message-passing.It is important to realize that message-passing is a model for object communication rather than an implementation requirement.In fact,more than one object-oriented language translates message-passing into straightforward procedure calls.This is possible whenflow-of-control is single-thread,and no more than one object is“executing”at any time.However,in a concurrent environ-ment where objects are truly active,“real”message-passing is a natural way in which to implement communication between objects.Message-passing may be synchronous or asynchronous.Basically,the difference is that with asynchronous message-passing the message is put on a queue,and the sender is immediately free to concentrate on another task(though it usually just waits for a response).With synchronous message-passing,the sender blocks until the message can be delivered,sometimes even until theO.M.Nierstrasz5 recipient prepares a response.The problem with asynchronous message-passing is that it is(strictly speaking)impossible to implement,since there is no bound on the size of the message queues. The problem with synchronous message-passing is that it says nothing about the order of arrival of messages when multiple senders compete for a single recipient,and it limits the amount of concurrency by blocking the sender.Aynchronous message-passing is perhaps more consistent with the idea of object independence, but it is not a pre-requisite for an object-oriented system.5Inheritance.From the point of view of organizing software and reusability of code,the most important mecha-nism in an object-oriented language is the ability to specialize object types.A specialized type(a subtype)inherits the properties of its parent type,then possibly adds more properties.A program source,for example,may be seen as a specialization,(or refinement)of a text object.An instance of a subtype responds to all the messages that the parent type understands. The reverse is not true.A subtype inherits the method interfaces of the parent type,but may add new methods that the parent cannot respond to.In addition,a subtype usually inherits the implementation of the parent by default,that is the set of instance variables that encode the state of a parent instance,and the implementations of all of the methods.The subtype could add new instance variables and methods.A subtype may,however,have a different set of instance variables,and quite different imple-mentations of the inherited methods.For example,real numbers are a refinement of integers,but they are represented and implemented quite differently in a computer.The set of all object types forms a specialization hierarchy with the type object at the root. With simple inheritance,this hierarchy is a tree.If multiple inheritance is supported,the hierarchy is,in general,a directed acyclic graph.This means that a subtype may have more than one parent type(but no type can be its own ancestor!). The parent types in this case are called“traits”[7]or“flavours”or“mixins”.The difference between a trait and a type(if any)is that a trait specifies an interface,but it need not define an implementation.One reason for this is that a trait may not be of interest as a type on its own.Consider for example the trait“ownership”.Such a trait might specify methods for setting the owner of the object,changing ownership,and determining access rights.Ownership is only of interest in conjunction with other properties.An“owned object”would be of little use on its own.Multiple inheritance increases the reusability of software.Simple inheritance is inadequate for describing many of the useful relationships between object types.Suppose that we would like to have both owned and unowned pieces of text.Similarly we might have owned and unowned graphical objects.(An unowned object might be part of a larger owned object.)The type owned text is a refinement of text,and owned graphic is a refinement of graphic,but with simple inheritance there is no way to say that the methods pertaining to ownership are to be shared.Multiple inheritance encourages the programmer to define traits that can be combined much moreflexibly.The addedflexibility is not without its cost–there are no easy solutions if one wishes to combine6What is the“Object”in Object-oriented Programming? two traits that use the same method name to mean different things.Provided there are no naming conflicts,multiple inheritance is an elegant mechanism for aiding in the design of new object types.Variation of types is another form of inheritance.A new type may be defined as being equivalent to an existing type,adding no new methods.The type definition serves mainly to ensure correct use of objects of that type–type clashes can be detected by the compiler,or at run-time.One would not wish to confuse names of people with names of programs,even though they would both be implemented as strings.Furthermore,equivalent types may have implementations tailored to a particular environment or usage.Window objects may behave the same on a variety of graphic devices,yet will be implemented in different ways.Similarly one might choose from a variety of implementations of lookup tables with different overhead and performance characteristics,though all are functionally equivalent.A weak form of“inheritance”is parameterization.A“container”object is an object that manages objects of a given type(or set of types),yet is not concerned with what that type is. When an instance of a container is defined(or created),the type of the contained object should be known.In the definition of the container type,the type of the contained objects is specified as a parameter.For example,one would define an array as an array of a contained type.When declaring an array,one would specify an array of integers,or an array of mail messages.(The array object does not care what it manages,but at some point the compiler needs to know what it will be.)6Homogeneity.In a“fully”object-oriented environment,“everything”is an object.One does not distinguish between programs and objects–objects are the active entities.Object types(or rather the speci-fications and implementations of object types)are objects too(of type type).This is necessary in a complete environment,since a programmer will need to instantiate new types from within the environment.To say that“everything”is an object is formally attractive,but one must take care.For example,are messages objects?If so,in order to manipulate a message,is it necessary to send it a message?This sort of circularity is normally broken at some level.It is fundamental to the object-oriented model that messages can be sent between objects,without having to define“how”this is done.More important is the ability to think of instance variables as objects.This enables a pro-grammer to construct complex objects whose parts are also objects.Again,the circularity most be broken at some point.Is it really useful to talk about the“parts”of an integer as objects?What are the instance variables of a single bit?In any case,it is the behaviour of objects that is crucial, not their representation.We should,therefore,not feel uncomfortable with the idea that certain basic object types are given,and all other types are built up from them.There is no need for us to know how the basic types are implemented.The principle of homogeneity can be carried even to the level of code.In Smalltalk,control structures are implemented using objects.A block expression is an object that can be executed by sending it the message value.Conditional execution is accomplished by sending an object of typeO.M.Nierstrasz7 boolean two block expressions,one to be evaluated if the value of the boolean is true,the other if it is false.Similarly,iteration is accomplished by sending an integer the message timesRepeat:,with a block expression to be executed as an argument.Carrying the notion of homogeneity to this degree certainly makes for a very consistent view of the environment,and it means that interpreted(rather than compiled)code can be understood in terms of communicating objects,but it also means that programmers may have to change the way they think about problem-solving at even very low levels.Does it help a programmer to think of the expression:1+2as“send the message‘+2’to the object1”?Probably not.At the same time it is reassuring that the object-oriented approach is sufficiently powerful to capture computation at whatever level of abstraction.7Concurrency.The message-passing paradigm of object communication lends itself well to an environment in which every object is an active entity,i.e.,a process.Since there are large numbers of objects,one must be able to have large numbers of processes(most of which are normally“asleep”).Furthermore, since objects are persistent,it is desirable that the processes that implement them be persistent too.We call such processes actors,after the computational model invented by Hewitt[11].The actor formalism can be useful for understanding object interactions.From a purely practical point of view it is attractive to think of objects being implemented“on top of”actors.Actors,then,are inexpensive,persistent,message-passing processes.Objects add structure to the state of an actor, and provide structure to the message-passing that may take place.(For examples of actors as they appear in a programming language or an operating system,see[4]or[15].)Message-passing can be defined in several ways.We have already discussed synchronous and asynchronous message-passing.In addition,an actor may be able to receive messages at a number of different ports.Ports typically have different priorities,so that messages sent to a port of high priority will be received before those waiting at another port.By analogy,people can receive messages by letter or by telephone.Telephone messages have higher priority than letters,though a second telephone call will not interrupt a call in progress.Multiple ports are not strictly required,though they do provide us with a mechanism for “interrupting”an actor while it is executing.Even with single-port actors we can model many kinds of object interactions.Object A invoking method M of object B can be easily understood as follows:Object A sends a CALL message to object B.When B receives the message,it prepares a response and sends a RETURN message to A. If there is a problem with A’s call,B sends back an EXCEPTION message instead.Furthermore, if A itself receives other CALL messages before B’s response,those messages are delayed until B returns.B’s response could also be directed to a separate port of A,thus avoiding the need to delay8What is the“Object”in Object-oriented Programming?messages.B might be acting as an agent for another object C.In that case,B would forward A’s message to C(including the informationC needs to send the response).C could then send its response directly to A,rather than through B.These protocols may be modified to allow,for example,recursion.Suppose that B wants to call some method of A before sending its response.If A delays all calls because it is expecting a response from B,then B’s call will never return.Recursion could be permitted by having A accept calls that it recognizes as originating from its own call to B.A“token”is thus passed around,which A will recognize when it receives a CALL message from B,or another intermediary.We can model transactions with message-passing as well.A transaction is a sequence of oper-ations on a collection of objects which is performed atomically,that is,either all of the operations are performed,or none of them(in case the sequence is aborted),and the intermediate states are not visible to other objects.Object A would,for example,ask object B to ignore calls from other objects while the transaction is taking place.A would then be guaranteed that B is not seen in an inconsistent state.By analogy,one can imagine the objects involved in a transaction as having a meeting behind closed doors.Anyone who is requested to join the meeting may enter the room, but no one may leave the room until the meeting is adjourned.Typically one may also“back out”of a transaction–if the meeting is aborted,then the participants return to their state before the meeting started.The CALL/RETURN message-passing protocol is followed as before,except that after returning,each object enters a“ready”state in which it is prepared to either commit or abort.At any time an object taking part in the transaction may issue an ABORT,which causes all participants to back up to a checkpointed state.(This message is broadcast along the already-established CALL/RETURN paths.)If the transaction completes without an abort being issued,the initiator of the transaction commits it by sending a COMMIT message to the participants(again,along the paths that the CALL/RETURN messages took).Nested transactions are a useful concept(meetings within meetings).Each object would then keep a stack of checkpointed states,one for each nesting level.(Note that it is not necessary to completely save each state,but only those parts that may be modified in the transaction.)Argus [12]is an example of a programming language that supports both data abstraction and nested transactions.Deadlock is still a real possibility.Consider two independent meetings,each of which suddenly requires the participation of someone in the other meeting.Also note that the success of the two-phase commit protocol outlined above assumes reliable message-passing and checkpointing.A real implementation would have to address these issues in an object-oriented environment,as it would in any other setting.As afinal example,we can model triggering of activities by message-passing.Object A may send a SET trigger message to B,that says,“let me know when x happens”.Later,when x happens as a result of yet another object making a request of B,B may send a NOTIFY message to A. When A receives the notification it initiates a new activity.A may also UNSET the trigger,telling B that it is no longer interested in x.A general triggering mechanism like this enables applications to know about interesting events without having to poll for them.The examples given in this section were not intended so much to show what kinds of mechanismsO.M.Nierstrasz9 are required for a concurrent object-oriented language or environment,but rather to indicate what the possibilities are,and how easily independent,message-passing objects can be mapped to an actor world.Since message-passing is the only medium for communication,it is also a natural step to map actors,and therefore objects,onto a heterogeneous environment of different processors connected through a network.See[8]for a discussion of similar issues in an environment that supports synchronous message-passing.8Concluding remarks.The fundamental concepts in an object-oriented environment are data abstraction and inheritance.A programmer specifies an interface to a new object type as a collection of methods which can be invoked.Separately,one defines the representation of the object’s state,and the implementation of the methods.The methods should be the only acceptable interface to an object.One must be able to create multiple instances of an object type.A subtype inherits the methods of its parent type,but not necessarily the implementation of the methods.If multiple inheritance is supported,a subtype may inherit methods from several parent types.The inheritance mechanism“overloads”methods,since methods apply to objects of different (though usually related)types.In a fully object-oriented system,types are also objects,and one can instantiate new types at run-time.In a homogeneous design,expressions in the programming language are also objects, as are instance variables of an object’s permanent state,and even the messages objects use to communicate with.If concurrency and distribution are at issue,each object may be an active entity that sits“on top of”a message-passing process,called an“actor”.Examples of fully-integrated languages are Smalltalk[1,9,10]and Loops[13].Smalltalk does not support concurrency,distribution or multiple inheritance,but it does provide a strongly homo-geneous view of its language,in which even control structures are objects.Languages like Ada[2]support data abstraction,but no multiple instantiation or inheritance. It is impossible to add new types at run-time.Some languages like Lisp and C have been enhanced to give them some object-oriented ca-pabilities,without taking away anything that was in the language before.In the case of Lisp [14],“flavours”,or traits have been added,so that one has both data abstraction and multiple inheritance.With Objective-C,(or its predecessor,OOPC),[5,6]a pre-processor was written that translates Objective-C object classes into C code,that can then be compiled by a regular C compiler.These two examples suggest that it is possible to program in an object-oriented“style”without actually using an object-oriented language.In fact,this can be done,though one would then not be able to make full use of inheritance or overloading of operations.Nor would one be able to add types at run-time unless an interpretable language(like Lisp)were used.As with any other programming style(procedural,applicative,logic-oriented...),one requires。

计算机专业英语考试试题及答案

计算机专业英语考试试题及答案

计算机专业英语考试试题及答案一、选择题1. Which of the following is NOT a programming language?A. JavaB. PythonC. HTMLD. CSS2. What does the acronym "SQL" stand for?A. Structured Query LanguageB. Simple Query LanguageC. Script Query LanguageD. Secure Query Language3. Which protocol is commonly used for sending and receiving emails?A. FTPB. HTTPC. SMTPD. TCP4. What does the term "CPU" refer to?A. Central Processing UnitB. Computer Processing UnitC. Central Program UnitD. Computer Program Unit5. Which of the following is NOT a type of network topology?A. StarB. RingC. MeshD. Scroll二、填空题1. HTML stands for Hypertext Markup Language, which is used for ____________.2. The process of converting source code into machine code is called ____________.3. IP address stands for ____________.4. The act of copying files from a remote server to a local computer is known as ____________.5. The programming language developed by Apple Inc. for iOS and macOS is ____________.三、简答题1. What is the difference between a compiler and an interpreter? Provide examples of programming languages that use each of these methods.2. Explain the concept of object-oriented programming (OOP) and provide an example of a programming language that utilizes this paradigm.3. Describe the client-server model and provide an example of a commonly used protocol within this model.四、论述题Discuss the impact of artificial intelligence (AI) on various industries. Provide examples of how AI is being used in fields such as healthcare, finance, and transportation. Analyze the potential benefits and challenges of implementing AI in these industries.答案:一、选择题1. C. HTML2. A. Structured Query Language3. C. SMTP4. A. Central Processing Unit5. D. Scroll二、填空题1. creating and structuring the content of a webpage2. compilation3. Internet Protocol4. downloading5. Swift三、简答题1. A compiler translates the entire source code into machine code before the program is executed. Examples of languages that use compilers are C, C++, and Java. On the other hand, an interpreter translates and executes the source code line by line. Python and Ruby are examples of languages that use interpreters.2. Object-oriented programming (OOP) is a programming paradigm that organizes data and functions into reusable objects. It focuses on the concept of classes and objects, allowing for code reuse and encapsulation. An example of a programming language that uses OOP is Java, where objects are instances of classes and can interact with each other through methods and attributes.3. The client-server model is a distributed computing architecture wherea server provides services or resources to multiple clients. The clients request and receive these resources through the network. An example of a commonly used protocol within this model is the Hypertext Transfer Protocol (HTTP), which is used for communication between web browsers (clients) and web servers.四、论述题Artificial intelligence (AI) has had a significant impact on various industries. In healthcare, AI is being used for diagnoses and treatments, analyzing medical images, and personalized medicine. For example, AI-powered algorithms can help detect diseases like cancer at an early stage, leading to better treatment outcomes. In finance, AI is utilized for fraud detection, algorithmic trading, and customer service. AI algorithms can analyze large amounts of financial data to identify patterns and make accurate predictions. In transportation, AI is being employed for autonomous vehicles, traffic management, and logistics optimization. Self-driving cars, for instance, use AI algorithms to navigate and make decisions on the road.The implementation of AI in these industries brings about many benefits, such as increased efficiency, improved accuracy, and cost savings. AI systems can process and analyze vast amounts of data much faster than humans, leading to faster and more accurate results. However, there are also challenges to consider. Privacy and security concerns arise as AI systems handle sensitive information. There is also the worry of job displacement, as AI automation may replace certain human tasks. Additionally, ethical considerations need to be addressed, such as bias in algorithms and the potential for AI to be used for malicious purposes.Overall, the impact of AI on various industries is undeniable. It has the potential to revolutionize healthcare, finance, transportation, and many other sectors. However, careful implementation and regulation are necessary to ensure its responsible and beneficial use.。

计算机专业英语 考试

计算机专业英语 考试

一、选择题1.What is the process of converting a high-level programming language into machine languagecalled?A.Debuggingpilation(正确答案)C.ExecutionD.Interpretation2.Which of the following is a programming paradigm that organizes software design around data,and the operations performed on that data?A.Object-oriented programming(正确答案)B.Procedural programmingC.Functional programmingD.Event-driven programming3.In computer networks, what does the term "protocol" refer to?A. A set of rules governing the exchange of information between devices(正确答案)B.The physical connection between devicesC.The speed of data transmissionD.The type of data being transmitted4.What is the term used to describe the process of dividing a complex problem into smaller, moremanageable parts?A.Modularization(正确答案)B.OptimizationC.EncapsulationD.Polymorphism5.In computer security, what is the term for unauthorized access to or modification of data?A.EncryptionB.DecryptionC.Hacking(正确答案)D.Firewall6.Which of the following is a type of software that allows two or more computers tocommunicate and share resources?A.Operating systemB.Database management systemwork operating system(正确答案)D.Word processing software7.What is the term used to describe the process of identifying and correcting errors in computerprograms?A.Debugging(正确答案)B.TestingC.Codingpilation8.In computer graphics, what is the term for the number of distinct pixels that can be displayedon a screen?A.Resolution(正确答案)B.Color depthC.Refresh rateD.Aspect ratio。

1 An Object-Oriented Approach to Curves and Surfaces

1 An Object-Oriented Approach to Curves and Surfaces

Applications in computer graphics and geometric modeling generally require the integration of a variety of curve and surface types into a single system.Object-oriented design offers the opportunity to use the inherent hierarchical structure of curves and surfaces to solve this problem.This paper presents a top down approach to the design of an object-oriented framework for curves and surfaces together with its C++implementation.We start from an abstract class of general differentiable curves and surfaces and in turn refine this design to various parametric representations of curves and surfaces.This design includes all of the standard curve and surface types and provides a powerful and uniform interface for applications. Examples from differential geometry,blending,and scattered data interpolation illustrate the approach.2Design2.1Overview2.2Parameterized CurvesFigure1:Schematic view of the class hierarchy.Ovals indicate abstract classes, rectangles actual implementations,solid arrows derivation in the class hierarchy, and dotted arrows references between related classes.2.3Vertex Curves2.4Meta Objects2.5Parameterized Surfaces2.6Vertex Surface 2.7Parameter Region 3ApplicationsFigure2:Visualizing differential geometry:A helix with a curvature circle,a Fren´et frame,and a section of the torsion cylinder3.1Application1:Visualizing Differential GeometryFigure3:A B-spline surface with imposed color-coded Gauss-curvature 3.2Application2:Constructing Blending Surfacesand maximum curvature at each point along the curve3.3Application3:Minimal Norm Network Interpolantspolant,and its curvature plot4Conclusion and Further WorkReferences。

英语技术写作试题及答案

英语技术写作试题及答案

英语技术写作试题及答案一、选择题(每题2分,共20分)1. The term "API" stands for:A. Application Programming InterfaceB. Artificially Programmed IntelligenceC. Advanced Programming InterfaceD. Automated Programming Interface答案:A2. Which of the following is not a common data type in programming?A. IntegerB. StringC. BooleanD. Vector答案:D3. In technical writing, what is the purpose of using the term "shall"?A. To indicate a requirement or obligationB. To suggest a recommendationC. To express a possibilityD. To denote a future action答案:A4. What does the acronym "GUI" refer to in the context of computing?A. Graphical User InterfaceB. Global User InterfaceC. Generalized User InterfaceD. Graphical Unified Interface答案:A5. Which of the following is a correct statement regarding version control in software development?A. It is used to track changes in software over time.B. It is a type of software testing.C. It is a method for encrypting code.D. It is a way to compile code.答案:A6. What is the primary function of a compiler in programming?A. To debug codeB. To execute codeC. To translate code from one language to anotherD. To optimize code for performance答案:C7. In technical documentation, what does "RTFM" commonly stand for?A. Read The Frequently Asked QuestionsB. Read The Full ManualC. Read The File ManuallyD. Read The Final Message答案:B8. Which of the following is a common method for organizing code in a modular fashion?A. LoopingB. RecursionC. EncapsulationD. Inheritance答案:C9. What is the purpose of a "pseudocode" in programming?A. To provide a detailed step-by-step guide for executing codeB. To serve as a preliminary version of code before actual codingC. To act as an encryption for the codeD. To be used as a substitute for actual code in production答案:B10. What does "DRY" stand for in software development?A. Don't Repeat YourselfB. Data Retrieval YieldC. Database Record YieldD. Dynamic Resource Yield答案:A二、填空题(每空2分,共20分)1. The process of converting a high-level code into machine code is known as _______.答案:compilation2. In programming, a _______ is a sequence of characters that is treated as a single unit.答案:string3. The _______ pattern in object-oriented programming is a way to allow a class to be used as a blueprint for creating objects.答案:prototype4. A _______ is a type of software development methodology that emphasizes iterative development.答案:agile5. The _______ is a set of rules that defines how data is formatted, transmitted, and received between software applications.答案:protocol6. In technical writing, the term "should" is used toindicate a _______.答案:recommendation7. The _______ is a type of software that is designed to prevent, detect, and remove malicious software.答案:antivirus8. A _______ is a variable that is declared outside the function and hence belongs to the global scope.答案:global variable9. The _______ is a programming construct that allows you to execute a block of code repeatedly.答案:loop10. In software development, the term "branch" in version control refers to a _______.答案:separate line of development三、简答题(每题10分,共40分)1. Explain the difference between a "bug" and a "feature" in software development.答案:A "bug" is an unintended behavior or error in a software program that causes it to behave incorrectly or crash. A "feature," on the other hand, is a planned and intentional part of the software that provides some functionality or capability to the user.2. What is the significance of documentation in technical writing?答案:Documentation in technical writing is significant as it serves to provide detailed information about a product or system, making it easier for users, developers, and other stakeholders to understand its workings, usage, and maintenance. It is crucial for training, troubleshooting, and future development.3. Describe the role of a software architect in a software development project。

Newcastle upon Tyne, NE1 7RU, UK. A Visual Language for Parallel, Object-Oriented Programmi

Newcastle upon Tyne, NE1 7RU, UK. A Visual Language for Parallel, Object-Oriented Programmi

School of Computing Science,University of Newcastle upon TyneA Visual Language for Parallel, Object-Oriented Programming P.A.Lee,M.D.Hamilton,S.ParastatidisTechnical Report SeriesCS-TR-826February2004Copyright c 2004University of Newcastle upon TynePublished by the University of Newcastle upon Tyne, School of Computing Science,Claremont Tower,Claremont Road, Newcastle upon Tyne,NE17RU,UK.A Visual Language for Parallel, Object-Oriented ProgrammingP.A. Lee, M.D. Hamilton, S. ParastatidisSchool of Computing Science, University of Newcastle upon TyneNewcastle upon Tyne, NE1 7RU, UKAbstractThis paper introduces the HiPPO (High Performance Par-allel Object-oriented) language. HiPPO is unique in its combination of a visual syntax with an object-oriented computation model based on the flow of object references. The paper describes some of the notations used in the lan-guage with particular emphasis on the features provided to support the exploitation of parallelism. Aspects of the run-time support for HiPPO programs will also be described. INTRODUCTIONOver many years, research has addressed the problems of designing and implementing software systems. Supporting tools have been developed, but the increasing demands of applications have kept the need for new tools and para-digms ahead of their supply. The object-oriented paradigm is often exploited by software engineers, and is supported extensively in design tools, database systems and pro-gramming languages. Object-orientation is seen as a highly beneficial engineering methodology, and interest in it con-tinues apace even in high-performance applications where optimal efficiency is often preferred at the expense of over-all software engineering [1, 2].While object-orientation can significantly help the software engineer in some areas, support for exploiting parallelism remains relatively traditional in that the programmer is generally left to explicitly exploit and manage parallel threads of control. Object-oriented libraries and patterns can help [3], but designing and implementing parallel sys-tems remains a complex task. Part of a solution may lie in the provision of graphical or visual design systems and languages, which seem particularly appropriate for parallel software systems since they permit the user to break away from textual (sequential) representations and to construct a more parallel solution to a problem using the two (or more) dimensions of a visual space. Ideally, the graphical lan-guage will naturally support the expression of parallel solu-tions to a problem, while the semantics implicitly handle many of the aspects of exploiting parallelism that hitherto have had to be dealt with explicitly by the programmer. This paper introduces the HiPPO (High Performance Paral-lel Object-oriented) visual language being developed at Newcastle. Following on from earlier PhD research [4] HiPPO is unique in its combination of a visual syntax with an object-oriented computation model based on the flow of object references. It is not a research objective in HiPPO to (re-)invent object-oriented features. So, classes, inheri-tance, dynamic binding, etc. in HiPPO are not novel, and are not discussed further. Our interests are in the visual notations for expressing parallel object-oriented computa-tions, and in the flow-of-object-references model. The next sections describe aspects of the HiPPO notation, with par-ticular emphasis on the support provided for specifying potential parallelism, and the features provided by the Inte-grated Development Environment (IDE) that is an integral part of the HiPPO system.HIPPO IDEThe HiPPO IDE comprises two main parts:•the class designer that supports the declaration of new classes: their interface, method type signatures, and thetypes of the objects that will comprise the state of in-stances of the class (these objects are termed DataMembers in HiPPO and are always considered pri-vate); and•the graph designer that allows the implementation of the methods to be specified visually using the HiPPOnotation.Figure 1 (at the end of this paper) is a screenshot of the class designer, showing part of the definition of the Builtin Containers namespace together with part of the definition ofa user-defined Math namespace containing a Matrix class.This example class provides the abstraction of a two-dimensional array containing floating point numbers, and supports a number of methods including Matrix (the con-structor), initElements, and multiply. Some input and output arguments for the methods are also shown. For example, multiply takes an input argument matrixB and generates an output argument resultMatrix. All of the arguments are fully typed, with the Item properties window in Figure 1 show-ing these details for the matrixB input argument for multiply.In the class designer window, data members are labelled with a D – so, every instance of Matrix has data members, actualRows, numRows and numColumns. The object actual-Rows is a 1-d array of 1-d arrays of numbers that comprise the rows of the matrix.The window pane on the left-hand side of Figure 1 shows the set of template icons that can be dragged-and-dropped onto a graph implementation to construct the visual imple-mentations of the methods, an example of which is given below. Microsoft Visio® has been used as the basis for the IDE with Visual Basic for Applications and C# additions that implement the HiPPO features.HIPPO EXAMPLETo set the scene for the descriptions that follow, Figure 2 shows the HiPPO graph for an example implementation of the multiply method of class Matrix. Briefly, this method performs the equivalent of result = A.multiply(B) by decom-posing the current matrix object and the result matrix into1their corresponding rows, and then in parallel multiplying each row by all of the columns in the second matrix to form a row of answers in the result matrix (this latter part of the computation is a sub-graph that is not shown in Figure 2).A number of features (e.g. checking the sizes of the matri-ces involved for compatibility) have been omitted to sim-plify the example. The execution semantics of this examplewill be explained below.Figure 2. HiPPO Graph for multiply MethodTHE HIPPO VISUAL LANGUAGE: OVERVIEWThe HiPPO language, like several others, is graph-based, with boxes representing parts of a computation connected by arcs that control the computation in some fashion. Be-yond this simple framework, however, there are many de-sign decisions that face the visual language designer [5]. One of the main decisions concerns the arcs, and what they represent and carry. In the HeNCE visual language [6, 7], arcs carry control-flow signals that enable the execution of computations. In CODE [8, 9], arcs carry data values and the availability of data triggers computations (a data-flow model). Since a data-flow model was felt to provide a more natural model for implicit parallelism, it was chosen as the primary model for HiPPO arcs. However, HiPPO also pro-vides control-flow arcs for specifying additional sequenc-ing constraints on computations, although these are only expected to be of limited use (e.g. to sequence two printing operations correctly).Although HiPPO adopts a data-flow model, the model is different to many other data-flow languages in that it is references to objects (termed object handles) that flow through arcs rather than copies of data values. The HiPPOprogrammer operates in a shared object environment, where everything is an object, and all of the objects being manipulated are potentially available to all parts of the computation.The choice of a shared object-oriented computation model has a number of ramifications both for the visual language notation and for the run-time support. This section will concentrate on the language issues, and a later section will briefly address the run-time issues. The adoption of a shar-ing model (versus a value copying or message-passing model) has the standard advantages and disadvantages: the sharing paradigm is more familiar and easier to use, but requires care to be taken over the synchronized use of shared entities to avoid unintended side-effects due to con-current accesses from parallel threads, while the distrib-uted/copying paradigm removes the need for detailed syn-chronization features and the possibility of inter-thread interference, but is less familiar and adds complexity and overhead from the need to copy and distribute data for processing, and to merge results together subsequently. In HiPPO many of the low-level synchronization requirements of the sharing model are delegated to the run-time system and do not require explicit manipulation by the program-mer. (The run-time system is also responsible for imple-menting the semantics of shared objects when executing ona distributed-memory computing platform, as will be dis-cussed subsequently.)In the multiply example, the three matrices involved can be shared across the parallel computations. All that needs to be communicated are object handles, rather than (larger) sets of data values comprising all or parts of the matrices being manipulated. The synchronization of accesses to the shared matrix objects or their constituent data members is not specified by the programmer but is handled by the run-time system. Moreover, the result matrix can be updated directly with the results of the multiplication, rather than requiring an additional stage to be specified by the programmer con-cerned with receiving and merging separate sets of results.It is recognized that an experienced programmer can pro-vide additional information about objects and their use that can be used to optimize performance. One example is cate-gorising read versus write accesses, which can be used to optimize object locking strategies. HiPPO permits the user to provide such information – the Item Properties window in Figure 1 shows this for the input argument matrixB which is specified as being read-only. In addition, the multiply method itself has also been specified as being read-only since it does not change the state of the matrix object to which it is being applied. With such information, the com-piler and run-time system can optimise the locking strate-gies applied implicitly to the shared objects, and could even choose to replicate objects if this could give performance advantages (for instance, if the parallel platform was a dis-tributed memory system).HiPPO also allows the user to indicate when objects being used as arguments can be cloned (controlled by the selec-23tion boxes illustrated in the Item properties window in Fig-ure 1). Cloning essentially provides an object-copying mechanism, which can be used by the programmer to ex-plicitly generate new objects that can be used in parallel with the original object. Cloning information can also be used for optimization purposes – for example, to pass the value of an object of type integer rather than an object han-dle. Once made, all of these choices are indicated graphi-cally in the HiPPO implementation graphs via different icon borders and colours, although the exact notation is not important for this paper.The boxes on the graphs specify the computation parts of the solution. In HeNCE and CODE, the boxes contain tra-ditional procedural statements/expressions (e.g. in C or Fortran). However, in HiPPO these computations represent the invocation of a method on an object. Other boxes in HiPPO have more special-purpose roles, such as represent-ing the creation of new objects, and conditional, iterative and parallel computations. These features are described in the following sections.Object Invocation NotationObject-oriented computations are based on the notion of applying methods/operations to identified objects. Thus a visual notation has to enable the object to which a method is being applied (termed the controlling object) to be dis-tinguished from any objects that are arguments to the method call. In HiPPO this distinction is achieved by hav-ing attach points at the left-hand (or right-hand) end of a method-call box to represent the controlling object. The arc that connects to this attach point will carry the controlling object handle at run-time. Arcs carrying the object handles that are arguments intersect the top horizontal part of the box, while results produced by methods leave via the bot-tom of the box. Examples are shown in Figure 3, where the method being applied (multiply , decrement and notEqual ) has been selected via the IDE when the method call icon is dragged onto a graph, and an object handle of the appropri-ate type is the controlling object.Figure 3. Example Method InvocationsWith the form of attach point shown in the graph on the left-hand side of Figure 3, the HiPPO semantics for the attached arc are that the object handle is broadcast down the arc to invoke parallel computations. In this example thetwo multiply methods could be invoked in parallel. A method-call box with this form of attach point is referred to as a non-blocking method call . This is another HiPPO fea-ture that supports the specification of parallelism. The user may select a different form of attach point that changes the semantics to transmit the controlling handle down the arc only when the computation in the box has completed – a so-called blocking method call , where the attach point has a break in the middle of the icon. An example is given on the right-hand side of Figure 3, where the method call decre-ment is applied to an Integer object, and the handle for that object will not flow to the notEquals box until that method invocation has completed.Computation Firing RuleThe firing rule in HiPPO is that a computation such as a method call will be enabled for execution when object han-dles are available on the attach point and on all of the input arguments. It is the flow of object handles that primarily determines the parallelism that is available at run-time, rather than requiring the programmer to explicitly control parallelism, the standard advantage of a data-flow model of computation. Thus, when the graph in Figure 2 is executed, there are a number of computations that could be fired in parallel (e.g. those labelled DM Get , the meaning of which is explained below).Object Handle Sources and SinksInput and output formal and actual arguments in textual languages provide a means for linking the actual objects in a calling program with the formal object names used inside the called method. In addition, methods also require access to the objects that constitute the state (the data members). HiPPO provides icons for specifying this behaviour.When the graph representing a method is being defined, the IDE automatically generates “source” boxes representing the input argument parameters – that labelled matrixB in Figure 2 is an example. The IDE also introduces “sink” boxes as the destination for arcs containing result handles (see Figure 2). Result object handles will not flow back to the enclosing graph until all of the activities in the graph have completed. It is the responsibility of the compiler and run-time system to achieve this behaviour.A special graph node called this can be used on a graph to introduce a handle for the current object (i.e. the object to which the method is being applied). To provide access to the data member objects, a special-purpose node called DataMember Get can be used with the “this object” arc as its controlling object flowing to the attach point, and the IDE permits the user to select which data member object is re-quired, using an interface similar to that shown in Figure 1. The IDE provides a version of DataMember Get without the attach point which provides direct access to the data mem-bers of the current object, and thus simplifies a graph by removing the need for the this node and connecting arcs. Figure 2 demonstrates both forms of the DataMember Get node (labelled DM Get ). When executed, that without the attach point generates a handle for the numRows data mem-ber of the Matrix object to which multiply is being applied. The DM Get node with the attach point is used to get a han-dle for the numColumns data member of the argument ma-trixB, access to which is permitted since that argument is an instance of the same class as the multiply method.Corresponding to the DataMember Get nodes there are DataMember Set nodes (with and without the attach point) which can be used to specify the storing of an object handle in the identified data member object. These set nodes are most commonly used in constructors to initialize the data members.Another source of object handles comes from the genera-tion of new objects. HiPPO provides New nodes for this purpose, and when the New template is dragged onto a graph the IDE permits the user to select the class and par-ticular constructor required. Any arguments required by the constructor appear on the graph as described earlier for method calls. An example of the use of New is shown in Figure 2 for the creation of a new instance of Matrix to hold the results of the multiply.HiPPO permits copies of object handles to be generated using the Copy Handle node, an example of which is shown in Figure 2 directly under the input parameter box. Visual simplification of arc flows can be achieved by combining copied handles with Break/Continue nodes, examples of which also appear in Figure 2 (labelled MatB).The final source of object handles in HiPPO is provided by Literal nodes. These nodes correspond to the specification of literal number and string values in traditional languages. The example in Figure 3 will generate an integer object initialised to the value 53 for use in the comparison opera-tor.Special-Purpose NodesWhile the method call node is the primary source of com-putation in a HiPPO graph, a number of special purpose nodes provide graphical support for additional control over computations. These nodes support:•Conditional execution•Parallel computations; and•Repeated (iterative) computation.Conditional ExecutionVisual languages require notational support to specify the conditional execution of graphs. In HiPPO this requirement is supported through the Condition node. When the Condi-tion node template is dragged onto a graph, the IDE auto-matically creates two sub-graphs. One of these is associated with the ‘true’ execution path, and the other with ‘false’. The controlling object for instances of this node is a Boo-lean, and when a condition node fires at run-time, the value of this Boolean determines which of these two sub-graphs is executed. Arguments and results can be defined as part of the condition node – these are created as part of the sub-graphs by the IDE.Parallel Computations: Decomposers and For Each NodeA common pattern in parallel software is the need to applya computation to a set of data values of the same type(commonly referred to as data parallelism or parameter spreading). Typical examples include applying some com-putation to all of the elements in an array, or all of the ele-ments in a list, or applying some methods to a stream of objects being returned from a query to an object database.Such examples are obvious sources of parallelism, and hence a useful feature to be supported in a parallel design system. Such support requires:• A means for specifying the computations that occur (in parallel) – in HiPPO, this is achieved using the FOREACH node.• A means for generating the independent object handles that these parallel computations can operate on - herethe concept of a decomposer object is introduced.Although similar in its functionality to the foreach state-ment provided in other object-oriented languages (e.g. C#[10]) and to the support for iterators in other languages,HiPPO differs in that, firstly, it allows the user to define multiple ways of decomposing an object, and secondly the computations within the body of the FOR EACH can be exe-cuted in parallel. (The term decomposer was chosen to dif-ferentiate HiPPO’s parallel activity from the sequential activity associated with iterators.)To demonstrate these facilities, the Matrix example imple-ments a parallelisation and decomposition strategy which permits a row from A to be multiplied by matrix B to forma row of the result matrix, and for these computations to bepotentially executed in parallel. The use of the FOR EACH node and decomposers is as follows.Any class that can be decomposed has to provide a special method that returns an instance of a class that implements the built-in IDecomposer interface. This interface requires three member functions to be available, which are invoked automatically at run-time to: initialise the decomposer (re-set); generate the handle for the next object that can be op-erated on (current); and to move to the next object and to return a Boolean indicating whether the end has been reached (moveNext).Thus, the first step for a user is to select a decomposer method. The IDE handles this selection by recognising that only special kinds of methods, labelled as decomposers with a “musical note” icon, can be selected for this node.Figure 1 shows that the Matrix class has a decomposer named decomposerForMult that has been defined specifi-cally for the multiply method. The result of the selection is demonstrated in Figure 2 by the decomposeForMult box, which returns as a result a decomposer-object handle for an instance of a class DecomposeForMult private to the Matrix class that provides the decomposition specific to the im-plementation of Matrix. These decomposer classes do not have to be private – this is just a characteristic of this ex-ample.4When a user then drags an instance of the FOR EACH tem-plate onto a graph, this may have an attach point, a prede-fined first argument, optional other arguments, and an asso-ciated sub-graph that implements the computation that can be executed in parallel. The attach point provides any nec-essary synchronisation dependency between the FOR EACH and the rest of the graph, as usual. The handle for the de-composer-object has to be attached to the first argument on the FOR EACH and is used at run-time to generate a stream of objects each of which can be processed in parallel (po-tentially) by the body of the FOR EACH. The IDE arranges for the generated object handle, together with any argu-ments that are specified as part of the FOR EACH node, to appear on the sub-graph as arguments, the computations on which can then be defined.The FOR EACH example in the multiply graph in Figure 2 shows matrixB as such an argument, while Figure 4 below shows the sub-graph computation. Essentially, this sub-graph receives the object handle generated from the de-composer, which in the matrix example is a two-element array containing handles for two 1-d array objects, the first of which is the row from the source (A) matrix and the sec-ond being the handle for the corresponding row of the re-sult matrix. Extracting these two 1-d object handles, the sub-graph computation then invokes a method that imple-ments matrix * vector => vector. The advantage of the shared object model in HiPPO is demonstrated here by the fact that this sub-graph computation is updating a row of the result matrix in place, and complexities arising from the need to identify rows and columns in the decomposition of the source matrix and the re-composition of results into theresult matrix do not arise.Figure 4. Multiply Sub-GraphUsing this structure permits a user to define multiple forms of decomposition for any class. Other decomposers for Ma-trix could be provided to generate the sequence of 1-d ar-rays that comprise the rows, or columns, or even a stream of numbers that are the elements in the matrix. Having the ability to flexibly define decompositions of objects, espe-cially for container objects, is a vital feature in a parallel object-oriented language.Iterative Computations: Loop NodeA loop node is provided in HiPPO to represent sequentialiterative computations. The node can take any number of arguments and its implementation is defined using 4 sub- graphs:1.Pre-loop: This graph is executed once (before the firstexecution of the iteration graph). Its main use is to ini-tialise values and create objects which control the itera-tion and termination of the loop.2.Condition: This graph is executed before the iterationgraph and dictates when the loop terminates. It returnsa single Boolean result. If that result is true, the itera-tion graph can be executed. Otherwise, the loop hascompleted.3.Iteration: This graph represents the body of the loop.4.Post-Iteration: This graph is executed after each exe-cution of the iteration graph. Its main use is to updatethe objects controlling the loop.Figure 5 demonstrates the use of the loop node from part of the initElements method of Matrix. Although not shown, this method uses a decomposer to generate handles for the rows of a matrix and a FOR EACH node to generate instances of the computations shown in Figure 5(a). The iteration graph that is the body of this loop is given in Figure 5(b), where loopCounter is the loop control object that was created bythe pre-loop graph (not shown).Figure 5. (a) Graph for initialising a row, (b) Sub-graphfor loop bodyRUN-TIME SUPPORT ISSUESNIP is a run-time system designed and developed at the University of Newcastle upon Tyne [11-14] that provides an execution environment for implicitly parallel, object-oriented programming languages like HiPPO. NIP offers a shared-object memory space, and run-time constructs for the identification of potentially parallel computations that language compilers can use.NIP dynamically manages the degree of parallelism ex-posed by applications to efficiently utilise the computa-tional resources offered by the underlying hardware plat-form which may be shared- or distributed-memory based.NIP also takes responsibility for the concurrency and cach-5ing related issues that may arise through the use of the shared-object space.By targeting the NIP execution model, the HiPPO compiler is freed from having to produce code that explicitly man-ages parallelism and deals with architecture related issues. NIP TaskletThe NIP run-time system employs lazy task creation and dynamic load-balancing techniques to utilise the available computational resources. The NIP lazy task creation tech-nique is based around the Tasklet construct. A Tasklet represents one or more potentially parallel pieces of com-putation, which may vary from a single method call to a for-each computation. The language system can use Task-lets in order to expose parallelism, while the responsibility of the NIP run-time system is to convert those Tasklets into actual parallel tasks. It is computationally cheaper to ex-pose parallelism using Tasklets rather than actually create parallel tasks (e.g. threads) [13]. Furthermore, applications can expose a very high degree of parallelism without hav-ing to worry about task switching costs, allocation of com-putational resources, or any other task-management costs. The computational costs of actually creating a parallel task will only be incurred when resources become available. When computational resources become available anywhere on the parallel system, a Tasklet is located and a new task is created from it. If the results from the potentially parallel computations associated with a Tasklet are required, a syn-chronisation point is introduced. When such a synchronisa-tion point is met during the execution flow of a task, com-putations associated with the Tasklet that have not been converted to tasks are executed in-line (i.e. in the context of the task that met the synchronisation point).NIP Object-based Distributed Shared MemorySince NIP offers a shared-object space execution environ-ment, it is necessary to implement an abstraction layer to be used on distributed-memory multiprocessor architectures. The NIP Distributed Shared Memory (NIPDSM) is an all-in-software, virtual, shared-object memory system. NIPDSM makes use of advanced, dynamic caching tech-niques and a relaxed memory consistency model with se-quential consistency semantics to provide improved per-formance [11].Given that a relaxed memory consistency model is used, NIPDSM requires assistance from the HiPPO compiler in order to maintain the consistency of the objects’ state. This is achieved through read lock, write lock, and unlock direc-tives that the HiPPO compiler must produce whenever an object is accessed. The NIPDSM locking mechanism is integrated with the caching and entry consistency mecha-nisms for better performance [11].HiPPO to NIPThe lifecycle of a HiPPO application includes the design process (HiPPO class designer), the implementation proc-ess (HiPPO graph designer), the compilation process (HiPPO compiler), and the execution process (NIP run-time). The HiPPO compiler is responsible for converting the HiPPO graphs to NIP-aware code. XML is extensively used by all the tools in the HiPPO suite (Figure 6).The current implementation of the HiPPO compiler pro-duces C++ code with NIP directives. It does so by parsing the XML file created by the HiPPO IDE, which represents the graphs and type information of an application. The HiPPO compiler traverses the application graph and creates Tasklets and NIPDSM objects.Creating Tasklets from GraphsAll of the computational graph nodes attached to an arc can be exposed as NIP Tasklets. Additionally, as the HiPPO compiler traverses the application graph, it may create new NIP Tasklets according to the following rules:• A copy handle graph node is encountered. All of the computational graph nodes attached to the new arcs can be potentially executed in parallel with each other.In the example of Figure 7, the arc carrying the handle to matrixA object is split into two arcs suggesting that the two multiply methods can be executed in parallel.As a result, two new Tasklets are created for each method call.Taslket tasklet1 =new Tasklet(multiply, matrixA, matrixB) Tasklet tasklet2 =new Tasklet(multiply, matrixA, matrixB) ... // Some other computationtasklet1.synchronise()tasklet2.synchronise()Figure 7. Tasklets from a copy handleFigure 6. HiPPO Application Lifecycle6。

生物的英语试题及答案

生物的英语试题及答案

生物的英语试题及答案一、选择题(每题1分,共10分)1. What is the basic unit of life?A. CellB. OrganC. TissueD. System2. Which of the following is not a characteristic of living organisms?A. GrowthB. ReproductionC. RespirationD. Inertia3. What is the process by which plants convert sunlight into energy?A. RespirationB. PhotosynthesisC. FermentationD. Digestion4. Which of the following is a type of genetic mutation?A. Gene duplicationB. Chromosomal deletionC. Both A and BD. None of the above5. What is the term for the study of the relationships among species?A. TaxonomyB. PhylogeneticsC. EcologyD. Ethology6. What is the primary function of the mitochondria in a cell?A. DNA replicationB. Protein synthesisC. Energy productionD. Waste disposal7. Which of the following is a hormone?A. InsulinB. GlucoseC. OxygenD. Carbon dioxide8. What is the correct sequence of the biologicalclassification hierarchy?A. Kingdom, Phylum, Class, Order, Family, Genus, SpeciesB. Species, Genus, Family, Order, Class, Phylum, KingdomC. Kingdom, Species, Genus, Family, Order, Class, PhylumD. Phylum, Class, Order, Family, Species, Genus, Kingdom9. What is the process by which new species arise?A. EvolutionB. Natural selectionC. SpeciationD. All of the above10. What is the role of chlorophyll in photosynthesis?A. To absorb light energyB. To produce waterC. To release oxygenD. To store energy二、填空题(每题1分,共5分)11. The process by which an organism develops from a single cell to a mature individual is called ________.12. The study of the structure of organisms is known as________.13. In genetics, the basic unit of heredity is the ________.14. The largest organ in the human body is the ________.15. The scientific method of classifying organisms based on evolutionary relationships is called ________.三、简答题(每题5分,共10分)16. Explain the role of DNA in the cell.17. Describe the process of cellular respiration.四、论述题(每题15分,共15分)18. Discuss the importance of biodiversity and the threats it faces.答案:一、选择题1-5: A, D, B, C, B6-10: C, A, A, A, A二、填空题11. Development12. Anatomy13. Gene14. Skin15. Phylogenetics三、简答题16. DNA is the molecule that carries the genetic instructions used in the growth, development, functioning, andreproduction of all known living organisms and many viruses.It is the blueprint for the organism's traits and functions. 17. Cellular respiration is the process by which cellsconvert nutrients into energy in the form of ATP (adenosine triphosphate). It involves the breakdown of glucose in the presence of oxygen to produce carbon dioxide, water, and energy.四、论述题18. Biodiversity is crucial for the health of ecosystems, asit ensures the stability and resilience of these systems. It provides a variety of ecosystem services such as pollination, pest control, and nutrient cycling. Threats to biodiversity include habitat destruction, climate change, overexploitation, pollution, and the introduction of invasive species.结束语:通过这份生物英语试题及答案,我们不仅复习了生物学的基本概念和过程,还加深了对生物多样性重要性及其面临的挑战的理解。

oosiml_tut1

oosiml_tut1

José M. Garrido C.
Object Oriented Simulation with OOSimL
Current Trend
Several studies conducted by Silverman and others have reported that most computer science majors have none or very limited exposure to simulation. These students are not adequately prepared for employment in jobs that include the use of simulation.
José M. Garrido C.
Object Oriented Simulation with OOSimL
Importance of Simulation in Computing Curriculum
Why Simulation? It is important to include early in the curriculum of computing: The general use of simulation in various courses The theory and development of simulation models.
We briefly describe the general features of simulation tools and the OOSimL simulation language for model development that we are using in our new course on early introduction to simulation.

TPO听力27-30

TPO听力27-30

TPO-27Conversation 11. Why does the woman go to the information desk?●She does not know where the library computers are located.●She does not know how to use a computer to locate the information she needs.●She does not have time to wait until a library computer becomes available.●The book she is looking for was missing from the library shelf.2. Why does the man assume that the woman is in Professor Simpson’s class?●The man recently saw the woman talking with Professor Simpson.●The woman mentioned Profe ssor Simpson’s name.●The woman is carrying the textbook used in Professor Simpson’s class.●The woman is researching a subject that Professor Simpson specialized in.3. What can be inferred about the geology course the woman is taking?●It has led the woman to choose geology as her major course of study.●It is difficult to follow without a background in chemistry and physics.●The woman thinks it is easier than other science courses.●The woman thinks the course is boring.4. What topic does the woman need information on?●The recent activity of a volcano in New Zealand●Various types of volcanoes found in New Zealand●All volcanoes in New Zealand that are still active●How people in New Zealand have prepared for volcanic eruptions5. What does the man imply about the article when he says this:●It may not contain enough background material.●It is part of a series of articles.●It might be too old to be useful.●It is the most recent article published on the subject.Lecture 16. What is the lecture mainly about?●The transplantation of young coral to new reef sites●Efforts to improve the chances of survival of coral reefs●The effects of water temperature change on coral reefs●Confirming the reasons behind the decline of coral reefs7. According to the professor, how might researchers predict the onset of coral bleaching in the future?●By monitoring populations of coral predators●By monitoring bleach-resistant coral species●By monitoring sea surface temperatures●By monitoring degraded reefs that have recovered8. Wh at is the professor’s opinion about coral transplantation?●It is cost-effective.●It is a long-term solution.●It is producing encouraging results.●It does not solve the underlying problems.9. Why does the professor discuss refugia? [Choose two answers]●To explain that the location of coral within a reef affects the coral’s ability to survive●To point out why some coral species are more susceptible to bleaching than others●To suggest that bleaching is not as detrimental to coral health as first thought●To illustrate the importance of studying coral that has a low vulnerability to bleaching10. What does the professor imply about the impact of mangrove forests on coral-reef ecosystems?●Mangrove forests provide habitat for wildlife that feed on coral predators.●Mangrove forests improve the water quality of nearby reefs.●Mangrove forests can produce sediments that pollute coral habitats.●Mangrove forests compete with nearby coral reefs for certain nutrients.11. According to the professor, what effect do lobsters and sea urchins have on a coral reef?●They protect a reef by feeding on destructive organisms.●They hard a reef by taking away important nutrients.●They filter pollutants from water around a reef.●They prevent a reef from growing by preying on young corals.Lecture 212. What does the professor mainly discuss?●Some special techniques used by the makers of vintage Cremonese violins●How the acoustical quality of the violin was improved over time●Factors that may be responsible for the beautiful tone of Cremonese violins●Some criteria that professional violinists use when selecting their instruments13. What does the professor imply about the best modern violin makers?●They are unable to recreate the high quality varnish used by Cremonese violin makers.●Their craftsmanship is comparable to that of the Cremonese violin makers.●They use wood from the same trees that were used to make the Cremonese violins.●Many of them also compose music for the violin.14. Why does the professor discuss the growth cycle of trees?●To clarify how modern violin makers select wood●To highlight a similarity between vintage and modern violins●To explain why tropical wood cannot be used to make violins●To explain what causes variations in density in a piece of wood15. What factor accounts for the particular density differential of the wood used in the Cremonese violins?●The trees that produced the wood were harvested in the spring●The trees that produced the wood grew in an unusually cool climate●The wood was allowed to partially decay before being made into violins●.The wood was coated with a local varnish before it was crafted into violins16. The professor describes and experiment in which wood was exposed to a fungus before being made into a violin. What point does the professor make about the fungus?●It decomposes only certain parts of the wood.●It is found only in the forests of northern Italy.●It was recently discovered in a vintage Cremonese violin.●It decomposes only certain species of trees.17. Why does the professor say this:●To find out how much exposure students have had to live classical music●To use student experiences to support his point about audience members●To indicate that instruments are harder to master than audience members realize●To make a point about the beauty of violin musicConversation 21. Why has the student come to see the professor?●To find out her reaction to a paper he recently submitted●To point out a factual error in an article the class was assigned to read●To ask about the suitability of a topic he wants to write about●To ask about the difference between chinampas and hydroponics2. What does the professor imply about hydroponics?●It was probably invented by the Aztecs.●It is a relatively modern development in agriculture.●It requires soil that is rich in nutrients.●It is most successful when extremely pure water is used.3. Why does the professor describe how chinampas were made?●To emphasize that the topic selected for a paper needs to be more specific●To encourage the student to do more research●To point out how much labor was required to build chinampas●To explain why crops grown on chinampas should not be considered hydroponic4. What does the professor think about the article the student mentions?●She is convinced that it is not completely accurate.●She believes it was written for readers with scientific backgrounds.●She thinks it is probably too short to be useful to the student.●She has no opinion about it, because she has not read it.5. What additional information does the professor suggest that the student include in his paper?● A comparison of traditional and modern farming technologies●Changes in the designs of chinampas over time●Differences in how various historians have described chinampas●Reasons why chinampas are often overlooked in history booksLecture 36. What does the professor mainly discuss?●Comparisons between land animals and ocean-going animals of the Mesozoic era●Comparisons between sauropods and modern animals●Possible reasons why sauropods became extinct●New theories about the climate of the Mesozoic era7. What point does the professor make when she compares blue whales to large land animals?●Like large land animals, blue whales have many offspring.●Like large land animals, blue whales have proportionally small stomachs.●The land environment provides a wider variety of food sources than the ocean.●The ocean environment reduces some of the problems faced by large animals.8. According to the professor, what recent finding about the Mesozoic era challenges an earlier belief?●Sauropod populations in the Mesozoic era were smaller than previously believed.●Oxygen levels in the Mesozoic era were higher than previously believed.●Ocean levels in the Mesozoic era fluctuated more than previously believed.●Plant life in the Mesozoic era was less abundant than previously believed.9. Compared to small animals, what disadvantages do large animals typically have? [Choose two answers]●Large animals require more food.●Large animals have fewer offspring.●Large animals use relatively more energy in digesting their food.●Large animals have greater difficulty staying warm.10. Why does the professor discuss gastroliths that have been found with sauropod fossils?●To show that much research about extinct animals has relied on flawed methods●To show that even an incorrect guess can lead to useful research●To give an example of how fossil discoveries have cast doubt on beliefs about modern animals ●To give an example of a discovery made possible by recent advances in technology11. What did researchers conclude from their study of sauropods and gastroliths?●That gastroliths probably helped sauropods to store large quantities of plant material in theirstomachs●That sauropods probably used gastroliths to conserve energy●That sauropods may not have used gastroliths to aid in their digestion●That sauropods probably did not ingest any stonesLecture 412. What is the lecture mainly about?●Various ways color theory is used in different fields●Various ways artists can use primary colors●Aspects of color theory that are the subject of current research●The development of the first theory of primary colors13. What does the professor imply about the usefulness of the theory of primary colors?●It is not very useful to artists.●It has been very useful to scientists.●It is more useful to artists than to psychologists.●It is more useful to modern-day artists than to artists in the past.14. Why does the professor mention Isaac Newton?●To show the similarities between early ideas in art and early ideas in science●To explain why mixing primary colors does not produce satisfactory secondary colors●To provide background information for the theory of primary colors●To point out the first person to propose a theory of primary colors15. According to the pro fessor, what were the results of Goethe’s experiments with color? [Choose two answers]●The experiments failed to find a connection between colors and emotions.●The experiments showed useful connections between color and light.●The experiments provided valuable information about the relationships between colors.●The experiments were not useful until modern psychologists reinterpreted them.16. According to the professor, why did Runge choose the colors red, yellow and blue as the three primary colors?●He felt they represented natural light at different times of the day.●He noticed that they were the favorite colors of Romantic painters.●He performed several scientific experiments that suggested those colors.●He read a book by Goethe and agreed with Goethe’s choices of colors.17. What does the professor imply when he says this?●Many people have proposed theories about primary colors.●Goethe discovered the primary colors by accident.●Goethe probably developed the primary color theory before reading Runge’s le tter.●Goethe may have been influenced by Runge’s ideas about primary colors.TPO-28Conversation 11. What is the conversation mainly about?●Criticisms of Dewey’s political philosophy●Methods for leading a discussion group●Recent changes made to a reference document●Problems with the organization of a paper2. Why is the student late for his meeting?●Seeing the doctor took longer than expected.●No nearby parking spaces were available.●His soccer practice lasted longer than usual.●He had problems printing his paper.3. What revisions does the student need to make to his paper? [Choose three answers]●Describe the influences on Dewey in more detail●Expand the introductory biographical sketch●Remove unnecessary content throughout the paper●Use consistent references throughout the paper●Add an explanation of Dewey’s view on individuality4. Why does the professor mention the political science club?●To encourage the student to run for club president●To point out that John Dewey was a member of a similar club●To suggest an activity that might interest the student●To indicate where the student can get help with his paper5. Why does the professor say this:●To find out how many drafts the student wrote●To encourage the student to review his own work●To emphasize the need for the student to follow the guidelines●To propose a different solution to the problemLecture 16. What is the lecture mainly about?●The importance of Locke’s views to modern philosophical thought●How Descartes’ view of knowledge influenced tre nds in Western philosophy●How two philosophers viewed foundational knowledge claims●The difference between foundationalism and methodological doubt7. Why does the professor mention a house?●To explain an idea about the organization of human knowledge●To illustrate the unreliability of our perception of physical objects●To clarify the difference between two points of view about the basis of human knowledge●To remind students of a point he made about Descartes in a previous lecture8. What did Locke believe to the most basic type of human knowledge?●Knowledge of one’s own existence●Knowledge acquired through the senses●Knowledge humans are born with●Knowledge passed down from previous generations9. According to the professor, what was Descartes’ purpose f or using methodological doubt?●To discover what can be considered foundational knowledge claims●To challenge the philosophical concept of foundationalism●To show that one’s existence cannot be proven●To demonstrate that Locke’s views were essentially corre ct10. For Descartes what was the significance of dreaming?●He believed that his best ideas came to him in dreams●He regarded dreaming as the strongest proof that humans exist.●Dreaming supports his contention that reality has many aspects.●Dreaming illustrates why human experience of reality cannot always be trusted.11. According to Descartes, what type of belief should serve as a foundation for all other knowledge claims?● A belief that is consistent with what one sees and hears● A belief that most other people share● A belief that one has held since childhood● A belief that cannot be falseLecture 212. What is the main purpose of the lecture?●To show that some birds have cognitive skills similar to those of primates●To explain how the brains of certain primates and birds evolved●To compare different tests that measure the cognitive abilities of animals●To describe a study of the relationship between brain size and cognitive abilities13. When giving magpies the mirror mark test, why did researchers place the mark on magpies’ throats?●Throat markings trigger aggressive behavior in other magpies.●Throat markings are extremely rare in magpies.●Magpies cannot see their own throats without looking in a mirror.●Magpies cannot easily remove a mark from their throats.14. According to the professor, some corvettes are known to hide their food. What possible reasonsdoes she provide for this behavior? [Choose two answers]●They are ensuring that they will have food to eat at a later point in time.●They want to keep their food in a single location that they can easily defend.●They have been conditioned to exhibit this type of behavior.●They may be projecting their own behavioral tendencies onto other corvids.15. What is the professor’s attitude toward the study on p igeons and mirror self-recognition?●She is surprised that the studies have not been replicated.●She believes the study’s findings are not very meaningful.●She expects that further studies will show similar results.●She thinks that it confirms what is known about magpies and jays.16. What does the professor imply about animals that exhibit mirror self-recognition?●They acquired this ability through recent evolutionary changes.●They are not necessarily more intelligent than other animals.●Their brains all have an identical structure that governs this ability.●They may be able to understand another animal’s perspective.17. According to the professor, what conclusion can be drawn from what is now known about corvettes’ brains?●The area in corvids’ brains tha t governs cognitive functions governs other functions as well.●Corvids’ brains have evolved in the same way as other birds’ brains, only more rapidly.●Corvids’ and primates’ brains have evolved differently but have some similar cognitive abilities.●The cognitive abilities of different types of corvids vary greatly.Conversation 21. Why does the man go to see the professor?●To learn more about his student teaching assignment●To discuss the best time to complete his senior thesis●To discuss the possibility of changing the topic of his senior thesis●To find out whether the professor will be his advisor for his senior thesis2. What is the man’s concern about the second half of the academic year?●He will not have time to do the necessary research for his senior thesis.●He will not be allowed to write his senior thesis on his topic choice.●His senior thesis advisor will not be on campus.●His student teaching requirement will not be complete before the thesis is due.3. What does the man imply about Professor Johnson?●His sabbatical may last longer than expected.●His research is highly respected throughout the world.●He is the English department’s specialist on Chaucer.●He is probably familiar with the literature of the Renaissance.4. Why does the man want to write his senior thesis on The Canterbury Tales? [Choose two answers]●He studied it during his favorite course in high school.●He has already received approval for the paper from his professor.●He thinks that the knowledge might help him in graduate school.●He has great admiration for Chaucer.5. Why does the professor say this:●She is uncertain whether the man will be able to finish his paper before the end of the summer.●She thinks the man will need to do a lot of preparation to write on a new topic.●She wants to encourage the man to choose a new advisor for his paper.●She wants the man to select a new topic for his paper during the summer.Lecture 36. What is the lecture mainly about?●The differences in how humans and plants sense light●An explanation of an experiment on color and wavelength●How plants sense and respond to different wavelengths of light●The process by which photoreceptors distinguish wavelengths of light7. According to the professor, what is one way that a plant reacts to changes in the number of hours of sunlight?●The plant absorbs different wavelengths of light.●The plant begins to flower or stops flowering.●The number of photoreceptors in the plant increases.●The plant’s rate of photosynthesis increases.8. Why does the professor think that it is inappropriate for certain wavelength of light to be named “far-red”?●Far-red wavelengths appear identical to red wavelengths to the human eye.●Far-red wavelengths have the same effects on plants as red wavelengths do.●Far-red wavelengths travel shorter distances than red wavelengths do.●Far-red wavelengths are not perceived as red by the human eye.9. What point does the professor make when she discusses the red light and far-red light that reaches plants?●All of the far-red light that reaches plants is used for photosynthesis.●Plants flower more rapidly in response to far-red light than to red light.●Plants absorb more of the red light that reaches them than of the far-red light.●Red light is absorbed more slowly by plants than far-red light is.10. According to the professor, how does a plant typically react when it senses a high ratio of far-red light to red light?●It slows down its growth.●It begins photosynthesis.●It produces more photoreceptors.●It starts to release its seeds.11. In the Pampas experiment, what was the function of the LEDs?●To stimulate photosynthesis●To simulate red light●To add to the intensity of the sunlight●To provide additional far-red lightLecture 412. What does the professor mainly discuss?●Evidence of an ancient civilization in central Asia●Archaeological techniques used to uncover ancient settlements●The controversy concerning an archaeological find in central Asia●Methods used to preserve archaeological sites in arid areas13. What point does the professor make about mound sites?●They are easier to excavate than other types of archaeological sites.●They often provide information about several generations of people.●They often contain evidence of trade.●Most have been found in what are now desert areas.14. Why does the professor compare Gonur-depe to ancient Egypt?●To point out that Gonur-depe existed earlier than other ancient civilizations●To emphasize that the findings at Gonur-depe are evidence of an advanced civilization●To demonstrate that the findings at these locations have little in common●To suggest that the discovery of Gonur-depe will lead to more research in Egypt15. What does the professor imply about the people of Gonur-depe?●They avoided contact with people from other areas.●They inhabited Gonur-depe before resettling in Egypt.●They were skilled in jewelry making.●They modeled their city after cities in China.16. Settlements existed at the Gonur-depe site for only a few hundred years. What does the professor say might explain this fact? [Choose two answers]●Wars with neighboring settlements●Destruction caused by an earthquake●Changes in the course of the Murgab River●Frequent flooding of the Murgab River17. What is the professor’s opinion about the future of the Gonur-depe site?●She believes it would be a mistake to alter its original form.●She doubts the ruins will deteriorate further.●She thinks other sites are more deserving of researchers’ attention.●She is not convinced it will be restored.TPO-29Conversation 11. What is the conversation mainly about?●What the deadline to register for a Japanese class is●Why a class the woman chose may not be suitable for her●How the woman can fix an unexpected problem with her class schedule●How first-year students can get permission to take an extra class2. Why does the man tell the woman that Japanese classes are popular?●To imply that a Japanese class is unlikely to be canceled●To explain why the woman should have registered for the class sooner●To encourage the woman to consider taking Japanese●To convince the woman to wait until next semester to take a Japanese class3. Why does the man ask the woman if she registered for classes online?●To explain that she should have registered at the registrar’s office●To find out if there is a record of her registration in the computer●To suggest a more efficient way to register for classes●To determine if she received confirmation of her registration4. What does the man suggest the woman do? [Choose two answers]●Put her name on a waiting list●Get the professor to sign a form granting her permission to take the class●Identify a course she could take instead of Japanese●Speak to the head of the Japanese department5. What does the man imply when he points out that the woman is a first-year student?●The woman has registered for too many classes.●The woman should not be concerned if she cannot get into the Japanese class●The woman should not register for advanced-level Japanese classes yet●The woman should only take required courses at this timeLecture 16. What does the professor mainly discuss?●Causes of soil diversity in old-growth forests●The results of a recent research study in a Michigan forest●The impact of pedodiversity on forest growth●How forest management affects soil diversity7. According to the professor, in what way is the soil in forested areas generally different from soil in other areas?●In forested areas, the soil tends to be warmer and moister.●In forested areas, the chemistry of the soil changes more rapidly.●In forested areas, there is usually more variability in soil types.●In forested areas, there is generally more acid in the soil.8. What does the professor suggest are the three main causes of pedodiversity in the old-growth hardwood forests she discusses? [Choose three answers]●The uprooting of trees●The existence of gaps●Current forest-management practices●Diversity of tree species●Changes in climatic conditions9. Why does the professor mention radiation from the Sun?●To point out why pits and mounds have soil with unusual properties●To indicate the reason some tree species thrive in Michigan while others do not●To give an example of a factor that cannot be reproduced in forest management●To help explain the effects of forest gaps on soil10. Why does the professor consider pedodiversity an important field of research?●It has challenged fundamental ideas about plant ecology.●It has led to significant discoveries in other fields.●It has implications for forest management.●It is an area of study that is often misunderstood.11. Why does the professor give the students an article to read?●To help them understand the relationship between forest dynamics and pedodiversity●To help them understand how to approach an assignment●To provide them with more information on pits and mounds●To provide them with more exposure to a controversial aspect of pedodiversityLecture 212. What is the main purpose of the lecture?●To explain how musicians can perform successfully in theaters and concert halls with pooracoustics●To explain how the design of theaters and concert halls has changed over time●To discuss design factors that affect sound in a room●To discuss a method to measure the reverberation time of a room13. According to the lecture, what were Sabine’s contr ibutions to architectural acoustics? [Choose two answers]●He founded the field of architectural acoustics.●He developed an important formula for measuring a room’s reverberation time.●He renewed architects’ interest in ancient theaters.●He provided support for using established architectural principles in the design of concert halls.14. According to the professor, what is likely to happen if a room has a very long reverberation time?●Performers will have to make an effort to be louder.●Sound will not be scattered in all directions.●Older sounds will interfere with the perception of new sounds.●Only people in the center of the room will be able to hear clearly.15. Why does the professor mention a piano recital? [Choose two answers]●To illustrate that different kinds of performances require rooms with different reverberationtimes●To demonstrate that the size of the instrument can affect its acoustic properties●To cite a type of performance suitable for a rectangular concert hall●To exemplify that the reverberation time of a room is related to its size16. According to the professor, what purpose do wall decorations in older concert halls serve?●They make sound in the hall reverberate longer.●They distribute the sound more evenly in the hall.●They make large halls look smaller and more intimate.●They disguise structural changes made to improve sound quality.17. Why does the professor say this:●To find out if students have understood his point●To indicate that he will conclude the lecture soon●To introduce a factor contradicting his previous statement●To add emphasis to his previous statementConversation 21. Why does the student go to see the professor?●To explain why he may need to hand in an assignment late●To get instruction on how to complete an assignment●To discuss a type of music his class is studying●To ask if he can choose the music to write about in a listening journal2. What does the student describe as challenging?●Comparing contemporary music to earlier musical forms●Understanding the meaning of songs that are not written in English●Finding the time to listen to music outside of class●Writing critically about musical works3. Why does the student mention hip-hop music?●To contrast the ways he responds to familiar and unfamiliar music。

Object-Oriented Analysis, Criterion Referencing, and Bloom Ilona Box

Object-Oriented Analysis, Criterion Referencing, and Bloom Ilona Box

Object-Oriented Analysis, Criterion Referencing, and BloomIlona BoxSchool of Computing and Information TechnologyUniversity of Western SydneyLocked Bag 1797, Penrith South DC 1797, New South Walesi.box@.auAbstractLister and Leaney (Lister and Leaney, 2003b) presented a "coherent, explicit grading philosophy based on Bloom's taxonomy". I applied this philosophy to a second year, first semester subject in object-oriented analysis. My motivation to do so was based on a complexity of issues similar to those encountered by Lister et al. I report on the implementation of the philosophy, the lessons learned, as well as the fairness, equity, and feasibility of the implementation. I recommend the application of the grading philosophy as it yields a viable, repeatable, sustainable, and honest assessment strategy.Keywords: Bloom’s taxonomy, criteria referencing, software development1. IntroductionMy experience at college during my degree from 1979 to 1981 was of studying with academically committed fellow students, there was just a handful that was not. I was flummoxed to find these proportions had inversed when I began teaching in the late Nineties. I read Biggs (1999) and was relieved to find I wasn't alone; he wrote, “[The students are]…at university not out of a driving curiosity about a particular subject or a burning ambition to excel in a particular profession, but to obtain a qualification for a job…[have] a less developed background of relevant knowledge…[come] to the lecture with few questions…[and want] only to put in sufficient effort to pass”. This set me on a path to do something about that situation.The hardest issue, with which I had to come to terms, was not all my students wanted to strive for the top grade, a high distinction. I have students who are happy with any grade, so long as they pass. Sometimes, they are even disappointed if they have expended too much effort and received a mark higher than 50. Also, they work for an income a bank more than I, as a student, needed to, the average being 15 hours per week (McInnis and Hartley, 2002). I was aware that I had to improve the students learning experience, and did ((Box, 2000, 2001a, b, 2002, 2003a, b, Box and Ferguson, 2001, 2002). As well as keeping these enhancements in place, I had to come to terms with the Copyright © 2004, Australian Computer Society, Inc. This paper appeared at the 6th Australasian Computing Education Conference (ACE2004), Dunedin, NZ. Conferences in Research and Practical in Information Technology, Vol. 30. Raymond Lister and Alison Young, Eds. Reproduction for academic, not-for profit purposes provided this text is included.students’ diversity of ideas about what they considered as acceptable academic commitment. A lengthy discussion with Lister (2003) led me to adjusting the existing assessment strategy of the unit I coordinated, Object-Oriented Analysis (OOA).Lister and Leaney presented a "coherent, explicit grading philosophy based on Bloom's taxonomy" (Lister and Leaney, 2003b). They devised a criterion-referenced grading scheme to address issues such as students not being able to program after introductory programming subjects (McCracken et al., 2001); “truth in sentencing” (or lack thereof) (Lister, 2001); students not achieving their true potential via norm-referenced grading, and; changes to curriculum, e.g. The Joint Task Force on Computing Curricula et al (2001).I faced a similar complexity of issues, such as: students not being able to perform tasks, or exhibit an expected level of knowledge or skill in object-oriented analysis; a lack of “truth in sentencing”; stronger students not being challenged; large student numbers; multiple campuses; and the difficulties of marking and timeliness associated with the latter two issues.After discussion with Lister (2003) where my concerns about equal opportunity, fairness, and feasibility were appeased I was motivated to implement the criterion-referenced grading scheme for a second year, first semester subject in object-oriented analysis.I report here on the implementation of the criterion referenced grading scheme for summative assessment. I describe the lessons that were learnt and how concerns of fairness, equal opportunity, and feasibility were addressed.2. Lister & Leaney's Grading Philosophy Lister and Leaney’s grading philosophy is to realise the potential of each student. Grading is done by assigning a grade to a student according to how that student meets explicit clear criteria, "irrespective of the resultant grade distribution" (Lister and Leaney, 2003b). The philosophy also allows students to strive for their own chosen grade.The explicit and clear criteria are based on Bloom's Taxonomy of educational objectives (Bloom and Krathowl, 1956). The six levels of the taxonomy are grouped into three pairs and match against three passing grades, thus: knowledge and comprehension for pass grade; application and analysis for a credit or distinction grade, and; synthesis and evaluation for a high distinction. The broad criteria for each grade are expressed using verbs (examples can be found in Kemp(1996)) that indicated the type of cognitive behaviour that was expected from a student with that particular grade. The broad criteria are also referred to as objectives or learning outcomes.A grade is attempted by students doing tasks depending on the grade they want. For a pass grade all the assessment tasks are: laboratory exercises to have the students actively engage with the material presented at lectures; an invigilated laboratory exam, graded as pass/fail, and; a multiple-choice question (MCQ) exam with questions modelled on a style described in (Lister, 2001). For a credit or distinction a structured assignment and the pass grade assessment tasks are done to a set standard. For a high distinction a project of the students’ choice, including a peer-review, and the credit or distinction assessment tasks are done to a set standard. 3. Issues and MotivationThe complexity of issues I faced: students not performing, lack of "truth in sentencing", lack of challenges for stronger students, large student numbers and multiple campuses and associated problems, was realised in a number of ways. Students were not able to perform object-oriented analysis and design tasks, or exhibit an expected level of knowledge or skill. This was most tellingly revealed by the lecturer of the capstone project subject,. he said, “I start classes with the assumption that the students know nothing.” This was based on his experience of lowering his expectations of students’ abilities doing the capstone project subject.Lister et al (Lister and Leaney, 2003a) cite evidence (McCracken et al., 2001) that there is a problem with the way programming is taught. Though similar evidence in the object-oriented software development discipline was not found, anecdotal evidence (Almgren, 2002) and personal experience suggests that the same problem exists with the teaching in this discipline.The lack of “truth in sentencing” (Lister, 2001) is when the marks and/or marking criteria of assignments and exams are not closely matched to stated objectives of the subject or the tasks themselves. This lack combined with students’ compartmentalizing of subjects was evidenced in a number of ways. For instance, students acted as if they had not done a university standard assessment task before, even though they were in their second year, or a subject in the principles of professional communication. Again, anecdotal evidence (Editor, 2003) suggests that this issue is real and common.The strongest student not being challenged was another issue I faced. There are differences between weaker and stronger students. The weaker students may not be poor academically in all subjects; they may just be poor in this subject due to their lack of talent or interest in the content. The stronger students are usually interested and quite good academically; they sometimes have a talent for the subject content. For an academic who is passionate about ones specialty it can be difficult to imagine that others are not; for those that are not interested, it is merely a question of exposing them to the “beauty” of the specialty to become so. This is not reality. Not all students are interested in all the core subjects in a degree. Hopefully, they are able to choose electives in which they are interested, if not talented. For the weaker students we need to recognise their marginal interest; stronger students need challenges to nurture their talent and spur their interest.Large student numbers is an ongoing issue. Enrolment numbers in the hundreds is common; OOA starting enrolment was over 500. The subject, OOOA, is taught on three campuses. It takes approximately an hour to drive from one campus to another. The logistics of marking, timeliness of feedback, consistency of marking, moderating marks, equity across campuses, evenness of delivery, quality and availability of sessional staff, and methods of access to subject materials are all impacted by large student numbers and multiple campuses.I had addressed some of these issues by using formative assessment that engaged students in learning (Box, 2002, 2003a, b) and providing a text appropriate for the students (Box and Ferguson, 2002). I felt more could be done. I was motivated to explicitly address the issues by implementing an honest, realistic, achievable, fair, and pedagogically sound, summative assessment strategy. The issues faced by Lister et al were similar to mine. They had addressed their issues by adopting a grading philosophy that provided a suitable summative assessment strategy. I chose to implement their strategy.4. ImplementationObject-Oriented Analysis (OOA) is a second year subject with an initial enrolment of about 500 students; in Autumn 2003 just over 300 sat the final exam. (The attrition was largely due to incorrect enrolments, in particular not meeting the prerequisite.) OOA is taught on three campuses. One subject or unit coordinator (developer and provider of subject materials and management), two lecturers (one of whom was sessional staff), and seven tutors (all sessional staff) were the staff used to deliver OOA in Autumn 2003.The implementation of the Lister and Leaney grading philosophy required changes to the unit objectives, exam structure, continuous summative assessment tasks, and determination of the final grade.4.1 Unit ObjectivesThe existing unit objectives had been written with Bloom’s taxonomy for educational objectives in mind. However, changes were required to identify and group which objectives applied to which grade and by carefully choosing some words (shown in italics in Figure 1) so that the objectives matched Bloom's taxonomy and the corresponding grade. The resulting unit objectives (Figure 1) were improved as they were more closely aligned to the assessment tasks and embodied the levels of understanding in advance (Biggs, 1999).At the conclusion of Object-Oriented Analysis students who have achieved: - At least a Pass grade will be able to:a) Exhibit knowledge of the purpose and meaning of adevelopment lifecycle and the phases in an object-oriented software development lifecycle by accurately identifying these.b) Accurately recognize most of the object-orientedinformation system modelling and development techniques in the early phases of system development for a given case study and possibly other smaller scenarios.c) Accurately recognize the appropriateness andcorrectness of artefacts in the early phases of software development for a given case study and possibly other smaller scenarios.d) Use a CASE tool to reproduce artefacts applicable tothe early phases of an object-oriented software development process.e) Use selected features of an object-oriented integrateddevelopment environment to reproduce artefacts applicable to the early phases of an object-oriented software development process.f) Use selected features of a word processor toreproduce artefacts applicable to the early phases of an object-oriented software development process.A Credit or Distinction grade shall satisfy the objectives for a Pass and will be able to:g) Apply knowledge of object-oriented softwaredevelopment by writing portions of successful, accurate, and workable deliverables for the early phases of the development process based on their analysis of a small case study.h) Demonstrate a beginning developer’s level ofquestioning skills by practicing the skills when participating in class and gathering requirements from the client for the case study and appropriately including their findings in the deliverables.i) Accurately interpret verbal and written instructionsabout the performance of software development tasks and associated administrative duties.A High Distinction grade shall satisfy the objectives for a Credit or Distinction grade and will be able to:j) Prepare a project proposal for a small software system.k) Synthesize knowledge of object-oriented software development by creating successful, accurate, and workable deliverables for the early phases of the development process for the proposed project as well-documented artefacts.l) Evaluate the quality of artefacts produced from the early phases of an object-oriented software development process.Figure 1. Objectives of Object-Oriented Analysis Autumn 2003 (Words in italics relate to Bloom'staxonomy.) 4.2 Exam StructuresLister et al. use two exams, a laboratory exam, which I called a practical exam, and a MCQ final exam.4.2.1 Practical ExamThe pass/fail practical exam replaced the, often gratuitous, small percentage points for continuous tutorial assessment. The weekly tutorials were used for formative assessment as described in (Box, 2002, 2003a, b) . Each student was encouraged to develop an electronic portfolio of the activities. (The portfolio could later be used as a demonstration of a student’s learning if they wish to contest their grade.) The preparation and in-clas s activities prepared the students for the practical exam.The practical exam addressed objectives d, e, and f (Figure 1). Ten different possible questions were set and made available online, as were all unit material, prior to the practical exam. Every student on every campus was able to prepare for the practical exam based on the same material. This was a fair and equitable way of addressing the issue of multiple campuses (and access to unit materials). Each student was set one of the 10 questions, at random, at the time of the exam. The tutor and students were given the marking criteria before the exam, which can be broadly stated as: the student's reproduced artefact must exactly match the provided artefact. The tutor marked the exam in the tutorial session and made the mark immediately available to the student. Any student who failed the practical exam was able to re-sit the following week.Students were encouraged to practice all ten questions. Even though they may not be tested on all three objectives the practical exam addressed, as the questions were randomly assigned at the time of the exam, they should have been able to meet all three objectives.As the questions had been made available beforehand plagiarism was not an issue. The exam was held in the usual tutorial sessions, in the last two weeks of the semester.The practical exams took just over three hours to write; it was an edited version of the tutorial materials, which took approximately 65 hours to prepare.In keeping with Lister et al (Lister and Leaney, 2003a), approximately 90 percent of the class passed the practical exam at their first attempt, almost everybody passed after their second attempt.4.2.2 MCQ Final ExamPrevious final exams included a MCQ section, short answer questions, and a case study. This was an attempt to test the students’ competency in all the objectives in a controlled environment. This is in itself a poor assessment design. The marking of the non-MCQ portions was always problematic because of the large number of papers, the fatigue of the marker, consistency of the marking, the moderation of the marks, and the logistics of getting the papers to and from markers, if more than one marker was involved. When I took on themarking is a solo effort it often involved long hours and weekends, placing unrealistic demands on myself, consistently beyond what most would consider a reasonable workload.Another issue with the non-MCQ portion of the final exam was the lessening of the "truth in sentencing". Grace points were given for written answers to the previous final exam. Marking approximately 2000 pages of (often poor) handwriting, to a strict deadline, proved an arduous task and to re-mark questions was not viable or sustainable. Accumulating grace points contributed to the lack of “truth in sentencing”. It was difficult to share the marking as this increased the risk of losing papers or required several markers to be in the same place for many hours, and it was difficult to find good markers. Under the circumstances, to err in the favour of the students by giving marks for their writing anything, even a word or two, related to the question and desired answer was more likely than giving a zero (especially when there is pressure from various levels in the institution not to fail to many students). To remove these problems with the non-MCQ component of an exam is easy, move to a (preferably) machine-marked totally MCQ exam.The move to an entirely multiple-choice question exam is perhaps the most contentious issue with Lister and Leaney's assessment strategy. Lister’s presentations, though often received favourably, usually are followed with objections about the MCQ exam. Yet the reality is it is not sustainable practice to have workload estimates of 150 to 200 hours of exam marking at the end of every semester. Nor is it necessary for all objectives to be tested at all levels of competency in one assessment task. The MCQ exam tests objectives at the knowledge and comprehension levels of Bloom's taxonomy. And the MCQ exam only tests some, not all the objectives. The MCQ final exam assessed objectives a, b, and c (Figure 1).An exam based entirely on well-written MCQs requires a considerable amount of time spent formulating a reliable (KR20 of at least 0.8) and valid question bank. Lister spent over a week (Lister, 2000) writing an exam of 40 MCQs. I spent 33 hours writing 60 MCQs, which yielded a KR20 of 0.78 for the Autumn 2003 exam.The pre-set standard for passing the MCQ exam was 70%. Lister et al also set such a high pass mark. One reason is the calculation of a passing mark: if the pass mark for a pass grade is 50 out of 100 and the MCQ exam is worth 70 of the 100 marks then 70% of 70 is 49, which is near enough to 50 to be the required passing standard. Another reason is the level being tested is knowledge and comprehension. I, as to others, expect students to have a high level of knowledge and comprehension even though other levels in Bloom's taxonomy may not be met at a similar level.The results of the MCQ exam need careful consideration, which takes considerably less time than marking written answers. Using the raw score as the starting point, then adjusting for questions with two correct answers, just over 17% of students achieved 70%. The standard was lowered, according to the determination of final grade stipulated in the unit outline discussed later, to 53%. This was disappointing. I may be able to improve this figure by providing examples of the MCQs to students during the semester. They will then have had practice at doing these sorts of questions. One distinct advantage of a MCQ exam is that it can be machine marked. Then, not only are the results of the students provided, but also statistics such as the reliability of the exam and an item analysis are reported. Though the result processing timeline did not allow the complete and in-depth consideration of these statistics to influence the results of Autumn 2003, further work is being done, using the multiple-choice question report, to develop a process to do this quickly. So far, it has been found that using the statistics in the computer marking report can increase reliability and validity (early indications are that the reliability could be marginally increased and the pass mark raised by as much as 11 percent). Also, when reworking the questions for future exams the item analysis can be used to help discover the elements of good questions. If identifiable these elements can be transferred to other questions.4.3 Continuous Summative AssessmentAs stated earlier a structure for formative assessment to engage the students in active learning was already in place. It was felt that the existing continuous, summative assessments required changing.The existing continuous, summative assessment was standard across most units in the school, i.e. two or three assignments, the first due at week 5 or 6, the second at week 9 or 10 and the third, if set, due at week 12 or 13 of a 13 week semester. All the assignments were compulsory. This meant the weaker students submitted work that was difficult to comment on as there was often so much that needed comments that they could amount to more than the submitted assignment. Also the weaker students tended to gain grace points for effort rather than quality and the same problems with marking the written component of the final exam exist with marking these assignments. The strongest students were not challenged by these assignments.The implementation of the Lister and Leaney grading philosophy meant that continuous summative assessment tasks were no longer compulsory. This meant the weaker students, especially those not particularly interested in this subject, could opt for assessment by the two exams only.The two continuous, summative assessment tasks were due on the same date. This meant that only the stronger students, with appropriate time management, were likely to complete the two tasks. The two tasks were a structured assignment and an individual project.4.3.1 Structured AssignmentThe structured assignments assessed objectives g, h, andi (Figure 1). The structured assignment was similar to earlier assignments set in previous semesters. The maindifferences that needed to be made so that the assignment was similar in type to that used by Lister et al were reducing the amount of work, not working in groups, and explicitly limiting the scope to six use cases. For earlier assignments, students tended to produce large documents, approximately 20 pages each. Consequently, to make marking feasible and the work achievable by the students, assignments were done in groups. This often resulted in students relying on others to do the work, disgruntled committed students, and unsatisfying learning experiences all round. Limiting the amount of required work, removing the need to work in groups, and the compulsion that assignments must be done by all, meant the marking became more manageable and only those students interested in achieving higher grades deciding to do the work.Of the 134 assignments submitted, 50 scored eight or more out of 14, 28 scored six, and 56 scored three out of 14. Again a disappointing result that I feel could be improved by providing more examples of what is expected.The structured assignment details were based on previous assignments. Approximately 3.5 hours were spent preparing the details of the structured assignment for OOA in Autumn 2003. Grouped comments were provided as feedback.4.3.2 Individual ProjectThe individual project assessed objectives j, k, and l (Figure 1). The project was divided into three parts: a two-page project proposal, a deliverable from the first two phases of a five-phase software development life cycle, and an evaluation of a deliverable.The characteristics of the individual project were similar to Lister and Leaney's (Lister and Leaney, 2003b). The students were asked to develop a system of their own choice and limited tasks were set for completion.About 150 completed the proposal, 27 students managed to complete up to part two, only 17 students managed to complete all three parts of the project. Of the 17 completed projects, 13 were of an acceptable standard. Again a better performance would have been preferred and this is likely to be achieved by providing more examples for the students of projects and assisting them with their time management.The individual project details were based on previous assignments. Approximately 1 hour was spent preparing the details of the individual project for OOA in Autumn 2003. Another hour was spent writing group comments as feedback to the proposals. Each individual project part two and three received personalized comments.The short amount of time needed to prepare the assignments was due to the ongoing evolution of the assignments since 1997. A template I had written, now also in used by others, is easily edited to suit. The details of content specific to the project or assignment will all that needed adding and editing. 4.4 Determining Final GradesI am required to stipulate how the final grade is determined in the unit outline. According to guidelines set by my institution’s Academic Senate, an acceptable portion of “F” grades is 20% of enrolled students. Also, I had a prior occurrence of 58% of students failing. From this event, I learnt that at least 60% of students must pass, or the grades were likely to be changed. The Academic Senate ruling, the previous event, and as the assessment structure, and to some extent the assessment tasks, were new to the students accommodations were made to ensure the percentage of students passing was at least 60%.Only the pass grade assessment tasks were compulsory.I had used the tutorial preparation and in-class activities, to equate to Lister and Leaney's laboratory exercises, as ungraded formative assessment. The practical exam was marked as pass/fail. This left the MCQ final exam mark as the one that could be manipulated to achieve an acceptable portion of passing students and therefore determine final grades. As stated earlier the pass mark for the MCQ final exam was lowered from 70% to 53%. Unlike the student cohort taught by Lister and Leaney, which is drawn from the top 12% of high school students, my students are drawn from the top 35%, most of who fall between this 12% and 35%. This means I have more students that are not as experienced at achieving high academic standards. Class time was spent explaining the assessment structure and this was reinforced in a number of places in the unit materials. However, I felt that more could be done to help the students understand the links between the objectives, assessment tasks, and the determination of the final grade.5. RECOMMENDATIONSMy experience of implementing the Lister and Leaney grading philosophy provided me with a number of lessons that I have set out here as recommendations. I consider that these recommendations, though not exhaustive, are applicable to others choosing to adopt the Lister and Leaney grading philosophy.1) Allow more time than one might expect is required to prepare high-quality assessment tasks. Though certainly not empirical evidence, the assignment and project, on which I spent the least amount of time, seemed to be more poorly interpreted by the students than other subject materials. This also needs to be considered with my experience that the students are neither sets standards nor do markers adhere to the standard when set. Consequently, the interpretation of what was required is in part a reflection of the students experience with previous and similar tasks.2) Provide examples of all assessment tasks. My students had not encountered such a rigorous or demanding assessment strategy and therefore were unfamiliar with the quality and nature of the tasks. For the formative and continuous summative assessment provide examples of completed assignments and。

Automating the evolution of object-oriented systems

Automating the evolution of object-oriented systems
Copyright c 1994, 1995 by the authors. All rights reserved.
Abstract
A formal framework is presented for maintaining behavior and consistency of objectoriented systems during software evolution. The framework e ectively couples a change avoidance approach based on adaptive software with a change management mechanism to fully automate evolution. Class structure transformations may render existing objects and programs inconsistent. The paper identi es the introduced inconsistencies and provides the necessary object and program transformations to reinstate consistency while maintaining the behavior of the system. A formal de nition of behavioral equivalence is given. To prove behavioral equivalence of adaptive programs, the paper de nes a formal semantics for adaptive software and describes a proof system for the semantics. Finally, the feasibility of the framework is demonstrated for a representative set of primitive class structure transformations.

面向对象编程3000字英文原文及中文翻译

面向对象编程3000字英文原文及中文翻译

面向对象编程3000字英文原文及中文翻译1.___matic paragraphs:Why has object-oriented programming had such a sweeping impact on the are development community。

Object-oriented programming ___ managers。

___ analysts and designers。

___ produces a clear。

manageable design。

For programmers。

the elegance and clarity of the object model and the power of object-oriented tools and libraries make programming a much more pleasant task。

___ wins。

it would seem.If there’s a downside。

it is the expense of the learning curve。

Thinking in objects is a ___。

and the process of designing objectsis much more challenging than ral design。

especially if you’re trying to create reusable objects.2.Rewriting each paragraph:Object-oriented programming has ___ and maintenance。

while analysts and designers ___ and create clear。

manageable designs。

Programmers can take advantage of the elegance and clarity of the object model。

OO实例05

OO实例05
工具使用这些图形符号和文本 语法进行系统建模提供标准。 这些图形符号和文字所表达的 是应用级的模型,在语法上它 是UML元模型的实例。
UML的具体组成
▪ 视图(View)
▪ 表达系统的某一方面特征的UML建模
元素的子集,由多个图构成Βιβλιοθήκη 是在某 一个抽象层上对系统的抽象表示。
▪ 图(Diagram)
▪ 模型元素集的图形表示
▪Be expressed with OCL(object
constraint language)
UML diagrams
▪ Use cases Diagram ▪ Interactive Diagram
▪ Static Diagram
▪ Class diagrams ▪ Package diagrams
▪ 体现系统的动态或行为特征,故又称为
Behavioral Model View和Dynamic View.
▪ 组件视图(Component View)
▪ 体现系统的结构或行为特征,故又称为
Implementation Model View.
▪ 配置视图(Deployment View)
▪ 体现系统的实现环境的结构或行为特征,
▪ Cases(用例)
▪ A depiction of some aspect of
functionality
▪ Extensions
▪ To extend a use case to illustrate a
different or deeper perspective.
▪ Uses
▪ Actually a reuse of an already-
▪ It is a kind of representation that describe

软件工程实践者的研究方法第24章答案

软件工程实践者的研究方法第24章答案

软件⼯程实践者的研究⽅法第24章答案Problem:In your own words, describe why the class is the smallest reasonable unit for testing within an OO system.Answer:4633-19-1P SA: 9420SR: 6376Classes are the most important and basic element in an Object Oriented system. A class is a template which contains the various attributes and functions of an object. It encapsulates data and operations. In OO system, an operation can not be created by itself without being a part of a class.Classes usually encapsulate data and operations to perform a certain function. As a class is the basic structure used to provide functions, it can be considered as the smallest reasonable unit for testing within an OO system.As the methods in the OO system are packaged as a unit of classes, testing just the methods one-by-one would be sterilized and would not uncover errors. Testing the whole class as one unit will make the testing more efficient and productive. This is especially appropriate if strong consistency and loose coupling is applied effectively in the class design.Problem:Why do we have to retest subclasses that are instantiated from an existing class, if the existing class has already been thoroughly tested? Can we use the test-case design for the existing class?Answer:We have to retest subclasses that are instantiated from an existing class because the operations defined in an existing class may be used in a different context when it is in a subclass. That means same operation may be used in different contexts depending on whether it is in a subclass or an existing class. So it is necessary to test the operations in the context of each of the subclasses.If the subclass instantiated from an existing class is used within the same problem domain, it is likely that the set of test cases designed for the existing class can be used when testing the subclass. However, if the subclass is used in an entirely different context, the existing class test cases will have little applicability and a new set of tests musts be designed.Problem:Why should “testing” begin with object-oriented analysis and design?Answer:4633-19-3P SA: 9420SR: 6376The testing begins with object-oriented analysis and design because it provides substantial information about the structure and behavior of the system. At each stage, the object oriented models can be tested in an attempt to uncover errors prior to their propagation to the next iteration.Problem:Derive a set of CRC index cards for SafeHome, and conduct the steps noted in Section 24.2.2 to determine if inconsistencies exist.Answer:A CRC Model is a collection of cards those are divided into three sections.1. Class2. Responsibility3. CollaboratorA CRC is a collection of standard index cards that represent classes. The cards are divided into three sections. Along the top of the card you write the name of the class. In the body of the card you list the class responsibilities on the left and the collaborators on the right.The SafeHome security function enables the homeowner to configure the security system when it is installed, monitors all sensors connected to the security system, and interacts with the homeowner through the Internet, a PC, or a control panel.CRC index cards for SafeHome:Problem:What is the difference between thread-based and use-based strategies for integration testing? How does cluster testing fit in?Answer:4633-19-5P SA: 9420SR: 6376Thread-based testing:• Thread-based testing integrates the set of classes required to respond to one input or event for the system.• Each thread is integrated and tested individually.• Regression testing is applied to ensure that no side effects occur.Use-based testing:• Use-based testing integrates the set of classes required to respond to one use case.• It begins testing by from independent classes (the construction of the system by testing those classes).• After independent classes are tested, dependent classes (the next layer of classes) which depend on independent classes are tested. This sequence of testing layers will be continued until the entire system is constructed.Cluster testing is one step in the integration testing of object oriented software. In this step, a cluster of collaborating classes is exercised by designing test cases that attempt to uncover errors in the collaborations.Problem:Apply random testing and partitioning to three classes defined in the design for the SafeHome system. Produce test cases that indicate the operation sequences that will be invoked.Answer:4633-19-6P SA: 9420SR: 6376Random testing for safe home system classes:-Testing in the small focuses on a single class and the methods that are encapsulated by the class. Random testing and partitioning testing are methods that can be used to exercise a class during OO testing.When we consider the safe home system, we have the following three classes1. Control panel2. Sensor3. CommunicationOperations that are manipulated are adding, deleting, reformatting, and selecting. Each of these operations can be applied for control panel, sensor and communication classes.Minimum behavioral life history of an instance of above classes indicates following operations.Open * window * add * select * reformat * delete * closeA variety of different operations sequence can be generated randomly.Test cases for control panel class:-Test caseIn the control panel class there are operations like. , comparing, locked, selecting.Case 1:Open * Read * Compare * Lock * Select * closeCase 2:Open * enter password * Read * Compare * Request look up * lock * Max tries * Select * ClosePartition testing at the class level:-• Partition testing reduces the number of test cases that are required to exercise the class in much the same manner as equivalence partitioning• Partition testing is breaks down the input domain of a program into classes of data from which test cases can be derived.• Input and Output are categories the class operations bases on their ability to change the state of the class.We consider the common operations of the three classes:Adding, deleting, reformatting, selecting.Here, Tests are designed in a way that exercises operations that change and those that do not change state separately.Test Case :Open * Add * Select * Reformat * Delete * CloseTest Case :Open * Window * Add * Select * Reformat * Delete * CloseHere Test case changes the state and test case exercises operations based on the attributed that they use. Problem:Apply multiple class testing and tests derived from the behavioral model for the Safe-Home design.Answer:4633-19-7P SA: 9420SR: 6376State transition diagram for safe homeThis state transaction diagram represents the dynamic behavior of a class.• This diagram for a class can be used to help derive a sequence of tests that will exercise the dynamic behavior of the class.• State transition diagram for the safe home class 1s.• Starting transactions move through reading the user’s input and invoking the monitor for the system status.• Majority of all behaviors for the instances of the safe home class occurs while in the action on a sensor event.• Sensor event and display cause the feedback class to make transactions to the display state.Tests should achieve all state coverage:Open the user input page invoke the monitor & system status * action on the sensor event (initial) * display the use of feed back (final) * Close.:Open the user input page * Read the user’s input * invoke the monitoring * system status * action on a sensor event (initial) * sensor event invoke * display the user feed back * display (final).This sequence is the minimum test sequence. Now, when class behavior results in collaboration with one or more class multiple state transaction diagrams are used to track the behavioral flow of the system.Problem:Derive four additional tests using random testing and partitioning methods as well as multiple class testing and tests derived from the behavioral model for the banking application presented in Sections 24.5 and 24.6.Answer:Random tests cases are generated to exercise a class and its functionality. Once such test case for a banking application is given below:open.setup.deposit.deposit.summarize.deposit.summarize.withdraw.summarize.withdraw.closeThis test case tests different operations which are randomly generated.State operations and non-state operations can be exercised using partition testing. An example of state operations test case is given below which includes the deposit() operation as well as the withdraw() operation:open.setup.deposit.withdraw.withdraw.deposit.withdraw.closeAnother example of state which includes the balance() operation is given below to illustrate non-state operation:open.setup.deposit.balance.withdraw.closeTests should also be conducted to check the functioning between different classes. The following test case exercises several operations sequence for classes in a banking application:verifyAcct.verifyPIN.withdrawReq.balanceInfoReqThe Bank class should collaborate with class ValidationInfo to be able to execute the operations verifyAcct() and verifyPIN(). The Bank class must be able to collabrote with the Account class also to execute the withdrawReq() and balanceInfoReq() operations. These collaborations can be exercised using the following new test case:VerifyAcct[Bank:validAccValidationInfo].VerifyPIN[Bank:validPinValidationInfo].withdrawReq[Bank:wihdrawaccount].balanceInfoReq[Bank:balanceEnquiryInfo] The dynamic behaviour of a class is tested by a test -case that covers every state of the class from working to non-working state. Once such sequence of operations is given below:open.setupAccnt.deposit(initial).withdraw.accntInfo.deposit.accntInfo.withdraw.accntInfo.withdraw(final).closeThese are few additional test cases which can be used for testing banking application.Solution: CHAPTER24: TESTING OBJECT-ORIENTED APPLICATIONS24.1 The class encapsulates data and the operations that manipulate the data. Since these are packaged as a unit, testing just the methods one-by-onewould be sterile and would not uncover errors associated with messaging, responsibilities and collaborations.24.2 Because each subclass of a given class is applied within the context of private attributes and operations (and the fact that these private attributes andoperations) can add complexity), subclasses must be retested in their operational context. Test cases can be reused, but it is important to extend them to address the private attributes and operations of the subclass.24.3 During latter stages of their development, OO analysis and design models providesubstantial information about the structure and behavior of the system. For this reason, these models should be subjected to rigorous review prior to the generation of code. All object-oriented models should be tested (in this context, the term testing incorporates technical reviews) for correctness,completeness, and consistency within the context of the model’s syntax, semantics and pragmatics. These reviews have the potential to eliminate much unnecessary work and rework (again the earlier errors are discovered the cheaper they are to fix).24.4 Answers will vary24.5 Thread-based testing is used to integrate a set of classes that are required to respond to a single program input or a single event. Use based testingis an integration testing strategy that begins by integrating the classes that do not collaborate with “server” classes (these are called independent classes).Then, classes that collaborate with the independent classes are tested in a layered fashion.24.6 Answers will vary24.7Answers will vary24.8 Answers will vary。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
High speed simulation of concurrent systems requires distributed processing if meaningful results are to be obtained for large systems in a reasonable timeframe. One of the most common methods used for such simulation is Parallel Discrete Event Simulation (PDES). A range of PDES simulation kernels have been developed and much research has been devoted to optimistic execution strategies such as TimeWarp. Unfortunately in all this e ort some fundamental aspects of object oriented modelling for simulation have received scant attention. In particular the ability of simulation kernels to act on truly generic simulation objects. In this context we de ne a truly generic object to be one which totally de nes its responeses to external stimuli, but which has no concept of its place in the interconnected web of objects that comprise the total simulation environment. To address this problem, we propose a new modelling approach based on interacting objects, and an associated simulation kernel architecture. This paper describes the architecture and features of our simulation kernel in detail, and demonstrates, using a small example, the bene ts of adopting such a modelling approach. The major speci c bene ts include true object genericity, enhanced scope for object re-use, and enhanced opportunities to use polymorphism. Keywords: object-oriented simulator, generic distributed kernel, parallel and distributed systems This paper describes the design and implementation of OBJECTSIM. OBJECTSIM represents a new exible and generic approach to performance modelling for parallel and distributed systems. The design is based on a powerful combination of a generic object library (with its associated hierarchies) and a distributed simulation kernel. The introduction motivates the development of OBJECTSIM. Design choices are presented in the context of recent research and the problems with related tools are highlighted. The main body of the paper outlines the conceptual design of OBJECTSIM, and demonstrates how the design addresses the key issues identi ed. The superiority of the OBJECTSIM tool is demonstrated using an example. The paper concludes that the OBJECTSIM approach has produced an e cient and powerful generic tool for simulating parallel and distributed systems. A nal paragraph provides a brief discussion of future directions. Simulation is one of the most important basic tools available to designers and implementers of large scale computers. Development of CPU and system architectures can no longer be realistically accomplished using prototyping approaches. There are two reasons for this. First, the cost of prototyping is very high in terms of both hardware fabrication expenses and time. Second, modern systems are becoming increasingly complex. Thus performance and system behaviour are much harder to predict and evaluate than was previously the case. Architecture simulation provides a cost e ective means to: analyse the performance of a system (in order to better understand its operation); predict system computational power (in terms of the processing capability available through its instruction set); and measure expected temporal performance. Simulation may also be used to evaluate system reliability and fault tolerance and provide support for real-time decisions and interactive training. Programmers also use simulation to evaluate novel programming models for future systems. Simulations are currently used to evaluate processor designs, computer networks, and novel multiprocessor architectures.
Other author information: (Send correspondence to Arnold N. Pears) Arnold N. Pears: Email: pears@.au; Telephone: 61-3-9479 1144; Fax: 61-3-9479 306
Once simulated and precisely evaluated, a design (whether it be for a chip, computer , or network) can be realised with the most up-to-date technology. This allows designers to avoid situations where a nal system has been realised incrementally over many years of prototyping, resulting in a product which is obsolete before it reaches the marketplace. Moreover, new developments made in hardware, software or formal system design can easily be integrated into the system at successive stages of the design. OBJECTSIM draws upon research in a range of elds to produce an e cient object oriented approach to modelling and to support the simulation of the resulting models. To address the issues involved in modelling concurent systems OBJECTSIM uses research on object oriented design, and simulation methodology. An investigation of simulationtechniques has provided the necessary background to develop an e cient simulation kernel architecture. Recent research on the principles and structure of object oriented systems and simulation environments has provided valuable insights for developers of object oriented models. In particular Page and Nance, who emphasise the importance of system correctness and testability, software quality, and the ability to provide a good match between the structure of the system being modelled and the forms of expression provided by the simulation environment. Another important result is the attempt by Tanir and Sevinc, to establish a reference model which characterises the constructs of simulation environments. They emphasise the choice of a general-purpose programming language and suggest that an object oriented languages with high level data structures is to be preferred. Interestingly, they opine that the choice of strongly typed languages when implementing simulation environments may impose restrictions that do not improve the modelling capabilities of the system. In this context C++ seemed the obvious choice for implementingthe OBJECTSIM prototype. The object oriented nature of C++ also assisted in realising the correctness and software quality requirements identi ed by Page and Nance.
相关文档
最新文档