JUnit A Study on Applying JUnit Framework to Document Knowledge of Object-Oriented Software Systems

Similar documents
SyncFree SyncFree: The Development of an Open Source Personal Data Synchronization Software

Object-Oriented Software Development Goal and Scope

Broker Pattern. Teemu Koponen

Pattern-Based Architectural Design Process Model

A System of Patterns for Web Navigation

Coordination Patterns

Concurrent Object-Oriented Development with Behavioral Design Patterns

Quality-Driven Architecture Design Method

Reflective Design Patterns to Implement Fault Tolerance

Concurrency Control with Java and Relational Databases

Design for Testability

JOURNAL OF OBJECT TECHNOLOGY Online at Published by ETH Zurich, Chair of Software Engineering. JOT, 2002

Towards Better Support for Pattern-Oriented Software Development

Using Design Patterns for Refactoring Real-World Models

Detection a Design Pattern through Merge Static and Dynamic Analysis Using Altova and Lambdes Tools

Design patterns are partial solutions to common

Proceedings of. The Three-Tier Architecture Pattern Language Design Fest

A Metric of the Relative Abstraction Level of Software Patterns

Provide data abstraction to enhance reusability.

A Metric for Measuring the Abstraction Level of Design Patterns

Partial Acquisition Prashant Jain and Michael Kircher

Evolving Architectural Patterns For Web Applications

Introduction. Proceedings of the 19th Conference on Software Engineering Education and Training Workshops (CSEETW 06) IEEE

Composition Approaches Summary

Programação de Sistemas Distribuidos

PersistF: A Transparent Persistence Framework with Architecture Applying Design Patterns

A MULTI-LEVEL DESIGN PATTERN FOR EMBEDDED SOFTWARE *

BCS Higher Education Qualifications. Diploma in IT. Object Oriented Programming Syllabus

Review of Basic Software Design Concepts. Fethi Rabhi SENG 2021

Applying Model View View-Model and Layered Architecture for Mobile Applications

LESSON PLAN SUB NAME : OBJECT ORIENTED ANALYSIS AND DESIGN UNIT SYLLABUS

A Safety Mechanism Using Software Patterns

On Built-in Test Reuse in Object-Oriented Framework Design

Distributed Proxy: A Design Pattern for Distributed Object Communication

Evolution Support by Homogeneously Documenting Patterns, Aspects and Traces

Process-Integrated Refinement Patterns in UML

A Metamodeling Approach to Model Refactoring

Transparent Remote Access

Lookup. Michael Kircher & Prashant Jain Siemens AG, Corporate Technology Munich, Germany

SCENTOR: Scenario-Based Testing of E-Business Applications

1 (ERTSDP) ERTSDP (Embedded Real-Time Systems Design Pattern) (1)

Test Case Generation Based on Sequence Diagrams

WS01/02 - Design Pattern and Software Architecture

Impact of Dependency Graph in Software Testing

Frameworks Representations & Perspectives Position Paper Workshop on Language Support for Design Patterns and Frameworks, ECOOP 97

Coordinator. Example. Prashant Jain Corporate Technology, Siemens AG Munich, Germany

Distributed Proxy: A Design Pattern for the Incremental Development of Distributed Applications

EXPERIENCES ON DEVELOPMENT OF A 4D PLANT CONSTRUCTION SIMULATION SYSTEM

Slide 1. Design Patterns. Prof. Mirco Tribastone, Ph.D

Using AOP to build complex data centric component frameworks

Universal Communication Component on Symbian Series60 Platform

Reference: Java Web Services Architecture James McGovern, Sameer Tyagi, Michael Stevens, and Sunil Mathew, 2003

An Architectural Style for Closed-loop Process-Control

CS/CE 2336 Computer Science II

Twin A Design Pattern for Modeling Multiple Inheritance

Catalogue of architectural patterns characterized by constraint components, Version 1.0

Introduction to Design Patterns

Architectural Patterns

Review Software Engineering October, 7, Adrian Iftene

Introduction to Design Patterns

Crash course on design patterns

Software Reengineering P1: Intro & Organization. Martin Pinzger Delft University of Technology

Design Patterns. Architectural Patterns. Contents of a Design Pattern. Dr. James A. Bednar. Dr. David Robertson

Test-Driven Development Metodology Proposal for Web Service Choreographies

Patterns for Decoupling

Patterns for Asynchronous Invocations in Distributed Object Frameworks

Model-View-Controller

Pattern Language for Architecture of Protocol Systems

APICES - Rapid Application Development with Graph Pattern

Introducing Design Patterns

Want Better Software? TEST it! (and thenwrite it) Tame defects before they appear You Rise/Bugs Fall

Dependency Management for Web-based. based EISs. Workshop on Web-based EISs Sydney University, 20-May Leszek A. Maciaszek

Patterns. Erich Gamma Richard Helm Ralph Johnson John Vlissides

Lecture 19: Introduction to Design Patterns

EuroPLoP 2003 Focus Group: Patterns for Component Composition and Adaptation

Efficient Regression Test Model for Object Oriented Software

w3.ualg.pt/~jvo/poo

Object-Oriented Design

Software Architecture

Towards a Java Framework for Knowledge Representation and Inference

Object-Oriented Design

RPC CLIENT: A PATTERN FOR THE CLIENT-SIDE IMPLEMENTATION OF

Génie Logiciel et Gestion de Projets. Patterns

Introduction to Software Engineering (2+1 SWS) Winter Term 2009 / 2010 Dr. Michael Eichberg Vertretungsprofessur Software Engineering Department of

Software Engineering I (02161)

DESIGN PATTERN MATCHING

Information systems modelling UML and service description languages

Test Driven Development and Refactoring. CSC 440/540: Software Engineering Slide #1

A Case Study of the Variability Consequences of the CQRS Pattern in Online Business Software

The Authenticator Pattern

Modeling software evolution by evolving interoperation graphs

Towards Architectural Styles for Android App Software Product Lines

Principles of Software Construction: Objects, Design and Concurrency. Introduction to Design. toad

A Study of Bad Smells in Code

Challenges in Model Refactoring

Introduction to Software Engineering

L23.1 Introduction... 2

Requirements Analysis and Negotiation

An Architecture-Centered Method for Rapid Software Development

UML Specification and Correction of Object-Oriented Anti-patterns

Transcription:

JUnit A Study on Applying JUnit Framework to Document Knowledge of Object-Oriented Software Systems Email: {hsieh, s1669021}@ntut.edu.tw JUnit SyncFree 92 [16] SyncFree 1.0 [17] bug fixmerge CVS SyncFree LightWeight CMMI [19] traceability traceability P. G. Armour [2] refactoring [7] Legacy System [4][6] automatic regression test grain size abstraction level architecture-centric design pattern[3][8][12] multiple aspects unit testing, MAUT Java MAUT JUnit [10][14]Mock Object [4][6] Refactoring [4][6] Java [4][6] MAUT SyncFree MAUT MAUT Proceedings of the Second Taiwan Conference on Software Engineering, Taipei, Taiwan, 2006 48

SyncFree 1 SyncFree layered architecture[3] [8]SyncFree [18] LightWeight CMMI SyncFree scenario unit testsut use case functional test design pattern unit test DPUT Strategy [8] participants architecture unit testaut business rule unit test BRUT 3.2 JUnit 1 SyncFree 3.1 MAUT logic unit test LUT stub mock object stub mock object integration unit testiut collaboration unit test intra-package integration unit test Intra UIT package inter-package integration unit testinter UIT package JUnitJUnit test suite JUnit Mock Object Mock Object mock object 3.3 (MAUT Framework) MAUT Framework MAUT MAUT MAUT Instance design patterns Design Pattern MAUT Framework design patterns Strategy pattern MAUT Strategy Context Concrete Strategies 2 artifact MAUT MAUT Instance JUnit MAUT Framework MAUT Instance Proceedings of the Second Taiwan Conference on Software Engineering, Taipei, Taiwan, 2006 49

MAUT Instance (binds) MAUT Instance MAUT Instance JUnit MAUT Instance 2 MAUT 3.3 Legacy System MAUT Instance iterative and incremental Legacy System [11][15] MAUT Instance MAUT Instance bug report bug fix document reading code reading stubs mock objects concept verification concept revision functional enhancement test first functional revision functional testing MAUT Instance use case MAUT Instance 4.1 SyncFree SyncFree HTTP URL (1) 3 (2) 4 (3) (2) (4) Proceedings of the Second Taiwan Conference on Software Engineering, Taipei, Taiwan, 2006 50

5 FTP stubs mock objects 7 (3) SyncFree use case controller pattern [1] 7 use case controllerobjsyncservice 3 4 5 FTP 6 System Sequence Diagram MAUT Instance IUT IUT LUT LUT mock object HTTP 4.2 SyncFree (1) System Sequence Diagram [12] 6 (2) 7 SUT 4.3 (1) Proceedings of the Second Taiwan Conference on Software Engineering, Taipei, Taiwan, 2006 51

Strategy (2) Design Pattern MAUT Framework DPUT 8 (3) JUnit MAUT Instance MAUT Instance MAUT Instance 2 8 DPUT 8 DPUT Strategy pattern 8 control.verify() Strategy pattern Concrete Strategy Strategy MAUT MAUT MAUT LUT IUT [6] MAUT SUT DPUD AUT MAUT MAUT Instance use case controller pattern SUT use case controller 9 1 design pattern SUT 1 2 SUT 3 SUT 9 SUT model-based MAUT NSC-94-2213-E-027-035 [1] A. Aguiar, A. Sousa, and A. Pinto, Use-Case Controller, published in the EuroPLop 2001, 2001. [2] P. G. Armour, Not-Defect: The Mature Discipline of Testing, Communications of the ACM, Vol. 47, No. 10, October 2004. [3] F. Buschmann, R. Meunier, H. Rohnert, P. Sommerlad, and M. Stal, Pattern-Oriented Software Architecture: A System of Patterns, Volume 1, Wiley, 1996. [4] S. Demeyer, S. Ducasse, O. Nierstrase, Object-Oriented Reengineering Patterns, Elsevier Science, 2003. Proceedings of the Second Taiwan Conference on Software Engineering, Taipei, Taiwan, 2006 52

[5] EasyMock, http://www.easymock.org/, accessed June 2004. [6] M. C. Feathers, Working Effectively with Legacy Code, Prentice Hall PRT, 2005. [7] M. Fowler, Refactoring: Improving the Design of Existing Code, Addison-Wesley, 1999. [8] E. Gamma, R. Helm, R. Johnson, and J. Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley, 1995. [9] jmock, http://www.jmock.org/, accessed Oct. 2004. [10] JUnit, http://www.junit.org/, accessed May 2003. [11] A. Lakhotia, Understanding Someone Else's Code: An Analysis of Experience, Journal of Systems and Software, 1993, pp. 269-275. [12] C. Larman, Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and the Unified Process. 2nd, Prentice Hall PRT, 2002. [13] A. von Mayrhauser and A. M. Vans, Identification of Dynamic Comprehension Processes During Large Scale Maintenance, IEEE Transaction on Software Engineering, Vol. 22, No. 6, June 1996. [14] V. Massol and T. Husted, JUnit in Action, Manning, 2003. [15] V. Rajlich and N. Wilde, The Role of Concepts in Program Comprehension, in Proceeding of the 10th International Workshop on Program Comprehension, IEEE, 2002. [16] SyncFree: Java, NSC92-2218-E-027-020. [17] SyncFree2 SyncFree, NSC93-2218-E-027-039. [18] "SyncFree " pp. 184-189, TANET-20042004 10. [19] http://credit.csie.ncku.edu.tw/opensource/index.h tm, accessed Oct. 2004. Proceedings of the Second Taiwan Conference on Software Engineering, Taipei, Taiwan, 2006 53