Upload
mala
View
44
Download
0
Tags:
Embed Size (px)
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
Citation preview
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
In Person
ICED-TICED-T
QUESTIONS?QUESTIONS?
THE ENDTHE END