Agile Test-based Modeling 資工 3 101502540 聶順成. Outline  Introduction : Modeling meets Programming  Agile Modeling: Using Models in Agile Projects  Model-based.

Slides:



Advertisements
Similar presentations
Configuration management
Advertisements

Introducing Formal Methods, Module 1, Version 1.1, Oct., Formal Specification and Analytical Verification L 5.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 2, Modeling with UML, Part 4 UML 2 Metamodel.
Ossi Taipale, Lappeenranta University of Technology
Lecture # 2 : Process Models
Object-Oriented Software Development CS 3331 Fall 2009.
Adaptive Processes Software Processes Adaptive Processes.
Alternate Software Development Methodologies
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall A.1.
Systems Analysis and Design 8th Edition
Unified Modeling Language
Object-Oriented Analysis and Design
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 8 Slide 1 System models.
1 Postdelivery Maintenance Xiaojun Qi. 2 Why Postdelivery Maintenance Is Necessary Corrective maintenance: To correct residual faults –Analysis, design,
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 8 Slide 1 System models.
UML CASE Tool. ABSTRACT Domain analysis enables identifying families of applications and capturing their terminology in order to assist and guide system.
Creating Architectural Descriptions. Outline Standardizing architectural descriptions: The IEEE has published, “Recommended Practice for Architectural.
Systems Analysis & Design Sixth Edition Systems Analysis & Design Sixth Edition Toolkit Part 5.
1 Lecture 5 Introduction to Software Engineering Overview  What is Software Engineering  Software Engineering Issues  Waterfall Model  Waterfall Model.
Copyright 2004 Prentice-Hall, Inc. Essentials of Systems Analysis and Design Second Edition Joseph S. Valacich Joey F. George Jeffrey A. Hoffer Appendix.
Chapter 18 Testing Conventional Applications
1 SWE Introduction to Software Engineering Lecture 11 - Requirements Engineering Processes.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u.
Formal Methods 1. Software Engineering and Formal Methods  Every software engineering methodology is based on a recommended development process  proceeding.
Overview of the Database Development Process
AMOST Experimental Comparison of Code-Based and Model-Based Test Prioritization Bogdan Korel Computer Science Department Illinois Institute of Technology.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions of systems whose requirements are being.
Chapter 4 System Models A description of the various models that can be used to specify software systems.
System models Abstract descriptions of systems whose requirements are being analysed Abstract descriptions of systems whose requirements are being analysed.
RUP Implementation and Testing
By: Md Rezaul Huda Reza 5Ps for SE Process Project Product People Problem.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Introduction to UML By: Prof. Aiman Hanna Department of Computer Science, Concordia University, Montreal, Canada.
Adaptive Processes © Adaptive Processes Simpler, Faster, Better Software Requirements.
Copyright 2001 Prentice-Hall, Inc. Essentials of Systems Analysis and Design Joseph S. Valacich Joey F. George Jeffrey A. Hoffer Appendix A Object-Oriented.
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 20 Object-Oriented.
Systems Analysis and Design in a Changing World, 6th Edition
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
Software development process ธนวัฒน์ แซ่ เอียบ. The development process Process –set of rules which define how a development project. Methodology and.
Software Architecture in Practice Architectural description (The reduced version)
Information System Development Courses Figure: ISD Course Structure.
Model Based Testing Group 7  Nishanth Chandradas ( )  George Stavrinides ( )  Jeyhan Hizli ( )  Talvinder Judge ( )  Saajan.
Chapter 7 System models.
System models l Abstract descriptions of systems whose requirements are being analysed.
Modified by Juan M. Gomez Software Engineering, 6th edition. Chapter 7 Slide 1 Chapter 7 System Models.
Sommerville 2004,Mejia-Alvarez 2009Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
Object-Oriented Analysis and Design Fall 2009.
Systems Analysis & Design 7 th Edition Chapter 5.
1 Capturing Requirements As Use Cases To be discussed –Artifacts created in the requirements workflow –Workers participating in the requirements workflow.
Gaudi software process Ralph Back CREST CREST: Center for Reliable Software Technology Åbo Akademi.
Systems Analysis and Design in a Changing World, 6th Edition 1 Chapter 5 INTRODUCTION TO SYSTEMS ANALYSIS AND DESIGN: AN AGILE, ITERATIVE APPROACH CHAPTER.
Test Driven Development Daniel Brown dxb17u. Introduction Originates from Extreme Programming (XP) Proposed by Kent Beck in Test Driven Development.
Requirements Engineering Requirements Engineering in Agile Methods Lecture-28.
SSQSA present and future Gordana Rakić, Zoran Budimac Department of Mathematics and Informatics Faculty of Sciences University of Novi Sad
HNDIT23082 Lecture 09:Software Testing. Validations and Verification Validation and verification ( V & V ) is the name given to the checking and analysis.
1 Using Rational Rose ® to construct UML diagrams.
Introduction to UML and Rational Rose UML - Unified Modeling Language Rational Rose 98 - a GUI tool to systematically develop software through the following.
UNIT – II BUSINESS PROCESS MANAGEMENT
Roberta Roth, Alan Dennis, and Barbara Haley Wixom
The Movement To Objects
Systems Analysis and Design in a Changing World, 6th Edition
Object-Oriented Techniques
It is great that we automate our tests, but why are they so bad?
Lecture 09:Software Testing
Lecture 22 Inheritance Richard Gesick.
Systems Analysis and Design in a Changing World, 6th Edition
University of Houston-Clear Lake
Chapter 20 Object-Oriented Analysis and Design
Chapter 5.
Presentation transcript:

Agile Test-based Modeling 資工 聶順成

Outline  Introduction : Modeling meets Programming  Agile Modeling: Using Models in Agile Projects  Model-based Testing  Model Evolution using Automated Tests

Introduction : Modeling meets Programming  The UML has become the most popular modeling language for software intensive systems  Is it critical for a modeling language to be also used as programming language?  High level 的設計 會太過在意細節 , 所以未來必須會搭配一些 not-executable language 補充  Is the UML expressive enough to describe systems completely or will it be accompanied by conventional languages?  必然會搭配其他語言  What are the implications of an executable UML on the development process?  Indeed, the UML is in its current form not very convenient for programming. However, if tooling becomes more efficient and the UML is enriched with appropriate programming concepts, this might change.

Introduction : Modeling meets Programming  In practice, these models are increasingly often used for generation of code respectively code frames that are filled in manually.  Mapping of UML-models to code and test code

Agile Modeling: Using Models in Agile Projects  XP characteristics  XP early focuses on the primary goal, the running production code  At any stage of development, automated tests are used to ensure quality of the result. Furthermore, the automation allows us as well as new developers and the paying customer to repeat tests continuously.  Refactoring of code is used to improve the code structure and tests ensure the defect rate introduced through refactoring is rather small if existent at all.  using an executable version of UML to develop  become even more efficient  the developer can focus on requirements only, completely disregarding the technological platform. These models can more easily be written, read and understood than code

Model-based Testing  Code or at least code frames can be generated from a design model.  Test cases can be derived from an analysis or design model that is not used/usable for constructive generation of production code. For example behavioral models, such as statecharts, can be used to derive test cases that cover states, transitions or even paths.  The modeling technique itself can be used to describe a test case or at least a part thereof.  We are going to introduce the development of models that describe tests

Structure of a test modeled A typical test consists of a description of the test data, the test driver and an oracle characterizing the desired test result the test data :object diagram (OD). It shows the objects necessary to run The test driver : a simple method call or a sequence diagram (SD). SD : the triggering method calls can be described and check object states during the test run

Model Evolution using Automated Tests  Move up one method implementation and have it overridden in the other class.  Just add the method as abstract signature in the superclass  Adapt the method implementations in such a way that common parts can be moved upward.

Model Evolution using Automated Tests moving an attribute upward as shown induces object diagrams with Guest-objects to be adapted accordingly by providing a concrete value for that attribute. In this case it may even be of interest to clone tests in order to allow for different values to be tested