TR No. CIT/24/2003
Fifteenth International Conference on Software Engineering and Knowledge Engineering San Francisco Bay - 30 June - 3 of July 2003.
Re Engineering Software Development Process for eBusiness Application Development
Professor Athula Ginige School of Computing and Information Technology University of Western Sydney
[email protected]
Re Engineering Software Development Process for eBusiness Application Development Professor Athula Ginige School of Computing and Information Technology University of Western Sydney
[email protected] Abstract We now need to develop a new class of software applications; eApplications, to support business processes for eBusiness organisations. The attempts to develop these applications using traditional software development methodologies have met with limited success. In order to better understand the requirements for these applications we studied how a business can transform into an eBusinesses. We call this process eTransformation. Our focus was on Small to Medium Enterprises (SMEs). We discovered that this is an iterative process that can take several years. Based on our studies we also developed an eTransformation Roadmap and an eTransformation methodology to support the eTransformation of SMEs. We also realised that the eApplications need to evolve with time as part of this iterative process. As these applications evolve with time, traditional software development approaches that require the system to be fully specified as the first step of the development process are not suitable for the development of eApplications. We looked at various software development methodologies and adopted the concept that software is a medium to capture knowledge rather than a product. This led us to change our thinking from looking at methodologies to develop eApplications to developing a framework within which eApplications can evolve. We developed a Component Based E-Application Deployment Shell (CBEADS) as our framework. CBEADS has the ability to create new functions within its own framework so that it can evolve. These functions can be grouped together to form eApplications. We have deployed CBEADS into several organisations and we are receiving very positive feedback.
1. The Need for a New Software Development Approach We now have very efficient ways of capturing, storing, accessing and sharing information using electronic means compared to paper based systems. This, among other
things is impacting the way we conduct business operations. Organisations can use Information and Communication Technologies to quickly and easily access information required for enhancing their strategic level decision-making, management level planning and control of operational level activities. Organisations can also use these technologies to enhance communication with clients, suppliers and employees. To distinguish paper-based way of conducting business process from enhanced ways of conducting business processes using electronic means we call the new approach eBusiness. eBusiness organisations rely very heavily on software applications to manage the flow of information within the organisation as well as with the outside world to gain a competitive advantage. We call these software applications eBusiness applications or eApplications to distinguish these from other types of software applications. The World Wide Web continues to be a major framework to develop the necessary eBusiness Applications because of the ease of deployment of Web based applications. A recent survey on Web based application development by the Cutter Consortium [1] highlighted the problems plaguing large eBusiness application development projects: • 84% of the time delivered systems didn’t meet business needs. • 53% of the time delivered systems didn’t have the required functionality • 79% of the time schedule delays plagued the projects. • 63% of the time projects exceeded the budget. At the University of Western Sydney we have been working with Small to Medium Enterprises (SMEs) in the Western Sydney Region of Australia for some years assisting them to transform their businesses to eBusinesses. With more than 72,000 businesses and ten percent of the Australian population living in this region, Western Sydney is considered the fastest growing economic region in Australia. Within this context we have
A major challenge that we faced was the difficulty to fully specify the requirements for an eBusiness application at the start of a development project when working with SMEs. Often they had a vague idea of what they wanted. As the project progressed they saw new possibilities as to how their business processes could be further improved which led them to request new requirements. Also the introduction of eBusiness applications such as a Web site to promote marketing of products and services of an organisation created a need for some new business process to handle inquires coming through the Web, which led to the need for developing further software applications.
2. eTransformation Process We identified that the business processes of an organisation can be divided into internal and external processes based on whether the people who use these processes are entirely within the organisation or external to the organisation, such as customers and suppliers. We then developed a way of mapping the evolution of these processes as these gradually become IT enabled [7]. This mapping is shown in Figure 1. IT sophistication to support External Business processes
been investigating ways of overcoming the above problems of developing Web based eApplications by improving the eBusiness application development process.
Basic Web Site
External Processes Interactive Site E Commerce Site
Most traditional software development approaches such as Water Fall method [2], Spiral Model [3, 4], Rapid Prototyping etc. rely on being able to fully specify the system after initial requirement analysis. In our context we realised that this is not possible. We had to design eBusiness applications that can evolve with changing needs. Thus we identified the conventional approaches to developing software applications cannot be used when developing eBusiness applications. We had to reengineer the whole development process [5]. We found that lack of proven design and development methodologies was also contributing to problems relating to successful development of eBusiness applications [6]. We started our journey to find a way of developing eBusiness applications for SMEs by first studying how SMEs can undertake an eTransformation process. This gave us a good understanding of how business processes of an organisation will evolve with time. This knowledge helped us to develop a software development process that can be used to develop eApplications that can evolve with the evolving business processes in an organisation. Also when developing a software development process we had to take into account some aspects that are specific to SMEs. Compared to the investment potentials of larger organisations one of the crucial limitations of SMEs is that they cannot invest a large sum of money up front to enhance their IT infrastructure. Furthermore, these SMEs are also unable to free a group of people from their day-today operations for a substantial length of time to enable them to be trained externally and then bring them back as change agents.
IT sophistication to support Internal Business processes
Convergence
Effective Enterprise
Effective Team
Effective Individual
New Processes SCM CRM KM
Internal Processes
Stages in becoming an E-Business
Figure 1:Roadmap to become an eBusiness An important aspect about this diagrammatic representation was that each stage in this diagram corresponds to having specific hardware, software and networking capabilities within the organisation as shown in the table 1 below. Table 1 Stage
Hardware, Software and Networking Infrastructure
Effective Individual
Individuals with stand-alone computers having productivity software such as accounting packages spreadsheets, word processors etc installed. Possibly dial-up connection to the Internet for individual e-mail accounts.
Effective Team
Computers are networked. People can work in teams using networked applications. Providing e-mail and Intranet capabilities can enhance the productivity of a team.
Effective Organisation
Organisation now uses enterprise wide applications - a single application that supports different sections of the organisation such as purchasing, sales, accounting, manufacturing etc. thus enabling information integration and sharing across enterprise.
Basic Web Site Interactive Web Site
Organisation having its own domain name and “Brouherware” type web site hosted with an ISP. Organisations having Web sites that provide two way flow of information. From these Web sites users should be able to get immediate responses to structured queries such as a quotation for a particular product configuration the user has selected. Also, another feature would be to provide personalised information to frequent visitors. These types of Web sites can be hosted with an ISP, although are better hosted on site. This requires a Web server and a high speed dedicated connection to the Internet.
eCommerce Site
At this stage the organisation should have secure Web servers to facilitate financial transactions or a link to a payment gateway to obtain this facility.
Convergence
Organisation has now achieved integration of information that needs to support all its business processes. The flow of information of an organisation that has reached the level of convergence can be viewed as shown in Figure 2.
New Processes
Such organisations can now develop new processes, such as supply chain management (SCM), customer relationship management (CRM) and knowledge management (KM).
A very important milestone of the eTransformation process is the state of convergence. At this state most of the information that is used by the organisation is in digital form and is available for all appropriate people to use and process. To achieve this state it is essential to have a very well thought out eTransformation process. Often what happens is organisations implement specific solutions using different software applications. Then it becomes impossible to share data across these different software applications. If data such as a list of employees and their details has to be duplicated, then it is not possible to achieve the state of convergence. When an organisation has to keep multiple working copies of the same data it becomes very difficult, if not impossible, to keep all copies up to date and consistent.
Finance Links to Suppliers
Production
Purchasing
Corporate Data Repository
Interactive Web site
Links to Distributors
Marketing Human Resources
Figure 2:Flow of Information in an organisation that has reached the convergence stage We have also developed an eTransformation methodology that SMEs can use [7] to follow the eTransformation Roadmap that we developed to eTransform their businesses. eTransformation isn’t an one-off activity; rather it is a continuous, evolutionary process. First you model an existing business process, study how it can be reengineered to be more effective, develop appropriate software to optimally manage the flow of information required to carry out that process and, train the front-line people how to use the new process and the eApplication developed to support it. Then you select another business process and the cycle continues. The order in which business processes get transformed is selected based on an overall eTransformation strategy developed after carrying out a business analysis. The steps in our eTransformation methodology are shown in figure 3.
Business Analysis
eTransformation Strategy Change Management
Business Processes
Enhanced Using IT
Business Process Re-engineering
Workflow, Technology, People
Figure 3. A Process for eBusiness Transformation
3. New Paradigm for Developing Software From the above discussion it is clear that a business cannot transform into an eBusiness as a one-off project. eTransformation is a process that will happen over many years. With each cycle a business process in the organisation will get reengineered and eEnabled. To eEnable we need to develop an eApplication such as order processing, stock control, invoicing etc. As these eApplications get developed at different times we need a framework that can be used to plug in the new applications when these get developed. This framework should provide a consistent user interface to the users for all the applications. Also it should provide a mechanism to link different applications in terms of sharing data among applications and also managing the workflow information. This is a challenging task as these different eApplications get developed at different times over several years. When developing an eApplication, developers don’t know what new eApplications will be required in years to come. Thus it is very clear that software development approaches that require the system to be fully specified before detailed development work can start can’t be used to develop eApplications. Design for evolution has to be a very important requirement in any eApplication development process. A major challenge in developing software applications is that of building the right system – one that meets users’ needs at a reasonable cost. Often what the developer thinks, as to what the user wants is not actually what the user wants. This is a major reason why delivered systems often don’t meet business needs or lack required functionality. The task of capturing user needs is made difficult because developers with their own jargon have to communicate with users, who have their own, more arcane jargon. How to achieve good communication, along with good understanding of the users world is a very challenging problem that Systems Analysts have been trying to solve. Another challenge is managing the complexity of software applications. As software applications grew in scope and complexity, early approaches to software development broke down. This led to a phenomena known as the “Software crisis” [8] with many applications failing to meet the user requirements or not being able to be completed within time and budget. Thus with software applications becoming more and more complex people were forced to develop better ways to conceptualise, design, and implement these applications. Next we saw software applications being conceptualised as set of interacting objects. This formed the basis for the
emergence of few different Object Oriented analysis and design approaches [9-11]. These approaches were later combined to create the Unified Modelling Language (UML) [12] to support object oriented development methodologies. UML by using “Use Cases” tries to provide a framework to capture user requirements. A Use Case is a typical interaction between a user and the software application. The sum of all use cases is the external picture of the system. This can be used to explain what the system does [13]. The ability to conceptualise a software application as a set of interacting objects also led people to develop component based approaches to develop these systems. Each object is realised as one or more reusable components. The idea here is to have standard modules such as an accounting package that can be plugged into a Component Execution Environment to quickly build a software application that meets user requirements [14]. This approach has the potential to reduce the long development times experienced in other development approaches where most of the code is developed every time from scratch. Armour, in his article “The case for a new business model: Is software a product or a medium?” argues that software can be viewed as a medium which can be used to store knowledge [15]. If we take this view then what we need is a software framework, which can be set-up in an organisation that is capable of capturing and storing the organisation’s knowledge and information and provide appropriate access to the relevant people. Such a framework should have the following main features. • Should be able to add new functions and change existing functions while the system is operational. There should be no need to re-compile and install the software every time a change is made to an existing function or a new function is added. This enables the framework to grow. • Should be able to add and change fields in databases or data structures in data repositories while system is operational. • Should have a user management and authentication system. Linked to this there should be facilities to manage who have access to what functions and information in the system. This is a new paradigm where we provide a software framework that has the ability to grow by capturing organisations knowledge about its business processes. Instead of developing generalised applications that can be used by many organisations we develop a software framework that can be introduced into many organisations. Organisations can then develop
eApplications in a cost effective way to support their business processes. An essential requirement of such a framework that can evolve is the ability to create new functions with in the framework. Thus to develop cost effective software we have to move away from a mass production model to an evolutionary model that can be used to produce customised software. As user gets software in small increments if there are problems these will get detected early.
4. CBEADS: Component Based E Application Deployment Shell In order to implement this new paradigm for software development we developed CBEADS: Component Based E Application Deployment Shell. This shell runs in conjunction with a Web server and provides a Web based interface to interact with it. As this is a Web based application it can easily be deployed as an Intranet within an organisation as well as an Extranet linking different organisations. The shell itself is made of components. These components can be grouped into two major sub systems. The first sub system is CORE CBEADS that provides the overall framework to which different eApplications can be plugged in. It consists of a security module, system components, system database and a workflow component. The second is made of various applications plugged into the shell. These consist of application components and application databases. The overall architecture is shown in figure 4. Security Module USER
System Components
System Databases
Workflow Component Application Components
Application Databases
Figure 4: Overall CBEADS Architecture All user interactions coming from Web browsers on users’ computers are passed through a security module that carries out the authentication as well as checks what applications and what functions within these applications the user is permitted to access. First a user needs to login to the system. After verifying the userid and the password the user is given a personalised home page. This page
displays the applications and the functions within these applications that the user is permitted to access. The user can activate these functions by clicking on the links. As an added security measure before the requested function is activated the security module again checks whether the user is permitted to use the requested function. Within the system components there are functions to create user groups, allocate different applications and functions within these applications to user groups, create users and allocate them to user groups. These system and user management functions are quite standard in many application deployment environments. Login
User
User Group1
Use user group 1 functions Use user group 2 functions Create new user groups & users
User Group2
Super User
Create new functions
User can be a member of more than one group
Assign functions to user groups
Figure 5: Use Cases of Main CBEADS Functions There is a special function among CBEADS system components that can be used to create new functions. This ability to create new functions enables CBEADS to grow. These functions that get created can be grouped into form applications. The use case diagram given in figure 5 shows the main functions of CORE CBEADS. One can develop and deploy each new application within CBEADS independent of other applications. First it is necessary to decide what essential functions are required within an application. For example if the application being developed is a Human Resource Management module for an organisation we need a set of functions to add, edit and delete people’s names and other required information. Then we need a set of functions to display different reports based on this information such as contact details, salary details, leave taken, when increments are due etc. All these functions can be grouped to form the Human Resources Management application. Using the system function to allocate functions to user groups we can allocate access rights to different functions within Human Resources Management application for different user groups. For example we can provide access rights to view
a person’s name, position, phone number and email to all users within the organisation. We can restrict access to the function that shows salary details to only those working in the Human Resource department. If the organisation decides to process leave applications online the organisation can develop a new application for this. This application needs to share information such as name of employees, name of their supervisor(s) who can authorise leave, leave already taken to work out what leave is available etc with the Human Resource Management application. The architecture that we selected for the application databases in CBEDS was very similar to the architecture which Shaw [16] has classified as “Repository Architectural Pattern”. According to Shaw, this architecture is suitable for applications in which the central issue is establishing, augmenting and maintaining a complex body of information. Typically, the information must be manipulated in a wide variety of ways. Often long-term persistence may also be required. The components of this architectural pattern are single logical memory along with many processes to carry out computations or add, edit or delete information elements in the data repository. These processes interact with memory by direct data access or procedure calls as shown in figure 6. Information Processing unit
Information Processing unit
Computational unit
Computational unit
Shared Memory Computational unit
Information Processing unit
Information Processing unit
Computational unit
Figure 6: The Repository Architectural Pattern When you compare this architecture with the flow of information in an organisation that has reached the convergence stage as shown in figure 2, one can see this architecture pattern is ideally suited to support eBusiness applications. With the addition of new applications into CBEADS the application database will also evolve. Also, there is no need to limit the physical database to a single computer. Depending on the type of applications and usage patterns
it may be more efficient to have a distributed database. Some of the research issues that we are investigating at present are what is the best way to implement the application databases that can evolve and what is the best way to develop and maintain a virtual database schema to represent the structure of the organisation data repository at any given time. The other major element in the CBEADS is the workflow component. The purpose of this component is for workflow based eApplications to inform users when they login that they have pending tasks to process. For example when an employee submits an online leave application the workflow component puts a message in the designated supervisors home page that there is a leave application to be processed. When the supervisor processes the application this message is removed from the supervisor’s task list. At present we have deployed CBEADS in five organisations. One of the common applications that these organisations have requested is a content management system to manage the content of their public Web sites. We were able to develop and deploy a content management application using CBEADS with in 14 weeks. This development work was done as a final year student projects at the University of Western Sydney. Some of the other applications that we have deployed within CBEADS are a stock control system for an organisation that grow Roses, Teaching allocation system for casual and permanent staff at the University, B2B order processing system for a sheet metal manufacturing company.
5. Towards Smart Tools The experience that we gained when working with SMEs further confirmed the need to adapt this new paradigm when developing eApplications. When working with the SMEs we observed that to successfully implement a new business process it is very important to get the support of the front-line people who will be using the new business processes and eApplications. Further these people have a very good understanding of how processes are carried out at present and how these can be improved. In our eTransformation methodology we get these front-line people involved in modeling the existing business processes and getting them to reengineer these processes [17]. This gives them the ownership of the eTransformation process. Thus the next step should be for non-IT professionals (people who know the business processes best) to be able to create new functions or modify existing functions and to change data structure in data repositories to support
evolving business process via a suitable interface such as visual programming interface. This type of tool built into a system will enable people that know about business processes to store their knowledge in terms of work flow, business logic and data elements into a framework in a quick and easy way. Others can then use this business knowledge to carry out business processes in that organisation. For this to happen the essential paradigm shift that needs to take place, is rather than developing more and more sophisticated approaches to capture user requirements by IT professionals and then implementing the software system, users need to be empowered to specify what they want using a set of software tools. These tools will have necessary domain knowledge programmed into it making them smart and intelligent. The user needs to specify the required workflow associated with the application, the interaction that needs to take place between the user and the application at each step of the workflow, the applicable business logic for each step of the process and the flow of information among different steps. One can argue sometimes users may not be capable of providing this information. To investigate this further we carried out a trial [17]. We introduced UML Activity Diagrams to a group of administrative staff in an organisation and got them to map a business process using these diagrams. They had no problem in mapping the existing process as well as making changes to improve the process. They also requested the ability to specify the user interface requirements at each step of the process. This specification is then converted into necessary code. At early stages IT professionals can do this conversion, but gradually this needs to be automated. Once automated the business user through few iterations can arrive at appropriate eApplication to support a business process. If there is a change to the business process the user should be able to modify the software application to reflect this change using the same set of software tools. The incorporation of smart tools into CBEADS will form the basis to create evolutionary eApplications. This development of smart tools is another research project of our group. Thus we see CBEADS as the first step towards developing a framework that can evolve with an evolving organisation based on the paradigm that software is a medium to capture knowledge rather than a product.
6. Challenges and Conclusion We need to come up with a much better way of developing a new class of software applications; eApplications, which are required to support business processes of organisations that are becoming eBusinesses. There are hundreds of thousands of organisations that are attempting to transform their business processes to eBusiness processes. Most of these organisations are Small to Medium Enterprises that don’t have the same resources as large organisations. The eApplications required by these organisations have some similarity but are not identical. Also we have found that by engaging front-line people in the design of eApplications they take a keen interest in making best use of the application when deployed. To cater for the massive demand coming from SMEs all over the world we need to change the way we develop eBusiness applications. These eApplications can not be mass-produced; these need to evolve with the organisation. By considering software to be a medium to capture knowledge rather than a product we were able to come up with a solution. We shifted the focus from developing eApplications to developing a framework; CBEADS, within which eApplications can evolve. We are getting very positive feedback from organisations that are trailing CBEADS. The next step is to develop smart tools for CBEADS that will allow business users to specify what functions they want in an eApplication and also allow them to change the behavior of the functions when organisation needs change. For this we need to develop smart compilers that can take business user specification and generate necessary code. The automatic generation of code from high-level specification is an area into which lot of effort has gone in over the years. By using domain knowledge and design patterns it will be possible to develop ways of automatically generating code for eApplications. This will require further research into component based software development as well as design of evolutionary data repositories. Without changing how we develop software, especially in the context of eTransformation and eBusiness we will not be able to develop eBusiness applications that meet business needs and provide required functionality within time and budget.
7. Acknowledgements This work has resulted from many years of research into eTransformation processes and methodologies. From time to time various people; colleagues, students and people from industry have worked on various aspects of this research project. In this paper where relevant I have acknowledged their contribution by referring to the published work they have done. I like to specially acknowledge Advanced Metal Products and its Managing Director Mr. Ian Stone for the support they provided for our eTransformation research work over the years.
8. References [1]
M. Epner, "Poor Project Management Number-One Problem of Outsourced E-Projects," in Research Briefs, Cutter Consortium,, vol. 7 November, 2000.
[7]
A. Ginige, S. Murugesan, and P. Kazanis, "A Road Map for Successfully Transforming SMEs into EBusinesses," Cutter IT Journal, vol. 14, 2001.
[8]
W. Gibbs, "Software's chronic crisis," Scientific American, vol. 271, 1994.
[9]
J. Rumbaugh, M. Blaha, and etal, Object Orieneted Modelling and Design: Prentice Hall, 1991.
[10]
I. Jacobson, M. Christerson, and etal, Object Oriented Software Engineering: A use Case Driven Approach: Addison-Wesley, 1992.
[11]
G. Booch, Object Oriented Analysis and Design with Applications: Addison-Wesley, 1994.
[12]
J. Rumbaugh, I. Jacobson, and G. Booch, The Unified Modelling Language Reference Manual: Addison-Wesley, 1999.
[13]
M. Fowler and K. Scott, UML Distilled: AddisonWesley, 1997.
[14]
A. Paul, Realizing e- Business with Components: Addison-Wesley, 2001.
[2]
W. W. Royce, "Managing the Development of Large Software Systems: Concepts and Techniques," presented at WESCON, 1970.
[3]
B. Boehm, "A Sprial model for Software development and enhancement," in IEEE Computer, vol. May 1988, 1988.
[15]
P. G. Armour, "The Case for a New Business Model: Is software a product or a medium," in Communication of the ACM, vol. 43, 2000.
[4]
B. Boehm, A. Egyed, and etal, "Using the Win Win Sprial Model: Case Study," in IEEE Computer, vol. July 1998, 1998, pp. 33-44.
[16]
M. Shaw and D. Garlan, Software Architecture Perspective on an Emerging Discipline: PrenticeHall, 1996.
[5]
A. Ginige, "New Paradigm for Developing Evolutionary Software to Support E-Business," in Handbbok of Software Engineering and Knowledge Engineering, vol. 2, S. K. Chang, Ed.: World Scientific, 2002, pp. 711 725.
[17]
P. Kazanis and A. Ginige, "Asynchronous collaborative business process modelling through a web forum," presented at 7th Annual CollECTeR Conference on Electronic Commerce - CollECTeR 02, Melbourne, Australia, 2002.
[6]
A. Ginige, "Web Engineering: Managing the Complexity of Web Systems Development," presented at The 14th International Conference on Software Engineering and Knowledge Engineering - SEKE 02, Ischia, Italy, 2002.