marko 0.1.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (53) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +47 -0
  3. data/Gemfile.lock +3 -2
  4. data/README.md +16 -13
  5. data/Rakefile +5 -0
  6. data/STORY.md +44 -0
  7. data/_layouts/footer.md +4 -0
  8. data/_layouts/header.md +3 -0
  9. data/_layouts/layout.html +73 -0
  10. data/_layouts/robots.txt.erb +4 -0
  11. data/_layouts/sitemap.xml.erb +20 -0
  12. data/_layouts/styles.css +92 -0
  13. data/docs/changelog.html +74 -0
  14. data/docs/css/styles.css +92 -0
  15. data/docs/index.html +297 -0
  16. data/docs/readme.html +297 -0
  17. data/docs/robots.txt +4 -0
  18. data/docs/sitemap.xml +30 -0
  19. data/docs/story.html +132 -0
  20. data/exe/marko +4 -2
  21. data/lib/assets/demo/README.md +2 -2
  22. data/lib/assets/demo/src/ur/uc.general.flow.md +1 -1
  23. data/lib/assets/init/README.md +1 -1
  24. data/lib/assets/init/Rakefile +2 -2
  25. data/lib/assets/init/tt/custom.md.tt +19 -0
  26. data/lib/assets/init/tt/default.md.tt +4 -0
  27. data/lib/assets/samples/0_index.md +14 -0
  28. data/lib/assets/samples/1_intro.md +55 -0
  29. data/lib/assets/samples/2_stakh.md +21 -0
  30. data/lib/assets/samples/3_actors.md +10 -0
  31. data/lib/assets/samples/4_cases.md +53 -0
  32. data/lib/assets/samples/5_entities.md +18 -0
  33. data/lib/assets/samples/6_concerns.md +60 -0
  34. data/lib/assets/samples/SRS-IEEE-830-1998.md +293 -0
  35. data/lib/assets/samples/SRS-RUP.md +283 -0
  36. data/lib/assets/samples/business-case.md +116 -0
  37. data/lib/assets/samples/ears.md +112 -0
  38. data/lib/assets/samples/gen_punch_domain.rb +183 -0
  39. data/lib/assets/samples/requirements.md +105 -0
  40. data/lib/assets/samples/stakeholders.png +0 -0
  41. data/lib/assets/samples/vision.md +191 -0
  42. data/lib/marko/artifact.rb +3 -1
  43. data/lib/marko/assembler.rb +1 -0
  44. data/lib/marko/cli.rb +10 -2
  45. data/lib/marko/markup/compiler.rb +3 -9
  46. data/lib/marko/markup/decorator.rb +45 -30
  47. data/lib/marko/markup/storage.rb +37 -19
  48. data/lib/marko/tree_node.rb +3 -2
  49. data/lib/marko/version.rb +1 -1
  50. data/lib/marko.rb +8 -0
  51. data/sancho.yml +6 -0
  52. metadata +35 -4
  53. data/lib/assets/init/tt/artifact.md.tt +0 -3
@@ -0,0 +1,116 @@
1
+ # Business Case
2
+
3
+ @@skip
4
+
5
+ The purpose is communication! Each section should be written in the parlance of the intended audience; it should only contain enough information to help decision making.
6
+
7
+ ## Executive Summary
8
+
9
+ @@todo It should succinctly convey vital information about the project and communicate the entire story to the reader.
10
+
11
+ ## Finance
12
+
13
+ @@todo for those who will be approving funding and should include
14
+
15
+ @@skip
16
+
17
+ __A financial appraisal__ - identify the project's financial implications, compare project costs to forecast benefits, ensure every cost is considered, assess value of money, and predict cash flow.
18
+
19
+ __A sensitivity analysis__ - assess project risks, measure the impact of project outcomes or assumptions, and lets project accountants experiment with possible scenarios.
20
+
21
+ ## Project Definition
22
+
23
+ @@skip
24
+
25
+ This is the largest part of the business case and is for the project sponsor, stakeholders, and project team. It should address the following...
26
+
27
+ ### Business Objective
28
+
29
+ @@todo What is your goal?
30
+ @@todo What is needed to overcome the problem?
31
+ @@todo How will the project support the business strategy?
32
+
33
+ ### Benefits and Limitations
34
+
35
+ @@todo explain why you need a project in financial and non-financial benefits in turn
36
+
37
+ @@skip
38
+
39
+ * Generate revenue
40
+ * Save costs through efficiencies
41
+ * Improve quality
42
+ * Improve customer service
43
+ * Remain competitive
44
+ * To align to corporate strategy
45
+
46
+ ### Option Identification and Selection
47
+
48
+ @@todo identify the potential solutions to the problem and describe them in enough detail for the reader to understand.
49
+
50
+ @@skip
51
+
52
+ For instance, if the business case and proposed solution makes use of technology, make sure to explain how the technology is used and define the terms used in a glossary.
53
+
54
+ The final business case may contain three to five options - the short list - that includes a do nothing or benchmark option.
55
+
56
+ ### Scope, Impact, and interdependencies
57
+
58
+ @@todo describes the work needed to deliver the business objective and identifies those business functions affected by the project
59
+
60
+ @@todo state the project's scope and boundaries
61
+
62
+ @@todo consider the failure of other interrelated projects and how such dependencies may impact benefits
63
+
64
+ ### Outline Plan
65
+
66
+ @@todo list the major deliverables and include a brief project plan
67
+
68
+ @@skip
69
+
70
+ Ideally, the project should be divided into stages with key decisions preceding each stage. Use this section to answer the following questions:
71
+
72
+ * What is required?
73
+ * How is id done?
74
+ * Who does what?
75
+ * When will things happen?
76
+
77
+ ### Market Assessment
78
+
79
+ @@skip
80
+
81
+ Provide a thorough assessment of the business context and make the underlying business interests explicit. Show a complete understanding of the marketplace in which your business operates, considering political, economical, sociological, technological, legal, and environmental factors (or PESTLE, if you like)
82
+
83
+ ### Risk assessment
84
+
85
+ @@skip
86
+
87
+ Summarize the significant risks and opportunities and how they are managed. The risks included should cover those that could arise from you projects or the organization's ability to deliver change, including the following questions:
88
+
89
+ * What risks are involved?
90
+ * What are the consequences of a risk happening?
91
+ * What opportunities may emerge?
92
+ * What plans are in place to deal with the risks?
93
+
94
+ ### Project Approach
95
+
96
+ @@skip
97
+
98
+ The project approach describes how the project is tackled. That is, the way in which work is done do deliver the project. For instance, a project with much of the work contracted out is likely to take a different approach to a project that develops an in-house solution.
99
+
100
+ ### Purchasing Strategy
101
+
102
+ @@skip
103
+
104
+ This section describes how a project is to be financed and whether a decision to buy, lease, or outsource should be taken by the organization before purchasing.
105
+
106
+ Moreover, the purchasing strategy should describe the purchasing process used. A formal procurement process may save time and money and reduce project risk.
107
+
108
+ ## Project Organization
109
+
110
+ @@skip
111
+
112
+ The section is of most interest to the project manager, project team, and managers responsible for delivering work to the project, and should include:
113
+
114
+ 1. __Project governance__ - show how the project is structured and the different levels of decision-making.
115
+
116
+ 2. __Progress reporting__ - define for project progress will be recorded and reported to the project board.
@@ -0,0 +1,112 @@
1
+ % Easy approach to requirements syntax (EARS)
2
+
3
+ # Overview
4
+
5
+ Type Template
6
+ ----------------- --------
7
+ Normal behavior The `system name` shall `system response`.
8
+ Unwanted behavior If `optional preconditions trigger`, then the `system name` shall `system response`.
9
+ Event-driven When `trigger` the `system name` shall `system response`.
10
+ State-driven While `in a specific state` the `system name` shall `system response`.
11
+ Options Where `feature is included` the `system name` shall `system response`.
12
+ Complex Where the car includes an "owner alert" system, if the car detects attempted intrusion, then the car shall send a message to the owner and activate the car alarm.
13
+
14
+ # General template
15
+
16
+ `optional preconditions` `optional trigger` the `system name` shall `system response`.
17
+
18
+ # Normal behaviour
19
+
20
+ The `system name` shall `system response`.
21
+
22
+ ## Car
23
+
24
+ __[car.1]__ The car shall have a maximum retail sale price of XXX.
25
+
26
+ __[car.2]__ The car shall be compliant with the safety requirements defined in XXX.
27
+
28
+ ## Laptop
29
+
30
+ __[lap.1]__ The laptop shall have a mass of no more than XXX grams.
31
+
32
+ __[lap.2]__ The laptop shall have a minimum battery life of XXX hours.
33
+
34
+ # Unwanted behavior
35
+
36
+ If `optional preconditions` `trigger`, then the `system name` shall `system response`.
37
+
38
+ ## Car
39
+
40
+ __[car.1]__ If the car detects attempted intrusion, then the car shall operate the car alarm.
41
+
42
+ __[car.2]__ If the car detects low oil pressure, then the car shall display a "low oil pressure" warning.
43
+
44
+ ## Laptop
45
+
46
+ __[lap.1]__ If the incorrect password is entered, then the laptop shall display XXX warning message.
47
+
48
+ __[lap.2]__ If the laptop is connected to a non-compatible device, then the laptop shall prevent transfer of data, prevent transfer of charge, display XXX warning message and not be damaged.
49
+
50
+ # Event-driven, When
51
+
52
+ When `trigger` the `system name` shall `system response`.
53
+
54
+ ## Car
55
+
56
+ __[car.1]__ When the clutch pedal is depressed, the car shall disengage the driving force.
57
+
58
+ __[car.2]__ When the "turn indicator" command is received, the car shall operate the indicator lights on the front, side and rear of the vehicle, and provide audible and visual confirmation to the driver.
59
+
60
+ ## Laptop
61
+
62
+ __[lap.1]__ When the laptop is off and the power button is pressed, the laptop shall boot up.
63
+
64
+ __[lap.2]__ When the laptop is running and the laptop is closed, the laptop shall enter "powersave" mode.
65
+
66
+ # State-driven, While
67
+
68
+ While `in a specific state` the `system name` shall `system response`.
69
+
70
+ ## Car
71
+
72
+ __[car.1]__ While the ignition is on, the car shall display the fuel level and the oil level to the driver.
73
+
74
+ __[car.2]__ While the key is in the ignition, the car alarm shall be inhibited.
75
+
76
+ __[car.3]__ While the handbrake is applied, the wheels shall be locked.
77
+
78
+ ## Laptop
79
+
80
+ __[lap.1]__ While the laptop is running on the battery and the battery is below XXX % charge, the laptop shall display "low battery".
81
+
82
+ __[lap.2]__ While an external audio output device is connected, the laptop shall mute the built-in speaker and send the audio output signal to the external audio output device.
83
+
84
+ # Option, Where
85
+
86
+ Where `feature is included` the `system name` shall `system response`
87
+
88
+ ## Car
89
+
90
+ __[car.1]__ Where the car has electric windows, the electric window controls shall be on the driver's door panel.
91
+
92
+ __[car.2]__ Where the car includes automatic windscreen wipers, the car shall sense moisture on the windscreen and operate the windscreen wipers without driver commands.
93
+
94
+ ## Laptop
95
+
96
+ __[lap.1]__ Where a "long life" battery is fitted, the laptop shall have a minimum battery life of XXX hours.
97
+
98
+ __[lap.2]__ Where the laptop is a "lightweight" model, the laptop shall have a mass of no more than XXX grams.
99
+
100
+ # Complex requirements
101
+
102
+ ## Car
103
+
104
+ __[car.1]__ Where the car includes an "owner alert" system, if the car detects attempted intrusion, then the car shall send a message to the owner and activate the car alarm.
105
+
106
+ __[car.2]__ While the car is being driven forwards above a speed of XXX, if the driver attempts to engage reverse gear, then the car shall prevent engagement of reverse gear.
107
+
108
+ ## Laptop
109
+
110
+ __[lap.1]__ Where the laptop includes "voice input" option, while the voice input option is selected, the laptop shall accept voice input commands.
111
+
112
+ __[lap.2]__ While the laptop is running on mains electrical power, if the power cable is disconnected, then the laptop shall display a warning message.
@@ -0,0 +1,183 @@
1
+ # Generate actors, use cases, and entites from Punch::Domain::DSL
2
+ # see [Punch](https://github/nvoynov/punch)
3
+ #
4
+ require "optparse"
5
+ require "erb"
6
+ require "punch"
7
+ require "optparse"
8
+ require_relative "domain"
9
+ require_relative "sampler"
10
+ include Punch
11
+
12
+ @domain = build_domain
13
+
14
+ parser = OptionParser.new {|cmd|
15
+ cmd.banner = "Usage: ruby marko.rb [OPTIONS]"
16
+ cmd.on('-b DIRECTORY', '--basedir DIRECTORY',
17
+ 'Setup base punching directory', String)
18
+ cmd.on('-d', '--dry-run true|false', 'Print result instead of punch', TrueClass)
19
+ }
20
+
21
+ puts "Punch Marko Genearator v0.1"
22
+ puts "#{parser}"
23
+ options = {}
24
+ parser.parse(ARGV, into: options)
25
+
26
+ nulldir = File.expand_path(__FILE__).sub(/\.rb$/, '')
27
+ basedir = options.fetch(:basedir, nulldir)
28
+ dryrun = options.fetch('dry-run'.to_sym, true)
29
+
30
+ generate = proc{|file, body|
31
+ meth = dryrun == true ? Sampler.method(:preview) : Sampler.method(:write)
32
+ meth.(file, body)
33
+ }
34
+
35
+ samples = Sampler.()
36
+ # special case for services, few files
37
+ services_source = "fr/uc/%{uc}.md"
38
+ services_sample = samples.delete(services_source)
39
+ samples.each{|source, sample|
40
+ location = File.join(basedir, source)
41
+ erbsample = sample.match?(/@domain/)
42
+ content = if erbsample
43
+ renderer = ERB.new(sample, trim_mode: "-")
44
+ renderer.result
45
+ else
46
+ sample
47
+ end
48
+ generate.(location, content)
49
+ }
50
+
51
+ # services_source = "fr/uc/%{uc}.md"
52
+ # services_sample = samples.delete(service_source)
53
+ renderer = ERB.new(services_sample, trim_mode: "-")
54
+ @domain.services.each{|model|
55
+ modelstr = model.name.to_s.gsub(/(\s|_)/, '.')
56
+ location = File.join(basedir, services_source % {uc: modelstr})
57
+ @model = model
58
+ generate.(location, renderer.result)
59
+ }
60
+
61
+
62
+ __END__
63
+
64
+ @@sample actors.md
65
+ # Actors
66
+ {{id: actors, parent: root}}
67
+
68
+ The system should provide services for the following actors:
69
+
70
+ @@list
71
+
72
+ <% @domain.actors.each do |actor| -%>
73
+ ## <%= actor.name.capitalize %>
74
+ {{id: .<%= actor.name.downcase %>}}
75
+
76
+ <%= actor.desc %>
77
+ <% end %>
78
+
79
+ @@sample fr/uc.md
80
+ # Use Cases
81
+ {{id: fr.uc, parent: fr}}
82
+
83
+ @@list
84
+
85
+ <% @domain.actors.each do |actor| -%>
86
+ <%
87
+ order_index = actor.services
88
+ .map(&:name)
89
+ .map(&:to_s)
90
+ .map{ _1.gsub(/(\s|_)/, '.') }
91
+ .map{ _1.split(?.).drop(1).join(?.) }
92
+ .join(' .')
93
+ -%>
94
+ ## <%= actor.name.capitalize %>
95
+ {{id: fr.uc.<%= actor.name %>, order_index: .<%= order_index %>}}
96
+
97
+ The system must provide the following services for <%= actor.name.capitalize %> actor:
98
+
99
+ @@list
100
+
101
+ <% end %>
102
+
103
+ @@sample fr/en.md
104
+
105
+ # Entities
106
+ {{id: .en, parent: fr}}
107
+
108
+ The system utilises the following entities:
109
+
110
+ @@list
111
+
112
+ <% @domain.entities.each do |model| -%>
113
+ ## <%= model.name.capitalize %>
114
+ {{id: .<%= model.name.downcase %>}}
115
+
116
+ <%= model.desc %>
117
+
118
+ The entity should provide the following properties:
119
+
120
+ Property | Type | Multiplicity | Description
121
+ -------- | ---- | ------------ | -----------
122
+ <% model.params.each do |param| -%>
123
+ <%= param.name %> | <%= param.sentry %> | 1 | <%= param.desc %>
124
+ <% end -%>
125
+
126
+ Table: Entity "<%= model.name.capitalize %>"
127
+
128
+ <% end %>
129
+
130
+ @@sample fr/uc/%{uc}.md
131
+ <%
132
+ dummy = @model.name.to_s.gsub(/(\s|_)/, '.').split(?.).map(&:downcase)
133
+ id = dummy.drop(1).join(?.)
134
+ parent = dummy.first
135
+ header = dummy.drop(1).map(&:capitalize).join(?\s)
136
+ -%>
137
+ # <%= header %>
138
+ {{id: .<%= id %>, parent: fr.uc.<%= parent %>}}
139
+
140
+ <%= @model.desc %>
141
+
142
+ **Actors and their Goals**
143
+
144
+ 1. User, wants to get
145
+ 2. System, wants to ensure
146
+
147
+ **Guarantee**
148
+
149
+ [Success]{.underline}
150
+
151
+ 1.
152
+ 2.
153
+
154
+ [Failure]{.underline}
155
+
156
+ 1.
157
+ 2.
158
+
159
+ **Extend**
160
+
161
+ - no use case extensions
162
+ @@todo - [\[fr.uc]]
163
+
164
+ **Include**
165
+
166
+ - no use case inlcusions
167
+ @@todo - [\[fr.uc]]
168
+
169
+ **Main flow**
170
+
171
+ 1.
172
+ 2.
173
+
174
+ **Extension**
175
+
176
+ [1a] something faulty
177
+
178
+ **Data**
179
+
180
+ Entities:
181
+
182
+ @@todo - [\[fr.ent.]];
183
+ @@todo - [\[fr.ent.]].
@@ -0,0 +1,105 @@
1
+ % Requirements (BABOK)
2
+
3
+ # Classification
4
+
5
+ __Business requirements__: statements of goals, objectives, and outcomes that describe why a change has been initiated. They can apply to the whole of an enterprise, a business area, or a specific initiative.
6
+
7
+ __Stakeholder requirements__: describe the needs of stakeholders that must be met in order to achieve the business requirements. They may serve as a bridge between business and solution requirements
8
+
9
+ __Solution requirements__ : describe the capabilities and qualities of a solution that meets the stakeholder requirements. They provide the appropriate level of detail to allow for the development and implementation of the solution. Solution requirements can be divided into two sub-categories:
10
+
11
+ * __Functional requirements__: describe the capabilities that a solution must have in terms of the behaviour and information that the solution will manage, and
12
+ * __Non-functional requirements or quality of service requirements__: do not relate directly to the behaviour of functionality of the solution, but rather describe conditions under which a solution must remain effective or qualities that a solution must have.
13
+
14
+ __Transition requirements__: describe the capabilities that the solution must have and the conditions the solution must meet to facilitate transition from the current state to the future state, but which are not needed once the change is complete. They are differentiated from other requirements types because they are of a temporary nature. Transition requirements address topics such as data conversion, training, and business continuity.
15
+
16
+ # Life cycle
17
+
18
+ The purpose is to ensure that business, stakeholder, and solution requirements and designs are aligned to one another and that the solution implements them.
19
+
20
+ @@list
21
+
22
+ ## Trace
23
+
24
+ Business Needs <-> Business Requirements <-> Stakeholder Requirements <-> Solution Requirements (Design <-> Code <-> Test)
25
+
26
+ ## Maintain
27
+
28
+ The purpose is to retain requirement accuracy and consistency throughout and beyond the change during the entire requirements life cycle, and to support reuse of requirements in other solutions.
29
+
30
+ ## Prioritize
31
+
32
+ Typical factors that influence prioritization include:
33
+
34
+ __Benefit__ the advantage that accrues to stakeholders as a result of requirement implementation, as measured against the goals and objectives for the change. The benefit provided can refer to a specific functionality, desired quality, or strategic goal or business objective. If there are multiple stakeholders, each group may perceive benefits differently. Conflict resolution and negotiation may be employed to come to consensus on overall benefit.
35
+
36
+ __Penalty__ the consequences that result from not implementing a given requirement. This includes prioritizing requirements in order to meet regulatory or policy demands imposed on the organization, which may take precedence over other stakeholder interests. Penalty may also refer to the negative consequence of not implementing a requirement that improves the experience of a customer.
37
+
38
+ __Cost__ the effort and resources needed to implement the requirement. Information about cost typically comes from the implementation team or the vendor. Customers may change the priority of a requirement after learning the cost. Cost is often used in conjunction with other criteria, such as cost-benefit analysis.
39
+
40
+ __Risk__ the chance that the requirement cannot deliver the potential value, or cannot be met at all. This may include many factors such as the difficulty of implementing a requirement, or the chance that stakeholders will not accept a solution component. If there is a risk that the solution is not technically feasible, the requirement that is most difficult to implement may be prioritized to the top of the list in order to minimize the resources that are spent before learning that a proposed solution cannot be delivered. A proof of concept may be developed to establish that high risk options are possible.
41
+
42
+ __Dependencies__ relationships between requirements where one requirement cannot be fulfilled unless the other requirement is fulfilled. In some situations, it may be possible to achieve efficiencies by implementing related requirements at the same time. Dependencies may also be external to the initiative, including but not limited to other teams’ decisions, funding commitments, and resource availability. Dependencies are identified as part of the task Trace Requirements (p. 79).
43
+
44
+ __Time Sensitivity__ the 'best before' date of the requirement, after which the implementation of the requirement loses significant value. This includes time-to-market scenarios, in which the benefit derived will be exponentially greater if the functionality is delivered ahead of the competition. It can also refer to seasonal functionality that only has value at a specific time of year.
45
+
46
+ __Stability__ the likelihood that the requirement will change, either because it requires further analysis or because stakeholders have not reached a consensus about it. If a requirement is not stable, it may have a lower priority in order to minimize unanticipated rework and wasted effort.
47
+
48
+ __Regulatory or Policy Compliance__ requirements that must be implemented in order to meet regulatory or policy demands imposed on the organization, which may take precedence over other stakeholder interests.
49
+
50
+ ## Assess changes
51
+
52
+ The purpose is to evaluate the implications of proposed changes to requirements and designs. The task is performed as new needs or possible solutions are identified.
53
+
54
+ * is it align to the change strategy and/or solution scope?
55
+ * will increase the value of the solution?
56
+ * has conflicts with other requirements?
57
+ * or increase the level of risk?
58
+ * can be traced back to a need?
59
+
60
+ ## Approve
61
+
62
+ The purpose is to obtain agreement on and approval of requirements and designs for business analysis work to continue and/or solution construction to proceed.
63
+
64
+ Business analysts are responsible for ensuring clear communication of requirements, designs, and other business analysis information to the key stakeholders responsible for approving that information.
65
+
66
+ Approval of requirements and designs may be formal or informal. Predictive approaches typically perform approvals at the end of the phase or during planned change control meetings. Adaptive approaches typically approve requirements only when construction and implementation of a solution meeting the requirement can begin.
67
+
68
+ Business analysts work with key stakeholders to gain consensus on new and changed requirements, communicate the outcome of discussions, and track and manage the approval.
69
+
70
+ # Quality
71
+
72
+ While quality is ultimately determined by the needs of the stakeholders who will use the requirements or the designs, acceptable quality requirements exhibit many of the following characteristics:
73
+
74
+ Quality Definition
75
+ -------------- ----------
76
+ Atomic self-contained and capable of being understood independently of other requirements or designs.
77
+ Complete enough to guide further work and at the appropriate level of detail for work to continue. The level of completeness required differs based on perspective or methodology, as well as the point in the life cycle where the requirement is being examined or represented.
78
+ Consistent aligned with the identified needs of the stakeholders and not conflicting with other requirements.
79
+ Concise contains no extraneous and unnecessary content.
80
+ Feasible reasonable and possible within the agreed-upon risk, schedule, and budget, or considered feasible enough to investigate further through experiments or prototypes.
81
+ Unambiguous the requirement must be clearly stated in such a way to make it clear whether a solution does or does not meet the associated need.
82
+ Testable able to verify that the requirement or design has been fulfilled. Acceptable levels of verifying fulfillment depend on the level of abstraction of the requirement or design.
83
+ Prioritized ranked, grouped, or negotiated in terms of importance and value against all other requirements.
84
+ Understandable represented using common terminology of the audience.
85
+
86
+ # Attributes
87
+
88
+ Attribute Definition
89
+ ------------------------ ----------------------
90
+ rationale a justification
91
+ originator who raised
92
+ fit criterion how to test if the solution matches the requirement
93
+ customer satisfaction if this requirement is successfully implemented; 1-5, uninterested - extremely pleased
94
+ customer dissatisfaction measure of stakeholders unhappiness if this requirements is not part of the final product. 1-5, hardly matters - extremely displeased
95
+ conflict
96
+ complexity
97
+ effort
98
+ risk
99
+ priority
100
+ derived when a requirement is derived from another requirement
101
+ depends when a requirement depends on another
102
+ necessity when it only makes sense to implement a particular requirement if a related requirement is also implemented.
103
+ lower effort when a requirement is easier to implement if a related requirement is also implemented.
104
+ satisfy an implementation element, eg functional requirement satisfy a solution component
105
+ validate a test case that can determine whether a solution fulfills the requirement
Binary file