Software Architecture Document v0.51.doc

75
Architectures for Software Systems(17-655) Software Architecture for DBAuditor2 April 22, 2008 Team Metis Jinhee Cho Seung Ick Jang Final Project 1/75 Metis

description

 

Transcript of Software Architecture Document v0.51.doc

Page 1: Software Architecture Document v0.51.doc

Architectures for Software Systems(17-655)

Software Architecture for DBAuditor2

April 22, 2008

Team Metis

Jinhee Cho

Seung Ick Jang

Taekgoo kim

GwanPyo Do

Final Project 1/52 Metis

Page 2: Software Architecture Document v0.51.doc

Architectures for Software Systems(17-655)

Document Information

Title Software Architecture DocumentBased on Team AoBSaved in Physical storage place

Document Revisions History

S. No Revision Date Author Comments1 0.1 3/2/08 Taekgoo Kim Initial Creation2 0.2 4/3/08 Gwanpyo Do,

Seung Ick JangModify Introduction and Quality Attributes Scenario

3 0.3 4/9/08 Taekgoo Kim, Jinhee Cho

Modify Introduction and Quality Attributes Scenario; Create C&C View and module View

4 0.31 4/11/08 Taekgoo Kim Modify Quality Attributes Scenario.5 0.36 4/12/08 Taekgoo Kim,

Jinhee ChoModify C&C View; Modify Module view description

6 0.4 4/13/08 Jinhee Cho, Seung Ick Jang, Gwanpyo Do, Taekgoo Kim

Modify C&C View and description, Modify module view and description.

7 0.41 4/18/08 Jinhee Cho, Seung Ick Jang, Gwanpyo Do, Taekgoo Kim

Quality Attribute Scenarios

8 0.5 4/24/08 Gwanpyo Do, Taekgoo Kim

Modify Context Diagram, Architectural Drivers and Architectural Decision

9 0.51 4/27/08 Taekgoo Kim, Jinhee Cho

Modify module view and C&C view, Add allocation view

Final Project 2/52 Metis

Page 3: Software Architecture Document v0.51.doc

Architectures for Software Systems(17-655)

Table of Contents

1. Introduction.............................................................................................................................71.1. DBAuditor2 System................................................................................................................71.2. Business Context......................................................................................................................72. Architectural Drivers..............................................................................................................92.1. Functional Requirements.......................................................................................................92.1.1. Project management........................................................................................................92.1.2. Project/Job Status............................................................................................................92.1.3. Query Generation and Execution..................................................................................92.1.4. Test Report Generation..................................................................................................92.1.5. Wizard..............................................................................................................................92.2. Constraints...............................................................................................................................92.3. Quality Attribute Requirements..........................................................................................102.3.1. Performance...................................................................................................................102.3.2. Portability.......................................................................................................................102.3.3. Usability..........................................................................................................................112.3.4. Availability.....................................................................................................................112.3.5. Modifiability: change of query sets..............................................................................112.3.6. Modifiability: change of specification..........................................................................112.3.7. Modifiability: addition of new benchmark service....................................................113. Architectural Decisions.........................................................................................................123.1. Architectural Style................................................................................................................123.1.1. Client-Sever....................................................................................................................123.2. Tactics.....................................................................................................................................143.2.1. Performance: Resource Demand.................................................................................143.2.2. Modifiability: Localize modifications..........................................................................153.2.3. Modifiability: Defer binding time................................................................................153.2.4. Usability: Separation of UI...........................................................................................153.2.5. Usability: Support User Initiative................................................................................163.2.6. Portability.......................................................................................................................163.3. Other decisions......................................................................................................................163.3.1. Project profile repository..............................................................................................163.3.2. Comparison[TBD-figure for comparison]..................................................................174. C & C Architectural View....................................................................................................184.1. Overall C&C View................................................................................................................184.2. Server.....................................................................................................................................214.2.1. TestExecuter..................................................................................................................224.3. Client......................................................................................................................................245. Module Architectural View..................................................................................................265.1. Representative Module View of the Server........................................................................275.2. Detailed Module View: Sever...............................................................................................285.3. Representative Module View of Client................................................................................305.4. Detail Module View: Client..................................................................................................305.5. Detail Module View: EventBusPackages............................................................................326. Allocation Architectural View.............................................................................................346.1. Deployment view...................................................................................................................346.2. Implementation veiw.............................................................................................................357. Mapping between Architectural Views...............................................................................368. Future Works........................................................................................................................379. Appendix................................................................................................................................389.1. Acronym.................................................................................................................................389.2. Functional requirements......................................................................................................389.3. Prioritized Quality Attribute Scenarios..............................................................................419.4. References..............................................................................................................................45

Preliminary Report 3/52 Metis

Page 4: Software Architecture Document v0.51.doc

Architectures for Software Systems(17-655)

[1] http://dogbert.mse.cs.cmu.edu/mse2008Korea/AoB/repository/documents/AoB_SRS_v1.0_20080302.doc......................................................................................................45[2]

http://dogbert.mse.cs.cmu.edu/mse2008Korea/AoB/repository/misc/Communication_Experiment.doc.........................................................................................................................................45[3] Clements, Bachmann, Bass, Garlan, Ivers, Little, Nord, Stafford, Documenting Software Architectures – Views and Beyond, Addison-Wesley, 2003......................................45[4] Heng Chen, Myung-Joo Ko, Neel Mullick, Paulo Merson, “SEI ArchE System, Architecture & Design documentation for the ‘Architecture Expert & Design Assistant’, 2004........................45

Preliminary Report 4/52 Metis

Page 5: Software Architecture Document v0.51.doc

Architectures for Software Systems(17-655)

Table of FiguresFigure 1 overall context diagram..........................................................................................................8Figure 2 Top level runtime view of the legacy DBAuditor....................................................................12Figure 3 Top level runtime view of DBAuditor2..................................................................................13Figure 4 The location of project profile..............................................................................................16Figure 5 C&C View of the system......................................................................................................19Figure 6 C&C view of the server.......................................................................................................21Figure 7 Detail View of TestExecuter.................................................................................................23Figure 8 C&C View of the client........................................................................................................24Figure 9 Top-level module view of Server..........................................................................................27Figure 10 Detailed module view of Server..........................................................................................28Figure 11 Top-level module view of Client.........................................................................................30Figure 12 Detailed module view of Client...........................................................................................30Figure 13 ServerEventBusPackage.....................................................................................................33Figure 14 ClientEventBusPackage.....................................................................................................33Figure 15 Deployment view..............................................................................................................34Figure 16 Package structure for implementation..................................................................................35

Table of TablesTable 1 Java RMI vs. TCP/IP socket...................................................................................................14Table 2 Description of Overall C&C view...........................................................................................20Table 3 Description of C&C view of the server...................................................................................22Table 4 Description of TestExecuter...................................................................................................23Table 5 Description of C&C view of the client....................................................................................25Table 6 Description of Top-level module view of server.......................................................................27Table 7 Description of detail module view of server.............................................................................29Table 8 Description of top-level module view of client.........................................................................30Table 9 Description of detiail module view of client............................................................................32Table 10 Mapping table between C&C view and Module view.............................................................36Table 11 Project Management............................................................................................................38Table 12 Project Profile.................................................................................................................... 38Table 13 Project Status.....................................................................................................................39Table 14 Query Generation and Execution..........................................................................................39Table 15 Test Report......................................................................................................................... 39Table 16 Job Status........................................................................................................................... 39Table 17 Wizard............................................................................................................................... 40Table 18 Configuration.....................................................................................................................40Table 19 Connection Control.............................................................................................................40Table 20 Environment...................................................................................................................... 40Table 21 Quality Attribute Scenario 1.................................................................................................41Table 22 Quality Attribute Scenario 2.................................................................................................41Table 23 Quality Attribute Scenario 5.................................................................................................42Table 24 Quality Attribute Scenario 6.................................................................................................42Table 25 Quality Attribute Scenario 7.................................................................................................43

Preliminary Report 5/52 Metis

Page 6: Software Architecture Document v0.51.doc

Architectures for Software Systems(17-655)

Table 26 Quality Attribute Scenario 8.................................................................................................43Table 27 Quality Attribute Scenario 9.................................................................................................43

Preliminary Report 6/52 Metis

Page 7: Software Architecture Document v0.51.doc

Architectures for Software Systems(17-655)

1. Introduction

1.1. DBAuditor2 System

The main goal of this project is to enhance a previously developed automated DBMS benchmark

tool, DBAuditor. The will-be developed tool, the DBAuditor2, needs to provide benchmark project

management which stores configurations and project histories. Also, testers can search the history

using filtering. The tool creates reports. Testers can make their own report format, and can choose

specific graph type among various available types to make a resource monitoring graph. The usability

must be improved by offering batch job, benchmark wizards, predefined queries of each DBMS, and

easy method of inputting day/time. The last objective is provision of detailed user guide including

basic usage of DBMS. In addition to these functionalities, the performance should be high enough to

be competitive in the DBMS testing market.

1.2. Business Context

The DBAuditor2 project was created by the Telecommunication Technology Association (TTA).

TTA is an IT standards organization, and its services include providing one-stop services for the

establishment of IT standards as well as provides testing and certification for IT products. DBMS

testing tool tests various kinds of DBMS based on several Transaction processing Performance

Councils (TPC) standards.

TTA Software Quality Evaluation Center (SQEC) had been using TeamQuest; it is a commercial

DBMS testing tool. However, the tool is too heavy to test simple TPC standards because it provides

too many features; some of them are useless for the organization. TTA wanted to have lighter and

simpler tool; still it should have core important DBMS testing functionalities. According to that needs,

DBAuditor2 is developed last year.

Even though DBAuditor2 meets some of the needs, still the tool is not easy to use for testers in

TTA. Thus, the DBAuditor2 project is created to enhance mainly usability. However, the organization

faced some problems related to performance in terms of CPU usage and latency while using

DBAuditor2. Now, performance becomes one of main purpose of the DBAuditor2 project.

Preliminary Report 7/52 Metis

Page 8: Software Architecture Document v0.51.doc

Architectures for Software Systems(17-655)

1. Request for benchmark

Tester Client

DBAuditor2 Client

2. Test execution

4. Execute TPC-C/TPC-Hbenchmark test

DBMS5. Test result

7. Test report

8. Report benchmark result

DBAuditor2 Server

Target System Boundary

App Server/Client application

DBMS DBMS under testDocument delivery

UI Interaction

Query execution/return

Legends

Network communication

3,6. server-client communication

Figure 1 overall context diagram

Figure 4 Figure 1 shows the context diagram of the DBAuditor2. A client requests a DBMS

performance benchmark test to TTA. A tester in TTA requests for performance test for a DBMS under

test when TTA accepts the request. The tester interacts with the client application of DBAuditor2.

Once the tester finishes his request, the client application communicates with the server of

DBAuditor2. The server executes queries for testing the DBMS under test. When the server gets the

return of the request, it reports the results to the tester. The tester refers to the report, and makes the

benchmark result document. The document is delivered to the client.

Preliminary Report 8/52 Metis

Page 9: Software Architecture Document v0.51.doc

Architectures for Software Systems(17-655)

2. Architectural Drivers

2.1. Functional Requirements

Here are key functional requirements that the DBAuditor2 shall support. For more detail of

functional requirements, refer to SRS documents [1].

2.1.1. Project management

- Create/delete/modify/search project information.

- Import/export of project profile.

- Project profile includes base information, query information, and test information.

2.1.2. Project/Job Status

- DBAuditor2 shall display the list of the test results when a project is open.

- Display current status of the data generation and current job.

2.1.3. Query Generation and Execution

- Execute batch of queries.

- Cancel during batch processing.

- Show progress during batch processing.

2.1.4. Test Report Generation

- Generate a report, display it to screen, and store it into a file.

- Display system usage information in various ways of displaying.

- Generate canceled report when a test is canceled.

2.1.5. Wizard

- Provide wizard with TPC-C/H test.

2.2. Constraints

- DBAuditor2 is developed in Java programming language; it’s constraint because DBAuditor2

is based on DBAuditor2.

- Using TCP/IP socket as a communication method between server and client is mandatory.

- DBAuditor2 shall be run on following operating systems: MS Windows, Linux 2.6.x, and HP

UX.

- DBAuditor2 shall support following DBMS: Oracle, MS SQL, DB2 and MySQL are

mandatory. Optionally, Informix and Sybase might be supported.

Preliminary Report 9/52 Metis

Page 10: Software Architecture Document v0.51.doc

Architectures for Software Systems(17-655)

2.3. Quality Attribute Requirements

The DBAuditor2 shall fulfill the following quality attributes.

2.3.1. Performance

The main purpose of the DBAuditor2 is to benchmark various DBMSs’ performance. The

benchmark results would be meaningless if the reported CPU and Memory usage is immensely

affected by benchmark tool itself. Regarding to the benchmark result, credibility is very important.

While executing the benchmark, the DBAuditor2 shall minimize influences on the system where

benchmark tool runs on.

- Performance quality attribute scenario 1: A tester starts the DBAuditor2. After boot up, the

tester connects database. Schema creation and data generation is already done. The tester now

executes queries according to TPC-C. While executing queries, CPU usage of the system

where the DBAuditor2 runs on becomes 100%. Data transaction process should be separate

from the DBAuditor2. In this situation, the process of the DBAuditor2 must occupy less than

5% of CPU and Memory usage. [Environment of this response measure will be added after

discussion with the client.]

- Performance quality attribute scenario 2: A tester starts the DBAuditor2. After boot up, the

tester connects database. Schema creation is already done. The tester now generates test data

that will be inserted into DBMS. The generation time is measured; after the tester clicks

‘Generate test data’ button, generation time starts, and it ends just after generation is

completed. This generation time shall be within 10% of difference compared to the generation

time of DBGEN. DBGEN is a data generation tool which is provided by TPC, and TPC

strongly recommends using DBGEN when generating performance test data.[Issue]

2.3.2. Portability

The DBAuditor2 shall be capable to test various databases’ performance: DB2, Oracle, MySQL,

and MS-SQL.

- Portability quality attribute scenario 1: TTA can provide a service of Database performance

test for their clients. Because their clients run their Database on various operating systems,

TTA provides testing service according to the each client’s operating system. Currently, most

IT companies use Windows, Linux 2.6.x and HP UX. Thus, the DBAuditor2 shall be installed

on Windows, Linux 2.6.x and HP-UX with no modification of the system.

- Portability quality attribute scenario 2: TTA’s clients would request for testing performance of

various kinds of Databases. Currently, most IT companies use one of following DBMSs:

DB2, Oracle, MySQL, and MS-SQL. Thus, once the DBAuditor2 successfully is installed to

test a particular DBMS, the DBAuditor2 shall be operable on DB2, Oracle, MySQL, and MS-

SQL with no modification of the system.

Preliminary Report 10/52 Metis

Page 11: Software Architecture Document v0.51.doc

Architectures for Software Systems(17-655)

2.3.3. Usability

The DBAuditor2 shall provide an easy way of executing tests. In TTA, testers perform benchmark

task, spending several hours or days for a test. Thus, the DBAuditor2 shall provide an easy way of

installation and test execution, intuitive menu, good learnability and comfortableness. DBAuditor2

shall satisfy end users in terms of easy-to-use.

2.3.4. Availability

The DBAuditor2 shall be up while test executions because correctness of benchmark result is very

important. When system fails, the system shall provide detailed information: the time failure occurred,

last actions performed before the failure, and possible solutions.

If a fault is occurred, the DBAuditor2 shall automatically cancel the testing, notify the failure of

testing and roll back that testing to “ready-to-go* ” status, according to TPC specifications (need guide)* ready-to-go: in this status, all parameters for testing environment are set so that a tester can start the

test by clicking start button.

2.3.5. Modifiability: change of query sets

The DBAuditor2 conducts DBMS performance testing according to TPC-C/H specification for

DB2, Oracle, MySQL, and MS-SQL. Those DBMSs can be newly released in the future. For the new

release of DBMSs, the test execution queries may be changed. The tester who is skilled in DBMSs can

modify the sets of testing queries with no modification of the system within 1 man-day.

2.3.6. Modifiability: change of specification

The client provides TPC-C/H benchmark services. TPC-C and TPC-H specification might be

updated in the future. A single developer who is skilled in TPC-C/H specification and understands the

updates of the specification shall modify the system so that it can support updated specification within

7 man-days. 7 man-days include development, test, integration, and installation.

2.3.7. Modifiability: addition of new benchmark service

The client provides TPC-C/H benchmark services. They might need to add another benchmark

services such as TPC-E. A single developer who understands the specification of newly added

benchmark service shall modify the system so that it can support the benchmark service within 90

man-days. 90 man-days include development, test, integration, and installation.

Preliminary Report 11/52 Metis

Page 12: Software Architecture Document v0.51.doc

Architectures for Software Systems(17-655)

3. Architectural Decisions

3.1. Architectural Style

3.1.1. Client-Sever

The legacy system adopts client-server style. The system introduces RMI connection as a

communication channel. Also the system uses one additional communication channel for monitoring

process. The major reason for this separation of RMI communication was to remove an effect of

monitoring the system usage on the benchmark test, so as to satisfy accuracy quality attribute. That is,

if one RMI communication is shared by performance test and monitoring the system usage, the results

of the benchmark test may be affected by the system usage monitoring. On the contrary, the system

usage monitoring may be affected by the performance test, even though testers want to monitor the

system usage in a real time.

Client Application2

Client

Client Application1

Server Application1Server Application1

ResourceUsage

TestDBTestDB

Server Application2

Rule/Query/Schema

RepositoryConnT

JDBCConnT

RMIConnT

DB

File

<Legend>Application Connectors RepositorySystem

Server

Figure 2 Top level runtime view of the legacy DBAuditor

For these reasons, one RMI communication is divided into two RMI communications and both of

the accuracy of the performance test and real time monitoring of the system usage can be satisfied

with two separate RMI communications.

Preliminary Report 12/52 Metis

Page 13: Software Architecture Document v0.51.doc

Architectures for Software Systems(17-655)

The architecture of DBAuditor2 system basically adopts client-server style. An end user uses the

client application on personal computer and the server application will run on a separate hardware, so

client-server architectural style is inevitably adopted.

Server

DataRule

Client

CQuerySet

SystemConfig

CProjectProfile

CLog SLog

DBGen

SystemMonitor ResourceUsage

SProjectProfile

GeneratedData

TargetDB

<Legend>

System

Process

Connectors

SocketCommT

JNIConnT

DataAccessT

ProcessControlT

JDBCConnT

Repository

Database

File

Client Side Server Side

SQuerySet

StreamCommT

Figure 3 Top level runtime view of DBAuditor2

According to 3, we can find out two most significant changes; one is the communication between

the client and the server, and the other is the number of processes in the client.

We introduce TCP/IP socket communication in order to promote performance in terms of latency.

Because the legacy system uses RMI communication to promote simple and transparent

communication between modules on client and the server, it has some drawbacks on latency of

communication. RMI is using TCP/IP socket communication in low-level. Therefore, RMI is an

abstraction of TCP/IP which generates more overhead. Thus, we decided to use TCP/IP socket

communication instead of RMI communication.

Preliminary Report 13/52 Metis

Page 14: Software Architecture Document v0.51.doc

Architectures for Software Systems(17-655)

We have done an experiment in order to figure out the difference between RMI communication and

TCP/IP socket communication.

Table 1 Java RMI vs. TCP/IP socket

Data length Socket RMI Ratio10 7.34 sec 10.90 sec 1.48

100 2.56 sec 10.86 sec 4.25 1000 2.56 sec 11.10 sec 4.33

10000 9.85 sec 23.02 sec 2.34 100000 85.15 sec 144.59 sec 1.70

In this experiment, we implemented a server and a client. The server just sends a string of

predefined length to the client. Normally, socket communication shows shorter completion time. For

more information such as experiment environment, refer to Database Transaction Experiment

document [2].

We can think about two candidates regarding to the number of client processes; we can create a new

process or a new thread that accepts system monitoring data. The responsibility of the process/thread

is to receive system monitoring data from the server, and to send the information to a user interface.

The communication between processes cost more than the communication between threads because

threads can share memory more easily than processes. For this reasons, we merged two processes into

single process.

In 3, two TCP/IP socket communication channels are introduced. One channel is used to send and

receive information from the client to the server, and the other channel is used to transfer system

monitoring information. The first channel is a duplex channel; the server can send information to the

client, and the client can send commands to the server. And the other channel is a simplex channel; the

system monitoring process in the server always sends, and the monitor process in the client always

receives. By this separation, modifiability can be improved because we have separate connectors: one

for protocol, and the other for streaming.

The DBAuditor2 project was created by the Telecommunication Technology Association (TTA).

TTA is an IT standards organization, and its services include providing one-stop services for the

establishment of IT standards as well as provides testing and certification for IT products. DBMS

testing tool tests various kinds of DBMS based on several Transaction processing Performance

Councils (TPC) standards.

TTA Software Quality Evaluation Center (SQEC) had been using TeamQuest; it is a commercial

DBMS testing tool. However, the tool is too heavy to test simple TPC standards because it provides

too many features; some of them are useless for the organization. TTA wanted to have lighter and

simpler tool; still it should have core important DBMS testing functionalities. According to that needs,

DBAuditor is developed last year.

Preliminary Report 14/52 Metis

Page 15: Software Architecture Document v0.51.doc

Architectures for Software Systems(17-655)

Even though DBAuditor meets some of the needs, still the tool is not easy to use for testers in TTA.

Thus, the DBAuditor2 project is created to enhance mainly usability. However, the organization faced

some problems related to performance in terms of CPU usage and latency while using DBAuditor.

Now, performance becomes one of main purpose of the DBAuditor2 project.

The DBAuditr2 based on the previous project’s result. Figure 4 shows the context diagram of the

DBAuditor2. A tester requests for performance test for a target DB. The DBAuditor2 system queries

target database and gets the test result. While executing benchmark testing, system should obtain

system usage monitoring data. The DBAuditor2 system sends requests to kernel OS in order to get the

system monitoring data. When the DBAuditor2 reports the results to the tester, it sends test results

from target DB as well as system monitoring data.

1. Request for benchmark

Tester Client

DBAuditor2

2. Test execution

Target System

3. Execute TPC-C/TPC-Hbenchmark test DBMS

WAS3. Execute TPC-APPBenchmark test

4. Test result

5. Test report

6. Report benchmark result

DBMS under test

WAS under test

Figure 4 Overall context diagram of DBAuditor2

Preliminary Report 15/52 Metis

Page 16: Software Architecture Document v0.51.doc

Architectures for Software Systems(17-655)

4. Architectural Drivers

4.1. Functional Requirements

Here are key functional requirements that the DBAuditor2 shall support. For more detail of

functional requirements, refer to SRS documents.

4.1.1. Project management

- Create/delete/modify/search project information.

- Import/export of project profile.

- Project profile includes base information, query information, and test information.

4.1.2. Project/Job Status

- DBAuditor2 shall display the list of the test results when a project is open.

- Display current status of the data generation and current job.

4.1.3. Query Generation and Execution

- Execute batch of queries.

- Cancel during batch processing.

- Show progress during batch processing.

4.1.4. Test Report Generation

- Generate a report, display it to screen, and store it into a file.

- Display system usage information in various ways of displaying.

- Generate canceled report when a test is canceled.

4.1.5. Wizard

- Provide wizard with TPC-C/H test.

4.2. Constraints

- DBAuditor is developed in Java programming language; it’s constraint because DBAuditor2

is based on DBAuditor.

- Using TCP/IP socket as a communication method between server and client is mandatory.

- DBAuditor2 shall be run on following operating systems: MS Windows, Linux 2.6.x, and HP

UX.

- DBAuditor2 shall support following DBMS: Oracle, MS SQL, DB2 and MySQL are

mandatory. Optionally, Informix and Sybase might be supported.

Preliminary Report 16/52 Metis

Page 17: Software Architecture Document v0.51.doc

Architectures for Software Systems(17-655)

4.3. Quality Attribute Requirements

The DBAuditor2 shall fulfill the following quality attributes.

4.3.1. Performance

The main purpose of the DBAuditor2 is to benchmark various DBMSs’ performance. The

benchmark results would be meaningless if the reported CPU and Memory usage is immensely

affected by benchmark tool itself. Regarding to the benchmark result, credibility is very important.

While executing the benchmark, the DBAuditor2 shall minimize influences on the system where

benchmark tool runs on.

- Performance quality attribute scenario 1: A tester starts the DBAuditor2. After boot up, the

tester connects database. Schema creation and data generation is already done. The tester now

executes queries according to TPC-C. While executing queries, CPU usage of the system

where the DBAuditor2 runs on becomes 100%. Data transaction process should be separate

from the DBAuditor2. In this situation, the process of the DBAuditor2 must occupy less than

5% of CPU and Memory usage. [Environment of this response measure will be added after

discussion with the client.]

- Performance quality attribute scenario 2: A tester starts the DBAuditor2. After boot up, the

tester connects database. Schema creation is already done. The tester now generates test data

that will be inserted into DBMS. The generation time is measured; after the tester clicks

‘Generate test data’ button, generation time starts, and it ends just after generation is

completed. This generation time shall be within 10% of difference compared to the generation

time of DBGEN which is provided by TPC .[Issue]

4.3.2. Usability

The DBAuditor2 shall provide an easy way of executing tests. In TTA, testers perform benchmark

task, spending several hours or days for a test. Thus, the DBAuditor2 shall provide an easy way of

installation and test execution, intuitive menu, good learnability and comfortableness. DBAuditor2

shall satisfy end users in terms of easy-to-use. [Issue: how to meaure the usability? With survey like

LikertScale? Or ]

Availability

The DBAuditor2 shall not be shut down during tests because correctness of benchmark result is

very important. If a fault is occurred, the DBAuditor2 shall automatically cancel the testing, notify the

failure of testing and roll back that testing to “ready-to-go*” status, according to TPC specifications

(need guide)*ready-to-go: in this status, all parameters for testing environment are set so that a tester can start the

test by clicking start button.

Preliminary Report 17/52 Metis

Page 18: Software Architecture Document v0.51.doc

Architectures for Software Systems(17-655)

Modifiability: change of query sets

The DBAuditor conducts DBMS performance testing according to TPC-C/H specification for

various DBMSs. However, the specification can be updated, and as well the DBMS such as Oracle and

MySQL can be newly released in the future. For the updates of TPC-C/H specification and the release

of DBMSs, the queries which are used for performance test can be changed. The tester who is skilled

in various kinds of DBMS can modify the sets of testing queries without affection to or modification

of the DBAuditor itself within 1 man-day.

Modifiability: change of specification

With the DBAuditor2, the client provides two major benchmark services to a DBMS. Though they

currently performs TPC-C/H test with the DBAuditor2, according to TPC specification, they might

need to modify TPC-C/H test process by updates of TPC-C/H specification. This modification of

features shall be done by a single developer who is skilled in TPC-C/H specification and understands

the updates of the specification in 7 man-days.

Modifiability: addition of new benchmark service

With the DBAuditor2, the client provides two major benchmark services to a DBMS. Though they

currently performs TPC-C/H test with the DBAuditor2, according to TPC specification, they might

need to add other kinds benchmark services. These additions of benchmark services shall be done by a

single developer who understands the specification of newly added benchmark service in 90 man-

days.

Preliminary Report 18/52 Metis

Page 19: Software Architecture Document v0.51.doc

Architectures for Software Systems(17-655)

Architectural Decisions

Architectural Style

Client-Sever

The architecture of DBAuditor2 system basically adopts client-server style. An end user uses the

client application on his own personal computer and the sever application will run on a separate sever,

so client-server architectural style is inevitably adopted. In this architecture, the client and the server

use one simple TCP/IP socket communication channel. Because the legacy system of DBAuditor uses

RMI communication to promote simple and transparent communication between modules on client

and the server, it has some drawbacks on latency of communication. RMI is using TCP/IP socket

communication in low-level. Therefore, RMI is an abstraction of TCP/IP which generates more

overhead. Thus, we decided to use TCP/IP socket communication for DBAuditor2 instead of RMI

communication.

Server

DataRule

Client

CQuerySet

SystemConfig

CProjectProfile

CLogSLog

DBGen

System Monitoring ResourceUsage

SProjectProfile

GeneratedData

TargetDB

<Legend>

System

Process

Connectors

SocketCommT

JNIConnT

DataAccessT

JDBCConnT

Repository

Database

File

SQuerySet

Client Server

Figure 5 Top level runtime view of DBAuditor2

In addition, the legacy DBAuditor uses the other communication channel for monitoring process.

The major reason for this separation of RMI communication was to remove an effect of monitoring the

system usage on the benchmark test, so as to satisfy accuracy quality attribute. That is, If one RMI

communication is shared by performance test and monitoring the system usage,, the results of the

performance test may be affected by the system usage monitoring. On the contrary, the system usage

Preliminary Report 19/52 Metis

Page 20: Software Architecture Document v0.51.doc

Architectures for Software Systems(17-655)

monitoring may be affected by the performance test, even though testers want to monitor the system

usage in a real time

Client Application2

Client

Client Application1

Server Application1Server Application1

ResourceUsage

TestDBTestDB

Server Application2

Rule/Query/Schema

RepositoryConnT

JDBCConnT

RMIConnT

DB

File

<Legend>Application Connectors RepositorySystem

Server

Figure 6 Top level runtime view of the legacy DBAuditor

. For these reasons, one RMI communication is divided into two RMI communications and both of

the accuracy of the performance test and real time monitoring of the system usage can be satisfied

with two separated RMI communications. However, when adopting TCP/IC socket instead of RMI,

the accuracy might be promoted because the monitoring process affects little to the server’s computing

time.

Implicit invocation: publish-subscribe style[TBA]

In the both of the client and the server, we adopt implicit invocation architectural style, especially

publish-subscribe

There are several reasons we adopt this publish-subscribe style.

The most important factor that leads us to this decision is that there are complex interactions among

modules in legacy system; more complex interactions will be added to implement newly-added

requirements. Publish-subscribe style helps us to add/modify/remove a module easier.

Besides, there are some gaps between documentations and code. When considering that we need to

refactoring, that will be problematic in following implementation phase if the interaction among

modules is complex.

Thus, the publisher-subscriber architectural style might be applicable to this situation.

Preliminary Report 20/52 Metis

Page 21: Software Architecture Document v0.51.doc

Architectures for Software Systems(17-655)

4.4. Tactics

4.4.1. Performance: Resource Demand

Our system will be implemented with Java because the target system has to be run on various

operating systems. Even though Java supports various running environments, usually Java inhibits the

performance of the target system because Java requires computational overhead. We adopted the

resource demand tactic to reduce the computational overhead.

- TCP/IP socket communication: The legacy system uses Java RMI for communication between

the server and the client. Java RMI is very convenient and simple communication method, but

it consumes much resource than TCP/IP socket communication. We have performed an

experiment to figure out which method is suitable for the target system. We will use TCP/IP

socket communication according to the result of the experiments.

- Java Native Interface: A program complied with Java must run on a Java virtual machine.

Therefore, usually Java-based programs consume much resource than other language-based

programs such as C or C++. To address this problem, we decided to use the Java Native

Interface (JNI) in hotspot codes. By using JNI, we expect that the target system will be faster

than the legacy system.

4.4.2. Modifiability: Localize modifications

The legacy system uses explicit call-returns. Because of that, it is hard to modify the legacy system.

If we modify a module, it affects on other related modules in most cases. To avoid this problem, we

will use an event-bus for implementation.

- Publish-subscribe style: An Publish-subscribe style promote the modifiability of the target

system because each module does not depend on other modules much. By maintaining

semantic coherences among modules, we can achieve the modifiability.

4.4.3. Modifiability: Defer binding time

The main purpose of the target system is to benchmark various database management systems and

operating systems. Thus, the target system shall support detail configurations to promote the

modifiability of the system.

- System configuration: As we mentioned above, the environment of the target system is varied.

We adopted the deferring binding time tactic to solve this problem. The target system will be

executed according to the system configurations; the binding will be done at runtime rather

than at compile time.

- User defined SQL statements: Even though most DBMSs support the standard specification of

SQL statements, some DBMSs make a problem with the standard SQL statements. Therefore,

we separate the SQL statements from the source code. The users can define their own SQL

statements according to their circumstances.

Preliminary Report 21/52 Metis

Page 22: Software Architecture Document v0.51.doc

Architectures for Software Systems(17-655)

4.4.4. Usability: Separation of UI

In many cases, users want to change user interfaces frequently. If the user interface is tightly

coupled with the logic of the system, we cannot change the user interface easily. Therefore, we

adopted the separation of UI tactic. By adopting this tactic, we expect that the target system will

promote the usability.

- Status Manager: To separate the UI from the logic, we added a status manager which

manages the status of the system. Because the UI interact with only this manger, if we keep

the semantic coherences among the modules, we can change the UI without affecting on other

logic modules.

4.4.5. Usability: Support User Initiative

As we mentioned above, the target system runs on various environments and has to support various

DBMSs. To accomplish this goal, we adopted the support user initiative tactic.

- System configuration & User defined queries: The target system promotes the usability by

supporting user defined configurations. We expect that users can configure the system easily

and can benchmark whatever they want.

4.4.6. Portability

The portability is one of most important quality attributes because the target system runs on various

operating systems. To promote the portability of the system, we adopted the Java as a development

language because Java supports various OSs and various DBMSs through JDBC.

4.5. Other decisions

4.5.1. Project profile repository

One of the requirements of the system is managing project profile data. The project profile includes

general information of testing project and the result of each benchmarking test. Because the general

project information is to be managed by the client and the test results are to be managed by server,

there is an issue that which side should mainly manage the project profile data.

Preliminary Report 22/52 Metis

Page 23: Software Architecture Document v0.51.doc

Architectures for Software Systems(17-655)

ServerClient CProjectProfile

SProjectProfile

<Legend>

System

Process

Connectors

DataAccessT

Repository

File

Client Server

Figure 7 The location of project profile

Most of controls in the testing process are performed on the client side. To start a benchmark test

project, a tester needs to initiate the test on the client side. In addition, to preserve the test result while

a test is being performed, the sever needs to save the data temporarily on it and the result of each

testing should be transferred from the server to the client after each test is finished. Thus, to reduce

communication traffics, it might be applicable that the client takes charge of managing the project

profile data.

The customer wants to share the project profile among testers, the latest versions of the project

profile also need to be stored on the server, which triggers a synchronization issue; the synchronization

might be up to the end user when it is necessary. This issue should be covered when the follow-up

design is performed through negotiation with the customer.

4.5.2. Comparison[TBD-figure for comparison]

The target system is based on the legacy system. It is important to figure out the strengths and

weaknesses of two systems, the target system and the legacy system, in terms of critical issues

mentioned above. By analyzing those advantages and disadvantages, then we can confirm the

architecture of the target system.

Preliminary Report 23/52 Metis

Page 24: Software Architecture Document v0.51.doc

Architectures for Software Systems(17-655)

5. C & C Architectural View

The Component & Connector (C&C) view-type decomposes the system into components that have

some runtime presence such as processes, objects, storage and connectors or that represent pathways

of communication such as information flows, and access to shared storage. These components and

connectors are the elements represented in the view-types[3].

This view-type was selected because it helps the following roles[4]:

The software architect and project manager can argue and reason about architectural

properties and quality attribute requirements that the system must adhere to.

The software architect, programmer and tester can infer progression of data through the

system and how the structure of the system changes as it executes.

External stakeholders like customers, project evaluators can understand the system’s

principal executing components (including the major shared data sources) and their

interactions – therefore serving as a means for verification and validation of system

properties.

Maintainers of the project can get an overview of the system as a starting point of future

extensions and / or modifications.

The view-type has been represented using a combination of the call-return and publishsubscribe

styles because separating these two predominant styles into different views would have reduced the

understandability of the system as a whole. The interactions of the different components in this view-

type warrant the combination of the styles and they individually adhere to the rules of the

aforementioned styles.

5.1. Overall C&C View

The architecture involves four processes; one is in the client side and other three are contained in

the server side. The client side and the server side communicate on socket communication method.

Between the client and the server, there are two socket communication channels. One is to execute test

on the TargetDB and another one is to report system resource usage.

Preliminary Report 24/52 Metis

Page 25: Software Architecture Document v0.51.doc

Architectures for Software Systems(17-655)

Server

DataRule

Client

CQuerySet

SystemConfig

CProjectProfile

CLog SLog

DBGen

SystemMonitor ResourceUsage

SProjectProfile

GeneratedData

TargetDB

<Legend>

System

Process

Connectors

SocketCommT

JNIConnT

DataAccessT

ProcessControlT

JDBCConnT

Repository

Database

File

Client Side Server Side

SQuerySet

StreamCommT

33]

Figure 8 C&C View of the system

Element Description

SystemConfigSystemConfig storage contains system configuration information that consists of server

address, default DB information and DB connection driver.

CProjectProfile

CProjectProfile storage in the client side is a file that contains project profiles. The

project profile consists of project name, project open date, target database name, and

test profile.

DataRuleDataRule storage contains a set of rules for generating data which is used to test the

TargetDB.

CQuerySet

CQuerySet storage contains a set of queries in the client side. In this storage, there are

multiple sets of queries for various kinds of data base; standard SQL query set, Oracle

query set, MySQL query set and user defined query set(s). Since client side’s query sets

are primary query sets between client and server side, users should be able to manage

these query sets directly and are responsible for synchronizing these query sets to

server side’s query sets, SQuerySet.

CLogData CLogData storage stores log data of the client side.

SLogData SLogData storage stores log data of the server side.

SQuerySet

SQuerySet storage contains a set of queries in the server side. In this storage, there are

multiple sets of queries for various kinds of data base; standard SQL query set, Oracle

query set, MySQL query set and user defined query set(s).

Preliminary Report 25/52 Metis

Page 26: Software Architecture Document v0.51.doc

Architectures for Software Systems(17-655)

SProjectProfile

SProjectProfile storage in the server side is a file that contains project profiles. The

project profile consists of project name, project open date, database name, test profile,

and [TBA].

GeneratedDataGeneratedData storage contains data that is generated by DBGen and used for test

execution.

Server Server is responsible for generating test data, executing test and monitoring CPU usage.

ClientClient is responsible for user interaction, managing project profile, managing query sets

and configuring system.

TargetDB

TargetDB is the target database to be tested. TestExecuter and MassiveDataUploader

send queries through JDBC caller to use the TargetDB regardless of any kinds of

database.

ResourceUsage ResourceUsage storage contains resource usage information.

DBGenDBGen is an external process that is developed by TPC organization. DBGen generates

TPC-H data and stores it into GeneratedData storage.

SystemMonitor

SystemMonitor is a process that plays a role for monitoring resource usage of server

sides. To reduce affections on the Server’s performance and resource usage, this

process is operated independently to the Server

Table 2 Description of Overall C&C view

Preliminary Report 26/52 Metis

Page 27: Software Architecture Document v0.51.doc

Architectures for Software Systems(17-655)

5.2. Server

The server side is consists of three processes: server application process, resource monitoring

process and DBGen process. The server application process is the main application to perform actual

testing. To do that, server application generates massive test data through DataGenerator for TPC-C

test and delegate generation of test data to DBGen process through JNI. This is because DBGen is

known as the most optimized in generating TPC-H test data and TPC recommends employing it to

promote generation performance.

The resource monitoring process is to monitor resource usage of the server during executing test.

ResourceMonitor component may request system resource usage information to OS when OS provides

the information. Or, it should contain a module that looks up the resource usage and generate related

information.

<Legend>

System

Process

Threads

Manager

Agent

CommHandler

Executer

Connectors

JNIConnT DataAccessT

ProcessControlT

JDBCConnT

StreamT

Repository

Database

File

EventBusT

Rec

ieve

r

Ann

ounc

er

SC

om

mun

icat

ion

Han

dle

r

SProjectManager

SLog

TestExecuter

MassiveDataUploader

DataGenerator

SStatusManager

DBGen

SStreamCommHandler

ResourceUsage

SResourceMonitor

SProjectProfile

GeneratedData

TargetDB

Server Side

SQuerySet

SLogRecorder

1...n

Figure 9 C&C view of the server

Element Description

SLogRecorder SLogRecorder is responsible for recording logs of EventBus in the server side.

SCommunicationHandler SCommunicationHandler plays a role of socket communication with the client side.

Preliminary Report 27/52 Metis

Page 28: Software Architecture Document v0.51.doc

Architectures for Software Systems(17-655)

SCommunicatioHandler receives/sends packets from/to the client side, transforms

messages into a corresponding event with parameterized data, and announces it in

EventBus.

MassiveDataUploaderMassiveDataUuploader extracts generated data for test from GeneratedData and

uploads those data to the TargetDB according to the specification of TPC.

DataGeneratorDataGenerator invokes DBGen to generate data for TPC-H, and generates data for

TPC-C.

SStatusManager SStatusManager generates the server side’s status and report it to the client side.

TestExecuterTestExecuter is to execute sends a set of SQL statements to the TargetDB, and

announces the results of each execution.

SProjectManager

SProjectManager is a project manager in the server side. There is another project

manager in the client side. SProjectManager synchronizes ProjectProfile and

QuerySet storage with client side’s ProjectProfile storage and QuerySet storage.

JDBCCaller

JDBCCaller is a thread that connects the TestExecuter and the TargetDB via JDBC.

In case of TPC-C test, according to TPC specification, multiple VirtualTerminal

shall be run and connect to the TargetDB through respective JDBCCaller.

Table 3 Description of C&C view of the server

5.2.1. TestExecuter

The TestExecuter thread executes queries to create tables to the target database via JDBC, to

perform TPC-C test with multiple virtual terminal, and to perform TPC-H test. Since common vehicle

to pass messages or to request a service is based on the event bus, the JobDistributor handles event

subscribing and publishing, and classify events for SchemaBuilder, TPCCExecuter and

TPCHExecuter. While any one of these functions is working, rest two functions should not work.

Thus, JobDist invokes each executer components via the call-return connection. When each executer

component executes its function

Preliminary Report 28/52 Metis

Page 29: Software Architecture Document v0.51.doc

Architectures for Software Systems(17-655)

VirturalTerminal2VirturalTerminal2

SchemaBuilder

TPCCExecuter VirturalTerminal

TPCHExecuter

JobD

ist

<Legend>Threads

Executer

Connectors

EventBusT

Reciever Announcer

CallReturnT

JobDistibutor

VirtualTerminal

ThreadInvokeTTestExecuter DataAccessT

JDBCConnT

Figure 10 Detail View of TestExecuter

Element Description

JobDistributor

JobDistributor is a thread that distributes job to the SchemaBuilder, the

TPCCExecuter and the TPCHExecuter. JobDistributer scribes all of events to

execute a query and publishes the result of execution of schema building, TPC-C

testing and TPC-H testing.

VirtualTerminal

VirtualTerminal is a thread which acts like a virtual terminal for the TargetDB.

According to TPC-C specification, VirtualTerminal mimics real database users’

actions, and multiple VirtualTerminal will be thrived to emulate real database

environment.

SchemaBuilder SchemaBuiler is responsible for creating tables into target database through JDBC.

TPCCExecuter

TPCCExecuter is responsible for executing TPC-C test against the target database

through JDBC. According to TPC-C specification, TPC-C test shall be done by

multiple virtual terminal so that the TPCCExecuter emulates real terminal user’s

behavior.

TPCHExecuterTPCHExecuter is responsible for executing TPC-H test against the target database

through JDBC

Table 4 Description of TestExecuter

Preliminary Report 29/52 Metis

Page 30: Software Architecture Document v0.51.doc

Architectures for Software Systems(17-655)

5.3. Client

In Client side, there is a single process, Client process. The Client process contains User Interface,

CProjectManager, SystemConfigManager, TestCommander, DataRuleManager, QuerySetManager,

CStatusManager, CCommunicationHandler, CStreamCommHanlder, and CResoureMonitor. The main

connector among these components is an event bus. All messages and service requests are connected

via the event bus except resource monitoring function.

<Legend>

System

Process

Threads

Manager

Agent

UserInterface CommHandler

Connectors

DataAccessT

Repository

File

EventBusT

Reciever Announcer

DataRule

UserInterface

CProjectManager

SystemConfigManager

CStatusManager

TestCommander

DataRuleManager

QuerySetManager

CLogRecorder

CC

om

mun

icat

ionH

and

ler

CQuerySet

SystemConfig

CProjectProfile

CLog

Client Side

CStreamCommHandler

CResourceMonitor

StreamT

Figure 11 C&C View of the client

Element Description

UserInterface UserInterface handles user interactions, and conveys user requests to the EventBus.

SystemConfigureManagerSystemConfigureManager stores, modifies and loads system configuration

information into SystemConfig storage.

DataRuleManager

DataRuleManager creates, revises, updates and deletes (CRUD) data rule in

DataRule storage. DataRuleManager have three ports: announce port, receive port,

and user port. Through the receive port DataRuleManager receives events for

CRUD requests from EventBus. Through the announce port DataRuleManager

announces events to EventBus for CRUD finish-up. Through use port,

DataRuleManager stores and reads Data Rule in DataRule storage with the results

of CRUD tasks.

Preliminary Report 30/52 Metis

Page 31: Software Architecture Document v0.51.doc

Architectures for Software Systems(17-655)

TestCommander

TestCommander interprets user’s command into packet units to request execute

test. TestCommander associates with three UI tasks: SchemaBuilding,

QueryExecution, DataGeneration. For example, in SchemaBuilding, once user

requests schema building, the user interface announces SchemaBuilding event on

EventBus; TestCommander receives schema building event; TestCommander

requests corresponding query set to QuerySetManager via EvenBus;

QuerySetManager conveys queries on EventBus to deliver queries to

TestCommander; TestCommander transforms queries into packets and announces

‘send schema building queries’ event to EventBus.

QuerySetManager

QuerySetManager creates, revises, updates and deletes query and query set in

QuerySet storage in the client side as well as exports/imports query and query set

to/from QuerySet Storage in the server side.

CLogRecorder LogRecorder records logs of client side; all user interactions and all events

CCoummunicationHandler

CCommunicationHandler sends packets to the server, and receives packets from

the server. CCommunicationHandler transforms a packet received from the server

into a corresponding event and data, and announce it with parameterized data.

CProjectManager

CProjectManager creates, revises, updates and deletes project profile in

ProjectProfile storage in client side. As well, ProjectManager exports/imports

query and query set to/from QuerySet Storage in the server side

CStatusManager

StatusManager gets the status of DBAuditor2 from the server side’s

SStatusManager through socket communication; status of test execution, status of

schema building and status of data generation.

ProjectProfileProjectProfile is an object that contains project profile information in the client

side.

QuerySet QuerySet is an object that contains query set information in the client side.

ResourceMonitor ResourceMonitor is an agent to look up system usage.

Table 5 Description of C&C view of the client

Preliminary Report 31/52 Metis

Page 32: Software Architecture Document v0.51.doc

Architectures for Software Systems(17-655)

6. Module Architectural View

The Module view-type partitions the system into a unique non-overlapping set of hierarchically

decomposable implementation units (modules). The goal is to show how the modules are decomposed,

as well as the dependencies between modules[4].

This view-type was selected because it helps the following roles[4]:

The architect, who must define work assignments in such a way so as to minimize

dependencies between the modules and assign priorities (or sequences) to modules to

control existing dependencies,

The project manager, who must form teams, formulate project plans and schedule,

knowing the individual priorities (or sequences) of these modules,

Testers who use the modules as their unit of work to create test cases and perform the tests,

The configuration manager who is in charge of maintaining current and past versions of the

units in consistent and functional package-able assemblies, being able to produce a running

version of the system,

Developers, who are required to implement the modules,

Maintainers, who are tasked with modifying the software modules,

The view-type has been represented using the decomposition style. The decomposition style

represents the decomposition of the code into systems and subsystems representing a top-down view

of the system. This is important to the development team to understand their roles in terms of code

development and can be used as the basis of work assignments and completion measures [3][4].

The module view of DBAuditor2 system consists of 2 top-level modules: client and server. The

three main elements are identified at top level view. Each element is described below.

Preliminary Report 32/52 Metis

Page 33: Software Architecture Document v0.51.doc

Architectures for Software Systems(17-655)

6.1. Representative Module View of the Server

ServerMain

ServerEventBusPackage

SeverControlPackage

initailize≪ ≫

extend≪ ≫

initailize≪ ≫

extend≪ ≫

UsageMonitorPackage

ServerSystemMonitor

invoke≪ ≫invoke≪ ≫

Figure 12 Top-level module view of Server

Element Description

ServerMainThis is the main class of the server, which invokes all control modules in the server and

initializes them to be ready.

SeverControlPackage

This package contains all logical control modules on the server. This package depends

on EventBustPackage because each control module extends the classes in the

EventBusPackage to implement the event-bus communication. One of control module,

TestExecutor, shall initiate ServersystemMonitor module.

EventBusPackage This package contains java classes which relate to implementing event bus.

UsageMonitorPackage This package includes modules monitoring resources of the server.

Table 6 Description of Top-level module view of server

Preliminary Report 33/52 Metis

Page 34: Software Architecture Document v0.51.doc

Architectures for Software Systems(17-655)

6.2. Detailed Module View: Sever

The detailed module view of the server side is shown below. As we can see, TestExecutor,

ProejctProfileSynchronizer, ServerStatusManager, DataLoader, ServerCommunicationManager,

SeverLogManager, and DataGenerator are dependant on ServerEvnetBusPackage; they extend classes

in the ServerEventBusPacke to implement event-bus based communication.

ProjectProfi leSynchronizerT estExecutor DataLoader DataGeneratorServerStatusManager ServerCommunicationManager ServerLogManager

T estResultData≪ ≫

11

QueryDataData≪ ≫

1

1

1

1

1

DataGenerationRuleData≪ ≫

0..1

1

0..1

ServerEventBusPackage

extend≪ ≫extend≪ ≫

ProjectProfi leData≪ ≫

1

1

1

*

1

1

1

*

DBGenExternal≪ ≫

invoke≪ ≫invoke≪ ≫

*

VirtualT erminal

*

JDBCInterface≪ ≫

1

1

SocketHandler

1

1

UsageMonitorPackage

ServerSystemMonitor

invoke≪ ≫

MonitorAppExternal≪ ≫

invoke≪ ≫

MonitorSocketHandler

1

ResourceUsageData≪ ≫

1

invoke≪ ≫

invoke≪ ≫

1

1

Figure 13 Detailed module view of Server

Element Description

TestExecutor

This module is responsible for executing the benchmark process on the server; the

process includes building schema, generating data and, and recording the execution

results of the target DBMS being benchmarked.

ProjectProfile

Synchronizer

The main purpose of ProjectProfileSynchronizer is to synchronize the server-side

project profile data with the client-side project profile data; the project profile data will

be mainly maintained in the client and will be stored also on the server for backup and

sharing.

ServerStatusManagerThis module maintains the status of the server. When the status changes the module

will notify it to the client.

DataLoaderIt loads massive data, which are prepared for benchmarking a DBMS on the server, to

the DBMS so that the system is ready to start the benchmark.

ServerCommunication

Manager

This module is responsible for all communications between the server-side modules

and the client side’s.

ServerLogManager This module logs the events generated by other modules on the server; the log data

Preliminary Report 34/52 Metis

Page 35: Software Architecture Document v0.51.doc

Architectures for Software Systems(17-655)

will be stored in an external file on the server.

DataGenerator

This module generates data which are used to benchmark a DBMS; the data will be

stored in an external file. And it invokes DBGen to generate TPC-H benchmark test

data.

VirtualTerminal This module is responsible for simulating real users according to TPC-C specification.

ServerSocketHandler This module is responsible for TCP/IP communication with the client.

<<Data>>ProjectProfile

ProjectProfile is a data structure to maintain the project data; it shall include zero or

more TestResult data.

<<Data>>TestResult

This is a data structure which maintains the benchmark results of the target DBMS. It

includes test date, executed query, its execution time, test environment, and [TBD]

<<Data>>QueryData

QueryData is a data structure which contains query sets; it might be predefined query

set or user defined query set.

<<Data>>DataGenerationRule

This is a data structure which contains a set of rules for generating data. It might be

not instantiated if default data generation rules are used in an external data generation

application, for instance, DBGen.

<<Data>>ResourceUsage

This is a data structure that contains system usage data; it includes memory usage and

CPU usage rate; it shall be transferred to the client by ServerSystemMonitor which is

run on separated process. Because this data shall be transferred to the client directly by

the ServerSystemMonitor, it shall not be associated with TestResult data on server side

but once it was transferred it will be aggregated as a part of test result information on

the client side.

ServerSystemMonitor

This module reads server’s resource usage data periodically and sends them to the

remote client so as to inform the usage data to the end user; it shall be implemented as

separated process from the server process.

MonitorSocketHandlerThis module shall implement TCP/IP communication with the client for the system

monitoring module.

<<External>>MonitorApp

This is an external application invoked by ServerSystemMonitor through JNI; it shall

generate system resource usage information according to ResourceUsage data

structure: the resource might include CPU and Memory.

<<External>>DBGen

This is an external application invoked by DataGenerator through JNI; it will generate

data for TPC-H benchmark test.

<<Interface>>JDBC

This is an external module for communicating with a target DBMS.

Table 7 Description of detail module view of server

Preliminary Report 35/52 Metis

Page 36: Software Architecture Document v0.51.doc

Architectures for Software Systems(17-655)

6.3. Representative Module View of Client

UIPackage ControlerPackage

ClientMain

initailize≪ ≫initailize≪ ≫ initailize≪ ≫initailize≪ ≫

extend≪ ≫

ClientEventBusPackage

extend≪ ≫extend≪ ≫ extend≪ ≫

Figure 14 Top-level module view of Client

Element Description

ClientMainThis package is the main class of the client, which invokes all control modules in the

client and initializes them to be ready.

ControlPackage

This package contains all logical control modules on the client. The package depends on

ClientEventBustPackage because each control module extends the classes in the

ClientEventBusPackage to implement the event-bus based communication.

ClientEvent-

BusPackageThis package contains java classes which are related to implementing event bus.

UIPackage This package includes all of user interface classes.

Table 8 Description of top-level module view of client

Preliminary Report 36/52 Metis

Page 37: Software Architecture Document v0.51.doc

Architectures for Software Systems(17-655)

6.4. Detail Module View: Client

ClientCommunicationManagerClientStatusManager ClientLogManagerQuerySetManager DataRuleManagerTestCommanderProjectManager SystemConfigurationManager

SystemMonitorUI SchemaComposeUI ProjectManagerUI

1

1

WizardUI

11

ReportUIStatusInfomationUI

11

QueryMangerUI

ReportManager

QueryDataData≪ ≫

1

11

1ProjectProfile

Data≪ ≫

1

1 1

1

1

TestResultData≪ ≫

1

1 0..1

*

1

*

DataGenerationRuleData≪ ≫ 11

0..1

ResourceUsageData≪ ≫

1

1

1

1

1

ClientSocketHandler

1

ClientEventBusPackage

extend≪ ≫extend≪ ≫

DataRuleManagerUI

111

ProgressDispayingWindow

1extend≪ ≫

SystemConfigurationUI

extend≪ ≫

1

1

1

1

SynchProjectProfile

1

1

OpenProject

1

1

1

1

1

1

ViewHistory

1

1

CreateProject

1

1

ConnectionUI

1

1

1

1

1 ClientMain1

1 1 1 1 1

1 1 1 1 1 1 1 1

1 1 1

1

11 1 1 1 1

1 1 1 1 1 1 1 1

1 1 1

1

1

TestExecutionUI

11 11

ClientResourceMonitor

1

1

1

1

1

1

1

ClientStreamHandler

1

Figure 15 Detailed module view of Client

Element Description

QuerySetMangerThis module is responsible for creating, updating query and query set in QueryData

in the client side.

StatusManagerThis module is responsible for maintaining the current status of DBAuditor2 and

dispalying it to the end user through information windows.

LogManagerThis module is responsible for recording the history of user triggered events and

server’s responses while the user uses the DBAuitor2.

CommunicationManagerThis module is responsible for communicating with the server. It will transform data

object to a stream of string for sending it to the server and vice-versa.

ProejctManager

This module is responsible for creating and updating project profile data in

ProjectProfile in the client side. As well, it exports/imports project profile to/from

ProjectProfile in the server side to synchronize the ProjectProfile; this

synchronization shall be triggered by the end user.

TestCommander

This module interprets user’s commands of generating schema, generation data, and

executing test query. And it sends the commands to the server one by one in

accordance with benchmarking process.

SystemConfiguration

Manager

This module is responsible for maintaining system’s configuration information

which is stored in an external text based file.

ReportManagerThis module is responsible for viewing the benchmark results from TestResult data

and it transforms the TestResult data into external text based format.

Preliminary Report 37/52 Metis

Page 38: Software Architecture Document v0.51.doc

Architectures for Software Systems(17-655)

DataRuleManager

This module is responsible for editing data generation rules, and it stores in

DataGenreationRule; because data generation rules are pre-defined in TPC-C and

TPC-H benchmark, this module is only used for user defined test. When defining

rules, a tester shall include CVS, email address, address, zip code, phone number,

and so on.

<<Data>>ProjectProfile

ProjectProfile is a data structure to maintain the project data; it is the same as the

data structure of the server.

<<Data>>ResourceUsage

This is a data structure that contains system usage data; it includes memory usage

and CPU usage rate; it is the same as the data structure of the server.

<<Data>>QueryData

QueryData is a data structure which contains query sets.

<<Data>>TestResult

This is a data structure which maintains the benchmark results of the target DBMS.

It includes test date, executed query, its execution time, test environment, and

[TBD].

<<Data>>DataGenerationRule

This is a data structure which contains a set of rules for generating data.

SystemMonitorUIThis module is responsible for displaying the server’s resource usage information

and the status data will be maintain by SystemManager.

StatusInformationUI

This module is responsible for displaying the current status of the DBAudtior2 and

the progress status of benchmark; this is a part of default main window and its status

data will be maintain by StatusManager.

QueryManagerUIThis module is responsible for interfacing with an end user so as to make the end

user edit queries.

ProgressDisplaying

Window

This window shall display current progress of a certain benchmark task which

might take a long time to perform, for example, data generation; the status of

progress will be maintained by StatusManager.

SchemaComposeUI

This module is responsible for interfacing with an end user so as to make the end

user edit DB schema or generate schema on the target DBMS. In case of supporting

DBMSs, DBAuditor2 shall provide proper query set for four DBMSs: DB2, Oracle,

MySQL, MS-SQL. For the other DBMSs, a tester shall create a new query set or

edit form predefined query set for the DBMS by this module. QuerySetManager

shall control this module or process the events relevant to SchemaComposeUI.

DataGeneratorUI

This module is responsible for interfacing with an end user to edit data generation

rules and initiating to generate data for benchmark according to user’s initiating

command.

SystemConfigurationUI

This module is responsible for interfacing with an end user to edit system property

file which contains system’s configuration information; server’s IP, DBMS type,

DBMS user account, and the name of jdbc driver particular to the installed DBMS.

WizardUI

This module is responsible for interfacing with an end user; it provides wizard style

user interfaces which include panels and frames related to TPC-C, and TPC-H

benchmark.

ProjectManagerUI This module is responsible for interfacing with an end user so as to make the end

Preliminary Report 38/52 Metis

Page 39: Software Architecture Document v0.51.doc

Architectures for Software Systems(17-655)

user create new project or update current project profile.

ReportUI This module is responsible for showing test result information to an end user.

ClientSocketHandler This module shall implement TCP/IP communication with the server.

Table 9 Description of detiail module view of client

6.5. Detail Module View: EventBusPackages

The Logic control modules in server shall extend the ServerCommandEventHandler to implement

event-bus based communication; the client also uses same approach. Following two figures illustrate

the related package.

ServerEventBusPackage

ServerCommandEventHandler

ServerEvent

ServerEventBus

11

Java.Utiljava≪ ≫

Observable

extends≪ ≫

Observer

extends≪ ≫

extends≪ ≫

extends≪ ≫

Figure 16 ServerEventBusPackage

ClientEventBusPackage

ClientEvent

ClientEventBus

1

ClientCommandEventHandler

1

Java.Utiljava≪ ≫

Observable

extends≪ ≫

Observer

extends≪ ≫

extends≪ ≫

extends≪ ≫

Figure 17 ClientEventBusPackage

Preliminary Report 39/52 Metis

Page 40: Software Architecture Document v0.51.doc

Architectures for Software Systems(17-655)

7. Allocation Architectural View

7.1. Deployment view

ClientMachine

ClientDBAuditor2

ServerMachine

SystemMonitor

ServerDBAuditor2

QGen

DBGen

TCP/IP Commands

Figure 18 Deployment view

Preliminary Report 40/52 Metis

Page 41: Software Architecture Document v0.51.doc

Architectures for Software Systems(17-655)

7.2. Implementation veiw

Figure 19 Package structure for implementation

Preliminary Report 41/52 Metis

Page 42: Software Architecture Document v0.51.doc

Architectures for Software Systems(17-655)

8. Mapping between Architectural Views

C&C View Element Module View Element

SLogRecorder ServerLogManager

SCommunicationHandler ServerCommunicationManager

MassiveDataUploader MassiveDataUploader

DataGenerator DataGenerator

SStatusManager ServerStatusMoniotor

TestExecuter TestExecutor

SProjectManager ProjectProfileSynchronizer

JDBCCaller DataGenerator, ServerSystemMonitor

JobDistributor TestExecutor

VirtualTerminal VirtualTerminal

SchemaBuilder TestExecutor

TPCCExecuter TestExecutor

TPCHExecuter TestExecutor

UserInterface

SystemMonitorUI, StatusInformationUI,

ProgressDisplayingUI, TestExecutionUI,

DataRuleManagerUI, SchemaComposeUI,

QueryManagerUI, ReportUI,

ProjectManagerUI, SystemConfigurationUI

SystemConfigureManager SystemConfigurationManager

DataRuleManager DataRuleManager

TestCommander TestCommander

QuerySetManager QuerySetManager

CLogRecorder ClientLogManager

CCoummunicationHandlerClientCommunicationManager,

ClientSocketHandler

CProjectManager ProjectManager

StatusManager ClientStatusManager

ProjectProfile ProjectProfile

QuerySet QueryData

ResourceMonitor ClientResourceMonitor

Table 10 Mapping table between C&C view and Module view

Preliminary Report 42/52 Metis

Page 43: Software Architecture Document v0.51.doc

Architectures for Software Systems(17-655)

9. Future Works

TBD

Preliminary Report 43/52 Metis

Page 44: Software Architecture Document v0.51.doc

Architectures for Software Systems(17-655)

10. Appendix

10.1. Acronym

10.2. Functional requirements

Table 11 Project Management

ID Item Description

SR001Information modification

Users can modify all project profile except for the project ID.

SR002 Search project Users can search projects by elements of project profile.SR003 Deletion project Users can delete a project profile.

SR004 Check ID duplicationEvery project must have different project ID from other projects. Otherwise DBAuditor shall display an error message.

SR005 Time/DateWhen users create a project, date and time shall be derived from the client system, and those value shall be filled at date and time fields of the project profile.

SR006 Disable "Close" button Menu "닫기 (Project close)" shall enabled only when a project is opened.

SR007 Search project

When users search some projects, the client system shall provide the status of the progress or a message such as "프로젝트 목록을 조회중입니다. 잠시만 기다리세요. (Now searching projects. Please wait a second…"

SR008 Search projectWhen users search previously made project, a wide message window is poped up. The width of this window shall be narrowed.

SR009 Project historyDBAuditor shall provide the list of previous four projects which have already been created or opened.

SR010 Import Users can put the project profiles to the server.

SR011 Export Users can get the project profiles from the server.

Table 12 Project Profile

ID Item Description

SR012 Project profileIt consists project base information, query information, and test information

SR013 Base informationIt consists of project ID, project name, creation date and time, OS, DBMS, server type, and tester

SR014 Query It consists of TPC-C query, TPC-H query, and user defined querySR015 Test information It consists test type, test start date, test end date, and test resultsSR016 Test type TPC-C / TPC-H / User definition

SR017 Test environmentThis information is based on the project base information. Users can change this information.

SR018 Test results These are defined at TPC-C and TPC-H specifications.SR019 Project save Project profile information is stored as a HTML file or a XML file.

SR020 Project saveProject profile information is stored in a folder of which name is the project ID and the parent folder is defined in DBAuditor.

SR021 Project loadA project profile is loaded from a fold which is defined at DBAuditor.

SR022 Location Project profile is stored in the server.

Preliminary Report 44/52 Metis

Page 45: Software Architecture Document v0.51.doc

Architectures for Software Systems(17-655)

SR023 Test resultsDBAuditor shall display the list of the test results when a project is opened.

SR024Show specific information

DBAuditor shall display all project profile base information.

SR025 Close projectDBAudtior shall notify with popup screen and clear it when users close a project.

Table 13 Project Status

ID Item Description

SR023 Test resultsDBAuditor shall display the list of the test results when a project is opened.

SR024Show specific information

DBAuditor shoud display all project profile base information.

SR025 Close projectDBAudtior shall notify with popup screen and clear it when users close a project.

Table 14 Query Generation and Execution

ID Item Description

SR026 QueriesDBAuditor shall provide TPC-H queries and TPC-C queries according to the DBMS type.

SR027 Modify queriesUsers can modify all queires which have been defined by developers or users.

SR028 Batch executionDBAuditor shall provide batch execution of queries according to the test type.

SR029 Pause/ResumeDuring query batch processing, pausing and resuming functions shall be provided.

SR030 Cancel During query batch processing, canceling function shall be provided.

SR031 ProgressDuring query batch processing, the current job status shall be displayed.

Table 15 Test Report

ID Item Description

SR032 Generate reportThe output method of the test results can be HTML file, XML file, CSV file, or the screen.

SR033 Format reportA test report shall include all elementes which can be gathered from a test.

SR034 Search reportUsers can search test reports by test type or project profile base information.

SR035 Delete report Users can delete test reporst from a project profile.SR036 Load report Saving report function is integrated into project save function.SR037 Save report Loading report function is integrated into project load function.

SR038 Resource graphDBAuditor shall display system usage information in various way of diplaying.

SR039 Canceled reportIf a test is canceled, DBAuditor shall generated canceled report with notification.

Table 16 Job Status

ID Item Description

Preliminary Report 45/52 Metis

Page 46: Software Architecture Document v0.51.doc

Architectures for Software Systems(17-655)

SR040 Data generation DBAuditor shall display the current status of the data generation.SR041 Current job DBAuditor shall display what is current job clearly.

Table 17 Wizard

ID Item Description

SR042 Wizard Users can perform the TPC-C/H test with a benchmark wizard.

SR043 Pause/ResumeDuring query processing, pausing and resuming functions shall be provided.

SR044 Cancel During processing, canceling function shall be provided.SR045 Status The current status of benchmarking shall be displayed.

Table 18 Configuration

ID Item Description

SR046 Default IP setting The default IP shall be "127.0.0.1," not specific IP.

SR047 Save configuration The client shall provide a "현재 설정 저장 (Save current setting)" check box to save current IP value.

Table 19 Connection Control

ID Item Description

SR048 IP history The client shall provide IP histories which were inputed from users.

SR049 Project listAfter establishing connection with the server, the client shall display all projects located in the server to open immediately.

SR050 Connection close The client shall provide "닫기 (Close project)" menu to close the currently opened project.

SR051 The script of menuAt first time, the script of "재연결 (Reconnection)" menu in the client shall be changed as "연결 (Connection)."

SR052Remove auto connection function

The client shall not try to connect with the server.

Table 20 Environment

ID Item Description

SR053 OSThe server shall be run on various OS such as MS Windows, Linux2.6.x, and HP UX. And the client shall run on MS Windows.

SR072 System statusDBAuditor2 shall log its operations so as to anlyze problems caused a system fault.

SR077 TPC-C/HThe latest version of TPC-C/H specificaiton shall be implemented in the DBAuditor2, the version shall be explicitly noted in the artifacts of DBAuditor2.

Preliminary Report 46/52 Metis

Page 47: Software Architecture Document v0.51.doc

Architectures for Software Systems(17-655)

10.3. Prioritized Quality Attribute Scenarios

Note that the following quality attribute scenarios are enumerated by its priority

Table 21 Quality Attribute Scenario 1Scenario Refinement for Scenario 1

Scenario(s):

The DBAuditor2's primary purpose is to benchmark various DBMSs. The benchmark result would be meaningless if the reported CPU and Memory usage is affected by benchmark tool itself. Regarding to the benchmark result, credibility is very important. While executing benchmark The DBAuditor2 shall minimize influences on DBMSs. The DBAuditor2 must occupy less than 5% of CPU during test execution.

Business Goals:TTA should provide accuracy benchmark result which is not affected by DBAuditor2 CPU usage.

Relevant QualityAttributes:

Performance(resource)

Sce

nar

io

Com

pon

ents

Stimulus: The system uses the least resources of DBMS server.Stimulus Source: Server(DBMS)

Environment: During test execution.Artifact (If Known): System

Response: The system shall be executed in least resources of DBMS server.ResponseMeasure:

less than 5% of CPU usage of the DBAuditor2 during test execution

Questions:

Issues:

How do we know CPU usage is under 5%? In what conditions (what kinds of machine and what kinds conditions)? Just test execution?Our Suggestion.

EnvironmentMachine: acceptance test machine.OS, DBMS

Benchmarking parameter- Test type (C/H/User Define), Test Options (Scale Factor, Warehouse,

Terminal#...)

Table 22 Quality Attribute Scenario 2Scenario Refinement for Scenario 2

Scenario(s):

A tester starts the DBAuditor2. After boot up, the tester connects database. Schema creation is already done. The tester now generates test data that will be inserted into DBMS. The generation time is measured; after the tester clicks ‘Generate test data’ button, generation time starts, and it ends just after generation is completed. This generation time shall be within 10% of difference compared to the generation time of DBGEN which is provided by TPC.

Business Goals: TTA should benchmark target DBMS within specified test period.Relevant Quality

Attributes:Performance(generation time)

Sce

nar

io C

omp

onen

ts

Stimulus:Starts to execute data generation, customer request, and competitiveness to TPC's DBGEN.

Stimulus Source: ClientEnvironment: During generating test data time

Artifact (If Known): Data Generation componentResponse: Data generation shall complete.ResponseMeasure:

Within 10% of difference compared to the execution time of DBGEN provided by The TPC.

Questions:

Issues:DBGEN supports only TPC-H. How we compare generation time of DBAuditor for TPC-C?

Preliminary Report 47/52 Metis

Page 48: Software Architecture Document v0.51.doc

Architectures for Software Systems(17-655)

Preliminary Report 48/52 Metis

Page 49: Software Architecture Document v0.51.doc

Architectures for Software Systems(17-655)

Table 23 Quality Attribute Scenario 5Scenario Refinement for Scenario 5

Scenario(s):

In TTA, testers perform benchmark task, spending several hours or days for a test. Thus, the DBAuditor2 shall provide an easy way of installation and test execution, intuitive menu, good learnability and comfortableness. DBAuditor2 shall satisfy end users in terms of easy-to-use.

Business Goals: Testers in TTA Relevant Quality

Attributes:Usability

Sce

nar

io C

omp

onen

ts Stimulus: Users want to use system efficiently, learn system feature, feel comfortable.Stimulus Source: End user.

Environment: During execution time or configure time.Artifact (If Known): The client system.

Response:DBAuditor2 support help system to end users so that they can learn about DBAuditor2 easily. DBAuditor2 support efficiency of using system to end users. Also, DBAuditor2 provides comfortable menu and system status.

ResponseMeasure:

In survey based on Likert scale, satisfaction score of DBAuditor2 usability shall be over 4 out of 5 from user feedback.

Questions:Issues:

Table 24 Quality Attribute Scenario 6Scenario Refinement for Scenario 6

Scenario(s):

Due to the correctness of testing, the DBAuditor2 shall not be shut down during test execution that may carry over 2 or more days. If a fault occurs in the course of long test execution, the DBAuditor2 shall cancel the testing, notify the failure of testing, and turn back the testing to ready-to-go status so that testers perform test again right away, according to TPC specifications (need guide)

Business Goals: TTA testers perform test execution efficiently as fast as possible.Relevant Quality

Attributes:Availability

Sce

nar

io C

omp

onen

ts

Stimulus: The server system should not be crashed during testsStimulus Source: The benchmark specification

Environment: Normal and degraded modeArtifact (If Known): Processes, communication channels, and storage.

Response:

If the server system works on tests, this system should not be affected by crash of the client system and disconnection of communication. The server system records system status and job status, and continue to operate in normal or degraded mode.

ResponseMeasure:

DBAuditor2 shall turn back fault status to ready-to-go status within 10minutes.

Questions:

Issues:For different scale factors, the interval time to go back to ready-to-go status is different. We need to look into interval time for more exact measure.

Preliminary Report 49/52 Metis

Page 50: Software Architecture Document v0.51.doc

Architectures for Software Systems(17-655)

Table 25 Quality Attribute Scenario 7Scenario Refinement for Scenario 7

Scenario(s):

The DBAuditor conducts DBMS performance testing according to TPC-C/H specification for various DBMSs. However, the specification can be updated, and as well the DBMS such as Oracle and MySQL can be newly released in the future. For the updates of TPC-C/H specification and the release of DBMSs, the queries which are used for performance test can be changed. The tester who is skilled in various kinds of DBMS can modify the sets of testing queries without affection to or modification of the DBAuditor itself within 1 man-day.

Business Goals:TTA testers execute DBMS performance testing according to TPC-C/H specification for vaious DBMSs

Relevant QualityAttributes:

Modifiability

Sce

nar

io

Com

pon

ents

Stimulus:Stimulus Source:

Environment:Artifact (If Known):

Response:ResponseMeasure:

Questions:Issues:

Table 26 Quality Attribute Scenario 8Scenario Refinement for Scenario 8

Scenario(s):

With the DBAuditor2, the client provides two major benchmark services to a

DBMS. Though they currently performs TPC-C/H test with the DBAuditor2,

according to TPC specification, they might need to modify TPC-C/H test

process by updates of TPC-C/H specification. This modification of features

shall be done by a single developer who is skilled in TPC-C/H specification and

understands the updates of the specification in 7 man-days.

Business Goals:Relevant Quality

Attributes:Modifiability

Sce

nar

io

Com

pon

ents

Stimulus:Stimulus Source:

Environment:Artifact (If Known):

Response:ResponseMeasure:

Questions:Issues:

Table 27 Quality Attribute Scenario 9Scenario Refinement for Scenario 9

Scenario(s): With the DBAuditor2, the client provides two major benchmark services to a

DBMS. Though they currently performs TPC-C/H test with the DBAuditor2,

according to TPC specification, they might need to add other kinds benchmark

services. These additions of benchmark services shall be done by a single

developer who understands the specification of newly added benchmark service

Preliminary Report 50/52 Metis

Page 51: Software Architecture Document v0.51.doc

Architectures for Software Systems(17-655)

in 90 man-days.

Business Goals:Relevant Quality

Attributes:Modifiability

Sce

nar

io

Com

pon

ents

Stimulus:Stimulus Source:

Environment:Artifact (If Known):

Response:ResponseMeasure:

Questions:Issues:

Preliminary Report 51/52 Metis

Page 52: Software Architecture Document v0.51.doc

Architectures for Software Systems(17-655)

10.4. References

[1] http://dogbert.mse.cs.cmu.edu/mse2008Korea/AoB/repository/documents/AoB_SRS_v1.0_20080302.doc

[2] http://dogbert.mse.cs.cmu.edu/mse2008Korea/AoB/repository/misc/Communication_Experiment.doc

[3] Clements, Bachmann, Bass, Garlan, Ivers, Little, Nord, Stafford, Documenting Software Architectures –

Views and Beyond, Addison-Wesley, 2003

[4] Heng Chen, Myung-Joo Ko, Neel Mullick, Paulo Merson, “SEI ArchE System, Architecture & Design

documentation for the ‘Architecture Expert & Design Assistant’, 2004

Preliminary Report 52/52 Metis