Story Driven Testing - SDT
|
|
- Silvia Chloe Hudson
- 5 years ago
- Views:
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
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 informationThe 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 informationThe 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 informationBuilding 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 informationUnified 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 informationAUTOMATED 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 informationEMF 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 informationBPMN2BPEL 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 informationPattern 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 informationOCL 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 informationCoding 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 informationDebugging 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 informationObject-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 informationIntro 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 informationFinite 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 informationCourse "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 informationMeltem Ö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 informationSoftware 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 informationModel-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 informationComparative 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 informationUsing 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 informationObject-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 informationTesting! 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 informationUML 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 informationLecture 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 informationJUnit 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 informationUsing 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 informationTable 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 informationLecture 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 informationPattern-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 informationDesign 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 informationUnit 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 informationTesting 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 informationCS504-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 informationGetting 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 informationModels 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 informationBusiness 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 informationCoObRA - 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 informationScenario 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 informationStatic 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 informationRecalling 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 informationUML 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 informationCHAPTER 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 informationREVIEW 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 informationBusiness 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 informationOracle 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 informationA 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 informationTopic 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 informationSEEM4570 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 informationCompositional 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 informationModelling 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 informationChapter 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 informationchallenges 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 informationIndex. 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 informationUnified 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 informationVerification 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 informationAns 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 informationModeling 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 informationFOUR 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 informationReview 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 informationActivity 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 informationObject-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 informationBusiness 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 informationLecture 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 informationSoftware 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 informationObject-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 informationIntroduction 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 informationBLU 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 informationAutomation 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 informationAnalysis 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 informationOBJECT 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 informationPerfect 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 informationExecution 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 informationExecution 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 informationHuman 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 informationOn 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 informationMetamodeling 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 informationUnified 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 informationCreating 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 informationDeveloping 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 information1: 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 informationA 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 informationIncremental 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 informationCertified 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 informationDesigning 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 informationHow 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 informationAnnouncements. 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 informationQ 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 informationAnalysis 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 informationSupporting 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 informationOral 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 informationSemantic 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 information3rd 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 informationOutline 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 informationChapter 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 informationNo 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 informationMetaprogrammable 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 informationSoftware 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 informationTowards 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 informationSpecifying 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