Best Practice
Best Practice
Figure 1. Software product line essential activities [5] Figure 2. RUP best practices and software product line
activities [5]
1364
continuously gives feed back to both. The whole enable management activity to organize technical and
process clearly indicates that inherently iterative non-technical aspects of product line development.
development approach is considerably adopted through
F. Visual Modeling
out the software product line development.
The visual modeling practice in core asset
B. Component Based Architecture development will elaborate requirements and gives us
Conceptually software product line emphasis on a visual model of the entire product under
reusability of existing component. Component based development. This will help us in understanding
architecture practice will enable to identify existing requirements, functionality of the product,
and new components to fit into development activity. identification of various stakeholders and their
The development activity structures the whole product perception about product line. Software product line
into modular component architecture to utilize the core analysis, which is an integral part of core asset
asserts identified during core asset development. development activity, recommends use case model,
feature diagram and the object model to represent the
C. Verify Quality
requirements.
The verifying quality practice introduced in an early
stage during product development will reduce the II. E-COMMERCE PRODUCT LINE CASE STUDY
product defect considerably. The requirement is not
only to verify the end product but also to verify and We used reactive approach of software product line
validate the whole process starting from the beginning development, and build an E-Commerce Application
to end for verifying quality. Therefore it is for the online pharmacy. During the development
recommended to introduce verifying quality practice phase we strictly follow the best practices of Rational
during all three-core activities of software product line Unified Process. Our component based design
development. This will enable us to verify the core approach yields various components of the application
assets, validate the management activities and perform and we started building the Core Asset repository.
a quality assessment of the development process and Control changes approach made us possible to
the product itself. introduce changes in our application as well as keep
our core assets updated.
D. Control Changes We model visually the entire application by using
The arrows in the rotating circles of Figure 2 UML, which helped us to clearly understand and
indicates that the essential activities of software manage requirements. We verified quality of each and
product line development gives and receives feed back every component. After completing the first
from next activity. For example in any iteration after application for Canada Medicose Ltd, we organize our
identifying core assets, management phase describe core assets and produced two more products with the
how to make use of those core asset and then name Canada Family Pharmacy and Pharma Super
development phase implements the concept, any Store based on the same architecture but variability in
deficiency present in the development phase will certain functions. For all successive products we used
reflect in introducing changes in the other activities. the existing core assets for development and keep on
The new requirements can be accommodated in adding new entities in our core asset repository.
iteration after defining the core assets and updating the Figure 3 shows the development time for the three
production plans. Control Changes practice would products. It describes how development time is
enable to introduce changes in the existing reduced in successive product development.
requirements of the product line development and can
define the procedures to update the management III. CONCLUSION
activity in order to accommodate changes in the
development phase. The best practices of Rational Unified Process can
play a considerable role in further strengthening the
E. Manage Requirements process of software product line development. Iterative
The manage requirement practice if introduced development practice is inherently present in the
during core asset development and management conceptual model of software product line
activity then it would elaborate and elicit requirements development. Control changes practice can provide a
in an effective way to reduce inconsistencies in the systematic way to accommodate the changes required
product line development requirements. The effective in the product line.
requirement analysis will lead to low defect probability Verifying quality at all iterations during various
in the product. Properly managed requirements will activities of software product line development can
1365
reduce defects in product line. Manage requirements Component based architecture can result in increase of
can increase the productivity of cores asset core assets and further increase the chances of
development and management activities of software reusability. This work illustrates how best practices
product line development. Visual modeling can can be incorporated and managed at various activities
elaborate requirements for product line development. of software product line development.
ACKNOWLEDGMENT
Dr. L. F. Capretz is currently spending his
sabbatical leave with the Department of Computer
Science at the University of Sharjah, in the United
Arab Emirates.
REFERENCES
[1] IBM, RUP Best Practices for Software Development Teams,
http://www.rational.com/media/whitepapers/rup_bestpractices.
pdf, 2008.
[2] F. Ahmed and M. Saeed, “Analysis of Involvement of Six Best
Practices of RUP in OOSP”, Proceedings of 5th International
Conference on Enterprise Information System, Angers, France,
2002, pp. 523-526.
[3] SEI, Software Product Lines, Software Engineering Institute,
http://www.sei.cmu.edu/plp/product_line_overview.html, 2008.
[4] C. W. Krueger, “Software Product Line Reuse in Practice”,
Proceedings of the 3rd IEEE Symposium of Application-Specific
Systems and Software Engineering Technology, 2000.
[5] Clements P. and Northrop L.: Software Product Lines:
Practices and Patterns, Addison Wesley, 2002.
1366