architecture review

Post on 21-Jan-2016

44 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Architecture Review. Logical View: Layer Overview. Exhibits layer cohesion. Logical View: Presentation Layer. Logical View: Business Layer. Logical View: Data Access Layer. Process View. Development View. Physical View. TESTING. Test Plans. - PowerPoint PPT Presentation

TRANSCRIPT

Architecture Review

Logical View: Layer Logical View: Layer OverviewOverview

Presentation Layer

Business Layer

Data Access Layer

Exhibits layer cohesion

Logical View: Presentation Logical View: Presentation LayerLayer

+UIProcess()+ShowAccounts()+ShowAccount()+ShowTransfers()+ShowTransfersAddEdit()+ShowCustomer()+ShowCustomerEdit()+ShowSignIn()-OnVoiceCommandReceived()

+CustomerID-commandReceivedEvent : CommandReceivedEventHandler

UIProces

+Page_Load()

-voiceCommandListener : VoiceCommandListener#dalcAccounts : Accounts

Account.asp

+Page_Load()

-voiceCommandListener : VoiceCommandListener

Accounts.asp

+Page_Load()

-voiceCommandListener : VoiceCommandListener-dalcCustomers : Customers

Customer.asp

+Page_Load()

-uiProcess : UIProcess-dalcCustomers : Customers

CustomerEdit.asp

+Page_Load()

-voiceCommandListener : VoiceCommandListener-dalcTransfers : Transfers

Transfers.asp

+Page_Load()

-uiProcess : UIProcess-dalcTransfers : Transfers

TransfersAddEdit.asp

+Page_Load()

-customerProcess : CustomerProcess

SignIn.asp

+SignIn() : bool+SignOut()

-uiProcess : UIProcess

CustomerProcess

*

*

*

*

**

*

*

*

*

*

*

*

*

*

*

Logical View: Business Logical View: Business LayerLayer

DataRow

-Rows : DataRow

DataSet

1 *

DataReader

+Md5Hash(in String : string) : byte[]

Hash

+VoiceCommandListener()

VoiceCommandListener

+Name : string+IntrestRate : AccountTypeDisplay+Balance : AccountTypeDisplay+BalanceAvailable : AccountTypeDisplay+NextPaymentDate : AccountTypeDisplay+NextPaymentAmt : AccountTypeDisplay

AccountTypeEntity

+Name() : string+Display() : bool

«struct»AccountTypeDisplay

Logical View: Data Access Logical View: Data Access LayerLayer

+Create(in CustomerID, in AccountTypeID, in ...)+Update(in Account : DataSet)+Delete(in AccountID : int)+GetOne(in AccountID) : DataSet+GetAllForCustomer(in CustomerID) : DataReader+GetAllForCustomerSummary() : DataReader

Accounts

+Create(in CustomerID, in FirstName, in ...)+Update(in Customer : DataSet)+Delete(in CustomerID)+GetOne(in CustomerID : int) : DataSet+GetPin() : string

Customers

#GetSqlCommand(in Name : string) : SqlCommand

-strConnection : string

DalcHelper

+Create(in Date, in AccountID, in ...)+Update(in Transfer : DataSet)+Delete(in TransferID)+GetOne(in TransferID) : DataSet+GetPastForAccount(in AccountID) : DataReader+GetFutureForAccount(in AccountID) : DataReader

Transfers

SqlCommand

+Create(in AccountID, in Amount, in ...)+GetForAccount(in AccountID, in NumResults) : DataReader+GetRangeForAccount(in FromDate, in ToDate) : DataReader

History

+Create(in Name, in IntrestRateName, in ...)+Update(in AccountType : DataSet)+GetOne(in AccountTypeID) : AccountTypeEntity

AccountTypes

+Weekly+BiWeekly+Monthly

«enumeration»FrequencyType

* *

Process ViewProcess View

Development ViewDevelopment View

Physical ViewPhysical View

TESTINGTESTING

The following input is required to test an The following input is required to test an application block: application block:

Functional specifications Functional specifications Requirements Requirements Performance objectives Performance objectives

Test PlansTest Plans

Test Methods :Test Methods :

Regression TestingRegression Testing Integration TestingIntegration Testing Black Box Testing ( Stress Black Box Testing ( Stress

Testing )Testing ) Unit Testing ( N – Unit )Unit Testing ( N – Unit )

Test PlansTest Plans

Regression Testing:Regression Testing: Test fixed bugs promptly. Test fixed bugs promptly. Watch for side effects of fixes. Watch for side effects of fixes. Write a regression test for each bug fixed.Write a regression test for each bug fixed. If two or more tests are similar, determine If two or more tests are similar, determine

which is less effective and get rid of it. which is less effective and get rid of it. Identify tests that the program Identify tests that the program

consistently passes and archive them. consistently passes and archive them. Focus on functional issues, not those Focus on functional issues, not those

related to design. related to design. Make changes (small and large) to data Make changes (small and large) to data

and find any resulting corruption. and find any resulting corruption.

Test PlansTest Plans

Integration Testing:Integration Testing:

Def: A type of testing in which software Def: A type of testing in which software and/or hardware components are and/or hardware components are combined and tested to confirm that they combined and tested to confirm that they interact according to their requirementsinteract according to their requirements

Check Connections :Check Connections : Pocket PC ----------Pocket PC ---------- Web Server Web Server Web Server Web Server ---------------- SQL Server SQL Server Pocket PC ----------Pocket PC ---------- Speech Server Speech Server Speech Server ----------Speech Server ---------- Web Server Web Server

Test PlansTest Plans

Stress Testing:Stress Testing:

Evaluate the application block's Evaluate the application block's behavior when it is pushed beyond behavior when it is pushed beyond peak load conditions. peak load conditions.

The goal of stress testing is to The goal of stress testing is to identify errors that occur only under identify errors that occur only under high load conditions.high load conditions.

Test PlansTest Plans

Unit-Testing Method For All .NET Unit-Testing Method For All .NET LanguagesLanguages

AssertionsAssertions ComparisonsComparisons Condition TestsCondition Tests

N-Unit TestingN-Unit Testing

Report Expected and Actual ValuesReport Expected and Actual Values Assert.AreEqualAssert.AreEqual

Both arguments are of the same datatypeBoth arguments are of the same datatype Ex.(Assert.AreEqual Int Expected, Int Actual) Ex.(Assert.AreEqual Int Expected, Int Actual)

in Transfer Balancein Transfer Balance Assert.AreSameAssert.AreSame

Same Objects are referenced by both Same Objects are referenced by both argumentsarguments

ComparisonsComparisons

Assert.IsTrue(Bool Condition) Assert.IsTrue(Bool Condition) Assert.IsFalse(Bool Condition)Assert.IsFalse(Bool Condition)

Ex. Ex. Assert.IsTrue(hash.MeetsPassword(“goodAssert.IsTrue(hash.MeetsPassword(“goodpass”), “Good password failed check”);pass”), “Good password failed check”);

Assert.IsFalse(hash.MeetsPassword(“badpAssert.IsFalse(hash.MeetsPassword(“badpass”), “Bad password passed check”);ass”), “Bad password passed check”);

Condition TestsCondition Tests

Total lines of code = 41.8 function points Total lines of code = 41.8 function points * 53 lines per function point* 53 lines per function point

Total lines of code = 2215.4Total lines of code = 2215.4 KLOC therefore equals 2.22KLOC therefore equals 2.22 E = bKLOCcE = bKLOCc The basic COCOMO parameters for a The basic COCOMO parameters for a

semidetached project are b = 3.0 and c semidetached project are b = 3.0 and c = 1.12= 1.12

E = 3.0 (2.22)1.12E = 3.0 (2.22)1.12 E = 7.328 staff monthsE = 7.328 staff months

COCOMOCOCOMO

Student months = 4 * 7.328 = 29.02Student months = 4 * 7.328 = 29.02 29.02 student months / 7 students = 4.2 29.02 student months / 7 students = 4.2

monthsmonths

COCOMOCOCOMO

Goals/features CheckAccountBalances

TransferFunds

GetAccount

Info

ChangeUser Info

HelpSystem

VoiceControl

Easy navigation

5 5 5 5 7 10

Secure 8 10 8 10 1 5

Quick loadingTimes

7 4 7 4 8 N/A

Information iseasy to read

9 4 9 4 9 N/A

Easy to inputData

N/A 9 N/A 9 N/A 9

---------------------------------------- ---------------------------- ---------------------------- ---------------------------- ---------------------------- ---------------------------- ----------------------------

Totals 29 32 29 29 25 24

QFD AnalysisQFD Analysis

  Phone Online Pocket PC In Person

Intuitive 2 3 4 5

Consistent 4 4 4 3

Efficient 3 4 5 2

Durable 4 4 4 1

Thoughtful 2 3 4 5

ICED-TICED-T

ICED-T

0

1

2

3

4

5

6

Intuitive Consistent Efficient Durable Thoughtful

Phone

Online

Pocket

In Person

ICED-TICED-T

QUESTIONS?QUESTIONS?

THE ENDTHE END

top related