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.