Introduction to the Special Issue on Software Architecture
IEEE Transactions on Software Engineering - Special issue on software architecture
Object solutions: managing the object-oriented project
Object solutions: managing the object-oriented project
Organizational Factors and Reuse
IEEE Software
A flexible approach to alliances of complex applications
Proceedings of the 21st international conference on Software engineering
Product-line architectures in industry: a case study
Proceedings of the 21st international conference on Software engineering
Toward safe reuse of product family specifications
SSR '99 Proceedings of the 1999 symposium on Software reusability
Software product lines: organizational alternatives
ICSE '01 Proceedings of the 23rd International Conference on Software Engineering
Commonality and Variability in Software Engineering
IEEE Software
Product Instantiation in Software Product Lines: A Case Study
GCSE '00 Proceedings of the Second International Symposium on Generative and Component-Based Software Engineering-Revised Papers
Representing Variability in Software Product Lines: A Case Study
SPLC 2 Proceedings of the Second International Conference on Software Product Lines
Maturity and Evolution in Software Product Lines: Approaches, Artefacts and Organization
SPLC 2 Proceedings of the Second International Conference on Software Product Lines
Recovery of Architectural Structure: A Case Study
Proceedings of the Second International ESPRIT ARES Workshop on Development and Evolution of Software Architectures for Product Families
Proceedings of the Second International ESPRIT ARES Workshop on Development and Evolution of Software Architectures for Product Families
The Relation Between the Product Line Development Entry Points and Reengineering
Proceedings of the Second International ESPRIT ARES Workshop on Development and Evolution of Software Architectures for Product Families
Representing variability in a family of MRI scanners
Software—Practice & Experience
Empirical Software Engineering
A product line engineering practices model
Science of Computer Programming - Special issue on system and software architectures(IWSSA'04)
Journal of Systems and Software
The software product line architecture: An empirical investigation of key process activities
Information and Software Technology
A systematic review of domain analysis solutions for product lines
Journal of Systems and Software
REFSQ'07 Proceedings of the 13th international working conference on Requirements engineering: foundation for software quality
An organizational maturity model of software product line engineering
Software Quality Control
Experiences in deploying model-driven engineering
SDL'07 Proceedings of the 13th international SDL Forum conference on Design for dependable systems
The importance of documentation, design and reuse in risk management for SPL
Proceedings of the 28th ACM International Conference on Design of Communication
Evolving KobrA to support SPL for WebGIS development
OTM'11 Proceedings of the 2011th Confederated international conference on On the move to meaningful internet systems
Hi-index | 4.10 |
Many organizations today are investing in software product-line architecture-for good reason: A well-executed architecture enables organizations to respond quickly to a redefined mission or to new and changing markets. It allows them to accelerate the introduction of new products and improve their quality, to reengineer legacy systems, and to manage and enhance the many product variations needed for international markets. Sharing a common software architecture across a product line brings a core set of knowledge and assets to the development process. Product-line architecture not only reduces the complexity and cost of developing and maintaining code, but also streamlines the production of documentation, training materials, and product literature. However, technically excellent product-line architectures do fail, often because they are not effectively used. Some are developed but never used; others lose value as product teams stop sharing the common architecture; still others achieve initial success, but fail to keep up with a rapidly growing product mix. Sometimes the architecture deterioration is not noticed at first, masked by what appears to be a productivity increase. To learn what factors determine the effective use of software architecture, we looked at Nortel (Northern Telecom), a company with nearly 20 years of experience developing complex software architecture for telecommunications product families. We identified six principles that help reduce the complexity of an evolving family of products and that support and maintain the effective use and integrity of the architecture. Nortel's experience provides compelling evidence of software architecture's benefits and risks and shows the importance of organizational behaviors. We observed, however, that applying a principle without discrimination-too much, too little, or without focus-also caused negative consequences. How does one strike a balance? Our conclusion is that architecture is most effective in delivering value and managing complexity when the six critical organizational principles are applied in concert.