Measuring The Quality Of Inferred Interfaces

Size: px
Start display at page:

Download "Measuring The Quality Of Inferred Interfaces"

Transcription

1 Measuring The Quality Of Inferred Interfaces For Statically Typed Languages Zusammenfassung: Measuring The Quality Of Inferred Interfaces Florian Forster Department of Computer Science, University of Hagen Die Einführung von Interfaces in ein Programm dient der Entkopplung des Quelltextes und der Erhöhung der Flexibilität. Typinferenzalgorithmen können dazu benutzt werden um Interfaces aus der Benutzung eines Deklarationselements im Quelltext abzuleiten. Allerdings ist es so, dass, wenn viele Deklarationselemente den gleiche Typ haben, für diesen Typ durch die Algorithmen unter Umständen sehr viele neue Interfaces eingeführt werden. Allerdings müssen Entwickler ihrer Intuition vertrauen wenn es darum geht den Nutzen der neuen Interfaces zu beurteilen, sprich Entwickler müssen die zusätzlichen Wartungskosten fr jedes Interface dem Nutzen gegenüberstellen. Um diesen Missstand zu beheben wird in diesem Aufsatz eine Metrik hergeleitet die Mengen von Interfaces und einzelne Interfaces im Bezug auf Ihre Qualität vergleichen kann. Diese Metrik hilft Entwicklern bei der Entscheidung welche neuen Interfaces den höchsten Nutzen bringen. Die Aussagekraft der vorgestellte Metrik wird an einem Beispiel aufgezeigt und es wird ein Ausblick auf eine Integration der Metrik in Eclipse gegeben. Schlüsselbegriffe: Metriken für Kopplung, Interfacebasierte Programmierung Abstract: Introducing interfaces to a program serves to decouple the code and to increase its flexibility. Type inference algorithms can be used to extract the interface required from an existing type as expressed by a declaration element typed with this type. However, if many variables in a program are typed with the same type, many new interfaces are likely to be deduced these algorithms. Unfortunately, the developer has to trust his intuition deciding whether the new interfaces proposed by the type inference algorithm are worth the trouble, i.e. if the increased decoupling outweighs the additional maintenance effort which comes along with every new interface and vice versa. Therefore, we provide a measurement to compare sets of inferred interfaces with each other, thus helping developers to select the best set of interfaces for his needs. Furthermore, we briefly evaluate our metric and provide a short sketch for the integration of the metric to the Eclipse IDE. Keywords: Coupling Metrics, Interfacebased Programming IWSM/Metrikon 2006

2 Florian Forster 1 Introduction Interface-based programming [5] is accepted as a useful object-oriented programming technique. According to it, declaration elements in a program should be declared with interfaces and not classes as their types. Two main benefits can be expected from this: First, flexibility is increased, as classes implementing an interface can be exchanged without notification of the client which uses the services of the class via the interface. Second, access to classes is restricted to the methods declared in the interface which is used to type a declaration element holding a reference to an instance of a class. Several algorithms capable to infer interfaces from source code have been developed over the last few years as described in [1, 4, 6,, 8, 10, 11]. Unfortunately, there is not any case study comparing these algorithms with each other. This is mainly due to the fact that there does not exist any metric which measures the quality of a newly introduced interface. For example, if programmers use the refactoring Extract Interface in the Eclipse IDE, they are left alone with the decision, if the inclusion of an additional method to the interface is worth the trobule in terms of increased decoupling. In this paper we present such a metric, thus laying the foundation stone for a case study that compares the existing interface inference algorithms with each other. Furthermore, the presented metric makes the implementation of tools, which guide developers throughout the creation of interfaces, possible. The rest of this paper is organized as follows. After introducing some conventions in section 2 we present approaches for the inference of interfaces from source code. Section 4 provides the necessary background for the derivation of our metric in section 5. In section we derive a second metric capable of comparing sets of interfaces with each other. We present a small example for the application of the metric in section 8 and outline our vision in section 9. 2 Conventions As mentioned above, we introduce a few conventions to make the remainder of this paper easier to read. Each program in a statically typed language like Java defines a set of types which we will call T. This set of types can be divided into the set of classes, C T, and the set of interfaces, I T. Note that T = C I. Whenever we use c/i/t with no or an arbitrary index, we refer to an arbitrary class/interface/type, i.e. c C/i I/t T. Furthermore, each program consists Software Measurement Conference

3 Measuring The Quality Of Inferred Interfaces For Statically Typed Languages of a set of declaration elements, i.e. formal parameters, fields, local variables and methods, to which we will refer as D. 3 Inferring Interfaces Developers of classes are responsible for providing implementations of classes and interfaces. Writing the implementation is straightforward 1, as the developer knows which services the class has to provide from the software requirements. Writing interfaces however is a more challenging task for which two approaches exist. First, developers could think about different contexts in which a set of similar 2 classes might be used after being introduced to the program and provide an interface for each of these contexts before these classes are deployed to the program. Second, once the program is finished, developers could manually derive interfaces from the usage of a specific class or use algorithms like the ones described in [1, 4, 6,, 8, 10, 11]. Unfortunately, the second approach, no matter if interface inference is done manually or automatically, requires that developers examine all declaration elements UnrefinedDeclarationElements(t) = {d 1,... d n } D, which are typed with a class or an interface t for the purpose of inferring one or more new interfaces for t. Note that DeclaredDeclarationElements(t) includes only those declaration elements typed with t which do not access non-public methods or fields. Due to the fact that those declaration elements which are typed with t and make use of non-public methods or fields cannot be redeclared with a new type, we argue that they should not influence a metric measuring the benefit of such a redeclaration. Afterwards, for each declaration element d U nref ineddeclarationelements(t) the transitive closure of all the assignments starting with d on the right side has to be deduced from source code. Finally, all method calls which are accessed through declaration elements in the transitive closure of d have to be aggregated. This aggregation of methods, which we call the access set of a declaration element, provides information in which context the type t is used regarding d. However, as shown in [3], redeclaring every declaration element d with its least specific interface, i.e the interface which contains only those methods which are in the access set of d, is not desirable and leads to a bloated type hierarchy. To 1 At least if a good specification exists. 2 Similar in terms of performing the same task with different implementation. IWSM/Metrikon 2006

4 Florian Forster a certain extend, the inference algorithms from [1, 4, 6,, 8, 10, 11] try to find least specific interfaces (or types). Therefore, to compare these algorithms with each other we present a metric which measures the benefit of introducing a new interface to an existing program. 4 Calculating Access Sets For Declaration Elements As mentioned in section 2, programs in statically typed languages like Java come with a set of types. Each of these types t declares a set of members 3, members(t). We call the subset publicinterf ace(t) := {m members(t) m is a public nonstatic method} the public interface of the type t. In each program the elements of T are arranged in an hierarchy using the reflexive and transitive relation on the types. The relation t 1 t 2, i.e. t 2 is a supertype of t 1, induces the relationship publicinterface(t 1 ) publicinterface(t 2 ) on the public interfaces of t 1 and t 2, i.e. t 1 has at least the same public nonstatic methods as t 2. Each member of the set of declaration elements D in a program has a declared type t. By means of this explicit declaration, each of these declaration elements, d UnrefinedDeclarationElements(t), has access to a certain set of methods, i.e. the public interface publicinterf ace(t) provided by t. However, not all of these methods are accessed using a specific declaration element. The access set of d, accessset t (d), consists of all public nonstatic methods accessed on a declaration element d which is typed with t. This access set is calculated by analyzing the transitive closure of all the assignments, explicit assignments or passing the declaration element to a method, starting with d on the right side. For example let d 1 and d 2 be two declaration elements typed with t and d 2 := d 1 be an assignment in the program. The access set accessset t (d 1 ) consists of all the methods directly invoked on d 1 united with accessset t (d 2 ). Since we target at statically typed languages, Static Class Hierarchy Analysis as described in [2] suffices for computing access sets. More details on calculating access sets for declaration elements can be found in [8]. 3 The members of a class are all fields and methods which are explicitly defined in this class or inherited from one of its superclasses. Software Measurement Conference

5 Measuring The Quality Of Inferred Interfaces For Statically Typed Languages 5 The Quality Of An Inferred Interface Informally spoken, a good interface i for the purpose of reducing coupling by redeclaring a set of declaration elements currently typed with a type t should meet two requirements. First, the interface i should be a suitable and the most context-specific type for as many declaration elements currently typed with t as possible. The set DeclarationElements(i) represents all declaration elements from U nref ineddeclarationelements(t) which can be retyped with i and i is both a suitable and the most context-specific type. An interface i 1 is the most context-specific one for a declaration element d DeclarationElements(i), if there is no other interface i 2 which is suitable for typing d and the relation publicinterface(i 2 ) < publicinterface(i 1 ) holds true, i.e. there is no better matching type existing in the program. An interface is suitable for a declaration element d DeclaredDeclarationElements(t), if for the access set of d the relation accessset t (d) publicinterface(i) is true. In the following we write redeclarationp ower(i) instead of DeclarationElements(i) to make the reading of the metrics easier. Second, the new interface i should be as context specific as possible. This means that each declaration element d from DeclarationElements(t) which should be retyped with the interface i should make use of most methods available through the interface i, i.e. d DeclarationElements(i) the difference of publicinterface(i) accessset t (d) is minimal or 0. Therefore the average fraction of used methods from the available methods in the interface i for the declaration elements from DeclarationElements(i), calculated by d DeclarationElements(i) accessset t (d) publicinterf ace(i) redeclarationp ower(i) should be maximized. Note that in this case the relation accessset t (d) publicinterface(i) is also true for d DeclarationElements(i). Unfortunately these two goals are inversely correlated with each other as follows. The more contexts an interface i subsumes, i.e. redeclarationp ower(i) is big, and therefore the more methods it contains, the less likely it gets that for an arbitrary declaration element d DeclarationElements(i) that the value of accessset t (d) publicinterface(i), i.e. the number of used methods on d in relation to the available (1) IWSM/Metrikon 2006

6 Florian Forster methods in the interface i, is close to one. To take this correlation into account we combine the two requirements by multiplication. Therefore the task of finding a good interfaces i for redeclaring declaration elements currently typed with type t leads to the task of maximizing the product d DeclarationElements(i) accessset t (d) publicinterf ace(i) quality(i, t) =redeclarationp ower(i) ( redeclarationp ower(i) accessset t (d) = publicinterf ace(i) d DeclarationElements(i) ) (2) However, this value is still unrelated to the type t for which the interface i is created. To take this relation into account, we have to add the factor redeclarationp ower(i) redeclarationp ower(i) U nref ineddeclarationelements(t) to quality(i, t). DeclaredDeclarationElements(t) represents the fraction of declaration elements from the type t which can be safely 4 redeclared with the interface i. Thus the quality of an interface is redefined as redeclarationp ower(i) quality(i, t) = ( UnrefinedDeclarationElements(t) ) accessset t (d) publicinterf ace(i) d DeclarationElements(i) (3) The alert reader may have noticed that up to now we made the assumption that any interface is introduced to the program for redeclaring declaration elements typed with only one specific type t. Unfortunately, it is not uncommon 5 that one interface i is used to redeclare declaration elements from more than one type. Hence for a set of types {t 1,..., t n } the quality of newly created interface i for a set of types 4 In this case safely means that the program remains type correct after the redeclaration 5 Especially if the interface is deduced manually. Software Measurement Conference

7 Measuring The Quality Of Inferred Interfaces For Statically Typed Languages is redefined as quality(i, {t 1,..., t n }) =( 1 n t {t 1,...,t n } d DeclarationElements(i) redeclarationp ower(i) UnrefinedDeclarationElements(t) ) accessset t (d) publicinterf ace(i) Hence a good interface i for a set of types is characterized by a relatively high value for quality(i, t) compared to the status quo, i.e. quality(i t, t), i t t {t 1,...,t n } being the implicitly available public interface of a type i, in terms of our metric. 6 Comparing Interfaces t {t m,...,t n } t {t k,...,t l } As we have a measurement for the quality of a newly introduced interface, we are only one step away from our goal. In order to compare two interfaces i 1 and i 2 being introduced for two sets of types, i 1 being introduced for {t m,... t n } and i 2 being introduced for {t k,..., t l }, we have to normalize the quality values. We argue that the situation before the introduction is the status quo and therefore quality(i t, t) or quality(i t, t) respectively serves as our normalization factor. We have to redefine the quality for any interface i which is used to redeclare a set of declaration elements {t 1,..., t n } we measure the quality by normalizedquality(i, {t 1,..., t n }) = quality(i, {t 1,..., t n }) quality(i t, t) t {t 1,...,t n } Let i 1 and i 2 be two interfaces introduced for two sets of types {t m,..., t n } and {t k,..., t l }. Therefore if normalizedquality(i 1, {t m,..., t n }) > normalizedquality(i 2, {t k,..., t l }), quality(i,{t i.e. m,...,t n }) quality(i t,t) > quality(i,{t k,...,t l }) quality(i t,t) holds true, then the introduction of i 1 t {tm,...,tn} t {t k,...,t l } to the program should be preferred. Comparing Decoupling Sets The goal of most type inference algorithms and manual refactorings related to type inference is to reduce coupling for a set of types {t 1,..., t n } from the pro- (4) (5) IWSM/Metrikon 2006

8 Florian Forster gram by using a set of interfaces {i 1,..., i n } for retyping all the declaration elements typed with the types {t 1,..., t n }. We call the union of the implicitly available public interfaces {i t1,..., i tn } of the types {t 1,..., t n } and {i 1,..., i n } a decoupling set for the class types {t 1,..., t n } and write DS {t1,...,t n } instead of {i t1,..., i tn } {i 1,..., i n }. To find the optimal set of interfaces (in terms of our quality metric) for a set of types we need means to compare the quality of decoupling sets with each other. Therefore, we define the quality of a decoupling set DS t1,...,t n as quality(ds {t1,...,t n }, {t 1,..., t n }) = normalizedquality(i, {t 1,..., t n }) i DS {t1,...,tn} (6) i.e. the sum of the individual qualities for each new and public interface in the decoupling set. Note that if all declaration elements of a type t {t 1,..., t n } can be redeclared with the new interfaces then normalizedquality(i t, {t 1,..., t n }) is zero due to redeclarationp ower(i t ) UnrefinedDeclarationElements(t) being zero for type t. We can use this value to compare two decoupling sets, i.e. one set of types {t 1,..., t n } decoupled with two different sets of interfaces DS {t1,...,t n } 1 and DS {t1,...,t n } 2. The relation quality(ds {t1,...,t n } 1, {t 1,..., t n }) > quality(ds {t1,...,t n } 2, {t 1,..., t n }) () means that the decoupling set DS {t1,...,t n } 1 provides a better decoupling for the set of types {t 1,..., t n } than the decoupling set DS {t1,...,t n } 1 in terms of our quality metric. t {t 1,...,t n } Note that adding a perfect matching interface i for a set of types {t 1,..., t n }, which is most likely only a perfect match for a small number of declaration elements, to a decoupling set DS {t1,...,t n } of this set of types, need not result in a big improvement of quality(ds {t1,...,t n }, {t 1,..., t n }), i.e. quality(ds {t1,...,t n }, {t 1,..., t n }) quality(ds {t1,...,t n } {i}, {t 1,..., t n }) is small, as quality(i, {t 1,..., t n }) is small redeclarationp ower(i) due to U nref ineddeclarationelements(t) being small. This reflects that introducing many perfect matching interfaces, each with a small set of declaration elements, is not necessarily better than finding interfaces which subsume several access sets, as each new interface results in additional maintenance effort [3, 5]. Software Measurement Conference

9 Measuring The Quality Of Inferred Interfaces For Statically Typed Languages 8 Evaluation Of The Metric We will use the example presented in Listing 1 to illustrate the usage of access set graphs for inferring useful interfaces. The class Actor 6 represents an actor in a theater group who plays several roles (private Set roles). Clients can remove (deleterole(role)) and add (addrole(role)) roles to the actor or get all the roles an actor currently plays (getroles()). The class actually offers four more methods which are omitted here due to space restrictions, but are used later for evaluating the changes we make. p u b l i c f i n a l c l a s s Actor { p r i v a t e S e t r o l e s ; p u b l i c void addrole ( Role r o l e ) { r o l e s. add ( r o l e ) ; } p u b l i c void d e l e t e R o l e ( Role r o l e ) { r o l e s. remove ( r o l e ) ; } p u b l i c S e t g e t R o l e s ( ) { r e t u r n C o l l e c t i o n s. u n m o d i f i a b l e S e t ( r o l e s ) ; }... } Listing 1: A class for an Actor For the evaluation we assume that there are eight declaration elements existing. Four of them (D 1 ) use either deleterole(role) or addrole(role). Two of them (D 2 ) use both deleterole(role) and getroles() and the remaining two (D 3 ) use addrole(role) and getroles() p u b l i c i n t e r f a c e R o l e P l a y e r { p u b l i c void addrole ( Role r o l e ) ; p u b l i c void d e l e t e R o l e ( Role r o l e ) ; p u b l i c S e t g e t R o l e s ( ) ; } Listing 2: The context-specific interface RolePlayer For simplicity and later usage we calculate the normalization factor, i.e. 6 Note that this example is taken from one of our student projects. IWSM/Metrikon 2006

10 Florian Forster quality(actor, {Actor}) by quality(actor, {Actor}) =( 1 1 ( t {Actor} d D(Actor) redeclarationp ower(actor) UnrefinedDeclarationElements(Actor) ) accessset Actor (d) publicinterface(actor) ) =( ) ( }{{} D }{{ } D ) = }{{ } D 3 For evaluation of the quality of the interface shown in Listing 2, we have to compare the resulting decoupling set with other decoupling sets. The first decoupling set is from the original version of the program, i.e. DS Actor1 = {Actor}. The value quality of this decoupling set is calculated as quality(ds Actor1, {Actor}) = quality(actor, {Actor}) = normalizedquality(actor, {Actor}) quality(actor, {Actor}) = quality(actor, {Actor}) = 1 which is not surprising as we defined the status quo as our normalization factor. Introducing the interface RolePlayer from Listing 2 results in the decoupling set Software Measurement Conference

11 Measuring The Quality Of Inferred Interfaces For Statically Typed Languages DS Actor2 = {Actor, RoleP layer}. The quality of this new declaration set is quality(ds Actor2, {Actor}) =quality({actor, RoleP layer}, {Actor}) =normalizedquality(actor, {Actor}) normalizedquality(rolep layer, {Actor}) ( 0 8 = d D(Actor) ( 8 8 =0 3 = accessset Actor (d) publicinterface(actor) ) d D(RoleP layer) accessset RoleP layer (d) publicinterface(rolep layer) ) (1 ( }{{} = 3 D }{{ 3} D 2,D 3 )) as we now have four declaration elements from D 1 using one out of three and four declaration elements from D 2 and D 3 using two out of three available methods from the interface RolePlayer. Algorithms for automatic type inference in existing programs like the one presented in [8] introduce minimal interfaces for declaration element in a program. Using one of these algorithms on the example presented in Listing 1 results in one interface for D 1, D 2 and D 3. Therefore DS Actor3 = {Actor, Iface D1, Iface D2, Iface D3 } is the decoupling set IWSM/Metrikon 2006

12 Florian Forster in this case. The quality of this decoupling set is calculated as quality(ds Actor3 ) =quality({actor, Iface D1, Iface D2, Iface D3 }, {Actor}) =normalizedquality(actor, {Actor}) normalizedquality(iface D1, {Actor}) normalizedquality(iface D2, {Actor}) normalizedquality(iface D3, {Actor}) ( 0 8 = ( 4 8 accessset Actor (d) publicinterface(actor) ) d D(Actor) accessset IfaceD1 (d) publicinterface(iface D1 ) ) d D(Iface D1 ) accessset IfaceD2 (d) publicinterface(iface D2 ) ) d D(Iface D2 ) ( 2 8 accessset IfaceD3 (d) publicinterface(iface D3 ) ) d D(Iface D3 ) ( 2 8 = Even though this is better than the original version, i.e. quality(ds Actor3 ) > quality(ds Actor1 ), it is worse than the manually deduced version, i.e quality(ds Actor3 ) < quality(ds Actor2 ). 9 The Vision One of the reviewers for the draft to this paper noted that [t]he Relevanz is scored low because of my doubt whether the proposed academic measurement ( scientific formulas) will be implemented and used in a non-academic environment.. We admit that the formulas are very cumbersome to calculate manually. Yet our vision is to consider situations like depicted in Figure 1. As one can see there is no information whatsoever whether the selected methods are a good choice for a new interface. Our vision is that the proposed metric is = 4 Software Measurement Conference

13 Measuring The Quality Of Inferred Interfaces For Statically Typed Languages Figure 1: Using Extract Interface... to create the new interface RolePlayer calculated and presented on-the-fly during the creation of new interfaces using the Extract Interface... -Refactoring. We are currently implementing the metric as a plugin to the Eclipse IDE. Afterwards we will refine the refactoring Extract Interface... to present the metric and investigate its usage in day-to-day development tasks. Furthermore the metric can also be used to measure the usage of already existing interfaces. We envision a tool which assumes that the selected interfaces are not yet introduced to a program and calculates the quality metric. Developers are then capable of deciding, based on the metric and domain knowledge, if the selected interfaces should be removed from the program, i.e. the additional maintenance effort for the interfaces is not worth the benefit. 10 Conclusion After defining access sets for declaration elements we defined a measurement for the quality of a single interface. We refined this metric so that it is now capable of comparing sets of newly created interfaces with each other. A small example was used to depict the application of the metric. Finally a brief look into the future concluded the paper. We plan to finish the implementation of the tools mentioned IWSM/Metrikon 2006

14 Florian Forster in 9 and only then the metric will show if it is useful or not. Nevertheless, at least to our knowledge, we are the first to present a way decreased decoupling which comes along with interfaces might be measured. References [1] Alur, R., et al. Synthesis of interface specifications for Java classes Proceedings of the 32nd ACM SIGPLAN-SIGACT, pages , 2005 [2] Dean, J. and Grove, D. and Chambers, C. Optimization of object-oriented programs using static class hierarchy analysis, Proceedings of ECOOP, pages -101, [3] Forster, F. Cost and Benefit of Rigorous Decoupling with Context-Specific Interfaces, Principles and Practices of Programming Java, [4] Khedker, U.P. and Dhamdhere, D.M. and Mycroft, A. Bidirectional data flow analysis for type inferencing, Computer Languages, Systems & Structures 29:, pages 1544, [5] Löwy, J. Programming.NET Components, O Reilly Media, [6] Palsberg, J. and Schwartzbach, M.I. Object-oriented type inference, Proc. of OOPSLA, pages , 1991 [] Snelting, G. and Tip, F. Understanding class hierarchies using concept analysis, ACM TOPLAS 22:3, pages , [8] Steimann, F. and Mayer, P. and Meißner, A. Decoupling classes with inferred interfaces, Proceedings of the 2006 ACM Symposium on Applied Computing, [9] Steimann, F. and Siberski, W. and Kühne, T. Towards the systematic use of interfaces in Java programming, Proc. 2nd Int Conf on the Principles and Practice of Programming in Java, pages 13-1, [10] Tip, F. and Kiezun, A. and Bäumer, D. Refactoring for generalization using type constraints, Proc. of OOPSLA, pages 13-26, 2004 [11] Wang, T. and Smith, S.F. Precise constraint-based type inference for JAVA, Proc. of ECOOP, pages 99-11, Software Measurement Conference

Cost and Benefit of Rigorous Decoupling with Context-Specific Interfaces

Cost and Benefit of Rigorous Decoupling with Context-Specific Interfaces Cost and Benefit of Rigorous Decoupling with Context-Specific Interfaces Florian Forster University of Hagen Universitätsstraße D-5897 Hagen +49 () 2331 987-429 ABSTRACT In Java programs, classes are coupled

More information

Philip Mayer Lehrgebiet Programmiersysteme Fernuniversität in Hagen Universitätsstraße Hagen, Germany

Philip Mayer Lehrgebiet Programmiersysteme Fernuniversität in Hagen Universitätsstraße Hagen, Germany Decoupling Classes with Inferred Interfaces Friedrich Steimann Lehrgebiet Programmiersysteme Fernuniversität in Hagen Universitätsstraße 1 58097 Hagen, Germany steimann@acm.org Philip Mayer Lehrgebiet

More information

MetriKon format guidelines for proceedings papers

MetriKon format guidelines for proceedings papers MetriKon Format Guidelines MetriKon format guidelines for proceedings papers First author, second author, third author Affiliation of the author/s (company/university) Email-address/es of the author/s

More information

1. Übungsblatt. Vorlesung Embedded System Security SS 2017 Trusted Computing Konzepte. Beispiellösung

1. Übungsblatt. Vorlesung Embedded System Security SS 2017 Trusted Computing Konzepte. Beispiellösung Technische Universität Darmstadt Fachbereich Informatik System Security Lab Prof. Dr.-Ing. Ahmad-Reza Sadeghi Raad Bahmani 1. Übungsblatt Vorlesung Embedded System Security SS 2017 Trusted Computing Konzepte

More information

Search Engines Chapter 2 Architecture Felix Naumann

Search Engines Chapter 2 Architecture Felix Naumann Search Engines Chapter 2 Architecture 28.4.2009 Felix Naumann Overview 2 Basic Building Blocks Indexing Text Acquisition iti Text Transformation Index Creation Querying User Interaction Ranking Evaluation

More information

JOURNAL OF OBJECT TECHNOLOGY

JOURNAL OF OBJECT TECHNOLOGY JOURNAL OF OBJECT TECHNOLOGY Online at http://www.jot.fm. Published by ETH Zurich, Chair of Software Engineering JOT, 2007 Vol. 6, No. 9, Special Issue. TOOLS EUROPE 2007, October 2007 Type Access Analysis:

More information

Auskunftsbegehren gemäß Art 15 DSGVO (Facebook Version englisch) - V1.0

Auskunftsbegehren gemäß Art 15 DSGVO (Facebook Version englisch) - V1.0 Auskunftsbegehren gemäß Art 15 DSGVO (Facebook Version englisch) - V1.0 Inhalt 1. Versionsstand dieses Dokuments... 1 1.1 V1.0 Stammfassung... 1 2. Hinweise zu diesem Muster... 1 3. Musterbrief... 2 1.

More information

Das Seminar kann zur Vorbereitung auf die Zertifizierung als Microsoft Certified Solutions Developer (MCSD): SharePoint Applications genutzt werden.

Das Seminar kann zur Vorbereitung auf die Zertifizierung als Microsoft Certified Solutions Developer (MCSD): SharePoint Applications genutzt werden. Developing Microsoft SharePoint Server 2013 Core Solutions MOC 20488 In diesem Seminar erlernen die Teilnehmer Kernfähigkeiten, die fast allen SharePoint-Entwicklungsaktivitäten gemeinsam sind. Dazu gehören

More information

USB. USB Sticks in Design und Qualität

USB. USB Sticks in Design und Qualität USB Sticks in Design und Qualität 148 149 USB Touch Pen touch pen OTG (On-The-Go) USB Stick OTG (On-The-Go) USB Drive USB microsd Karte microsd card Werbefläche advertising space 1, 2, 4, 8, 16, 32 GB

More information

OOPLs - call graph construction Compile-time analysis of reference variables and fields. Example

OOPLs - call graph construction Compile-time analysis of reference variables and fields. Example OOPLs - call graph construction Compile-time analysis of reference variables and fields Determines to which objects (or types of objects) a reference variable may refer during execution Primarily hierarchy-based

More information

Continuous Delivery. für Java Anwendungen. Axel Fontaine Software Development Expert

Continuous Delivery. für Java Anwendungen. Axel Fontaine Software Development Expert 07.04.2011 Continuous Delivery für Java Anwendungen Axel Fontaine Software Development Expert twitter.com/axelfontaine www.axelfontaine.com business@axelfontaine.com Ceci n est pas une build tool. Ceci

More information

Exercise 3 Logical Operators, Branching, Loops. Informatik I für Mathematiker und Physiker (HS 2015) Yeara Kozlov

Exercise 3 Logical Operators, Branching, Loops. Informatik I für Mathematiker und Physiker (HS 2015) Yeara Kozlov Exercise 3 Logical Operators, Branching, Loops Informatik I für Mathematiker und Physiker (HS 2015) Yeara Kozlov B. Gaertner, ETH Zürich, 2015 Agenda HW #1 feedback Expressions if statements for loop const

More information

OOPLs - call graph construction. Example executed calls

OOPLs - call graph construction. Example executed calls OOPLs - call graph construction Compile-time analysis of reference variables and fields Problem: how to resolve virtual function calls? Need to determine to which objects (or types of objects) a reference

More information

Rational Number Operations on the Number Line

Rational Number Operations on the Number Line The Mathematics Enthusiast Volume 14 Number 1 Numbers 1, 2, & 3 Article 18 1-2017 Rational Number Operations on the Number Line Christopher Yakes Let us know how access to this document benefits you. Follow

More information

Developing Microsoft Azure Solutions MOC 20532

Developing Microsoft Azure Solutions MOC 20532 Developing Microsoft Azure Solutions MOC 20532 In dem Kurs 20532A: Developing Microsoft Azure Solutions lernen Sie, wie Sie die Funktionalität einer vorhandenen ASP.NET MVC Anwendung so erweitern, dass

More information

Core Membership Computation for Succinct Representations of Coalitional Games

Core Membership Computation for Succinct Representations of Coalitional Games Core Membership Computation for Succinct Representations of Coalitional Games Xi Alice Gao May 11, 2009 Abstract In this paper, I compare and contrast two formal results on the computational complexity

More information

XRay Views: Understanding the Internals of Classes

XRay Views: Understanding the Internals of Classes XRay Views: Understanding the Internals of Classes Gabriela Arévalo, Stéphane Ducasse, Oscar Nierstrasz Software Composition Group University of Bern (Switzerland) {arevalo, ducasse, oscar}@iam.unibe.ch

More information

Reusability Metrics for Object-Oriented System: An Alternative Approach

Reusability Metrics for Object-Oriented System: An Alternative Approach Reusability Metrics for Object-Oriented System: An Alternative Approach Parul Gandhi Department of Computer Science & Business Administration Manav Rachna International University Faridabad, 121001, India

More information

Usability Engineering

Usability Engineering Usability Engineering A systematic approach to GUI development Martin Stangenberg Stryker Navigation, Freiburg 03.11.2005 World Usability Day, 3rd Nov. 2005 36 h world wide events 61 locations in 23 countries

More information

Points-to Analysis of RMI-based Java Programs

Points-to Analysis of RMI-based Java Programs Computing For Nation Development, February 25 26, 2010 Bharati Vidyapeeth s Institute of Computer Applications and Management, New Delhi Points-to Analysis of RMI-based Java Programs Yogesh Pingle M.E.(Comp.),

More information

3.Constructors and Destructors. Develop cpp program to implement constructor and destructor.

3.Constructors and Destructors. Develop cpp program to implement constructor and destructor. 3.Constructors and Destructors Develop cpp program to implement constructor and destructor. Constructors A constructor is a special member function whose task is to initialize the objects of its class.

More information

Exheritance Class Generalisation Revived

Exheritance Class Generalisation Revived Exheritance Class Generalisation Revived Markku Sakkinen Information Technology Research Institute University of Jyväskylä P.O.Box 35 (Agora) FIN-40351 Jyväskylä Finland sakkinenm@acm.org or sakkinen@cs.jyu.fi

More information

Problem-Oriented Documentation of Design Patterns

Problem-Oriented Documentation of Design Patterns Problem-Oriented Documentation of Design Patterns Alexander Fülleborn 1,KlausMeffert 2, and Maritta Heisel 1 1 University Duisburg-Essen, Germany alexanderfuelleborn@hotmail.de, maritta.heisel@uni-duisburg-essen.de

More information

An Approach to Behavioral Subtyping Based on Static Analysis

An Approach to Behavioral Subtyping Based on Static Analysis TACoS 04 Preliminary Version An Approach to Behavioral Subtyping Based on Static Analysis Francesco Logozzo 1 STIX - École Polytechnique F-91128 Palaiseau, France Abstract In mainstream object oriented

More information

HOW AND WHEN TO FLATTEN JAVA CLASSES?

HOW AND WHEN TO FLATTEN JAVA CLASSES? HOW AND WHEN TO FLATTEN JAVA CLASSES? Jehad Al Dallal Department of Information Science, P.O. Box 5969, Safat 13060, Kuwait ABSTRACT Improving modularity and reusability are two key objectives in object-oriented

More information

Lecture 18 CSE11 Fall 2013 Inheritance

Lecture 18 CSE11 Fall 2013 Inheritance Lecture 18 CSE11 Fall 2013 Inheritance What is Inheritance? Inheritance allows a software developer to derive a new class from an existing one write code once, use many times (code reuse) Specialization

More information

Instance Specialization a Pattern for Multi-level Meta Modelling

Instance Specialization a Pattern for Multi-level Meta Modelling Instance Specialization a Pattern for Multi-level Meta Modelling Matthias Jahn, Bastian Roth and Stefan Jablonski Chair for Applied Computer Science IV: Databases and Information Systems University of

More information

UML-Based Conceptual Modeling of Pattern-Bases

UML-Based Conceptual Modeling of Pattern-Bases UML-Based Conceptual Modeling of Pattern-Bases Stefano Rizzi DEIS - University of Bologna Viale Risorgimento, 2 40136 Bologna - Italy srizzi@deis.unibo.it Abstract. The concept of pattern, meant as an

More information

Connection Guide Link ECU

Connection Guide Link ECU Connection Guide Link ECU Can Bus Connection Atom/Monsun: Pin 28 (Can High) + Pin 29 (CAN Low) Storm (Black)/Fury/Xtreme/Force GDI: Pin B27 (Can2 High) + Pin B28 (CAN2 Low) Kurofune: Pin JST3 (Can High)

More information

A STUDY IN THE INTEGRATION OF COMPUTER ALGEBRA SYSTEMS: MEMORY MANAGEMENT IN A MAPLE ALDOR ENVIRONMENT

A STUDY IN THE INTEGRATION OF COMPUTER ALGEBRA SYSTEMS: MEMORY MANAGEMENT IN A MAPLE ALDOR ENVIRONMENT A STUDY IN THE INTEGRATION OF COMPUTER ALGEBRA SYSTEMS: MEMORY MANAGEMENT IN A MAPLE ALDOR ENVIRONMENT STEPHEN M. WATT ONTARIO RESEARCH CENTER FOR COMPUTER ALGEBRA UNIVERSITY OF WESTERN ONTARIO LONDON

More information

TITUS A Graphical Design Methodology for Embedded Automotive Software

TITUS A Graphical Design Methodology for Embedded Automotive Software TITUS A Graphical Design Methodology for Embedded Automotive Software Ulrich Freund, Alexander Burst, ETAS GmbH Stuttgart Abstract Vehicle body electronic software has reached a level of complexity and

More information

10/25/ Recursion. Objectives. Harald Gall, Prof. Dr. Institut für Informatik Universität Zürich.

10/25/ Recursion. Objectives. Harald Gall, Prof. Dr. Institut für Informatik Universität Zürich. 11. Recursion Harald Gall, Prof. Dr. Institut für Informatik Universität Zürich http://seal.ifi.uzh.ch/info1! You think you know when you learn, are more sure when you can write, even more when you can

More information

Proxy Pattern (et Relata) (seen from someone still living in the '70, the '80 and, partly, in the '90)

Proxy Pattern (et Relata) (seen from someone still living in the '70, the '80 and, partly, in the '90) Proxy Pattern (et Relata) (seen from someone still living in the '70, the '80 and, partly, in the '90) 1 Proxy Pattern Pattern Name and Classification (Kategorisierung) Intent (Zweck) Motivation/ Forces

More information

Customized UI Development Through Context-Sensitive GUI Patterns

Customized UI Development Through Context-Sensitive GUI Patterns Customized UI Development Through Context-Sensitive GUI Patterns Enes Yigitbas, Stefan Sauer Paderborn University, s-lab Software Quality Lab Abstract Developing highly flexible and easy to use user interfaces

More information

H1 Spring B. Programmers need to learn the SOAP schema so as to offer and use Web services.

H1 Spring B. Programmers need to learn the SOAP schema so as to offer and use Web services. 1. (24 points) Identify all of the following statements that are true about the basics of services. A. If you know that two parties implement SOAP, then you can safely conclude they will interoperate at

More information

A Concept of Type Derivation for Object-Oriented Database Systems

A Concept of Type Derivation for Object-Oriented Database Systems in: L.Gün, R.Onvural, E.Gelenbe (eds.): Proc. 8 th International Symposium on Computer and Information Systems, Istanbul, 1993 A Concept of Type Derivation for Object-Oriented Database Systems Michael

More information

Dimensions of Precision in Reference Analysis of Object-oriented Programming Languages. Outline

Dimensions of Precision in Reference Analysis of Object-oriented Programming Languages. Outline Dimensions of Precision in Reference Analysis of Object-oriented Programming Languages Dr. Barbara G. Ryder Rutgers University http://www.cs.rutgers.edu/~ryder http://prolangs.rutgers.edu/ Research supported,

More information

Transaction Management in EJBs: Better Separation of Concerns With AOP

Transaction Management in EJBs: Better Separation of Concerns With AOP Transaction Management in EJBs: Better Separation of Concerns With AOP Johan Fabry Vrije Universiteit Brussel, Pleinlaan 2 1050 Brussel, Belgium Johan.Fabry@vub.ac.be March 8, 2004 1 Introduction The long-term

More information

junit RV Adding Runtime Verification to junit

junit RV Adding Runtime Verification to junit junit RV Adding Runtime Verification to junit Normann Decker, Martin Leucker, and Daniel Thoma Institute for Software Engineering and Programming Languages Universität zu Lübeck, Germany {decker, leucker,

More information

Practice for Chapter 11

Practice for Chapter 11 Practice for Chapter 11 MULTIPLE CHOICE. Choose the one alternative that best completes the statement or answers the question. 1) Object-oriented programming allows you to derive new classes from existing

More information

Replacing SEP-Triplets in SNOMED CT using Tractable Description Logic Operators

Replacing SEP-Triplets in SNOMED CT using Tractable Description Logic Operators Replacing SEP-Triplets in SNOMED CT using Tractable Description Logic Operators Boontawee Suntisrivaraporn 1, Franz Baader 1, Stefan Schulz 2, Kent Spackman 3 1 TU Dresden, Germany, {meng,baader}@tcs.inf.tu-dresden.de

More information

Inheritance Conflicts in Object-Oriented Systems

Inheritance Conflicts in Object-Oriented Systems Inheritance Conflicts in Object-Oriented Systems Tok Wang LING and Pit Koon TEO Department of Information Systems and Computer Science National University of Singapore Abstract. Inheritance conflicts in

More information

A Type Graph Model for Java Programs

A Type Graph Model for Java Programs A Type Graph Model for Java Programs Arend Rensink and Eduardo Zambon Formal Methods and Tools Group, EWI-INF, University of Twente PO Box 217, 7500 AE, Enschede, The Netherlands {rensink,zambon}@cs.utwente.nl

More information

Procedia Computer Science

Procedia Computer Science Procedia Computer Science 00 (2009) 000 000 Procedia Computer Science www.elsevier.com/locate/procedia INSODE 2011 Theoretical Analysis for the Impact of Including Special Methods in Lack-of-Cohesion Computation

More information

License.

License. License This document is licensed under the terms of the Creative Commons Attribution-Noncommercial 3.0 Germany license. You are allowed to to Share to copy, distribute, and transmit the document to Remix

More information

Bases of topologies. 1 Motivation

Bases of topologies. 1 Motivation Bases of topologies 1 Motivation In the previous section we saw some examples of topologies. We described each of them by explicitly specifying all of the open sets in each one. This is not be a feasible

More information

Computer Science Technical Report

Computer Science Technical Report Computer Science Technical Report Feasibility of Stepwise Addition of Multitolerance to High Atomicity Programs Ali Ebnenasir and Sandeep S. Kulkarni Michigan Technological University Computer Science

More information

The Syntax of auto Declarations

The Syntax of auto Declarations 2007-08-01 Daveed Vandevoorde daveed@edg.com 1 The Issues Two proposed new uses of the keyword auto (one of which is already in the Working Paper) are raising new parsing ambiguity issues. The issues arise

More information

Taxonomy Dimensions of Complexity Metrics

Taxonomy Dimensions of Complexity Metrics 96 Int'l Conf. Software Eng. Research and Practice SERP'15 Taxonomy Dimensions of Complexity Metrics Bouchaib Falah 1, Kenneth Magel 2 1 Al Akhawayn University, Ifrane, Morocco, 2 North Dakota State University,

More information

Dependent Object Types - A foundation for Scala s type system

Dependent Object Types - A foundation for Scala s type system Dependent Object Types - A foundation for Scala s type system Draft of September 9, 2012 Do Not Distrubute Martin Odersky, Geoffrey Alan Washburn EPFL Abstract. 1 Introduction This paper presents a proposal

More information

Chapter 8: Enhanced ER Model

Chapter 8: Enhanced ER Model Chapter 8: Enhanced ER Model Subclasses, Superclasses, and Inheritance Specialization and Generalization Constraints and Characteristics of Specialization and Generalization Hierarchies Modeling of UNION

More information

Lecture Notes on Liveness Analysis

Lecture Notes on Liveness Analysis Lecture Notes on Liveness Analysis 15-411: Compiler Design Frank Pfenning André Platzer Lecture 4 1 Introduction We will see different kinds of program analyses in the course, most of them for the purpose

More information

What are the characteristics of Object Oriented programming language?

What are the characteristics of Object Oriented programming language? What are the various elements of OOP? Following are the various elements of OOP:- Class:- A class is a collection of data and the various operations that can be performed on that data. Object- This is

More information

Modelling with Classes. CITS1220 Software Engineering

Modelling with Classes. CITS1220 Software Engineering Modelling with Classes CITS1220 Software Engineering Lecture Overview Classes and UML Associations between classes Special types of association: is-a, has-a, is-part-of Modelling Example Implementing associations

More information

System of Systems Architecture Generation and Evaluation using Evolutionary Algorithms

System of Systems Architecture Generation and Evaluation using Evolutionary Algorithms SysCon 2008 IEEE International Systems Conference Montreal, Canada, April 7 10, 2008 System of Systems Architecture Generation and Evaluation using Evolutionary Algorithms Joseph J. Simpson 1, Dr. Cihan

More information

1B1b Inheritance. Inheritance. Agenda. Subclass and Superclass. Superclass. Generalisation & Specialisation. Shapes and Squares. 1B1b Lecture Slides

1B1b Inheritance. Inheritance. Agenda. Subclass and Superclass. Superclass. Generalisation & Specialisation. Shapes and Squares. 1B1b Lecture Slides 1B1b Inheritance Agenda Introduction to inheritance. How Java supports inheritance. Inheritance is a key feature of object-oriented oriented programming. 1 2 Inheritance Models the kind-of or specialisation-of

More information

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

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

More information

In this paper we consider probabilistic algorithms for that task. Each processor is equipped with a perfect source of randomness, and the processor's

In this paper we consider probabilistic algorithms for that task. Each processor is equipped with a perfect source of randomness, and the processor's A lower bound on probabilistic algorithms for distributive ring coloring Moni Naor IBM Research Division Almaden Research Center San Jose, CA 9510 Abstract Suppose that n processors are arranged in a ring

More information

Modern and Lucid C++ for Professional Programmers. Week 15 Exam Preparation. Department I - C Plus Plus

Modern and Lucid C++ for Professional Programmers. Week 15 Exam Preparation. Department I - C Plus Plus Department I - C Plus Plus Modern and Lucid C++ for Professional Programmers Week 15 Exam Preparation Thomas Corbat / Prof. Peter Sommerlad Rapperswil, 08.01.2019 HS2018 Prüfung 2 Durchführung Mittwoch

More information

Neuigkeiten aus dem Oracle-Cloud-Portfolio - Fokus auf Infrastructure-as-a-Service

Neuigkeiten aus dem Oracle-Cloud-Portfolio - Fokus auf Infrastructure-as-a-Service Neuigkeiten aus dem Oracle-Cloud-Portfolio - Fokus auf Infrastructure-as-a-Service Oliver Zandner, Leitender System-Berater Architect for Oracle-Cloud- & -On-Premise-Tech. Oracle Deutschland Copyright

More information

FXD A new exchange format for fault symptom descriptions

FXD A new exchange format for fault symptom descriptions FXD A new exchange format for fault symptom descriptions Helmut Wellnhofer, Matthias Stampfer, Michael Hedenus, Michael Käsbauer Abstract A new format called FXD (=Fault symptom exchange Description) was

More information

AC500. Application Note. Scalable PLC for Individual Automation. AC500-S safety PLC - Overview of changes in Automation Builder 2.1.x and 2.0.

AC500. Application Note. Scalable PLC for Individual Automation. AC500-S safety PLC - Overview of changes in Automation Builder 2.1.x and 2.0. Application Note AC500 Scalable PLC for Individual Automation AC500-S safety PLC - Overview of changes in Automation Builder 2.1.x and 2.0.x ABB Automation Products GmbH Wallstadter Str. 59 D-68526 Ladenburg

More information

Efficient Regression Test Model for Object Oriented Software

Efficient Regression Test Model for Object Oriented Software Efficient Regression Test Model for Object Oriented Software Swarna Lata Pati College of Engg. & Tech, Bhubaneswar Abstract : This paper presents an efficient regression testing model with an integration

More information

AXIOMS FOR THE INTEGERS

AXIOMS FOR THE INTEGERS AXIOMS FOR THE INTEGERS BRIAN OSSERMAN We describe the set of axioms for the integers which we will use in the class. The axioms are almost the same as what is presented in Appendix A of the textbook,

More information

Guidelines for Writing Mathematical Proofs

Guidelines for Writing Mathematical Proofs Appendix A Guidelines for Writing Mathematical Proofs One of the most important forms of mathematical writing is writing mathematical proofs. The writing of mathematical proofs is an acquired skill and

More information

Automatic Integration of Ecore Functionality into Java Code

Automatic Integration of Ecore Functionality into Java Code X =1.00 SD Software Design and Quality perf X loss=0.01 Automatic Integration of Ecore Functionality into Java Code Bachelor s Thesis of Timur Sağlam at the Department of Informatics Institute for Program

More information

Evolving FRaMED Kickoff

Evolving FRaMED Kickoff Department of Computer Science Institute for Software and Multimedia Technology, Software Technology Group Kickoff Thomas Kühn Complex Practical Course WS2014/2015 Outline Task Next Steps 2 / 17 Original

More information

9.5 Equivalence Relations

9.5 Equivalence Relations 9.5 Equivalence Relations You know from your early study of fractions that each fraction has many equivalent forms. For example, 2, 2 4, 3 6, 2, 3 6, 5 30,... are all different ways to represent the same

More information

Leveraging Transitive Relations for Crowdsourced Joins*

Leveraging Transitive Relations for Crowdsourced Joins* Leveraging Transitive Relations for Crowdsourced Joins* Jiannan Wang #, Guoliang Li #, Tim Kraska, Michael J. Franklin, Jianhua Feng # # Department of Computer Science, Tsinghua University, Brown University,

More information

Programming Lecture 3

Programming Lecture 3 Programming Lecture 3 Expressions (Chapter 3) Primitive types Aside: Context Free Grammars Constants, variables Identifiers Variable declarations Arithmetic expressions Operator precedence Assignment statements

More information

The Geometrical Quality of Terrestrial Laser Scanner (TLS)

The Geometrical Quality of Terrestrial Laser Scanner (TLS) The Geometrical Quality of Terrestrial Laser Scanner (TLS), Germany Key words: Terrestrial Laser Scanner (TLS), Laser Scanning, Geometrical Quality, Accuracy, Verification of the Measurements, Optical

More information

SIL Declaration of Conformity

SIL Declaration of Conformity SIL Declaration of Conformity FMEDA including SFF determination according to IEC 61508 SIL-11001a/09/en Endress+Hauser Wetzer GmbH+Co. KG, Obere Wank 1, 87484 Nesselwang declares as manufacturer, that

More information

Prepaid Card Solution. Prepaid Meter for water kiosks. With NFC cards.

Prepaid Card Solution. Prepaid Meter for water kiosks. With NFC cards. Prepaid Card Solution Prepaid Meter for water kiosks. With NFC cards. 1 WHO WE ARE Manufacturer and Developer of system solutions We develop and build electronics since more than 20 years. isatech water

More information

Proceedings of the 6th Educators Symposium: Software Modeling in Education at MODELS 2010 (EduSymp 2010)

Proceedings of the 6th Educators Symposium: Software Modeling in Education at MODELS 2010 (EduSymp 2010) Electronic Communications of the EASST Volume X (2010) Proceedings of the 6th Educators Symposium: Software Modeling in Education at MODELS 2010 (EduSymp 2010) m2n: Translating Models to Natural Language

More information

Debugging Abstract State Machine Specifications: An Extension of CoreASM

Debugging Abstract State Machine Specifications: An Extension of CoreASM Debugging Abstract State Machine Specifications: An Extension of CoreASM Marcel Dausend, Michael Stegmaier and Alexander Raschke Institute of Software Engineering and Compiler Construction, University

More information

INVENTOR MECHANICAL DESIGN &AMP; 3D CAD SOFTWARE AUTODESK AUTOCAD FOR MAC &AMP; WINDOWS CAD SOFTWARE AUTODESK

INVENTOR MECHANICAL DESIGN &AMP; 3D CAD SOFTWARE AUTODESK AUTOCAD FOR MAC &AMP; WINDOWS CAD SOFTWARE AUTODESK AUTODESK INVENTOR 2015 AUTOCAD PDF INVENTOR MECHANICAL DESIGN &AMP; 3D CAD SOFTWARE AUTODESK AUTOCAD FOR MAC &AMP; WINDOWS CAD SOFTWARE AUTODESK 1 / 5 2 / 5 3 / 5 autodesk inventor 2015 autocad pdf Autodesk

More information

Analysis of Object-oriented Programming Languages

Analysis of Object-oriented Programming Languages Analysis of Object-oriented Programming Languages Dr. Barbara G. Ryder Rutgers University http://www.cs.rutgers.edu/~ryder http://prolangs.rutgers.edu/ OOAnalysis, Dagstuhl 2/03, BG Ryder 1 Outline Why

More information

M301: Software Systems & their Development. Unit 4: Inheritance, Composition and Polymorphism

M301: Software Systems & their Development. Unit 4: Inheritance, Composition and Polymorphism Block 1: Introduction to Java Unit 4: Inheritance, Composition and Polymorphism Aims of the unit: Study and use the Java mechanisms that support reuse, in particular, inheritance and composition; Analyze

More information

Einführung in die Algebra

Einführung in die Algebra Prof. Dr. H. Brenner Osnabrück SS 2009 Einführung in die Algebra Arbeitsblatt 1 Aufgabe 1. (2 Punkte) Bestimme die vier Bewegungen an einem Würfel mit den Eckpunkten (±1, ±1, ±1) in Matrixschreibweise,

More information

Inheritance and Polymorphism

Inheritance and Polymorphism Object Oriented Programming Designed and Presented by Dr. Ayman Elshenawy Elsefy Dept. of Systems & Computer Eng.. Al-Azhar University Website: eaymanelshenawy.wordpress.com Email : eaymanelshenawy@azhar.edu.eg

More information

Installing and Configuring Windows 10 MOC

Installing and Configuring Windows 10 MOC Installing and Configuring Windows 10 MOC 20697-1 In diesem 5-tägigen Seminar lernen Sie die Installation und Konfiguration von Windows-10-Desktops und -Geräten in einer Windows-Server- Domänenumgebung.

More information

Making Program Refactoring Safer

Making Program Refactoring Safer Making Program Refactoring Safer Gustavo Soares 1, Rohit Gheyi 1, Dalton Serey 1 1 Department of Computing and Systems UFCG 58429-900 Campina Grande PB Brazil {gsoares,rohit,dalton}@dsc.ufcg.edu.br Abstract.

More information

D Programming Language

D Programming Language Group 14 Muazam Ali Anil Ozdemir D Programming Language Introduction and Why D? It doesn t come with a religion this is written somewhere along the overview of D programming language. If you actually take

More information

VALIDATING AN ANALYTICAL APPROXIMATION THROUGH DISCRETE SIMULATION

VALIDATING AN ANALYTICAL APPROXIMATION THROUGH DISCRETE SIMULATION MATHEMATICAL MODELLING AND SCIENTIFIC COMPUTING, Vol. 8 (997) VALIDATING AN ANALYTICAL APPROXIMATION THROUGH DISCRETE ULATION Jehan-François Pâris Computer Science Department, University of Houston, Houston,

More information

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

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

More information

Inheritance Metrics: What do they Measure?

Inheritance Metrics: What do they Measure? Inheritance Metrics: What do they Measure? G. Sri Krishna and Rushikesh K. Joshi Department of Computer Science and Engineering Indian Institute of Technology Bombay Mumbai, 400 076, India Email:{srikrishna,rkj}@cse.iitb.ac.in

More information

CHAPTER 3 COUPLING MODEL

CHAPTER 3 COUPLING MODEL 50 CHAPTER 3 COUPLING MODEL Coupling measurement is a powerful technique for counting of different types of interactions among components of object-oriented software. In coupling, two components are coupled

More information

Dwg viewer free download vista. Dwg viewer free download vista.zip

Dwg viewer free download vista. Dwg viewer free download vista.zip Dwg viewer free download vista Dwg viewer free download vista.zip free dwg viewer free download - Free DWG Viewer, Free DWG Viewer, DWG Viewer, and many more programsdeep View Free DWG DXF Viewer, free

More information

EINDHOVEN UNIVERSITY OF TECHNOLOGY

EINDHOVEN UNIVERSITY OF TECHNOLOGY EINDHOVEN UNIVERSITY OF TECHNOLOGY Department of Mathematics & Computer Science Exam Programming Methods, 2IP15, Wednesday 17 April 2013, 09:00 12:00 TU/e THIS IS THE EXAMINER S COPY WITH (POSSIBLY INCOMPLETE)

More information

Aufgabe 2. Join-Methoden Differential Snapshots. Ulf Leser Wissensmanagement in der Bioinformatik

Aufgabe 2. Join-Methoden Differential Snapshots. Ulf Leser Wissensmanagement in der Bioinformatik Aufgabe 2 Join-Methoden Differential Snapshots Ulf Leser Wissensmanagement in der Bioinformatik Join Operator JOIN: Most important relational operator Potentially very expensive Required in all practical

More information

JQueryScapes: customizable Java code perspectives

JQueryScapes: customizable Java code perspectives JQueryScapes: customizable Java code perspectives [Forum Demonstration Proposal] Lloyd Markle, Kris De Volder Department of Computer Science University of British Columbia Vancouver, BC, Canada 604-822-1290

More information

Don t Judge Software by Its (Code) Coverage

Don t Judge Software by Its (Code) Coverage Author manuscript, published in "SAFECOMP 2013 - Workshop CARS (2nd Workshop on Critical Automotive applications : Robustness & Safety) of the 32nd International Conference on Computer Safety, Reliability

More information

Towards Reusable Heterogeneous Data-Centric Disentangled Parts

Towards Reusable Heterogeneous Data-Centric Disentangled Parts Towards Reusable Heterogeneous Data-Centric Disentangled Parts Michael Reinsch and Takuo Watanabe Department of Computer Science, Graduate School of Information Science and Technology, Tokyo Institute

More information

Constrained Types and their Expressiveness

Constrained Types and their Expressiveness Constrained Types and their Expressiveness JENS PALSBERG Massachusetts Institute of Technology and SCOTT SMITH Johns Hopkins University A constrained type consists of both a standard type and a constraint

More information

Bisection Debugging. 1 Introduction. Thomas Gross. Carnegie Mellon University. Preliminary version

Bisection Debugging. 1 Introduction. Thomas Gross. Carnegie Mellon University. Preliminary version Bisection Debugging Thomas Gross School of Computer Science Carnegie Mellon University Pittsburgh, PA 15213 Institut für Computer Systeme ETH Zürich CH 8092 Zürich Preliminary version Abstract This paper

More information

Monitoring & Automation with OP5 & Stonebranch A presentation in German - English

Monitoring & Automation with OP5 & Stonebranch A presentation in German - English Monitoring & Automation with OP5 & Stonebranch A presentation in German - English Copyright OP5 2017 All rights reserved. PRESENTATION AGENDA Katrin Ackermann-Rossander Jan Josephson Key Account Manager

More information

Zielgruppe Dieser Kurs eignet sich für Cloud- und Rechenzentrumsadministratoren.

Zielgruppe Dieser Kurs eignet sich für Cloud- und Rechenzentrumsadministratoren. Datacenter Monitoring with System Center Operations Manager MOC 10964 Sie erwerben in diesem Seminar praktische Erfahrung mit der Überwachung von Infrastruktur und Anwendungen mit System Center 2012 SP1

More information

Equality for Abstract Data Types

Equality for Abstract Data Types Object-Oriented Design Lecture 4 CSU 370 Fall 2008 (Pucella) Tuesday, Sep 23, 2008 Equality for Abstract Data Types Every language has mechanisms for comparing values for equality, but it is often not

More information

Online Assessment of Programming Exercises

Online Assessment of Programming Exercises Online Assessment of Programming Exercises G. Fischer, J. Wolff v. Gudenberg wolff@informatik.uni-wuerzburg.de April 2, 2004 1 Statement In our opinion programming can only be learned by reading and, first

More information

Lecture 2 - Graph Theory Fundamentals - Reachability and Exploration 1

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

More information