Story Driven Testing - SDT

Size: px
Start display at page:

Download "Story Driven Testing - SDT"

Transcription

1 Story Driven Testing - SDT Leif Geiger Software Engineering, University of Kassel Wilhelmshöher Allee Kassel, Germany leif.geiger@uni-kassel.de Albert Zündorf Software Engineering, University of Kassel Wilhelmshöher Allee Kassel, Germany zuendorf@uni-kassel.de ABSTRACT In the last years, SCESM community has studied a number of synthesis approaches that turn scenario descriptions into some kind of state machine. In our story driven modeling approach, the statechart synthesis is done manually. Many other approaches rely on human interaction, too. Frequently, the resulting state machines are just the starting point for further system development. The manual steps and the human interaction and the subsequent development steps are subject to the introduction of errors. Thus, it is not guaranteed that the final implementation still covers the initial scenarios. Therefore, this paper proposes the exploitation of scenarios for the derivation of automatic tests. These tests may be used to force the implementation to implement at least the behavior outlined in the requirements scenarios. In addition, this approach raises the value of formal scenarios for requirements elicitation and analysis since such scenarios are turned into automatic tests that may be used to drive iterative development processes according to test-first principles. Categories and Subject Descriptors D.2 [Software Engineering]: [Processes, Tools] General Terms Scenarios, Test-First Principle, Code Generation 1. INTRODUCTION This paper extends the ideas of [5]. For the new contribution of this paper cf. the conclusions. Our approach uses sequences of UML scenario diagrams for modeling so-called use case stories. We use such stories to drive our software development process. Especially, stories are used for test generation. Therefore we call our approach Story Driven Testing (SDT). SDT is included into the following iterative, use case driven software development process: A use case is identified. The use case is described by a textual scenario description. The textual scenario is turned into a UML scenario description. For each step of the textual scenario, a UML collaboration diagram is provided. This collaboration diagram models the object structure employed to realize this step and how this object structure evolves within this step. Alternatively, intermediate steps may be modeled by sequence diagrams. From the collaboration diagrams used above, it is straight forward to derive a conceptual class diagram, cf. [3]. From the UML scenario description, we automatically generate the implementation of a JUnit test. This test executes use case actor activities in a given example situation and checks for proper system response. In our approach, we use so-called story diagrams for test specification. Then we employ the Fuja code generators to turn these story diagrams into usual Java code, cf. [9]. System reactions are to be implemented within the methods called by the actor. Thus the Java developer has now the task to implement the methods employed in the current scenario or he/she may have to adapt already existing methods in order to cover the new scenario, too. Our process covers simple scenario-sed requirements elicitation and state-of-the-art object-oriented analysis sed on UML scenario diagrams. Usually, such analysis is only loosely coupled to the design and implementation activities. In our approach, the results of the analysis activities are directly turned into JUnit tests driving the design and implementation. From the Java developer s point of view, now analysis diagrams have a real value for his/her work. The developers will soon use analysis scenarios as an easy means for writing tests. From the project management s point of view, the generated JUnit tests keep analysis documentation and the actual implementation consistent. 2. SCENARIOS TO TESTS As running example, we use one use case from the Paderborn shuttle system case study, cf. Figure 1.

2 Invoice // The shuttle agent has an unpaid invoice for 100$. Its nk account has a lance of 42$. :ShuttleAgent :BankAgent :Invoice costs done:order :Account lance == 42 // The shuttle agent informs the nk agent about the invoice. 1: pay () lance == 42 Figure 1: Paderborn shuttle system scenario // The nk agent adds the invoice to the shuttle agents account. It checks wether the account is valid and if there is already a reminder. Because there is no reminder, the nk agent is waiting. For our approach, the information provided in the scenario of Figure 1 is insufficient. In order to generate code, we need to know, the relationship between the shuttle agent and the nking agent and which object structures are employed to represent orders, s, invoices and reminders. This information is usually added in the analysis phase by turning scenarios into so-called story boards, cf. Figure 2. The first activity of our scenario models the start situation as an UML object diagram. During test derivation, this model of the start situation is turned into a JUnit setup method, cf. Figure 3. Such a setup method models the creation of an object structure corresponding to the start situation of the considered UML scenario. From such method specifications the code generators of the Fuja environment generate usual Java source code, cf. [9]. For setup methods this is easy, we just generate new statements for the objects that are to be created and calls to setter methods creating the links and initializing the attributes. Note, that for debugging purposes (cf. chapter 4) and to split the testing into different methods, the current test objects needs references to all created objects. This is modeled using several object X links from object this, cf. figure 3. Each activity of the UML scenario is marked either by a stickman indicating that it is initiated by some use case actor or by two toothwheels indicating that it is part of the system reaction. In the test generation, the operations belonging to the use case actor are turned into operations of the JUnit test method. The second activity of Figure 2 starts the execution of the scenario by invoking pay() on the nking agent. As indicated by the stickman, this activity is executed by the use case actor. Accordingly, this activity becomes the first step of a testinvoice method generated for our JUnit test, cf. Figure 4. Fuja s code generator interprets such method activities as an object pattern that has to be matched again the runtime object structure. This is achieved by generating appropriate search loops and checks. 1: check() 2: checkreminder() time := // The shuttle agent sends a reminder for the invoice. // The reminder is added to the invoice and it is checked. 1: checkreminder() lance == 142 :Invoice 1: remind () reminders // The shuttle agents account has lance of 142$. lance == 42 time := lance == 42 lance == 42 r1 :Reminder time := time >.gettime() + 7 time <.gettime() + 14 // The reminder was in time, so the invoice is processed and the shuttle agent is informed. 1: transfercompleted() lance == 42 lance := 142 Figure 2: Story board for the invoice scenario

3 In the activities of Figure 4 all objects are still known from the setup method. Thus, the generated code just checks for attribute conditions and for the existence of the depicted links. If one of these conditions is violated, the generated code raises a JUnit exception and the JUnit test fails, cf. [5]. If the object pattern matches, the depicted method calls are executed and the test proceeds with the next activity. Story board activities marked by a toothwheels icon model expected responses of system methods to actions within the considered example situation. For example activity 3 of Figure 2 models that in the depicted situation method pay() is expected to create a link and a link and to set the time attribute of the object to In addition, the check() operation and the checkreminder() operation are to be called. Note, there may be multiple scenarios invoking the pay() method in different situations. Now the system developer has to implement the pay() method such that all requirements are met and such that it works for the general case. InvoiceTest::testInvoice (): Void // The shuttle agent informs the nk agent about the invoice. // The shuttle agent sends a reminder for the invoice. 1: remind () 1: pay () lance == 42 time := lance == 42 InvoiceTest::setUp (): Void // The shuttle agents account has lance of 142$. // The shuttle agent has an unpaid invoice for 100$. Its nk account has a lance of 42$. :ShuttleAgent :Invoice total := 100 done:order costs object_ object_ object_done this object_ object_ :BankAgent time := :Account lance := 42 :Invoice lance == 142 Figure 4: Actor activities and intermediate checks Figure 3: Setting up the mple situation After calling a method, we want to be able to check the resulting object structure for certain mandatory effects. Such checks may be modeled in Fuja s story diagram notation. As an example, activity 4 of Figure 2 models the object structure expected as result of the pay() call issued in activity 2. Similarly, activity 7 of Figure 2 models the object structure expected as result of the remind() call issued in activity 4. Such checks become part of the generated test method, cf. activities 2 and 3 of Figure 4, respectively. We have adapted Fuja s code generation such that if it is not possible to match the depicted object structure a specific JUnit test exception is raised. Thus, the JUnit test would fail and the cause of failure would be reported, cf. Figure 5 where the last scenario activity has not been matched. Figure 5: The result situation is not met If the modeled (intermediate) situation is reached and the corresponding check is passed, we may model some new actor steps. The actor may change the current situation e.g. by creating new objects and links. For example, activity 4 of Figure 2 changes the time attribute of the nk agent

4 object to In additon, an actor step may invoke new system methods as e.g. the remind() call shown in activity 4 of Figure 2. This is turned into corresponding actions in the test method, cf. activity 2 of Figure EXPLOITING SYSTEM REACTIONS So far we have turned actor activities in corresponding test activities. We did not yet exploit the story board activities that model system reactions. Actually, these steps have a somewhat vague semantics. One may consider them as some kind of comment outlining conceptual steps that guide the implementation of the considered system operation. In this case one would probly not require, that the actual implementation performs every single object structure modification exactly as it is depicted in the scenario. It might be okay, if e.g. some attribute changes are omitted and some helper operations are not called or have different names. However, if a close match between scenarios and system implementation is desired, our test generator turns system reaction activities in so-called assertstep operations, cf. e.g. Figure 6. These operations are again checks, whether the actual runtime object structure matches the object structure modeled in the scenario. One difference is, that we check for the situation that is achieved after performing the depicted object structure changes. For example, method assertstep5 checks whether system operation remind() called in activity 4 of Figure 2 has successfully created a reminder object attached to the object. InvoiceTest::assertStep5 (): Void // The reminder is added to the invoice and it is checked. reminders lance == 42 r1 :Reminder time == time >.gettime() + 7 time <.gettime() + 14 the reminder object only temporarily. In activity 6 of Figure 2 the is payed and afterwards, the object is discarded. Thus, after termination of method remind(), the check assertstep5 would fail due to the missing object. Accordingly, the assertstep checks have to be called during the execution of system reactions. Fortunately, the system reaction activities show explicitly, which actions are expected to happen during system reaction. In our example, we expect that a reminder object is created and attached to the already existing object. At this point, we assume that the employed objects provide some listener concept. In Fuja this is easily achieved through some flag for the code generation [8]. In other systems, this may easily be achieved e.g. using aspect weaving. Provided with a listener concept, we extend our setup method by an implicit subscription of the this object as listener for attribute and link changes. During test execution, if a change event occurs, we execute the assertstep operations and protocol their success. In addition, activity 5 of Figure 2 shows a call of operation check() on the object. If we consider thus calls mandatory, we ask Fuja or some aspect weaver to instrument the corresponding system method with a call notification. These notifications are protocolled, too. Provided with a protocol of successful and failed assertstep checks and of internal method calls, we are able to extend the JUnit test result by the following information: If the test is passed, and all assertstep checks have been passed in the correct order and if the internal operations have been called at appropriate points in time, then everything is fine. If some of the checks have never been passed or some internal operation is never called, then the system implementation differs from the scenario descriptions. This may either be turned into a warning or into a JUnit test failure. If the test fails, the protocol of the assertstep checks may help to localize the fault. If the first two assertstep checks are passed but the third fails, then the scenario seems to be implemented up to that step. Using an agile test driven software development process, developers may work along the scenario and implement the general behavior for one step after the other. After completing one step, the corresponding assertstep check should be passed. Thus, the developer gets a step related feedck on his progress in system implementation. Figure 6: Asserting the creation of a reminder The problem with the assertstep operations is, when should they be called. The testscenario operation invokes some system method. When this method returns, it is to late to test for some intermediate state that may exist only at some point in time during the execution of the system method. For example, in our scenario, method remind() creates 4. DEBUGGING AIDS In case of a JUnit test failure, we already exploit the scenario description of the system steps in order to identify, which scenario steps have been executed successfully and where the implemented behavior deviates from the given scenario. In addition to this, we provide runtime object structure visualization with the help of our DOBS application, cf. Figure 7.

5 The SCENT approach [7] derives statecharts from natural language scenarios. Test case generation is then done using path traverl within these statecharts. Again this approach lacks of support for complex object structures. In our process, a scenario is in most cases just a sequence of activities. When deriving the behavioral specifications all these sequences are merged together into a system statechart manually. So, path analysis techniques might be useful in our process to identify paths in the implementation not yet covered by scenarios to achieve completeness. This is future work. Figure 7: Visualizing the runtime object structure Figure 7 shows the actual runtime object structure when the JUnit test has failed in the third activity of Figure 4 resulting in the error shown in Figure 5. The error mesge in Figure 5 tells that the lance of account is not equal to 142. DOBS shows that the lance of account is actually still 42. Thus, the implementation has executed the scenario almost complete but failed to change the lance. If this does not suffice to identify the problem, the developer may restart the JUnit test in debugging mode. This enables stepwise execution of the scenario while at each step the changes to the runtime object structure are directly visualized in DOBS. Due to our experience, this combination of UML scenario diagrams and DOBS visualization of runtime data is a perfect debugging aid. 5. COVERAGE Fuja has build-in support for the JCoverage tool to combine the JUnit tests with a code coverage analysis. This coverage analysis may reveal certain parts of the implementation that are not required for the story board scenarios. This might be a hint on additional cases that have already been considered in the implementation but that are not yet documented by corresponding story board scenarios. Such a mechanism may provide us with some notion of completeness for story board documentations. Note, that coverage analysis is done on source code level. Coverage analysis on model level is a part of our future work. 6. RELATED WORK There are several other approaches which deal with scenariosed testing. The Rational Quality Architect [1] for example uses sequence diagrams to define scenarios. From these sequence diagrams they generate test cases and test drivers. At test runtime, the signal flow is traced and protocolled using a sequence diagram which is then compared to the scenario sequence diagram. The use of sequence diagrams make sense when dealing with complex signal flow, like e.g. in protocols. We think that for modeling applications with complex object structures, story boards are better suited. Another benefit of story boards is, that the developer may model complex post conditions using an object diagram, see e.g. the last activity of figure 2. This is hardly done with sequence diagrams. More likely, one would use OCL expressions for this purpose. Here, we claim, that our graphical notation is easier to read than OCL post conditions. The TOTEM approach [2] uses again sequence diagrams for specification of scenarios. The test generation also takes inter-scenario relationships modeled in use case diagrams into account. We model inter-scenario relationships implicitly in the story boards by calling the methods of other scenarios. Unfortunately, this relationships are not yet considered at test generation. In [6] it is suggested to use collaboration diagrams for automatic test generation, too. Their approach uses one collaboration diagram to model the execution of an operation. From such a collaboration diagram a Mesge Sequence Path is generated. This Mesge Sequence Path can then be compared with the trace of the corresponding test execution. 7. CONCLUSIONS This paper extends our first approach of [5] by more flexible scenario descriptions and by the more powerful exploitation of system activities through assertstep methods that are called by change listeners monitoring changes to the initial object structure. These features are currently implemented. In addition, in [4] we have adapted the Fuja code generation for JUnit tests. Within a JUnit test the code throws JUnit test exceptions instead of usual search exceptions. This gives the test methods a slightly different semantics: usually, if a pattern matching fails, the generated code proceeds with subsequent activities. The failure may only be exploited by special transition guards. In JUnit tests, a failure in matching a pattern aborts the JUnit test with a failure. Our process is tool supported by the XProM plug-in of the Fuja environment [5, 9]. Fuja s XProM plug-in provides an html sed editor for analysis documents. This editor enables the integrated editing of use case diagrams, text scenarios and UML scenario diagrams. In addition, the XProM plug-in contains our generator for JUnit tests. We already use the XProM plug-in with great success since three years for educational purposes and for one year in an industrial project. Due to our experiences, the scenarios get high attention by the students due to their value for the subsequent development steps. It has turned out, that our detailed scenarios help the students a lot in designing their system. In addition, the scenarios prepare the field for a test driven development process. Combined with a versioning system for UML models that supports optimistic locking, this enables very good team collaboration on the implementation of scenarios. The debugging aids provided by DOBS combined with the explicit object structures in the scenarios has proven to be extremely valuable.

6 8. REFERENCES [1] Rational software corporation: Rational quality architect realtime edition user s guide [2] L. Briand and Y. Labiche. A uml-sed approach to system testing. In 4th International Conference on the Unified Modeling Language (UML), pages , Toronto, Canada, [3] I. Diethelm, L. Geiger, and A. Zündorf. Systematic story driven modeling. In Workshop on Scenarios and State Machines: models, algorithms, and tools; workshop at ICSE 2004, Edinburgh, [4] L. Geiger. Automatische JUnit Testgenerierung UML-Szenarien mit Fuja. Diploma Thesis. University of Braunschweig, [5] L. Geiger and A. Zündorf. Transforming graph sed scenarios into graph transformation sed junit tests. In Applications of Graph Transformations with Industrial Relevance (AGTIVE), Charlottesville, Virginia, USA, [6] J. Offutt and A. Abdurazik. Using uml collaboration diagrams for static checking and test generation. In 3th International Conference on the Unified Modeling Language (UML), pages , York, UK, [7] J. Ryser and M. Glinz. Using dependency charts to improve scenario-sed testing. In 17th International Conference on Testing Computer Software (TCS2000), Washington D.C., USA, [8] C. Schneider, A. Zündorf, and J. Niere. Coobra - a small step for development tools to collaborative environments. In Workshop on Directions in Software Engineering Environments, Scotland, UK, [9] A. Zündorf. The fuja toolsuite

Statechart Modeling with Fujaba

Statechart Modeling with Fujaba GraBaTs 04 Preliminary Version Statechart Modeling with Fujaba Leif Geiger Albert Zündorf University of Kassel, Software Engineering Research Group, Wilhelmshöher Allee 73, 34121 Kassel, Germany {leif.geiger

More information

The Fujaba Statechart Synthesis Approach

The Fujaba Statechart Synthesis Approach The Fujaba Statechart Synthesis Approach Thomas Maier, Albert Zündorf University of Kassel, Germany thomas.maier@uni-kassel.de, albert.zuendorf@uni-kassel.de Abstract The Fujaba project tries to provide

More information

The SDMLib solution to the MovieDB case for TTC2014

The SDMLib solution to the MovieDB case for TTC2014 The SDMLib solution to the MovieDB case for TTC2014 Christoph Eickhoff, Tobias George, Stefan Lindel, Albert Zündorf Kassel University, Software Engineering Research Group, Wilhelmshöher Allee 73, 34121

More information

Building Distributed Web Applications based on Model Versioning with CoObRA: an Experience Report

Building Distributed Web Applications based on Model Versioning with CoObRA: an Experience Report Building Distributed Web Applications based on Model Versioning with CoObRA: an Experience Report Nina Aschenbrenner, Jörn Dreyer, Marcel Hahn, Ruben Jubeh, Christian Schneider, Albert Zündorf Kassel University,

More information

Unified Modeling Language (UML)

Unified Modeling Language (UML) Unified Modeling Language (UML) Troy Mockenhaupt Chi-Hang ( Alex) Lin Pejman ( PJ ) Yedidsion Overview Definition History Behavior Diagrams Interaction Diagrams Structural Diagrams Tools Effect on Software

More information

AUTOMATED GUI TESTING OF SOFTWARE APPLICATIONS USING UML MODELS

AUTOMATED GUI TESTING OF SOFTWARE APPLICATIONS USING UML MODELS AUTOMATED GUI TESTING OF SOFTWARE APPLICATIONS USING UML MODELS Robertas Jasaitis, Dominykas Barisas, Eduardas Bareisa Kaunas University of Technology, Department of Software Engineering Studentu st. 50,

More information

EMF Code Generation with Fujaba

EMF Code Generation with Fujaba EMF Code Generation with Fujaba Leif Geiger Universität Kassel Wilhelmshöher Allee 73 34121 Kassel leif.geiger@uni-kassel.de Thomas Buchmann Universität Bayreuth Universitätsstr. 30 95447 Bayreuth thomas.buchmann@unibayreuth.de

More information

BPMN2BPEL transformation with Fujaba - a Case Study

BPMN2BPEL transformation with Fujaba - a Case Study BPMN2BPEL transformation with Fujaba - a Case Study Ruben Jubeh SE, Kassel University Wilhelmshöher Allee 73 34121 Kassel ruben.jubeh@uni-kassel.de ABSTRACT We have modeled a BPMN to BPEL synthesis transformation

More information

Pattern for Structuring UML-Compatible Software Project Repositories

Pattern for Structuring UML-Compatible Software Project Repositories Pattern for Structuring UML-Compatible Software Project Repositories Pavel Hruby Navision Software a/s Frydenlunds Allé 6 2950 Vedbaek, Denmark E-mail: ph@navision.com Web site: www.navision.com/services/methodology/default.asp

More information

OCL Support in MOF Repositories

OCL Support in MOF Repositories OCL Support in MOF Repositories Joachim Hoessler, Michael Soden Department of Computer Science Technical University Berlin hoessler@cs.tu-berlin.de, soden@cs.tu-berlin.de Abstract From metamodels that

More information

Coding and Unit Testing! The Coding Phase! Coding vs. Code! Coding! Overall Coding Language Trends!

Coding and Unit Testing! The Coding Phase! Coding vs. Code! Coding! Overall Coding Language Trends! Requirements Spec. Design Coding and Unit Testing Characteristics of System to be built must match required characteristics (high level) Architecture consistent views Software Engineering Computer Science

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

Object-Oriented Software Engineering Practical Software Development using UML and Java

Object-Oriented Software Engineering Practical Software Development using UML and Java Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 5: Modelling with Classes Lecture 5 5.1 What is UML? The Unified Modelling Language is a standard graphical

More information

Intro to Modelling and UML

Intro to Modelling and UML CSCD01 Engineering Large Software Systems Intro to Modelling and UML Joe Bettridge Winter 2018 With thanks to Anya Tafliovich and Steve Easterbrook Getting Started So, you ve just started working on a

More information

Finite State Machine Based Object-Oriented Applications Development Using UML and Eclipse Platform

Finite State Machine Based Object-Oriented Applications Development Using UML and Eclipse Platform Finite State Machine Based Object-Oriented Applications Development Using UML and Eclipse Platform Vadim Gurov, Maxim Korotkov, Maxim Mazin evelopers Corp. Abstract This paper describes methodology and

More information

Course "Softwaretechnik" Book Chapter 2 Modeling with UML

Course Softwaretechnik Book Chapter 2 Modeling with UML Course "Softwaretechnik" Book Chapter 2 Modeling with UML Lutz Prechelt, Bernd Bruegge, Allen H. Dutoit Freie Universität Berlin, Institut für Informatik http://www.inf.fu-berlin.de/inst/ag-se/ Modeling,

More information

Meltem Özturan

Meltem Özturan Meltem Özturan www.mis.boun.edu.tr/ozturan/samd 1 2 Modeling System Requirements Object Oriented Approach to Requirements OOA considers an IS as a set of objects that work together to carry out the function.

More information

Software Testing Prof. Meenakshi D Souza Department of Computer Science and Engineering International Institute of Information Technology, Bangalore

Software Testing Prof. Meenakshi D Souza Department of Computer Science and Engineering International Institute of Information Technology, Bangalore Software Testing Prof. Meenakshi D Souza Department of Computer Science and Engineering International Institute of Information Technology, Bangalore Lecture 04 Software Test Automation: JUnit as an example

More information

Model-Independent Differences

Model-Independent Differences Model-Independent Differences Patrick Könemann Technical University of Denmark, Informatics and Mathematical Modelling Richard Petersens Plads, DK-2800 Kgs. Lyngby, Denmark pk@imm.dtu.dk Abstract Computing

More information

Comparative Analysis of Architectural Views Based on UML

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

More information

Using Actions Charts for Reactive Web Application Modelling

Using Actions Charts for Reactive Web Application Modelling Using Actions Charts for Reactive Web Application Modelling Nina Geiger, Tobias George, Marcel Hahn, Ruben Jubeh, Albert Zündorf University of Kassel, Software Engineering, Department of Computer Science

More information

Object-Oriented Software Engineering Practical Software Development using UML and Java. Chapter 5: Modelling with Classes

Object-Oriented Software Engineering Practical Software Development using UML and Java. Chapter 5: Modelling with Classes Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 5: Modelling with Classes 5.1 What is UML? The Unified Modelling Language is a standard graphical language

More information

Testing! Prof. Leon Osterweil! CS 520/620! Spring 2013!

Testing! Prof. Leon Osterweil! CS 520/620! Spring 2013! Testing Prof. Leon Osterweil CS 520/620 Spring 2013 Relations and Analysis A software product consists of A collection of (types of) artifacts Related to each other by myriad Relations The relations are

More information

UML Unified Modeling Language

UML Unified Modeling Language UML Unified Modeling Language a standard language to analyze, design and document software intensive solutions Modeling with UML Building blocks When you model something, you create a simplification of

More information

Lecture Notes on Arrays

Lecture Notes on Arrays Lecture Notes on Arrays 15-122: Principles of Imperative Computation July 2, 2013 1 Introduction So far we have seen how to process primitive data like integers in imperative programs. That is useful,

More information

JUnit Test Patterns in Rational XDE

JUnit Test Patterns in Rational XDE Copyright Rational Software 2002 http://www.therationaledge.com/content/oct_02/t_junittestpatternsxde_fh.jsp JUnit Test Patterns in Rational XDE by Frank Hagenson Independent Consultant Northern Ireland

More information

Using Actions Charts for Reactive Web Application Modeling

Using Actions Charts for Reactive Web Application Modeling Using Actions Charts for Reactive Web Application Modeling Nina Geiger, Tobias George, Marcel Hahn, Ruben Jubeh, and Albert Zündorf University of Kassel, Software Engineering, Department of Computer Science

More information

Table of Laplace Transforms

Table of Laplace Transforms Table of Laplace Transforms 1 1 2 3 4, p > -1 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 Heaviside Function 27 28. Dirac Delta Function 29 30. 31 32. 1 33 34. 35 36. 37 Laplace Transforms

More information

Lecture 3 Notes Arrays

Lecture 3 Notes Arrays Lecture 3 Notes Arrays 15-122: Principles of Imperative Computation (Summer 1 2015) Frank Pfenning, André Platzer 1 Introduction So far we have seen how to process primitive data like integers in imperative

More information

Pattern-Based Architectural Design Process Model

Pattern-Based Architectural Design Process Model Pattern-Based Architectural Design Process Model N. Lévy, F. Losavio Abstract: The identification of quality requirements is crucial to develop modern software systems, especially when their underlying

More information

Design Patterns with Fujaba Intense Course, 5th-9th October Ruben Jubeh

Design Patterns with Fujaba Intense Course, 5th-9th October Ruben Jubeh Design Patterns with Fujaba Intense Course, 5th-9th October 2009 Ruben Jubeh ruben.jubeh@uni-kassel.de Kassel University Department of Software Engineering Wilhelmshöher Allee 73 34121 Kassel Germany Timetable

More information

Unit Wise Questions. Unit-1 Concepts

Unit Wise Questions. Unit-1 Concepts Unit Wise Questions Unit-1 Concepts Q1. What is UML? Ans. Unified Modelling Language. It is a Industry standard graphical language for modelling and hence visualizing a blue print of all the aspects of

More information

Testing Exceptions with Enforcer

Testing Exceptions with Enforcer Testing Exceptions with Enforcer Cyrille Artho February 23, 2010 National Institute of Advanced Industrial Science and Technology (AIST), Research Center for Information Security (RCIS) Abstract Java library

More information

CS504-Softwere Engineering -1 Solved Objective Midterm Papers For Preparation of Midterm Exam

CS504-Softwere Engineering -1 Solved Objective Midterm Papers For Preparation of Midterm Exam CS504-Softwere Engineering -1 Solved Objective Midterm Papers For Preparation of Midterm Exam MIDTERM EXAMINATION 2010 Question No: 1 ( Marks: 1 ) - Please choose one By following modern system engineering

More information

Getting a Quick Start with RUP

Getting a Quick Start with RUP Getting a Quick Start with RUP By: Doug Rosenberg and Jeff Kantor, ICONIX Software Engineering, Inc. Abstract Many people want the rigor of an industrial-strength process like the RUP but aren't quite

More information

Models in Conflict Towards a Semantically Enhanced Version Control System for Models

Models in Conflict Towards a Semantically Enhanced Version Control System for Models Models in Conflict Towards a Semantically Enhanced ersion Control System for Models Kerstin Altmanninger Department of Telecooperation, Johannes Kepler University Linz, Austria kerstin.altmanninger@jku.at

More information

Business Process Modelling

Business Process Modelling CS565 - Business Process & Workflow Management Systems Business Process Modelling CS 565 - Lecture 2 20/2/17 1 Business Process Lifecycle Enactment: Operation Monitoring Maintenance Evaluation: Process

More information

CoObRA - a small step for development tools to collaborative environments

CoObRA - a small step for development tools to collaborative environments CoObRA - a small step for development tools to collaborative environments Christian Schneider, Albert Zündorf University of Kassel, Germany christian.schneider@uni-kassel.de, zuendorf@uni-kassel.de Jörg

More information

Scenario integration via the transformation and manipulation of higher-order graphs

Scenario integration via the transformation and manipulation of higher-order graphs Scenario integration via the transformation and manipulation of higher-order graphs Hongzhi Liang School of Computing, Queen s University, Canada liang@cs.queensu.ca Abstract. The integration of different

More information

Static Safety Analysis of UML Action Semantics for Critical Systems Development

Static Safety Analysis of UML Action Semantics for Critical Systems Development Static Safety Analysis of UML Action Semantics for Critical Systems Development Zsigmond Pap, Dániel Varró Dept. of Measurement and Information Systems Budapest University of Technology and Economics H-1521

More information

Recalling the definition of design as set of models let's consider the modeling of some real software.

Recalling the definition of design as set of models let's consider the modeling of some real software. Software Design and Architectures SE-2 / SE426 / CS446 / ECE426 Lecture 3 : Modeling Software Software uniquely combines abstract, purely mathematical stuff with physical representation. There are numerous

More information

UML for Real-Time Overview

UML for Real-Time Overview Abstract UML for Real-Time Overview Andrew Lyons April 1998 This paper explains how the Unified Modeling Language (UML), and powerful modeling constructs originally developed for the modeling of complex

More information

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

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

More information

REVIEW AND OUTLOOKS OF THE MEANS FOR VISUALIZATION OF SYNTAX SEMANTICS AND SOURCE CODE. PROCEDURAL AND OBJECT ORIENTED PARADIGM DIFFERENCES

REVIEW AND OUTLOOKS OF THE MEANS FOR VISUALIZATION OF SYNTAX SEMANTICS AND SOURCE CODE. PROCEDURAL AND OBJECT ORIENTED PARADIGM DIFFERENCES REVIEW AND OUTLOOKS OF THE MEANS FOR VISUALIZATION OF SYNTAX SEMANTICS AND SOURCE CODE. PROCEDURAL AND OBJECT ORIENTED PARADIGM DIFFERENCES Hristo Hristov Abstract. In the article, we have reviewed the

More information

Business Process Modeling. Version /10/2017

Business Process Modeling. Version /10/2017 Business Process Modeling Version 1.2.1-16/10/2017 Maurizio Morisio, Marco Torchiano, 2012-2017 3 BP Aspects Process flow Process modeling UML Activity Diagrams BPMN Information Conceptual modeling UML

More information

Oracle Warehouse Builder 10g Runtime Environment, an Update. An Oracle White Paper February 2004

Oracle Warehouse Builder 10g Runtime Environment, an Update. An Oracle White Paper February 2004 Oracle Warehouse Builder 10g Runtime Environment, an Update An Oracle White Paper February 2004 Runtime Environment, an Update Executive Overview... 3 Introduction... 3 Runtime in warehouse builder 9.0.3...

More information

A Proposal to Develop a Testing Framework for Agile Software Process

A Proposal to Develop a Testing Framework for Agile Software Process C.G. Anupama, Rashi Nair and Soumi Roy ISSN : 0974 5572 International Science Press Volume 9 Number 40 2016 A Proposal to Develop a Testing Framework for Agile Software Process C.G. Anupama a Rashi Nair

More information

Topic 01. Software Engineering, Web Engineering, agile methodologies.

Topic 01. Software Engineering, Web Engineering, agile methodologies. Topic 01 Software Engineering, Web Engineering, agile methodologies. 1 What is Software Engineering? 2 1 Classic Software Engineering The IEEE definition: Software Engineering is the application of a disciplined,

More information

SEEM4570 System Design and Implementation Lecture 11 UML

SEEM4570 System Design and Implementation Lecture 11 UML SEEM4570 System Design and Implementation Lecture 11 UML Introduction In the previous lecture, we talked about software development life cycle in a conceptual level E.g. we need to write documents, diagrams,

More information

Compositional Model Based Software Development

Compositional Model Based Software Development Compositional Model Based Software Development Prof. Dr. Bernhard Rumpe http://www.se-rwth.de/ Seite 2 Our Working Groups and Topics Automotive / Robotics Autonomous driving Functional architecture Variability

More information

Modelling and Simulation of a Material Flow System

Modelling and Simulation of a Material Flow System Modelling and Simulation of a Material Flow System Ulrich A. Nickel, Jörg Niere University of Paderborn Warburger Straße 100 D-33098 Paderborn Germany [duke, nierej]@uni-paderborn.de Modern production

More information

Chapter 2: The Object-Oriented Design Process

Chapter 2: The Object-Oriented Design Process Chapter 2: The Object-Oriented Design Process In this chapter, we will learn the development of software based on object-oriented design methodology. Chapter Topics From Problem to Code The Object and

More information

challenges in domain-specific modeling raphaël mannadiar august 27, 2009

challenges in domain-specific modeling raphaël mannadiar august 27, 2009 challenges in domain-specific modeling raphaël mannadiar august 27, 2009 raphaël mannadiar challenges in domain-specific modeling 1/59 outline 1 introduction 2 approaches 3 debugging and simulation 4 differencing

More information

Index. business modeling syntax 181 business process modeling 57 business rule 40

Index. business modeling syntax 181 business process modeling 57 business rule 40 OCL.book Page 203 Tuesday, July 22, 2003 9:48 PM Index Symbols OclAny, of 167 = OclAny, of 167 @pre 34, 86, 155 ^ 34, 156 ^^ 157 A abstract syntax 93 accumulator 153 action in statechart 56 activity

More information

Unified Modeling Language

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

More information

Verification and Correction of UML Models

Verification and Correction of UML Models White paper Verification and Correction of UML Models Modeling is a complex process which is quite hard to do in a structured and controlled way. Many companies provide a set of guidelines for model structure,

More information

Ans 1-j)True, these diagrams show a set of classes, interfaces and collaborations and their relationships.

Ans 1-j)True, these diagrams show a set of classes, interfaces and collaborations and their relationships. Q 1) Attempt all the following questions: (a) Define the term cohesion in the context of object oriented design of systems? (b) Do you need to develop all the views of the system? Justify your answer?

More information

Modeling the Evolution of Aspect Configurations using Model Transformations

Modeling the Evolution of Aspect Configurations using Model Transformations Modeling the Evolution of Aspect Configurations using Model Transformations Uwe Zdun, Mark Strembeck Institute of Information Systems, New Media Lab Vienna University of Economics, Austria {uwe.zdun mark.strembeck}@wu-wien.ac.at

More information

FOUR INDEPENDENT TOOLS TO MANAGE COMPLEXITY INHERENT TO DEVELOPING STATE OF THE ART SYSTEMS. DEVELOPER SPECIFIER TESTER

FOUR INDEPENDENT TOOLS TO MANAGE COMPLEXITY INHERENT TO DEVELOPING STATE OF THE ART SYSTEMS. DEVELOPER SPECIFIER TESTER TELECOM AVIONIC SPACE AUTOMOTIVE SEMICONDUCTOR IOT MEDICAL SPECIFIER DEVELOPER FOUR INDEPENDENT TOOLS TO MANAGE COMPLEXITY INHERENT TO DEVELOPING STATE OF THE ART SYSTEMS. TESTER PragmaDev Studio is a

More information

Review of Basic Software Design Concepts. Fethi Rabhi SENG 2021

Review of Basic Software Design Concepts. Fethi Rabhi SENG 2021 Review of Basic Software Design Concepts Fethi Rabhi SENG 2021 1 Topics The development process Planning Designing Implementing 2 1. The development process How to organise activities related to the creation,

More information

Activity Nets: A UML profile for modeling workflow and business processes

Activity Nets: A UML profile for modeling workflow and business processes Activity Nets: A UML profile for modeling workflow and business processes Author: Gregor v. Bochmann, SITE, University of Ottawa (August 27, 2000) 1. Introduction 1.1. Purpose of this document Workflow

More information

Object-Oriented and Classical Software Engineering DESIGN 11/12/2017. CET/CSC490 Software Engineering Design CHAPTER 14. Stephen R. Schach.

Object-Oriented and Classical Software Engineering DESIGN 11/12/2017. CET/CSC490 Software Engineering Design CHAPTER 14. Stephen R. Schach. Slide 14.1 CHAPTER 14 Slide 14.2 Object-Oriented and Classical Software Engineering DESIGN Eighth Edition, WCB/McGraw-Hill, 2011 Stephen R. Schach Overview Slide 14.3 Overview (contd) Slide 14.4 and abstraction

More information

Business Process Modeling. Version 25/10/2012

Business Process Modeling. Version 25/10/2012 Business Process Modeling Version 25/10/2012 Maurizio Morisio, Marco Torchiano, 2012, 2013 3 BP Aspects Process flow Process modeling UML Activity Diagrams BPMN Information Conceptual modeling UML Class

More information

Lecture 34 SDLC Phases and UML Diagrams

Lecture 34 SDLC Phases and UML Diagrams That Object-Oriented Analysis and Design Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology-Kharagpur Lecture 34 SDLC Phases and UML Diagrams Welcome

More information

Software Life Cycle. Main issues: Discussion of different life cycle models Maintenance or evolution

Software Life Cycle. Main issues: Discussion of different life cycle models Maintenance or evolution Software Life Cycle Main issues: Discussion of different life cycle models Maintenance or evolution Introduction software development projects are large and complex a phased approach to control it is necessary

More information

Object-Oriented Theories for Model Driven Architecture

Object-Oriented Theories for Model Driven Architecture Object-Oriented Theories for Model Driven Architecture Tony Clark 1, Andy Evans 2, Robert France 3 1 King s College London, UK, anclark@dcs.kcl.ac.uk, 2 University of York, UK, andye@cs.york.ac.uk, 3 University

More information

Introduction to Software Testing Chapter 2, Sec#: 2.5 Graph Coverage for Specifications

Introduction to Software Testing Chapter 2, Sec#: 2.5 Graph Coverage for Specifications Introduction to Software Testing Chapter 2, Sec#: 2.5 Graph Coverage for Specifications Paul Ammann & Jeff Offutt http://www.cs.gmu.edu/~offutt/softwa retest/ Design Specifications A design specification

More information

BLU AGE 2009 Edition Agile Model Transformation

BLU AGE 2009 Edition Agile Model Transformation BLU AGE 2009 Edition Agile Model Transformation Model Driven Modernization for Legacy Systems 1 2009 NETFECTIVE TECHNOLOGY -ne peut être copiésans BLU AGE Agile Model Transformation Agenda Model transformation

More information

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

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

More information

Analysis and Design with the Universal Design Pattern

Analysis and Design with the Universal Design Pattern Analysis and Design with the Universal Design Pattern by Koni Buhrer Software Engineering Specialist Rational Software Developing large software systems is notoriously difficult and unpredictable. Software

More information

OBJECT ORIENTED DESIGN with the Unified Process. Use Case Realization

OBJECT ORIENTED DESIGN with the Unified Process. Use Case Realization OBJECT ORIENTED DESIGN with the Unified Process Use Case Realization Objectives Explain the purpose and objectives of objectoriented design Develop design class diagrams Develop detailed sequence diagrams

More information

Perfect Timing. Alejandra Pardo : Manager Andrew Emrazian : Testing Brant Nielsen : Design Eric Budd : Documentation

Perfect Timing. Alejandra Pardo : Manager Andrew Emrazian : Testing Brant Nielsen : Design Eric Budd : Documentation Perfect Timing Alejandra Pardo : Manager Andrew Emrazian : Testing Brant Nielsen : Design Eric Budd : Documentation Problem & Solution College students do their best to plan out their daily tasks, but

More information

Execution Architecture

Execution Architecture Execution Architecture Software Architecture VO (706.706) Roman Kern Institute for Interactive Systems and Data Science, TU Graz 2018-11-07 Roman Kern (ISDS, TU Graz) Execution Architecture 2018-11-07

More information

Execution of UML models Present and Future of Research and Practice

Execution of UML models Present and Future of Research and Practice Execution of UML models Present and Future of Research and Practice Federico Ciccozzi, Ivano Malavolta, Bran Selic Mälardalen University, Vrije University, Malina Software Corp. Ericsson Modeling Days

More information

Human Error Taxonomy

Human Error Taxonomy Human Error Taxonomy The Human Error Taxonomy (HET) provides a structure for requirement errors made during the software development process. The HET can be employed during software inspection to help

More information

On UML2.0 s Abandonment of the Actors-Call-Use-Cases Conjecture

On UML2.0 s Abandonment of the Actors-Call-Use-Cases Conjecture On UML2.0 s Abandonment of the Actors-Call-Use-Cases Conjecture Sadahiro Isoda Toyohashi University of Technology Toyohashi 441-8580, Japan isoda@tutkie.tut.ac.jp Abstract. UML2.0 recently made a correction

More information

Metamodeling for Business Model Design

Metamodeling for Business Model Design Metamodeling for Business Model Design Facilitating development and communication of Business Model Canvas (BMC) models with an OMG standards-based metamodel. Hilmar Hauksson 1 and Paul Johannesson 2 1

More information

Unified Modeling Language I.

Unified Modeling Language I. Unified Modeling Language I. Software engineering Szoftvertechnológia Dr. Balázs Simon BME, IIT Outline Software engineering Modeling Unified Modeling Language (UML) UML Diagrams: Use Case Diagram Activity

More information

Creating a Lattix Dependency Model The Process

Creating a Lattix Dependency Model The Process Creating a Lattix Dependency Model The Process Whitepaper January 2005 Copyright 2005-7 Lattix, Inc. All rights reserved The Lattix Dependency Model The Lattix LDM solution employs a unique and powerful

More information

Developing Agent Models with Repast Michael North

Developing Agent Models with Repast Michael North Developing Agent Models with Repast Michael North north@anl.gov www.cas.anl.gov Agent-Based Models Can Be Constructed Using a Variety of Approaches Environments are the stage upon which agents play These

More information

1: Specifying Requirements with Use Case Diagrams

1: Specifying Requirements with Use Case Diagrams Outline UML Design Supplement 1: Specifying Requirements with Use Case Diagrams Introduction Use Case Diagrams Writing Use Cases Guidelines for Effective Use Cases Slide adapted from Eran Toch s lecture

More information

A scenario-based test approach for testing reactive concurrent systems

A scenario-based test approach for testing reactive concurrent systems Corporate Technology A scenario-based test approach for testing reactive concurrent systems Andreas Ulrich Siemens AG, Corporate Technology München, Germany ETSI MBT User Conference 2011 October 18 20,

More information

Incremental improvements for the Spring Framework

Incremental improvements for the Spring Framework Incremental improvements for the Spring Framework I am working as an architect for a middle-sized software development company, where we have been actively using J2EE extension frameworks for the last

More information

Certified LabVIEW Architect Recertification Exam Test Booklet

Certified LabVIEW Architect Recertification Exam Test Booklet Certified LabVIEW Architect Recertification Exam Test Booklet Note: The use of the computer or any reference materials is NOT allowed during the exam. Instructions: If you did not receive this exam in

More information

Designing and debugging real-time distributed systems

Designing and debugging real-time distributed systems Designing and debugging real-time distributed systems By Geoff Revill, RTI This article identifies the issues of real-time distributed system development and discusses how development platforms and tools

More information

How to build a UML model

How to build a UML model How to build a UML model RUP Stereotypes, packages, and object diagrams Case study 1 Rational Unified Process Designed to work with UML No longer being promoted by IBM Roles - (out of 20 or so) Architect

More information

Announcements. How to build a UML model. Rational Unified Process. How RUP builds a model. UI design. Architect

Announcements. How to build a UML model. Rational Unified Process. How RUP builds a model. UI design. Architect How to build a UML model RUP Steriotypes, packages, and object diagrams Case study Announcements HW3 Phase 1 due on Feb 6 th, 5:00pm (need to create new pairs, accounts) Feedback on M2: turn procedural

More information

Q Body of techniques supported by. R precise mathematics. R powerful analysis tools. Q Rigorous, effective mechanisms for system.

Q Body of techniques supported by. R precise mathematics. R powerful analysis tools. Q Rigorous, effective mechanisms for system. Introduction to Formal Methods 1 Introduction to Formal Methods 2 Formal Specification Requirements specification R notational statement of system services Software specification R formal abstract depiction

More information

Analysis of the Test Driven Development by Example

Analysis of the Test Driven Development by Example Computer Science and Applications 1 (2013) 5-13 Aleksandar Bulajic and Radoslav Stojic The Faculty of Information Technology, Metropolitan University, Belgrade, 11000, Serbia Received: June 18, 2013 /

More information

Supporting Modeling in the Large in Fujaba

Supporting Modeling in the Large in Fujaba Supporting Modeling in the Large in Thomas Buchmann Angewandte Informatik 1 Universität Bayreuth D-95440 Bayreuth thomas.buchmann@unibayreuth.de Alexander Dotor Angewandte Informatik 1 Universität Bayreuth

More information

Oral Questions. Unit-1 Concepts. Oral Question/Assignment/Gate Question with Answer

Oral Questions. Unit-1 Concepts. Oral Question/Assignment/Gate Question with Answer Unit-1 Concepts Oral Question/Assignment/Gate Question with Answer The Meta-Object Facility (MOF) is an Object Management Group (OMG) standard for model-driven engineering Object Management Group (OMG)

More information

Semantic Web in a Constrained Environment

Semantic Web in a Constrained Environment Semantic Web in a Constrained Environment Laurens Rietveld and Stefan Schlobach Department of Computer Science, VU University Amsterdam, The Netherlands {laurens.rietveld,k.s.schlobach}@vu.nl Abstract.

More information

3rd Lecture Languages for information modeling

3rd Lecture Languages for information modeling 3rd Lecture Languages for information modeling Agenda Languages for information modeling UML UML basic concepts Modeling by UML diagrams CASE tools: concepts, features and objectives CASE toolset architecture

More information

Outline of UML and Unified Process. Object Oriented Analysis/Design/Programming UML1.5. Koichiro Ochimizu, JAIST. UML&UP outline 1.

Outline of UML and Unified Process. Object Oriented Analysis/Design/Programming UML1.5. Koichiro Ochimizu, JAIST. UML&UP outline 1. Outline of UML and Unified Process Koichiro OCHIMIZU School of Information Science JAIST Schedule Feb. 27th 13:00 Scope and Goal 14:30 Basic Concepts on Representing the World (object, class, association,

More information

Chapter 4 Objectives

Chapter 4 Objectives Chapter 4 Objectives Eliciting requirements from the customers Modeling requirements Reviewing requirements to ensure their quality Documenting requirements for use by the design and test teams 4.1 The

More information

No Source Code. EEC 521: Software Engineering. Specification-Based Testing. Advantages

No Source Code. EEC 521: Software Engineering. Specification-Based Testing. Advantages No Source Code : Software Testing Black-Box Testing Test-Driven Development No access to source code So test cases don t worry about structure Emphasis is only on ensuring that the contract is met Specification-Based

More information

Metaprogrammable Toolkit for Model-Integrated Computing

Metaprogrammable Toolkit for Model-Integrated Computing Metaprogrammable Toolkit for Model-Integrated Computing Akos Ledeczi, Miklos Maroti, Gabor Karsai and Greg Nordstrom Institute for Software Integrated Systems Vanderbilt University Abstract Model-Integrated

More information

Software Engineering with Objects and Components Open Issues and Course Summary

Software Engineering with Objects and Components Open Issues and Course Summary Software Engineering with Objects and Components Open Issues and Course Summary Massimo Felici Software Engineering with Objects and Components Software development process Lifecycle models and main stages

More information

Towards Better Support for Pattern-Oriented Software Development

Towards Better Support for Pattern-Oriented Software Development Towards Better Support for Pattern-Oriented Software Development Dietrich Travkin Software Engineering Research Group, Heinz Nixdorf Institute & Department of Computer Science, University of Paderborn,

More information

Specifying Precise Use Cases with Use Case Charts

Specifying Precise Use Cases with Use Case Charts Specifying Precise Use Cases with Use Case Charts Jon Whittle Dept of Information & Software Engineering George Mason University 4400 University Drive Fairfax, VA 22030 jwhittle@ise.gmu.edu Abstract. Use

More information