UML Components is a Component-Based Development method by Cheesman and Daniels (2001) which is described in the same named book.
My university has a UML Component Development module teaching exclusively from the aforementioned book. I’ve learned quite well, but can’t find anyone in the industry using it.
Is UML Components simply one particular method which has been selected for educational purposes as a good example of Component-Based Development? There are certainly more universities teaching it, i.e. The University of Helsinky
UML Components
After conducting a research on my own initiative, I found that there was something called CBD CAB (~1999). The Component-Based Development Customer Advisory Board no longer exists. It had 80 worldwide member organizations and the aim was best practices in Component-Based Development.
Cheesman’s prediction that the OMG group may adopt his method in the future didn’t fulfill. The OMG adopted SysML which originated in January, 2001. Cheesman worked on Component-Based Development in Sterling Software which was acquired by CA in 2000. He co-authored several publications on CBD and now he is the director at Strata Software.
Other CBD Methods
Catalysis (Desmond D’Souza and Alan Cameron Wills 1999), KobrA (Atkinson 2001), Fusion (Coleman 1993), OPEN process framework (Graham, Henderson-Sellers & Younessi, 1997), Business Component Factory (Herzum and Sims 2000), RUP (Jacobson 1999), and more.
Resources
Wikipedia mentions Catalysis II built on top of Catalysis, UML Components, and other methods. There is also one relatively modern known as rCOS (2005), then a publication on Component-Based Software Engineering (2006), wikipedia resources, and even a CBSE International Conference (2012) from the ACM Special Interest Group on Software Engineering.
Current Situation
With the help of a book (Component-Based Software Development: Case Studies by Kung Kiu Lau), it started making sense.
There is a really large amount of various component frameworks on the market for all modern languages. Eventually, a new one can be developed and re-used.
Possible Answer
Therefore, CBD / CBSE are successfully used in the industry; however, it’s somewhat confusing to start studying the problematics from UML Components by Cheesman & Daniels. To conclude, modern component identification approaches and methodologies are described in Component-Based Software Engineering international symposiums, one of which is the CBSE 12th International Symposium (2009). Open it to find what is available today.
Note: I intentionally didn’t answer my question with the answer button, so that it’s open for suggestions. If you have an experience with CBD, please post it as an answer
I read the book and found it very useful in the industry despite the fact that in 13 years, I never found anyone following a book literally.
For my practical experience: seven years ago, I was in a startup and we needed to build an Unstructured Information Management server. We used the component approach to draw the system components from use cases and quality attributes, mixing the Kobra rules and principles of component composition, aggregation, and definition with the Design by Contract definition of UML CBD which is about deriving interfaces from use cases and activity / sequence diagrams.
Then we did some benchmarking and spike to see what we can find as open source components and what we need to build. We matched interfaces described by us at the component level with those present in open source components. For example, we needed a Named-Entity Recognition engine. We derived the interfaces from our use cases and activity diagrams, researched some Open Source components, and finally decided for Annie from GATE. We chose it also because GATE internally uses the component-based approach for various parts of the NLP engine.
In a few words, it was amazing because we could divide and conquer the system. Some parts were developed by us, other could be reused from open source component-based systems. If you use the component approach, there is no difference between “buy” and make in the technological model of the Zachman Framework.
So the benefit of the approach for us was to have an objective view of what we have to do and what we can build. In a few weeks, we had a working prototype and could go back to our stakeholders.
I think I never started using it literally, but I never stopped using this principle. Simply because in the industry, you use books as a pianist uses books during a concert.
Books teach principles and knowledge, not practices and competencies.
You can read awesome books about piano playing, but if you don’t practice you’ll never be a pianist; however, if you practice and don’t read the book, you probably won’t be as good as you could be.
In a few words: I think the class is worth it.