Hi,
If I understand well you are calling a feature a CFS that has a dependency relationship with a 'main' CFS.
You use it to model for example the "Call Forward Unconditional" feature of a "VOIP" service. A customer can subscribe to "Call Forward Unconditional" service only if he already subscribed to the "VOIP" service.
The TMF638 API already supports this concept via the ServiceRelationship.
The modelling used in TMF638 even support chaining of ServiceRelationships: "Call Forward Unconditional" depends on "VOIP" depends on "IP connectivity".
I just lived through a transformation project where the software vendor implemented a single, hierarchical dependency model using "features".
Particularly when you are modelling 60 CFS you will detect that some of these will be a feature of a feature or a feature depending on multiple CFS.
A full TMF638 model would support this graciously. By implementing Feature as you call them you will severely restrict your flexibility.
------Original Message------
Thanks all for your answers
@Koen Peeters, our logic to differentiate if a "thing" is a another CFS or a feature of a CFS, is to compare that "thing" to the CFS and check if it can leave without the CFS. Depending on the answer, it's a CFS or a feature.
We looked at the option to have all our features be CFS.
- Just for the Voice CFS, we would end up with more than 60 CFS just to represent the Voice service itself.
- We would also require to introduce a concept of CFS hierarchy to link the (Feature) CFS to the main Voice CFS.
- Finally, the PSR hourglass concept would not work anymore since the CFS layer would not be the thinner layer anymore.
@Jonathan Goldberg. We looked at the option of using boolean characteristic as well. We abandoned for few reasons reasons:
- For every Voice CFS creation, there would be more than 60 characteristics defaulted to 'false'
- The model works well for simple boolean structure, less for complex structure
At the end, we chose a model between the 100% CFS and the 100% characteristics, with the concept of Feature. The concept of feature works well as well with our inventory system which provides the "Configuration Item" capability (Config Items are "objects" that can be assigned or unassigned under a CFS). Our gap is with the TMF Model.
We are at the moment hesitating between 2 options:
- Introducing a new "Feature" object child of "ServiceRestriction". "Characteristic" would be child of "ServiceRestriction" and "Feature"
- Extending the "Characteristic" object with an attribute "action" and/or a type reflect the fact it's a Feature/capability
Regards
------------------------------
Stephane AH-KO
CGI Info Systems Management Consulting Inc.
------------------------------