FIGURE 1. A feature model for the Smart Home case study. From: On the Use of C# Partial Classes for the Implementation of Software Product Lines Comput J. 2017;60(1):86-109. doi:10.1093/comjnl/bxw068 Comput J | © The British Computer Society 2016. All rights reserved. For Permissions, please email: journals.permissions@oup.com
FIGURE 2. Object-oriented design of the Smart Home SPL. From: On the Use of C# Partial Classes for the Implementation of Software Product Lines Comput J. 2017;60(1):86-109. doi:10.1093/comjnl/bxw068 Comput J | © The British Computer Society 2016. All rights reserved. For Permissions, please email: journals.permissions@oup.com
FIGURE 3. Feature composition using object-orientation. From: On the Use of C# Partial Classes for the Implementation of Software Product Lines Comput J. 2017;60(1):86-109. doi:10.1093/comjnl/bxw068 Comput J | © The British Computer Society 2016. All rights reserved. For Permissions, please email: journals.permissions@oup.com
FIGURE 4. Gateway implementation using partial classes. From: On the Use of C# Partial Classes for the Implementation of Software Product Lines Comput J. 2017;60(1):86-109. doi:10.1093/comjnl/bxw068 Comput J | © The British Computer Society 2016. All rights reserved. For Permissions, please email: journals.permissions@oup.com
FIGURE 5. Excerpt of the Smart Home SPL design. From: On the Use of C# Partial Classes for the Implementation of Software Product Lines Comput J. 2017;60(1):86-109. doi:10.1093/comjnl/bxw068 Comput J | © The British Computer Society 2016. All rights reserved. For Permissions, please email: journals.permissions@oup.com
FIGURE 6. Gateway constructor using partial classes. From: On the Use of C# Partial Classes for the Implementation of Software Product Lines Comput J. 2017;60(1):86-109. doi:10.1093/comjnl/bxw068 Comput J | © The British Computer Society 2016. All rights reserved. For Permissions, please email: journals.permissions@oup.com
FIGURE 8. Method extension using the Slicer Pattern. From: On the Use of C# Partial Classes for the Implementation of Software Product Lines Comput J. 2017;60(1):86-109. doi:10.1093/comjnl/bxw068 Comput J | © The British Computer Society 2016. All rights reserved. For Permissions, please email: journals.permissions@oup.com
FIGURE 7. Overview of the Slicer Pattern. From: On the Use of C# Partial Classes for the Implementation of Software Product Lines Comput J. 2017;60(1):86-109. doi:10.1093/comjnl/bxw068 Comput J | © The British Computer Society 2016. All rights reserved. For Permissions, please email: journals.permissions@oup.com
FIGURE 9. A build file for composing partial classes. From: On the Use of C# Partial Classes for the Implementation of Software Product Lines Comput J. 2017;60(1):86-109. doi:10.1093/comjnl/bxw068 Comput J | © The British Computer Society 2016. All rights reserved. For Permissions, please email: journals.permissions@oup.com
FIGURE 10. Gateway constructor using partial classes. From: On the Use of C# Partial Classes for the Implementation of Software Product Lines Comput J. 2017;60(1):86-109. doi:10.1093/comjnl/bxw068 Comput J | © The British Computer Society 2016. All rights reserved. For Permissions, please email: journals.permissions@oup.com