高质量需求管理Requirement Matrix_第1页
高质量需求管理Requirement Matrix_第2页
高质量需求管理Requirement Matrix_第3页
高质量需求管理Requirement Matrix_第4页
高质量需求管理Requirement Matrix_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Requirement MatrixConcepts and ImplementationAn End-to-end Paradigm in Building Quality ApplicationsBronnie F T.sg立方体科技AgendaSession I1RM basic concepts2Key features3Precedence & cascadeSession II4Implements and Implementations5RM engine6Code generationSession III7Automated testing8Well known locati

2、on paradigm9Quality costIll forms in recording Business RulesMS Excel used as the tool, but in the wrong mannerDrawings and flowcharts are generous: wrong tool In forms needing to educate readers: some might not be able to graspWith hidden columns, collapsed outlines: often source of omission in imp

3、lementation Pseudo code is aplenty embodying a lot of implementation details such as permissible value lists, result codes: too technical and too complex not to miss somethingPrescribes process to achieve business requirement: the actual business rules may not have been recordedLeading to:Difficult

4、to scale business skill/knowledge poolDifficult to achieve shared understanding and sign-offHigh project cost by way of timeline, personnel, fixes, customer relationsAgendaSession I1RM basic conceptsPropositional CalculusAugustus De Morgans Theorem 1 & 2 (A B) ( A) ( B) (A B) ( A) ( B)To illustrate,

5、 we can look at this Truth Table:The instantiation of De Morgans Theorem is very common in programming, such that:If not (A and B) thensometimes, perhaps to facilitate comprehension, is written as:If not A or not B then is Negate, is Or, is And, is EquivalenceTruth Table is a simple chart showing th

6、e possible combinations of truth-values for a statement form or an argument form in the Propositional CalculusWhat are the key charactieristicsof a Truth Table?ABA B (A B) A B( A) ( B)A B (A B) ( A) ( B)T(rue)TTFFFFTFFF(alse)TTFTFFFTTTFTFFTFFTTFFFTTTTFTTConvey an otherwise unfamiliar subject clearly

7、 and unambiguouslyCompleteness can be checkedThe row order is insignificantThe column order is also insignificantRulesMaleT T F F Age 6T F T F ImplementsUse Male toiletaaaUse Female toiletaaaRequirement Matrix: A First LookA trivial example:In a certain prestigious club in Singapore, there is a rule

8、 on the use of toilets: male and female shall use their respective toilets as marked, except that children of age below 6 can use either.The following illustrates how the Truth Table is adopted:Recall the following points:Convey an otherwise unfamiliar subject clearly and unambiguouslyCompleteness c

9、an be checkedThe row order among Rules and/or among Implements is insignificantThe column order taking both Rules and Implements together is also insignificantNote the double line separating the Rules and the ImplementsRulesMaleT T F F Age 6T F T F ImplementsUse Male toiletaaaUse Female toiletaaaRul

10、esFemaleTTFMaleT T FAge 6T F T F ImplementsUse Male toiletaaaUse Female toiletaaaSignal ErroraRequirement Matrix: Key PointsUnambiguityThis is good for so long as there are only Male and Female. This dimension is termed Invariant, which is a critical dependency in Business Rules.For the above to be

11、“fool-proof”, it needs to be expanded to safeguard against future changes not well communicated.Invariants are often Enumerations. It is always a good practice to communicate the source of error with an error codeNMF CompletenessWhile Truth Table is Bi-state, Requirement Matrix is Tri-state, ie. “T”

12、(rue), “F”(alse) and “” (Ignored), for which the cell is left un-enteredNumber of cases = 2(number of business rules), thus 2 rules are completely described in 4 casesHowever, Invariant is a special rule with enumerated Elements that, in this example:Number of cases = (Number of Elements in Invarian

13、t + 1 ) * 2(number of business rules remaining)= (2+1)*21 = 6Homonyms are collapsed to provide better clarityRequirement Matrix: DimensionRulesFemaleTTFMaleT T FAge 6T F T F ImplementsUse Male toiletaaaUse Female toiletaaaSignal ErroraNMF Why are there only 5 shown?FFFFTFaNMF2NMF1Requirement Matrix:

14、 SystematicMale toilet admissionGender is MaleTFFAge 6TFAdmitaaRejectaFOAFemale toilet admissionGender is FemaleTFFAge SGD3,000YYYNNProof of Income DocumentCPF Contribution StatementYNYNETA or payslipYNNTAYNRejectE1E2E3E4Rejection codes & text:E1Employed with SGD3,000 but without Proof of IncomeE2Em

15、ployed with SGD3,000 but without Proof of IncomeE3Self-employed but without Proof of IncomeE4Employment Status not acceptableSuch as:Income depends on Employment, so the latter is dealt with first, then the income itselfHaving dealt with income, then the Proof of Income becomes relevantIncome Verifi

16、cationRejectEmployment StatusEmployedSelf-employedIncome SGD3,000Proof of Income DocumentCPF Contribution StatementETA or payslipNTAYYYYYYYYNN YNYNYNE1E2YY YNE3NN E4 A fictitious fragment in approving a loan:If one is employed with an income of more than SGD3,000, one has to provide Proof of Income

17、in any of:a CPF (Central Provident Fund) Contribution Statementa ETA (whatever that is)a payslipIf one is employed with an income of SGD3,000 or less, one has to provide Proof of Income, which must be a CPF Contribution StatementIf one is self-employed, one has to provide Proof of Income, which must

18、 be an NTARequirement Matrix: CompletenessIncome VerificationEmployment StatusEmployedYYYYYNSelf-employedYYNIncome SGD3,000YYYNNProof of Income DocumentCPF Contribution StatementYNYNETA or payslipYNNTAYNIncome VerificationWhat it should have beenEmployment StatusEmployedYYYYYYYYNNNNNNNNSelf-employed

19、YYYYYYYYNNNNNNNNIncome 3,000YYYYNNNNYYYYNNNNYYYYNNNNProof of Income DocumentCPF Contribution StatementYNYNYNYNYNYNETA or payslipYNYNYNYNYNYNNTAYNYNYNYNYNYNMathematically, the number of cases to illustrate =(Number of Elements in Invariant 1 + 1 ) *(Number of Elements in Invariant 2 + 1 ) *2(number o

20、f business rules remaining)There are 2 Invariants, Employment Status (2 elements) and Proof of Income Document (3 elements), and 1 business rule remaining that ( (2+1) * (3+1) ) * 21 = 3 * 4 * 2 = 24Why are there only 8 cases illustrated?Collapsing all those not applicable cases and homonyms leaving

21、 only 8YYYYYNYYNYYYNNYNYNYNYNIncome VerificationEmployment StatusEmployedYYYYYNSelf-employedYYNIncome SGD3,000YYYNNProof of Income DocumentCPF Contribution StatementYNYNETA or payslipYNNTAYNRejectE1E2E3E4Income VerificationEmployment StatusEmployedYYYYYNSelf-employedYYNIncome SGD3,000YYNYNProof of I

22、ncome DocumentCPF Contribution StatementYYNNETA or payslipYNNTAYNRejectE3E4Loan Type EligibleTermaaOverdraftaaaRejectE1E2E3E4Collect requirements: its brevity makes it easy to construct Confirm requirements: its clarity helps to quickly spot errors and omissionsRespond quickly to requirement changes

23、: simply marking in “Y”, “N”, “a”, and error codes Analyse requirements: sorting rows and columns to bring chosen details into focus providing the needed different perspectives to the understandingCommunicate requirements: free from language idiosyncrasies in essay-type instruments to quickly achiev

24、e shared understanding*Skill transfer: thus growing Human Capital scalabilityScope Function Verification: not only to ensure coverage, but also to provide good basis for effort estimationCapitalise on pertinent technology: when using MS Excel, hyperlinks can be inserted to provide easy cross-referen

25、cing to other materialAutomate tasks: the sometimes daunting task of compiling a full list of error codes can be achieved promptly through some VBA and/or VSTO implementation/sContribute to the CMMI Traceability* Critically important to achieving timely Sign-Off and successes in Testing phasesRequir

26、ement Matrix: As a tool to Loan Type EligibleTermaaOverdraftaaaRejectE1E2E3E4Functional RequirementFunction VerificationTest SuiteT1T2T3T4T5T6T7T8Income VerificationEmployment StatusEmployedYYYYYNSelf-employedYYNIncome SGD3,000YYYNNProof of Income DocumentCPF Contribution StatementYNYNETA or payslip

27、YNNTAYNLoan Type EligibleTermaaOverdraftaaaRejectE1E2E3E4Requirement Matrix: Verification on that requirement is indeed metDepending on the type of application, test cases can be as simple as sets of data being run through a batch programMore commonly, each may represent a series of steps in a proce

28、ss flow, which is typical of interaction intensive applicationsThis matrix demonstrates the test coverage drawing clear correlation between Requirement and the Verification of itTraceability is also achievedTest SuiteT1T2T3T4T5T6T7T8Functional RequirementFunction VerificationTest case 1aaaaaaaTest c

29、ase 2aaaaTest case 3aaaaaaTest case 4aaaaTest case 5aaaaaTest case 6aaaaIn a separate matrix bound through Test Suite referencesAgendaSession I1RM basic concepts2Key features3Precedence & cascadeA fictitious fragment for disbursement:When an amount is presented, it shall be applied to accounts in th

30、e following order of precedence:Credit CardOverdraftAny amount left over shall be applied to the House Suspense accountRecall the row order among Implements is insignificant and all Implements for any Business Rules case must be fulfilled irrespectivelyRecur is placed last for easy comprehensionPrec

31、edence is achieved in the Rules, not in the ImplementsNote that it is not “Recur if amount after applying 0” which is subject of implementation optimisationPrecedence and CascadeDisbursementOutstanding balance in account 0Credit CardYNNOverdraftYNApply amount to accountCredit CardaOverdraftaHouse Su

32、spenseaRecuraaCredit Card DisbursementAmount SGD3,000YYYNNProof of Income DocumentCPF Contribution StatementYNYNETA or payslipYNNTAYNLoan Type EligibleTermaaOverdraftaaaRejectE1E2E3E4RulesImplementsImplements vs ImplementationRules and Implements (aka Actions) are in the Business domain, in which or

33、der on columns and rows are insignificantImplementation is in the Design and Development domain, in which order on columns and rows can be, but not necessarily, significantImplementationIf applicant.ES = 1If applicant.ES = 5If applicant.Gross 3000.00If applicant.POI = 1If applicant.POI = 2 or applic

34、ant.POI = 3If applicant.POI = 4LoanEligible(7)LoanEligible(9)ThrowEx()This is actually very deterministic that can be easily automated.This appears to be quite complex.However, the steps are very algorithmic thus can be automated.These are high value-add activities.When done RIGHT,the system can be

35、built in very high precision. Income VerificationEmployment StatusEmployedYYYYYNSelf-employedYYNIncome SGD3,000YYYNNProof of Income DocumentCPF Contribution StatementYNYNETA or payslipYNNTAYNLoan Type EligibleTermaaOverdraftaaaRejectE1E2E3E4Requirement Matrix: Process RecapImplementationIf applicant

36、.ES = 1If applicant.ES = 5If applicant.Gross 3000.00If applicant.POI = 1If applicant.POI = 2 or applicant.POI = 3If applicant.POI = 4LoanEligible(7)LoanEligible(9)ThrowEx()ThrowEx(E1)RejectaThrowEx(E2)aThrowEx(E3)aThrowEx(E4)a123456781111101101110010101010111111111Implementation Serial12345678910111

37、2Case Number1Evaluation ManifestImplementation Serial134Evaluation Target111213511131345110041341015134100626117261081200Case Number1Eexecution ManifestImplementation Serial7278394851068711812Evaluation ManifestImplementation SerialExecution ManifestEvaluation TargetImplementation SerialCase Number1

38、113141721131517831131405094113041851130401062161872160118102012Evaluation ControlExecution ControlEvaluation StartExecution StartEvaluation CountExecution Count301033214613310143131521616218172201845678113041113040216121601020212223242526272829303132333435363738394041424344Case Number123Evaluation M

39、anifest113141113151113140501234567891011121314151617181920Rules Evaluation Result1()2()3()4()5()6()For i = 1 To UBound(Rules_Evaluation_Result) Rules_Evaluation_Result(i) = Implemenation(i)NextFor i = 1 To UBound(Evaluation_Control) Do For j = 1 To Evaluation_Control(i).Evaluation_Count If Rules_Eva

40、luation_Result(Evaluation_Manifest(Evaluation_Control(i).Evaluation_Start * 2 + (j * 2 - 1) _ Evaluation_Manifest(Evaluation_Control(i).Evaluation_Start * 2 + (j * 2) Then Exit Do End if Next For j = 1 To Execution_Control(i).Execution_Count x = Implemenatation(Execution_Manifest(Execution_Control(i

41、).Execution_Start + j) Next Exit Function Loop Until 0 = 0NextSystemCatastropheFunction Implementation(Serial As Integer) As IntegerSelect Case Serial Case 1 Implementation = IIf(applicant.ES = 1, 1, 0) Case 2 Implementation = IIf(applicant.ES = 5, 1, 0) Case 3 Implementation = IIf(applicant.Gross 3

42、000.00, 1, 0) Case 4 Implementation = IIf(applicant.POI = 1, 1, 0) Case 5 Implementation = IIf(applicant.POI = 2 Or applicant.POI = 3, 1, 0) Case 6 Implementation = IIf(applicant.POI = 4, 1, 0) Case 7 Implementation = LoanEligible(7) Case 8 Implementation = LoanEligible(9) Case 9 Implementation = Th

43、rowEx(E1) Case 10 Implementation = ThrowEx(E2) Case 11 Implementation = ThrowEx(E3) Case 12 Implementation = ThrowEx(E4) Case Else SystemCatastropheEnd Select3 Generate CodeShould 1 & 2 be achieved using MSExcel, 3 & 4 can be automated usng VSTO (Visual Studio Tool for Office) Matrix everything that

44、 can be matrix-ed1Matrix the Requirement2Add Implementation3Transform into programming artefacts4Write codeAutomate everything that can be matrix-edAgendaSession I1RM basic concepts2Key features3Precedence & cascadeSession II4Implements and Implementations5RM engineFunction RM_Engine(RM_Manifest As

45、Holon_Descriptor)k = Execute(RM_Manifest.Implementation(0)For i = 1 To UBound(RM_Manifest.Significance) If (k And RM_Manifest.Significance(i) = _ RM_Manifest.TargetMatch(i) Then k = RM_Manifest.ExecutionPlan(i) Do While k 0 j = j + 1 If k And (2 (j - 1) 0 Then k = k Xor (2 (j - 1) x = Execute(RM_Man

46、ifest.Implementation(j) End If Loop Exit Function End IfNextSystemCatastropheRequirement Matrix: An Optimised Generic Engine 1/2Value132129131334343Significance20111110012100000111221111100023101110002401100000250000011013215913420Target Match111110000000011011100000100100000100000000000100201100000

47、21010101002200100000230000100024000000102500000001Value1342821632Execution PlanUpon code being generated the Requirement Matrix engine can sport a more complex design without concern on inadvertant implementation mistakesObject Income_Verification Type Holon_Descriptor SignificanceInteger 13, 21, 29

48、, 13, 13, 34, 34, 3 TargetMatchInteger 13, 21, 5, 9, 1, 34, 2, 0 ExecutionPlanInteger 1, 3, 4, 2, 8, 2, 16, 32 ImplementationFunction _Income_Verification_ImplementationImplementationIncome_Verification123456781If applicant.ES = 11111102If applicant.ES = 51103If applicant.Gross 3000.00111004If appli

49、cant.POI = 110105If applicant.POI = 2 or applicant.POI = 3106If applicant.POI = 4107LoanEligible(7)118LoanEligible(9)1119ThrowEx(E1)110ThrowEx(E2)111ThrowEx(E3)112ThrowEx(E4)1000000123456Core.RM_Engine(Income_Verification)Function Income_Verification_Implementation(Serial As Integer) As IntegerSelec

50、t Case Serial Case 0 Income_Verification_Implementation = _ IIf(applicant.ES = 1, 1, 0) * 2 0 OR _ IIf(applicant.ES = 5, 1, 0) * 2 1 OR _ IIf(applicant.Gross 3000.00, 1, 0) * 2 2 OR _ IIf(applicant.POI = 1, 1, 0) * 2 3 OR _ IIf(applicant.POI = 2 Or applicant.POI = 3, 1, 0) * 2 4 OR _ IIf(applicant.P

51、OI = 4, 1, 0) * 2 5 Case 1 Income_Verification_Implementation = LoanEligible(7) Case 2 Income_Verification_Implementation = LoanEligible(9) Case 3 Income_Verification_Implementation = ThrowEx(E1) Case 4 Income_Verification_Implementation = ThrowEx(E2) Case 5 Income_Verification_Implementation = Thro

52、wEx(E3) Case 6 Income_Verification_Implementation = ThrowEx(E4) Case Else SystemCatastropheEnd SelectA fictitious fragment for disbursement:When an amount is presented, it shall be applied to accounts in the following order of precedence:Credit CardOverdraftAny amount left over shall be applied to t

53、he House Suspense accountCascade:Requirement Matrices do not need to be more complex than be able to contain an “integral” concept/idea/topicThe componentisation can be “naturally” achieved consistent with the Business the system is built for“Common modules” will be easily identifiableDisbursementIf

54、 (Credit_Card.Interest + Credit_Card.Spending) 0If Overdraft.Total 0Core.RM_Engine(Credit_Card_Disbursement)Deduct_Overdraft()AddTo_House_Suspense()If Payment.Amount 0Precedence and Cascade 1/2DisbursementOutstanding balance in account 0Credit CardYNNOverdraftYNApply amount to accountCredit CardaOve

55、rdraftaHouse SuspenseaRecuraaCredit Card DisbursementAmount InterestYNDeduct amount from InterestaDeduct total InterestaDeduct (Amount Interest) from SpendingaObject Disbursement Type Holon_Descriptor SignificanceInteger 1, 3, 3 TargetMatchInteger 1, 2, 0 ExecutionPlanInteger 1, 2, 4 ImplementationF

56、unction _ Disbursement_Implementation RecurInteger 4Implementation Serial0123Object Credit_Card_DisbursementType Holon_Descriptor SignificanceInteger 1, 1 TargetMatchInteger 1, 0 ExecutionPlanInteger 1, 6 ImplementationFunction _ Credit_Card_Disbursement_Implementation RecurInteger 0Recursion:Expand

57、 the HolonDescriptor with a Recur for the governing Implementation SerialInstantiate in such a manner that 0 (no Implementation) marks a non-recursive Requirement MatrixUpdate engineImplemenation Serial001234Function RM_Engine(RM_Manifest As Holon_Descriptor)Do Do k = Execute(RM_Manifest.Implementat

58、ion(0) For i = 1 To UBound(RM_Manifest.Significance) If (k And RM_Manifest.Significance(i) = _ RM_Manifest.TargetMatch(i) Then k = RM_Manifest.ExecutionPlan(i) Do While k 0 j = j + 1 If k And (2 (j - 1) 0 Then k = k Xor (2 (j - 1) x = Execute(RM_Manifest.Implementation(j) End If Loop If RM_Manifest.

59、Recur 0 then Exit Do Exit Function End If Next SystemCatastrophe Loop Until 0 = 0Loop Until Execute(RM_Manifest.Implementation(RM_Manifest.Recur) = 0Precedence and Cascade 2/2Renders a simple mechanism to produce neatly structured code Object Disbursement Type Holon_Descriptor SignificanceInteger 1,

60、 3, 3 TargetMatchInteger 1, 2, 0 ExecutionPlanInteger 1, 2, 4 ImplementationFunction _ Disbursement_Implementation RecurInteger 4Object Credit_Card_DisbursementType Holon_Descriptor SignificanceInteger 1, 1 TargetMatchInteger 1, 0 ExecutionPlanInteger 1, 6 ImplementationFunction _ Credit_Card_Disbur

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论