Re: [AM] Requirements Encapsulation
Rick Lutowski <[email protected]> Mon, 29 Mar 2004 12:42:59 -0600
| Newsgroups | gmane.comp.programming.modeling.agile |
|---|---|
| Organization | JReality |
| Message-ID | <[email protected]> |
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Are you looking for savings on products you use everyday?=20 Visit Quality Health today and see the coupons, free=20 samples and special offers our members enjoy each and=20 everyday. http://click.topica.com/= caab5n1bUrKDAbWnbtka/ Ivo Interactive =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Steven Gordon wrote: >=20 > Is it possible to identify a "unique stimulus set", let alone "the functi= onality tree", > without knowing all of your customer's software requirements?=20 The basic idea of information-hiding is to identify things that have=20 a high probability of change, and encapsulate those things to make=20 the implementing code easier to change later. If requirements (or=20 data structures, or hardware) never changed, then there would be no=20 need to encapsulate them. So what is the probability of change for requirements? I have a paper that indicates 60-80% of all changes during the=20 maintenance phase of the software life cycle are requirements changes. If this is true, then requirements are THE most volatile of all=20 software information. Requirements therefore should have the highest=20 priority for encapsulation, and should result in the highest financial=20 payback to the customer of any application of the information-hiding=20 approach. So the answer to your question is an unqualified 'yes.' Freedom fully expects the functionality tree will be incomplete or=20 otherwise need to change in the future. This in no way hampers its development, or the development of the software. Quite the opposite. Freedom specifies techniques for writing code which=20 should make future changes to the code easier when the functionality tree changes.=20=20 Note that encapsulation doesn't make it easier to change=20 the requirements spec, but rather the code that implements it.=20=20 Encapsulation is a code-centric concept. But it relies on proper=20 specification as a prerequisite. This why we have OO design --=20 it wasn't possible to encapsulate design decisions like data=20 structures using the old functional design approaches. Design specification had to change. Likewise, requirements encapsulation requires new approaches to=20 requirements specification. It is quite ironic that these new requirements spec approaches are NOT equivalent to OOA. OOA is just=20 as inappropriate for requirements encapsulation as functional=20 requirements! That may sounds oxymoronic, but it's true. Freedom's=20 approach to requirements specification has nothing to do with=20 either OOA (object requirements) or Use Cases (functional=20 requirements). If anything, it is closer to Use Cases (depending=20 on how one defines "Use Cases"; I have encountered at least two=20 different views of what they are.) In reality, tho, it is not like=20 either. A requirements spec that permits encapsulation is neither=20 functional nor OO, it is external interface-centric. =20 > What happens when a new requirement or requirement change comes along lat= er that=20 > effectively straddles 2 or more stimulus sets that were previously unique= ?=20=20 A requirement will never straddle two stimulus sets. Changes that=20 affect multiple stimulus sets are considered multiple requirements=20 changes, not a single requirements change. Requirements have=20 sufficiently high granularity under Freedom to make this a non-issue. It is also worth pointing out that requirements are NOT recorded using natural language prose (i.e., sentences) in Freedom. Parnas once wrote=20 "PROSE IS THE SIGN OF AN ERROR" (his caps) in a requirements spec. Freedom follows this guidance and totally avoids prose for requirements capture. This also helps avoid "straddling" and similar sticky issues that can easily result from using prose. > I have found that approaches that depend on knowing all the requirements = at the beginning of a > project are delusional in most domains, and are gen= erally resistant to change. As mentioned above, Freedom in no way demands or expects all=20 requirements to be defined up front. The whole approach is=20 predicated on the assumption that requirements WILL change=20 throughout the entire life of the software, including during development. This includes all ways that they might change: add, modify, delete. Freedom handles all these requirements=20 change possibilities equally cleanly. > What happens when a "unique stimulus set of the functionality tree" leads= to a "functionality module" that is so large that further decomposition an= d encapsulation is highly desirable? The granularity of requirements is sufficiently fine that overly large requirements encapsulation classes never result when the functionality tree and its constituent stimulus sets are specified=20 properly. Various well-established rules of thumb come into play=20 in this regard. One of the better known and most important is the=20 Rule of 7+-2. Thus, the problem you postulate is not a problem=20 in practice. If it did become a problem due to poor functionality tree specification, the users would probably be the first to drag=20 your tail to the carpet about it. So the users act as another sanity check against this happening. Good questions. They show an appreciation of important issues, and a healthy constructive skepticism for Freedom's ability to address them. It's a pleasure answering such questions. I=20 hope you found the answers informative. Thanks very much, Steven. --=20 Rick Lutowski Principal, JReality [email protected] http://www.jreality.com =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Menthol Smokers Only! Click on the link below and=20 register to receive up to $50 in savings from one of=20 America's leading menthol brands.=20 http://click.topica.com/= caab4S3bUrKDAbWnbtkf/ Lorillard =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D For more information about AM, visit the Agile Modeling Home Page at www.ag= ilemodeling.com --^---------------------------------------------------------------- This email was sent to: = [email protected] EASY UNSUBSCRIBE click here: http://topica.com/u/?bUrKDA.= bWnbtk.= Z2NtYS1h Or send an email to: [email protected] For Topica's complete suite of email marketing solutions visit: http://www.topica.com/?p=3DTEXFOOTER --^----------------------------------------------------------------