0% found this document useful (0 votes)
44 views4 pages

Best Practice

articulo

Uploaded by

Doris Chicaiza
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
44 views4 pages

Best Practice

articulo

Uploaded by

Doris Chicaiza
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

Proceedings of the International Conference on Computer and Communication Engineering 2008 May 13-15, 2008 Kuala Lumpur, Malaysia

Best Practices of RUP ® in Software Product Line Development

Faheem Ahmed1, Luiz Fernando Capretz2


1
College of Information Technology
United Arab Emirates University
P.O. Box 17555, Al-Ain, Abu Dhabi, United Arab Emirates
[email protected]
2
Department of Electrical and Computer Engineering
University of Western Ontario
London, Ontario, Canada, N6A 5B9
[email protected].

Abstract Iterative development is composed of several


iterations within a project. This approach leads to the
Software industry has always been tried to figure concept of design little, build little and test little
out the best practices of software development in order methodology. The customer and developer can see and
to increase the success rate of software projects. monitor the progress of the product development easily
Rational Unified Process presents and incorporates during the iterations. Component based architecture
the six best practices of software industry to achieve emphasis on modular design, separation of
the goals of high quality, reliable, cost effective and functionality and reusability. It divides the entire
within schedule software projects. We present the product into pieces of sub systems. Those sub systems
concept of managing RUP® best practices in the independently define core functionality. Verify quality
development of software product lines. This concept involves in verifying and validating the functional and
further strengthens the core activities present in the non-functional requirements of the system under
process of software product line development. We development. This activity is recommended in all
implemented this approach in developing an E- iterations to find out inconsistencies in requirements,
Commerce Software Product Line presented as case designs and implementations, which ultimately result
study in this paper. in the identification of defects at an early stage.
A control change accommodates tracks and
I. INTRODUCTION monitors changes in the system under development.
Since iterative development refines the requirements
Best practice in a particular field is one that is
after all iterations, therefore an effective change
commonly used by most of the people and is always
control will provide a basis for reallocation of
recommended to adopt for successful results. Software
resources, managing requirements, design alterations
best practices are those, which are commonly used by
and planning. Manage requirements describes how to
most of the software development teams or individuals
elicit, organize, and document required functionality
and are highly recommended for successful software
and constraints; track and document tradeoffs and
project in terms of cost, quality and schedule. Rational
decisions; and easily capture and communicate
identified and incorporated six best software practices
business requirements [1]. Visual modeling provides
in its software process model called Rational Unified
facility to build a graphical visual model to illustrate
Process (RUP), they are:
the structure and behavior of the architecture and
• Develop Iteratively components of the software product [2]. This helps in
• Component Based Architecture elaboration of requirements, and provides a source of
• Verify Quality documentation about the functionality of the system.
• Control Changes
• Manage Requirements
• Visual Modeling

978-1-4244-1692-9/08/$25.00 ©2008 IEEE 1363


A. Software Product Line from a common set of core assets in a prescribed way
A software product line is a set of software- [3]. The objectives of a software product line is to
intensive systems sharing a common, managed set of reduce the overall engineering effort required to
features that satisfy the specific needs of a particular produce a collection of similar systems by capitalizing
market segment or mission and that are developed on the commonality among the systems and
by formally managing the variations among the Core assets provide the initial repository for the
systems [4]. The essential activities involved during a product line. The goal of the core asset development
product line development are: activity is to establish a production capability for
products [5]. The product development is an activity in
• Core Asset Development
which actual products are developed based on core
• Product Development asset repository, requirements, product line scope and
• Management production plan. The products are developed according
Figure 1 illustrates the inter-relation ship among to production plans, and requirements are implemented
these three essential activities. Each rotating circle by using existing core asset’s component or new
represents one of the essential activities. All three are components. This activity gives feed back to update
linked together and are essential activities of product the core assets and make changes in the production
line development. Core assets in software development plan according to circumstances. Management is a
are those viable entities that had already been used or vital activity in the process of software product line
intend to use in software development of different development. Activities must be given resources,
projects. They can be requirement models, domain coordinated, and supervised [5].
models, test cases, plans, designs, code, reusable The management involves technical management
components, etc [5]. and
organizational management. Technical management carry out job. Organizational management is concern
is concern with ensuring that all the technical activities with defining certain necessary resources like
including core asset development, development of manpower, money and equipments for smooth
products are following certain procedure defined to production.

Figure 1. Software product line essential activities [5] Figure 2. RUP best practices and software product line
activities [5]

All three are linked together and in perpetual motion,


II. MANAGING BEST PRACTICES IN SOFTWARE PRODUCT showing that all three are essential, are inextricably
LINE DEVELOPMENT linked, can occur in any order, and are highly iterative
[5]. Core assets are used to develop new products and
A. Develop Iteratively there is a constant chance of adding up the piles of
The Figure 2 describes the essential activities core assets either as an out come of new product
performed during product line development. Each development or COTS. The management takes its
rotating circle represents one of the essential activities. inputs from core assets and development phase and

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.

Figure 3. Development time of products in E-Commerce software product line

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

You might also like