WEBVTT

1
00:00:00.000 --> 00:00:07.467
This overview explains how Boolean feature constraints
and their identities change across model revisions.

2
00:00:07.467 --> 00:00:15.100
A familiar model name does not guarantee that
a cached result remains valid after a constraint changes.

3
00:00:15.400 --> 00:00:21.133
Let P mean the premium option is selected and B mean its base option is selected.

4
00:00:21.133 --> 00:00:24.467
Version one requires premium to imply base.

5
00:00:24.467 --> 00:00:31.367
A configuration can omit premium, but selecting premium without base violates this rule.

6
00:00:31.367 --> 00:00:35.200
With premium and base both selected, implication is true.

7
00:00:35.200 --> 00:00:39.400
With premium selected and base absent, implication is false.

8
00:00:39.400 --> 00:00:43.867
We have evaluated complete selections under a specified version instead of treating a

9
00:00:43.867 --> 00:00:48.167
product label as a self-explanatory condition.

10
00:00:48.167 --> 00:00:51.633
Version two adds a resource requirement for premium.

11
00:00:51.633 --> 00:00:53.933
The complete rule has changed.

12
00:00:53.933 --> 00:00:58.400
An earlier satisfying selection must be checked under this revised conjunction before it

13
00:00:58.400 --> 00:01:01.525
is accepted as current.

14
00:01:01.525 --> 00:01:01.533
is accepted as current.

15
00:01:01.533 --> 00:01:08.167
Features form Boolean choices constrained by requires and excludes rules.

16
00:01:08.167 --> 00:01:17.167
Reusing an artifact across revisions needs exact source
and assumption identity, not just a familiar model name.

17
00:01:17.167 --> 00:01:22.600
Use Core, Cloud, Local, Analytics and Export.

18
00:01:22.600 --> 00:01:25.033
Require Core.

19
00:01:25.033 --> 00:01:33.133
Cloud and Local exclude each other; Analytics
requires Cloud; Export requires Analytics.

20
00:01:33.133 --> 00:01:40.933
With Core, Cloud and Analytics true, Local
and Export false, the selection is valid.

21
00:01:40.933 --> 00:01:45.767
In revision two, add Export requires Local.

22
00:01:45.767 --> 00:01:53.300
A selection enabling Export now conflicts with the
Cloud requirement inherited through Analytics.

23
00:01:53.300 --> 00:01:59.700
Export now requires Local, but it also requires Cloud through Analytics.

24
00:01:59.700 --> 00:02:03.100
Cloud and Local exclude each other.

25
00:02:03.100 --> 00:02:09.433
This is a conceptual revision example, not a deployed product benchmark.

26
00:02:09.433 --> 00:02:13.500
Retained feature-model lifecycle work keeps cold,

27
00:02:13.500 --> 00:02:21.100
warm and reload costs separate and does not justify a universal CM default.

28
00:02:21.100 --> 00:02:28.567
A validity bit, full count and distinct projected
feature count remain different queries.

29
00:02:28.869 --> 00:02:32.797
Return to the opening premium, base and resource model.

30
00:02:32.797 --> 00:02:37.584
Here P means premium, B means base, and R means resource.

31
00:02:37.584 --> 00:02:42.997
Its version two requires both P implies B and P implies R.

32
00:02:42.997 --> 00:02:45.764
This is separate from the other product model.

33
00:02:45.764 --> 00:02:50.362
Set P, B and R all to one.

34
00:02:51.112 --> 00:02:55.503
Premium now has both the base and resource requirements available.

35
00:02:55.503 --> 00:03:00.115
Each implication returns one, and their conjunction returns one.

36
00:03:00.115 --> 00:03:09.549
This revised rule is not a blanket rejection of premium configurations; it rejects only selections that violate at least one required clause.

37
00:03:10.299 --> 00:03:13.913
This case establishes a specific contrast.

38
00:03:13.913 --> 00:03:17.330
The revised policy accepts this selection.

39
00:03:17.330 --> 00:03:20.503
Recompute decisions under the current version.

40
00:03:20.503 --> 00:03:27.485
Keep the input, intermediate values, and conclusion together when comparing it with the previous case.

41
00:03:27.485 --> 00:03:33.963
The calculated answer belongs to this complete assignment under the stated rule.

42
00:03:34.293 --> 00:03:37.893
Take premium and base selected but resource absent.

43
00:03:37.893 --> 00:03:43.193
Version one only checked premium's dependence on base, so it accepted this selection.

44
00:03:43.193 --> 00:03:46.893
That old result is correct for the old rule.

45
00:03:46.893 --> 00:03:50.293
The new implication fails because premium is selected while the

46
00:03:50.293 --> 00:03:52.793
required resource is absent.

47
00:03:52.793 --> 00:03:57.459
Combining the old successful clause with this zero gives zero.

48
00:03:57.459 --> 00:04:01.693
The selection is rejected under version two.

49
00:04:01.693 --> 00:04:05.726
The old final decision cannot stand in for the new one.

50
00:04:05.726 --> 00:04:11.293
That does not require discarding every compatible unchanged subexpression.

51
00:04:11.293 --> 00:04:16.893
Track the full rule version and the dependencies of each reusable artifact so that valid

52
00:04:16.893 --> 00:04:21.889
reuse is distinguished from a stale answer.

53
00:04:21.889 --> 00:04:21.893
reuse is distinguished from a stale answer.

54
00:04:21.893 --> 00:04:28.126
Revalidate or invalidate dependent artifacts after a revision.

55
00:04:28.126 --> 00:04:35.826
Keep validity, full-assignment counts, and projected feature counts distinct.
