版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年二级建造师之二建矿业工程实务考试题库300道带答案(能力提升)
- 2025年期货从业资格考试题库附答案(夺分金卷)
- 2026年国家电网招聘之通信类考试题库300道附答案【a卷】
- 2026年注册土木工程师考试题库500道附参考答案(综合题)
- 2026年伊犁职业技术学院单招综合素质笔试参考题库附答案详解
- 2026年苏州卫生职业技术学院单招职业技能考试参考题库附答案详解
- 事业单位招录行测常识判断专项强化真题试卷附答案
- 2025年安徽国际商务职业学院单招职业倾向性考试题库附答案
- 2025安徽省白湖农场集团有限责任公司招聘用工人员10人(第二批)备考题库附答案
- 2026年重庆电信职业学院单招职业技能考试备考试题附答案详解
- DB51T 3115-2023 四川省政务服务评价数据汇聚规范
- (新疆一模)2025届高三高考适应性检测分学科第一次模拟考试 地理试卷(含答案解析)
- 幼儿园绘本故事《三只小猪盖房子》教学课件全文
- JJF(京) 151-2024 药物溶出度仪温度参数校准规范
- 调解实操指南:成为金牌调解员-笔记
- GB/T 27604-2024移动应急位置服务规则
- 苏教译林版五年级上册英语第八单元Unit8《At Christmas》单元测试卷
- 《合同能源管理介绍》课件
- 电力系统继电保护教案
- 《社会调查研究与方法》课程复习题-课程ID-01304试卷号-22196
- GB/T 43316.3-2023塑料耐环境应力开裂(ESC)的测定第3部分:弯曲法
评论
0/150
提交评论