III. Reuse Software Development in Smart Grid Software Applications

advertisement
Improved Software Development for Reuse Process
Model in Smart Grid Software Applications
Kayvan Kaseb, Farzan Badakhshan and Shahin
Salavati
Department of Computer Engineering and Information
Technology
University of Kurdistan
Sanandaj, Iran
Email: kayvan.kaseb@ieee.org,
farzan.badakhshan@ieee.org, shahin.salavati@ieee.org
Abstract—The new concept of Smart Grid is the result of
applying new technologies, such as information and
communication technologies, to power systems. Smart grid
software applications can be considered as a very complicated
system with a wide range of different stakeholders. In other
words, a Smart Grid software application can be considered as
an ultra-large-scale system. However, failure in many software
projects cause an increase in software production costs, hence
software engineering plays an important role in Smart Grid. The
main purpose of this paper is to study an improved software
development for reuse process model in smart grid software
applications. As a result, one of the most important and major
benefits of this approach is reducing Smart Grid applications
development costs.
Keywords- Smart Grid; software applications; reuse process
model; ultra-large-scale system
I.
Rahmat Mirzaei
Department of Electrical Engineering
University of Kurdistan
Sanandaj, Iran
Email: Rahmat@ieee.org
plays an important role in developing and managing Smart
Grid software applications.
Nowadays, the important issue for large-scale software
developers including Smart Grid software applications
developers is to own the power to cope with complexity and
adapting quickly with changes. Software reusability can be
considered as a solution for this problem. Component-based
development method restructures the reuse idea [4]. The main
work done in this paper is to study an improved software
development for reuse process model in Smart Grid software
applications. This work has benefits including quality increase
and reducing costs.
This paper is organized as follows: In section two the
notion of considering Smart Grid applications as ULSSs has
been discussed. Section three discusses reuse software
development in Smart Grid software applications, while in
section four an improved model has been presented. In section
five, a conclusion has been provided.
INTRODUCTION
The new concept of “Smart Grid” was initiated from a
number of technological advances in power industry. It is a
result of using modern technologies in power systems,
including renewable energy sources generation, distributed
generation, and the latest information and communications
technologies [1]. Today, by applying intelligent control
technologies to grid, complexity problems could be reduced.
One of the different approaches among researchers and
organizations is about the application of information and
communications technologies in Smart Grids that make the
grids even smarter. Few works have been done from
information technology aspect of Smart Grid such as studying
the challenges for evolution [2], and cloud and distributed
computing [3].
The Smart Grid software applications can be considered as
Ultra-Large-Scale Systems (ULSSs).
ULSS is a very
complicated system that is included in a social and business
environment with a wide range of different stakeholders.
Besides, failure of most large-scale software projects has
caused an increase of costs. Therefore, software engineering
II. SMART GRID SOFTWARE APPLICATIONS CONSIDERED AS
ULSS
What is being studied in this section is to prove that
software and applications in Smart Grid environment could be
considered as an Ultra-Large-Scale System (ULSS). In order to
do so, at first ULSS characteristics have been studied and then
a mapping between these two systems will be found. As it is
clear from the name, the most obvious characteristic of ULSS
is their unique ultra-large size in different aspects such as the
number of system users who interact with the system, program
code lines, system computational elements, system hardware
elements, the amount of system data (stored, accessed,
manipulated, and refined), the number of connections and
independencies between various system components, routine
processes, emergent interactions and actions, and system goals.
This ultra-large dimension of such systems leads to new
characteristics for designing and implementing them [5], [6]:
Decentralization

Wide variety of stakeholders

Inherently conflicting, unknown, and changing
requirements

Continuous evolution and development

Heterogeneous,
elements

Erosion of the people/system boundary

Highly dynamic and unpredictable

Reliability in using the developed software

Normal failures


New paradigms for acquisition and policy
Reducing risks in estimating software costs and
development time

Optimal use of expert human resources and
preventing extra work

Matching standards by implementing and using a
number of standards with the help of components

Enhancing performance and quality in software
development

Increasing program delivery speed and decreasing
test and validation time
inconsistent,
and
changing
A number of characteristics have been defined for Smart Grid
systems. These characteristics include:

Operational
independence:
Each
system
component should operate independently and
separately from other components.

Management independence: The electrical grid
systems can and do operate only independently.

Evolutional development: Because of the wide
range of these systems, they are not completely
implemented, but will evolve through time.

Emergent behavior: Electrical grid behaviors and
functions are emergent properties of the whole
system and cannot be localized to any constituent
system.

Geographical distribution: Smart Grid Systems are
naturally distributed and located in various
locations. Information transmission should be
done easily in these systems.
According to the characteristics that are common between
ULSS and Smart Grid Systems, it could be stated that Smart
Grid systems are a type of ULSSs. In addition, we know that
Smart Grid Systems have scales as large as countries; this
corresponds to main characteristic of ULSSs, which is ultralarge-scale [3].
III.
failing to deliver on-time in most projects, increasing software
maintenance problems, and quality deterioration. One solution
for this problem is benefiting from reusability. Componentbased development method restructures the reuse idea and
introduces new elements. Large-scale software systems
including Smart Grid software applications could be built by
assembling components that are pre-developed and ready for
unification.

REUSE SOFTWARE DEVELOPMENT IN SMART GRID
SOFTWARE APPLICATIONS
Stronger software development needs have made software
management even more complicated. Today, the crucial
challenge for large-scale software developers including Smart
Grid software applications developers is having the ability of
dealing with complexity and quick adaption with the changes.
Concentrating on a large-scale system at one moment and
neglecting changes would lead to a number of problems e.g.
The advantages resulted from developing and using ReuseBased Smart Grid software applications include:
IV. THE PRESENTED IMPROVED MODEL
Building each system includes a series of steps. These steps
and their order depend on system characteristics. The proposed
model for building Smart Grid software applications is based
on required quality. Reusability is a desirable and not ignorable
quality in these systems. Considering that one of Smart Grid
software applications characteristics can be reusability, objectoriented methodology is very suitable in building such systems
and Unified Modeling Language (UML) diagrams are
applicable in modeling building such systems. Components are
used in designing and building Smart Grid software
applications. The model presented here for improving Smart
Grid Software reusability is able to combine with any program
lifecycle software [7] e.g. waterfall model, spiral model, etc.
Due to possible inability in providing an exact identification of
requirements in the first step, ability of altering requirements
and the need for system maintenance in its long-term lifecycle,
iterative model has been proposed for model steps.
The presented model steps for improving software
development for Reuse Process Model in Smart Grid
Applications are as follows:
1) Collecting requirements by using methods such as Joint
Requirements Planning (JRP) that lead to decreasing design
and development time and also reducing system maintenance
and development time, as well as analyzing requirements for
development that include:
 Detecting use cases

Logically grouping to subsystems for primary
analysis

Drawing Use Case diagram for each group

Detecting objects and drawing Object diagram
2) Architectural Design

Creating necessary views and modeling
architecture based on 4+1 model [8] (as shown in
figure 1).
3) System Implementation and Test
In order to implement and test the system, components that
are previously designed have their parameters adjusted and
coding is done for new components. After each component is
separately executed, they will be connected to each other and
then executed as a whole. Finally, by using test methods, the
created software will be evaluated.
V.
CONCLUSION
The main work of this paper was to study an improved
software development for reuse process model in Smart Grid
software applications. Smart Grid software applications can be
considered as very complicated system that are decentralized
and have a wide variety of stakeholders. Therefore, software
reuse can have many positive impacts including quality
increase and cost reduction. As a future work, we may develop
our model in different areas especially in evaluating Smart Grid
software applications.
REFERENCES
Figure 1. 4+1 model

[1]
Designing components and relations between
them and managing their changes
Based on requirements documents, system
boundaries and main design are defined and the
system is separated into its main elements.
Considering that our main goal is reusability,
Software Configuration Management becomes of
much importance. Software Configuration
Management holds responsibilities such as
defining and saving component versions, change
management, selecting required project model and
compiling
versions.
Relations
between
components are then modeled by Component
diagram.

[2]
[3]
[4]
[5]
Creating framework and pattern for the system
Framework is responsible for managing most of
complicated interactions and components should
fulfill their role in the framework. In fact,
framework is like a circuit board for a component
where empty locations are waiting to be replaced
with components. Framework is considered as a
reusable design of a system where the design
includes displaying abstract classes and
interactions among their different instances.
Patterns are actually used to prevent extra works,
yet they are more abstract than frameworks.
[6]
[7]
[8]
Math H.J. Bollen1, 2, Jin Zhong3, Francisc Zavoda4, Jan Meyer5 Alex
McEachern6, and Felipe Córcoles López7, “Power Quality aspects of
Smart Grids”, International Conference on Renewable Energies and
Power Quality (ICREPQ’10) Granada (Spain), 23th to 25th March,
2010.
M.Anvari,D.S. Cruzes,R. Conradi, “Smart Grid Software Applications
as an Ultra-Large-Scale System: Challenges for Evolution”, 2012 IEEE
PES Innovative Smart Grid Technologies Conference, Washington
Marriott Wardman Park (DC)-January 16-20, 2012.
Simmhan, Y., Giakkoupis, M., Cao, B. and Prasanna, V. K., “Using
Cloud Platforms in a Software Archiecture for Smart Energy Grid”, in
IEEE International Conference on Cloud Computing (CloudCom),
December 2010.
Kumar,Virendra, Ghafir Shabina, “Enhanced Software Development for
Reuse Process Model in Component Based Software Engineering
(CBSE)”, International Journal of Computer Sci ence And Technology
(IJCST), Vol. 3, Issue 1, Jan. - March 2012.
Mirakhorli, M., Sharifloo, A. A. and Shams, F., “Architectural
Challenges of Ultra-Large-Scale Systems”, In Proceedings of the 2nd
international workshop on Ultra-large-scale software-intensive systems
(ULSSIS '08). ACM, New York, NY, USA, pp. 45-48, 2008.
Software Engineering Institute, Ultra-Large-Scale Systems: The
Software Challenge of the Future, Pittsburg, 2006.
Walt Scacchi, “Process Models in Software Engineering”, Institute for
Software Research, University of California, Irvine, October, 2001.
Philippe Kruchten, “Architectural Blueprints-The “4+1” View Model of
Software Architecture”, Paper published in IEEE Software 12 (6),
pp.42-50, November 1995.
Download