tag 标签: requirements

相关博文
  • 热度 26
    2015-8-14 19:51
    1467 次阅读|
    1 个评论
    Capers Jones is one of the most prolific software researchers around. He has a vast collection of metrics from many thousands of real-world projects. His book The Economics of Software Quality is rather dry but full of fun facts. He’s careful to point out that the data has huge standard deviations, but it does paint some interesting pictures about the nature of software engineering.   Chapter 2 is called “Estimating and Measuring Software Quality.” Though all of the numbers are interesting those for requirements are especially so.   Mr. Jones is adamant that we shouldn’t use lines of code (LOC, or KLOC for thousands of lines of code) as a metric. He prefers function points. While it’s hard to dispute his arguments in favor of function points, few practicing developers understand them, which makes the metric a barrier to communication. Most sources figure one function point is around 100-120 lines of C code, so here I’ve converted his numbers to C code using 100 LOC = 1 function point.   Let’s look at his numbers for the size of requirements. For an application of 10 KLOC developers typically get 115 pages of requirements, which are 95% complete. That’s roughly a page per 100 LOC, or something like one line per two LOC. Of course, some percentage of those requirements would be graphical, but his numbers suggest that 75% of requirements are text. Does that mirror your experience? That’s a lot of text for a couple of lines of code.   But it gets worse as applications grow in size. At 100 KLOC figure on 750 pages of requirements, which will only be 80% complete. At 1 million lines of code there will be 6,000 pages of, probably dreary, conflicting, and poorly-specified requirements, comprising just 60% of what is expected to be delivered. In other words, those 6K pages specify just about half of the desired functionality. No wonder big systems are delivered so late. Mr. Jones makes the scary point that at 5 million LOC it would be impossible for a single person to read the requirements in one lifetime!   Small systems don’t experience much requirements churn; for projects of 10 KLOC figure on 1% growth/month, or about 225 LOC change over the duration of the project. At 1 million LOC that bumps to 1.25% growth/month resulting in an extra almost 300 KLOC.   What about requirements defects? A 10 KLOC system will have 75 of those, of which 8 are typically delivered to the customer. At 1 million LOC that jumps to over 10,000 of those kinds of defects, 2000 of which will wind up in the user’s hands.   Now, these numbers are for all sorts of software projects. He points out that embedded projects experience only 20% of the defects of the numbers he presents. That’s still 400 delivered requirements defects for a big project. Of course, there will be plenty of other bugs in the final project from other phases of development, but those numbers are fodder for a different column.   One of the rationales for agile methods is, as Kent Beck puts it, everything changes all of the time. One can’t know, it’s reasoned, what the customer wants so it makes sense to deliver early and incrementally. I’ve always agreed with the conclusion, but not necessarily with the thesis. Though there are exceptions, in my experience most embedded projects can get a decent, if imperfect, set of requirements early in the project. Admittedly, it can be hard to elicit them, but “hard” is no excuse for abdicating our responsibility to work diligently to clarify our goals.   Given that firmware has only 20% of the requirements defects experienced by other sorts of software, two things jump out. First, we’re doing a heck of a job! Second, the notion of using agile to elicit requirements probably doesn’t make sense in this space (though implementation may benefit from agile ideas). Traditional approaches seem to be working pretty well, and to determine requirements in an agile, incremental, manner demands an awful lot of customer participation. eXtreme Programming practitioners require an on-site customer; in recent years some have suggested than an entire customer team be co-located with the developers to wring out desired product functionality. That’s unrealistic for many projects.   As regular readers know I think careful engineering requires the use of metrics to understand both what we’re building, as well as how we’re building it. Do you track anything about requirements, like size, churn or defects?
  • 热度 22
    2011-6-9 17:52
    1646 次阅读|
    0 个评论
    The previous article about " needing them stinkin' requirements " generated quite a bit of response. I recommended Karl Wiegers' book " Software Requirements " as a great introduction to the art and science of gathering and, as one poster noted analyzing requirements.   But there is a five second "elevator talk" version. Some years ago, at a conference in Mexico, I attended a talk Steve Tockey gave about requirements. He very ably and succinctly summed up the rules for requirements, which I'll paraphrase here: - A requirement is a statement about the system that is unambiguous. There's only one way it can be interpreted, and the idea is expressed clearly so all of the stakeholders understand it.   - A requirement is binding. The customer is willing to pay for it, and will not accept the system without it.   - A requirement is testable. It's possible to show that the system either does or does not comply with the statement.     The last constraint shows how many so-called requirements are merely vague and useless statements that should be pruned from the requirements document. For instance, "the machine shall be fast" is not testable, and is therefore not a requirement. Neither is any unmeasurable statement about user-friendliness or maintainability.   An interesting corollary is that reliability is, at the very least, a difficult concept to wrap into the requirements since "bug-free" or any other proof-of-a-negative is hard or impossible to measure. In high-reliability applications it's common to measure the software engineering process itself, and to buttress the odds of correctness by using safe languages, avoiding unqualified SOUP , or even to use formal methods (actually, the latter is not a common practice, but is one that has gained some traction).   What do you think? Does your group do a good job eliciting and analyzing requirements?    
  • 热度 21
    2011-5-8 17:41
    1870 次阅读|
    0 个评论
    The previous article about " needing them stinkin' requirements " generated quite a bit of response. I recommended Karl Wiegers' book " Software Requirements " as a great introduction to the art and science of gathering – and, as one poster noted – analyzing requirements.   But there is a five second "elevator talk" version. Some years ago, at a conference in Mexico, I attended a talk Steve Tockey gave about requirements. He very ably and succinctly summed up the rules for requirements, which I'll paraphrase here:   - A requirement is a statement about the system that is unambiguous. There's only one way it can be interpreted, and the idea is expressed clearly so all of the stakeholders understand it.   - A requirement is binding. The customer is willing to pay for it, and will not accept the system without it.   - A requirement is testable. It's possible to show that the system either does or does not comply with the statement.   The last constraint shows how many so-called requirements are merely vague and useless statements that should be pruned from the requirements document. For instance, "the machine shall be fast" is not testable, and is therefore not a requirement. Neither is any unmeasurable statement about user-friendliness or maintainability.   An interesting corollary is that reliability is, at the very least, a difficult concept to wrap into the requirements since "bug-free" or any other proof-of-a-negative is hard or impossible to measure. In high-reliability applications it's common to measure the software engineering process itself, and to buttress the odds of correctness by using safe languages, avoiding unqualified SOUP , or even to use formal methods (actually, the latter is not a common practice, but is one that has gained some traction).   What do you think? Does your group do a good job eliciting and analyzing requirements?    
相关资源
  • 所需E币: 0
    时间: 2023-12-15 14:32
    大小: 1.52MB
    上传者: powerstd
    IPC-9797A_EN_2023Press-FitStandardforAutomotiveRequirementsandOtherHigh-ReliabilityApplications 
  • 所需E币: 1
    时间: 2022-6-2 11:10
    大小: 674.85KB
    IncorporatingRobustnessRequirementsIntoAntiwindupDesign
  • 所需E币: 3
    时间: 2020-12-27 16:24
    大小: 794.83KB
    上传者: stanleylo2001
    EDA技术-生产工艺-IPC-7351-GenericRequirementsforSurfaceMountDesignandLandPatternStandard
  • 所需E币: 0
    时间: 2020-8-24 00:09
    大小: 994.95KB
    上传者: czdian2005
    EDA技术-生产工艺-IPC-7351-GenericRequirementsforSurfaceMountDesignandLandPatternStandard
  • 所需E币: 4
    时间: 2019-12-25 15:02
    大小: 238.85KB
    上传者: wsu_w_hotmail.com
    MostDSPtechniquesarebasedonadivide-and-conquerstrategycalledsuperposition.Thesignalbeingprocessedisbrokenintosimplecomponents,eachcomponentisprocessedindividually,andtheresultsreunited.Thisapproachhasthetremendouspowerofbreakingasinglecomplicatedproblemintomanyeasyones.Superpositioncanonlybeusedwithlinearsystems,atermmeaningthatcertainmathematicalrulesapply.Fortunately,mostoftheapplicationsencounteredinscienceandengineeringfallintothiscategory.ThischapterpresentsthefoundationofDSP:whatitmeansforasystemtobelinear,variouswaysforbreakingsignalsintosimplercomponents,andhowsuperpositionprovidesavarietyofsignalprocessingtechniques.CHAPTERLinearSystems5MostDSPtechniquesarebasedonadivide-and-conquerstrategycalledsuperposition.Thesignalbeingprocessedisbrokenintosimplecomponents,eachcomponentisprocessedindividually,andtheresultsreunited.Thisapproachhasthetremendouspowerofbreakingasinglecomplicatedproblemintomanyeasyones.Superpositioncanonlybeusedwithlinearsystems,atermmeaningthatcertainmathematicalrulesapply.Fortunately,mostoftheapplicationsencounteredinscienceandengineeringfallintothiscategory.ThischapterpresentsthefoundationofDSP:whatitmeansforasystemtobelinear,variouswaysforbreakingsignalsintosimplercomponents,andhowsuperpositionprovidesavarietyofsignalproces……
  • 所需E币: 3
    时间: 2019-12-25 10:32
    大小: 636.42KB
    上传者: rdg1993
    系统定义与分析嵌入式系统概论五系统定义与分析北京大学软件与微电子学院嵌入式系统概论定义与分析-ObjectsTointroducetheconceptsofembeddedsystemrequirementsTodescribefunctionalandnon-functionalrequirementsToexplaintwotechniquesfordescribingembeddedsystemrequirementsToexplainhowsoftwarerequirementsmaybeorganizedinarequirementsdocument北京大学软件与微电子学院嵌入式系统概论定义和分析-主要内容SystemDefinitionSystemAnalysisSummary北京大学软件与微电子学院嵌入式系统概论SystemDefinitionTermsandConceptsDevelopingACommonUnder……
  • 所需E币: 4
    时间: 2019-12-24 19:48
    大小: 93.26KB
    上传者: 2iot
    Abstract:Thisarticlediscussestherequirementsanddesignconsiderationsforautomotiveapplications,includingthoseforenginecontrol,infotainment,andbodyelectronics.ItalsodiscussesseveralMaximdevicesthatareidealforautomotivepowerapplications.Maxim>DesignSupport>TechnicalDocuments>ApplicationNotes>Automotive>APP5346Maxim>DesignSupport>TechnicalDocuments>ApplicationNotes>Power-SupplyCircuits>APP5346Keywords:automotive,powercontrol,infotainment,bodyelectronics,enginecontrol,powertrain,ISO9000,TS16949Apr02,2012APPLICATIONNOTE5346PowerControlforAutomotiveApplicationsBy:MasayukiNakagawaApr02,2012Abstract:Thisarticlediscussestherequirementsanddesignconsiderationsforautomotiveapplications,includingthoseforenginecontrol,infotainment,andbodyelectronics.ItalsodiscussesseveralMaximdevicesthatareidealforautomotivepowerapplica……
  • 所需E币: 5
    时间: 2019-12-24 17:53
    大小: 71.09KB
    上传者: wsu_w_hotmail.com
    摘要:在采样的数据系统中,超过一半采样率"别名"(改变)到感兴趣的频段的频率分量。大多数情况下,消除锯齿的不良副作用,所以"取样不足"更高的频率只是筛选之前的A/D阶段。但有时,欠采样是故意,消除锯齿会导致A/D系统作为一个混音器功能。Maxim>AppNotes>Filtercircuits(analog)Keywords:filterbasics,antialiasing,filterrequirements,filtering,sampleddatasystemJan11,2002APPLICATIONNOTE928FilterBasics:Anti-AliasingAbstract:Inasampleddatasystem,frequencycomponentsgreaterthanhalfthesamplingrate"alias"(shift)intothefrequencybandofinterest.Mostofthetime,aliasinginanundesirablesideeffect,sothe"undersampled"higherfrequenciesaresimplyfilteredoutbeforetheA/Dstage.Butsometimes,theundersamplingisdeliberateandthealiasingcausestheA/Dsystemtofunctionasamixer.Thisapplicationnotediscussesthedifferentfilteringrequirementsforasampleddatasystem.Itdescribesaliasingandthetypesoffiltersthatcanbeusedforant……
  • 所需E币: 4
    时间: 2020-1-10 12:24
    大小: 793.91KB
    上传者: 16245458_qq.com
    [IPC标准]IPC-7351,IPC-7351-GenericRequirements……
  • 所需E币: 4
    时间: 2020-1-13 19:33
    大小: 386.08KB
    上传者: rdg1993
    PINDiodeVectorModulators-FundamentalsandDriveRequirementsAN3001ApplicationNotePINdiodeVectorModulatorsFundamentalsandDriveRequirementsV3.00IntroductionM/A-COM’sChipScalePackage(CSP)vectormodulatorplatformoffersameansofvaryingattenuationandphaseinasinglesurfacemountpackage.Thesevectormodulatorsofferlinearphaseandminimalamplituderippleintheirbandsofoperation.DuetousingPINdiodesastheactivedevices,thesevectormodulatorshavehighinterceptpoints.Thesevectormodulatorsoperateintandemwithaduallinearizer,MADRCC0002thathasbeendevelopedbyM/A-COM.Case2.IfthediodesinthetopVVAaresettoanimpedanceof50ohms,thetopVVAwillbeinahighlossstate.TheoutputofthebottomVVAwillhaveaphaseof-90°or90°,dependingontheimpedanceoftheterminatingdiodes……
  • 所需E币: 5
    时间: 2020-1-15 12:02
    大小: 994.95KB
    上传者: 16245458_qq.com
    IPC-7351-Generic_Requirements_for_Surface_Mount_Design_and_Land_Pattern_StandardASSOCIATIONCONNECTINGELECTRONICSINDUSTRIESIPC-7351GenericRequirementsforSurfaceMountDesignandLandPatternStandardIPC-7351February2005SupersedesIPC-SM-782AwithAmendments1&2December1999AstandarddevelopedbyIPC3000LakesideDrive,Suite309S,Bannockburn,IL60015-1219Tel.847.615.7100Fax847.615.7105www.ipc.orgThePrinciplesofStandardizationInMay1995theIPC’sTechnicalActivitiesExecutiveCommittee(TAEC)adoptedPrinciplesofStandardizationasaguidingprincipleofIPC’sstandardizationefforts.StandardsShould:ShowrelationshiptoDesignforManufacturability(DFM)andDesignfortheEnvironment(DFE)MinimizetimetomarketContainsimple(simplied)languageJustincludespecinformationFocusonendproductperformanceIncludeafe……
  • 所需E币: 3
    时间: 2020-1-13 09:39
    大小: 994.95KB
    上传者: givh79_163.com
    IPC-7351-GenericRequirementsforSurfaceMountDesignandLandPatternStandardASSOCIATIONCONNECTINGELECTRONICSINDUSTRIESIPC-7351GenericRequirementsforSurfaceMountDesignandLandPatternStandardIPC-7351February2005SupersedesIPC-SM-782AwithAmendments1&2December1999AstandarddevelopedbyIPC3000LakesideDrive,Suite309S,Bannockburn,IL60015-1219Tel.847.615.7100Fax847.615.7105www.ipc.orgThePrinciplesofStandardizationInMay1995theIPC’sTechnicalActivitiesExecutiveCommittee(TAEC)adoptedPrinciplesofStandardizationasaguidingprincipleofIPC’sstandardizationefforts.StandardsShould:ShowrelationshiptoDesignforManufacturability(DFM)andDesignfortheEnvironment(DFE)MinimizetimetomarketContainsimple(simplied)languageJustincludespecinformationFocusonendproductperformanceIncludeafe……