Elements of End-User Software Engineering - INFORMS PubsOnline

5 downloads 40972 Views 1MB Size Report
In all types of business, people have to accomplish tasks every day. ... to small software tools which are specifically adapted .... Can be used if no one can fully.
SCHEUBREIN Elements of End-User Software Engineering

Elements of End-User Software Engineering Ralph Scheubrein Whittemore School Of Business And Economics University Of Hohenheim [email protected]

Abstract Today many end-users implement software tools on their own due to their high, general computer literacy and the increased user-friendliness of the software. The most popular and ubiquitous software packages to implement such personal productivity tools for analytical purposes are spreadsheets. A general problem is that a typical knowledge worker in the role of an end-user does not have explicit training in software engineering. Therefore, in this article some aspects of software engineering in general and spreadsheet engineering in particular are discussed. Based on this discussion several guidelines for implementing spreadsheet-based tools are given. Applying these guidelines helps to design spreadsheet-based tools that can be easily reused, extended, and shared with other users. A case study illustrates how to use Microsoft Excel to implement a tool which is in compliance with these guidelines. The case study is designed as an introduction for MBA students on how to implement spreadsheet-based analytical tools. Editor's note: This is a pdf copy of an html document which resides at http://ite.pubs.informs.org/Vol4No1/ Scheubrein/ In the next section, software engineering is discussed from the perspective of accomplishing of a business task. The discussion focuses in particular on spreadsheet engineering of analytical tools because this approach is commonly used by knowledge workers (e.g. Chan and Storey, 1996 and Leon et al., 1996).

1. Introduction In all types of business, people have to accomplish tasks every day. From an information processing point of view, completing a task involves steps like identifying the relevant issues, getting the necessary data, turning them into meaningful information, anticipating possible outcomes, making a decision, and implementing the decision. With the ubiquitous availability of computers, today task completion is often strongly supported by software applications. The applications used by a knowledge worker range from large, standardized, organization-wide enterprise applications to small software tools which are specifically adapted to the requirements of the task and the user. These individual applications are commonly referred to as personal productivity tools.

In the third section a case study shows how to implement a spreadsheet-based analytical tool. The target audience is MBA students who have only a little experience in the development of software. Nevertheless, a basic knowledge of spreadsheet packages is assumed (for an introduction, see for example Grauer and Barber, 2002).

2. Software Engineering of Analytical Tools

In the following section, the discussion focuses on analytical tools, i.e., a special category of personal productivity tools which are intended to support quantitative analyses. Knowledge workers often implement and maintain such tools themselves. As end-users, knowledge workers are generally experts in a particular domain (e.g., operations management), but problems may arise because they do not have explicit training in software engineering.

INFORMS Transcations on Education 4:1 (37-47)

When deciding to implement a personal productivity tool, the knowledge worker typically has the main goal of increasing his or her performance in completing a specific task. When looking at the process of completing a task, different types of activities can be identified. Figure 1 outlines a typical sequence of activities (adapted from Anderson et al., 2000).

37

© INFORMS ISSN: 1532-0545

SCHEUBREIN Elements of End-User Software Engineering

Figure 1: Schematic process of accomplishing a business task The origin of many tasks is that the management becomes aware of opportunities or risks for the business. The next activity, which includes defining the task, formulating the objectives, getting the relevant data, and determining restrictions for possible courses of action, structures the issues. After this structuring, in the stage of analysis, feasible alternatives are designed and evaluated. This analysis can take two basic forms: qualitative and quantitative (see Anderson et al., 2000). A qualitative analysis mainly relies on the experience and intuition of the knowledge worker. In contrast, a quantitative analysis consists of a mathematical representation of the issue which can be evaluated by a computer-based system. The knowledge worker must decide which aspects should be analyzed qualitatively and which should be analyzed quantitatively. For complex tasks this decision often gets more difficult because several analyses must be made. Next the insight gathered by the analyses must be synthesized and a decision must be made. Finally this decision is implemented by some action. It should be added that these activities not only occur in the presented sequence but in general are more or less interwoven.

waterfall model with separate and distinct phases of specification and development can be used. In contrast, when using the evolutionary approach, the specification and development are interleaved. In the evolutionary approach, an initial prototype is developed and evaluated. Based on this evaluation, an improved version is implemented and evaluated again. This procedure is repeated until the final application with the desired features is implemented. Due to the fact that a system with limited functionality is available very quickly, this approach is also called "rapid application development" (see Bocij et al., 2003). Table 1 summarizes the most important features of two approaches presented. Approach

If the quantitative analysis is to be supported by a computer-based system, then the analytical tool must of course be produced first. The discipline which is concerned with software production in general is called software engineering. Software engineering has the goal of delivering high-quality software at agreed cost and on schedule (Humphrey, 1997). In order to reach this goal, various generic software engineering process models have been developed (see Sommerville, 2000 for a comprehensive treatment). These models can be classified into two broad classes: requirementoriented and reuse-oriented approaches.

Waterfall Model

-

Minimizes planning overhead. Minimizes wasted efforts. Addressing mistakes made in previous phases is difficult.

Evolutionary Model

-

Can be used if no one can fully specify the requirements in advance. Adaptation to changing requirements is possible. Steady progress is visible. Number of necessary iterations is unknown.

-

Besides such requirement-oriented approaches, reuseoriented process models are becoming increasingly important (see Sommerville, 2000). The basic idea is to assemble a new application from existing software components by configuring and combining them in a new way. More recent programming languages support this concept by providing advanced concepts for the modularization of the functionality (e.g., object-

Two almost contrary, requirement-oriented approaches are the "waterfall model" and the "evolutionary model". If the software can be specified in detail, then the

INFORMS Transcations on Education 4:1 (37-47)

Feature

38

© INFORMS ISSN: 1532-0545

SCHEUBREIN Elements of End-User Software Engineering

oriented programming with Java and JavaBeans(1)). In the context of analytical tools, Savage (1997) coined the term "decision object" for software tools which an end-user can interactively use to solve a specific problem. Using this approach, the completion of a more complicated task consists of the intelligent combination of such elementary decision objects by the knowledge worker. Having modularized a software application into components also allows distributed processing on several computers. A recent technological development for distributed processing are web services, i.e., small, reusable tools which receive and transmit data over the Internet using XML as the encoding scheme (see, e.g., the introduction from Microsoft(2)).

dations on how to implement advanced spreadsheet tools. Conway and Ragsdale (1997) provide guidelines which should help with implementing reliable, auditable, and modifiable spreadsheet tools. Edwards et al. (2000) provide numerous "best practice points" for a spreadsheet implementation. Ragsdale (2003a, ch. 3.7) and Raffensperger (2001) formulated several rules for the layout of worksheets. Albright (2001, ch. 14.2) provides guidelines for implementations that use the programming language "Visual Basic for Applications" (VBA), which is integrated in the spreadsheet package Excel. In addition to this literature which explicitly addresses the implementation, various OR/MS-related textbooks implicitly show how to implement spreadsheet tools by providing best practice examples, like Albright (2001), Anderson et al. (2000), Camm and Evans (2000), Denardo (2002), Hesse (1997), Hillier et al. (2000), Kirkwood (1997), Lawrence and Pasternack (2002), Moore and Weatherford (2001), Ragsdale (2003a), Savage (2003), Winston and Albright (2001).

The software engineering of an analytical tool consists of three main phases: formalization, design, and coding (e.g., Humphrey, 1997). In order to make the task accessible for a software application, some kind of formalization must be made. For analytical tools, Hesse (1997) proposes for this phase first to picture and paraphrase the task, then to construct a verbal model, and finally to construct a mathematical model.

In contrast to that literature, in the following section an approach to spreadsheet engineering which resembles the typical behavior of an end-user is chosen. Often an end-user implements an analytical tool according to an evolutionary software engineering process. Following this approach, first a basic version of the tool is implemented. If it seems promising that the task accomplishment can be further improved, then an extended version is created. This extension of the tool continues until the end-user perceives no more "valueadded" of more functionality or the technological restrictions of the spreadsheet are met (see e.g. Savage, 1997).

While during formalization the question "what is the functionality" is answered, the design phase deals with "how should the functionality be provided". Humphrey (1997) surveys the three common ways of representing a design: graphically, with pseudo code, or mathematically. Janvrin and Morrison (2000) introduce a graphical representation for the design of spreadsheets similar to data flow diagrams. When applying general software engineering techniques like the Unified Modeling Language (UML), a software application can be both formalized and designed using a coherent set of representation techniques (for a comprehensive treatment of UML see Booch, 1999 or the website of the Object Management Group(3)).

In order to guide the implementation of an analytical tool, I propose the five general guidelines shown in Table 2. The first guideline emphasizes that the tool can be used if the same or a similar task (re)occurs. This feature is crucial for an analytical tool because it enables the knowledge worker to gradually develop a set of personal "decision objects" which help in achieving a higher performance in completing tasks. The second guideline is intended to simplify using the tool for "what-if" questions. The other three guidelines cover aspects of the typical input/processing/outputscheme of data processing.

Finally, in the coding phase the design is implemented using a software development environment. If an enduser implements an analytical tool, then often a spreadsheet package which integrates the development environment is used. Grossman (2002) provides a comprehensive spreadsheet engineering research framework. The literature contains various recommen-

(1) (2) (3)

http://ite.pubs.informs.org/Vol4No1/Scheubrein/index.php#JavaBeans http://ite.pubs.informs.org/Vol4No1/Scheubrein/index.php#MicrosoftWebServices http://ite.pubs.informs.org/Vol4No1/Scheubrein/index.php#OMG

INFORMS Transcations on Education 4:1 (37-47)

39

© INFORMS ISSN: 1532-0545

SCHEUBREIN Elements of End-User Software Engineering

(2002), Ragsdale (2001), Ragsdale (2003b), Seal (2001), and Winston (1996).

Guidelines for Implementing an Analytical Tool A The tool should be reusable and extensible. B

Incorporating concepts from that literature, the course at the University of Hohenheim is designed for MBA students with a major in operations and logistics management. These students are familiar with the basic functionality of spreadsheets but have no particular knowledge of software engineering. The course starts with the following tasks for the students:

One should be able to change parameters easily in order to evaluate different scenarios.

C The data input should be user-friendly. The processing logic should be appropriately D documented in order to allow understanding and modifying of the tool later. E

The result of the analysis should be presented in a way to help in gaining insight.

1. Give a short presentation of a real-world spreadsheet application. The intention is to motivate the students and show them that the content of the course is relevant and that spreadsheet packages are really general-purpose tools.

End-users who have some experience in implementing spreadsheet tools are likely to develop personal styles of software development which will be evident even in the first version of a tool. Nevertheless the guidelines from this article or other sources (see above) might give hints on how to further improve their personal style of software development.

2. Go through the "Excel Tutorial" of Albright (download from Indiana University's website(4) or get the local copy(5)). This tutorial is a Word document with embedded Excel spreadsheets. It provides an excellent, compact overview of many useful Excel features. The purpose of this homework is to refresh the students' knowledge. In order to check this homework, some students can be asked to give a short presentation of a function which was new to them.

In the following section, it is shown how the guidelines in Table 2 translate to the implementation of an analytical tool in a spreadsheet environment. The final version of the tool can be implemented in less than one hour by following the instructions. Alternatively, the tool can be downloaded in the various stages of development.

3. In class it is shown how to implement the forecasting tool step by step. The students are given as a homework assignment the task of building a tool with comparable complexity (e.g., a tool to generate a Boston Consulting Group portfolio, a tool to analyze the life cycle of a product, an A-B-C analysis of inventory, or a tool implementing the basic economic order quantity model). All tools have to be uploaded to a Yahoo Group(6). The purpose of using such an Internet community platform is that all students should have access to all tools in order to support the effect of learning from each other in the class.

3. A Case Study on Spreadsheet Engineering In this case study we develop a forecasting tool step by step. In order to concentrate on the software engineering aspects, a simple exponential smoothing method is implemented. Nevertheless, the final tool has many essential features of a larger application. The case was streamlined by the experiences made in several courses for implementing spreadsheet-based tools at the University of Hohenheim since 2000. The literature documents many ideas on how to use spreadsheet packages for teaching, e.g. Baker (2000), Eckstein/Riedmueller (2002), Ingolfsson/Grossmann

(4) (5) (6)

In the following sections, the forecasting tool is implemented in Microsoft Excel 2002. We use only standard spreadsheet features, so the tool could also be built using previous versions of Excel or other spreadsheet packages. A zip-compressed workbook and a video illustrate each development stage. The video is encod-

http://www.indiana.edu/~mgtsci/ http://ite.pubs.informs.org/Vol4No1/Scheubrein/ExcelTutorial.zip http://groups.yahoo.com/

INFORMS Transcations on Education 4:1 (37-47)

40

© INFORMS ISSN: 1532-0545

SCHEUBREIN Elements of End-User Software Engineering

ed using Microsoft Media 9 series technology. In case of problems viewing a video, the latest version of this technology can be downloaded from the Windows Media homepage(7)

Period t Demand y(t)

3.1. Task Requirements This case assumes that the demand of a product has to be forecasted. When looking at the time series of the demand in Table 3 (data adapted from Stevenson, 2002), it can be concluded that the demand is basically stable.

1

2

3

4

5

6

7

8

9

10

11

4200

4000

4300

4000

4100

3900

4600

4400

4500

3800

4000

A forecast method for stable demand is exponential smoothing (e.g. Winston and Albright, 2001, ch. 16.8). In exponential smoothing, the forecast for the next period is based on the time series of the demands of the past. For the next period t+1, the forecast p(t+1) for the demand y(t+1) is recursively defined on the demand y(t) in the current period and its forecast p(t). The smoothing parameter α is used to compute a weighted sum of the forecast and the actual demand of the current period as specified in equation (1). The parameter α has to be set in the range from 0 to 1. p ( t + 1 ) = ( 1 - a ) * p ( t )+ a * y ( t )

When transferring Equation (1) to the worksheet it becomes obvious that the definition given above was not complete: it must be decided how to make the first forecast; i.e., the start of the recursion must be also defined. When implementing a method, such details emerge quite often. From a didactic point of view, this is good because it helps to understand the details of a method. In the worksheet shown in Figure 2, a simple solution was chosen: the forecast for the second period in cell D6 is set to the demand in the first period given in cell C5.

3.3. Step 2: Isolating Parameters

(1)

While this worksheet now answers the question of which is the forecast for the next period (see cell D16 in Figure 2), all of the guidelines given in Table 2 have been ignored. In particular, it is not easy to change the smoothing parameter α because it is "hard-wired" into all the formulas in Column D. Therefore, the first step is to move the parameter to a separate cell (F5). With this change, now Guideline B is achieved better in the workbook shown in Figure 3(9).

3.2. Step 1: Getting the Result When setting the parameter α to the value 0.46, the time series and the formula can easily be entered into a worksheet (see Figure 2(8)). In Column B there is the period, in Column C the demand, and in Column D the formula with the forecast.

Figure 3: Separating the parameter

Figure 2: Forecasting the demand

(7) (8) (9)

http://www.microsoft.com/windows/windowsmedia/ http://ite.pubs.informs.org/Vol4No1/Scheubrein/Book1.zip http://ite.pubs.informs.org/Vol4No1/Scheubrein/Book2.zip

INFORMS Transcations on Education 4:1 (37-47)

41

© INFORMS ISSN: 1532-0545

SCHEUBREIN Elements of End-User Software Engineering

Excel provides various possibilities for formatting a cell under the menu entry (e.g., font, border, background pattern, and color). While it is not too important which format is used, it is helpful to apply the same formatting to all applications in order to document the worksheet. Using the same coding scheme also helps others who are using several applications by the same author to understand how the software works.

3.4. Step 3: Using Named Cells If the cell F5 is additionally given a name, then the readability of the formula increases, and this results in a better achievement of Guideline D. In order to name a cell, it has to be selected, and the name can be typed into the "name box" at the left end of the formula bar (see Figure 4(10)). Defined names can later be modified by using the menu entry . In this example, the name "alpha" is given to cell F5. The formula in Column D must be modified to reference this name. As shown on the right side of Figure 4, the formulas in the worksheet now look much more similar to Equation (1).

As shown in Figure 5(11), the cells with the input data, the parameter, and the result can be marked, for example, with a different background color. Intermediate results are not especially emphasized. After selecting a cell, its background color can be changed by clicking on the icon "Fill Color" and selecting a color from the palette. Also in this step a title is added to the worksheet, and the table is formatted. The general policy of adding such elements is that they should be informative. In contrast, adding decorative elements is more a question of personal style.

Figure 4: Naming the parameter

3.5. Step 4: Clarifying the Worksheet Layout When developing a more complicated application, it becomes difficult to distinguish input and output. Following Guideline D, it is helpful to format the cells according to what they contain. In general, the contents of a cell can be categorized as follows: •

The input data is fixed for the considered analysis.



The parameters are under the control of the user. Parameters are typically called decision variables in optimization models.



The results are computed by a method based on the input data and the parameters.



Intermediate results reflect the necessary steps to compute the final result. They are used to reduce the length of a formula in a single cell and to provide an opportunity to find errors in the computation.

Figure 5: Cell shading according to the category of the contents

3.6. Step 5: Enhancing the Input of Data While the user can now easily identify which cells are intended to hold the input, the process of entering the actual data can be enhanced with the addition of some error-checking (Guideline C). For this purpose, Excel provides a function for validating input data. In order to activate this validation for a cell, it must selected first. Then the validation rule can be specified in the menu entry . Figure 6(12) shows how to specify that the user has to input a number in

(10) http://ite.pubs.informs.org/Vol4No1/Scheubrein/Book3.zip (11) http://ite.pubs.informs.org/Vol4No1/Scheubrein/Book4.zip (12) http://ite.pubs.informs.org/Vol4No1/Scheubrein/Book5.zip

INFORMS Transcations on Education 4:1 (37-47)

42

© INFORMS ISSN: 1532-0545

SCHEUBREIN Elements of End-User Software Engineering

the range from 3000 to 5000. While the requirement that the input has to be a number is caused by the method, the constraint on the range could stem from a business rule. For example, this could reflect the rule that the demand should only be forecasted with the method if it is in the normal range from 3000 to 5000. If the demand is outside this range, then a more detailed analysis should be made.

Figure 7: The "Control Toolbox"and the properties of a scroll bar While the scroll bar only provides integer values, the smoothing parameter α must be a real value in the range from 0 to 1. Therefore the additional cell F6, which holds the current value of the scroll bar, is used. The property "linked cell" should be set to F6 and the property "Max" should be changed to "100". Finally the formula in the parameter cell has to be changed to "=F6/100" to reflect the position of the scroll bar. After having exited the design mode, the smoothing parameter can now be changed using the mouse and no invalid value can be entered anymore (see Figure 8(13)).

Figure 6: Validation of input data

3.7. Step 6: Enhancing the Input of Parameters Also following Guideline C, the way of changing the parameter stored in the cell named "alpha" can be made more user-friendly. In Excel, a scroll bar can be placed on the worksheet and linked to the parameter cell. The scroll bar is available from the toolbar "Control Toolbox" (see Figure 7). If this toolbar is not visible, it can be activated by selecting the menu entry . After clicking on the scroll bar icon on the control toolbox, the user can draw the outline of the scroll bar on the worksheet. By clicking with the right button on the placed scroll bar, its properties can be changed (see right side of Figure 7). By default, a scroll bar places an integer value between 0 (property "Min") and 32767 (property "Max") in the cell defined by the property "LinkedCell".

Figure 8: Changing the parameter using the scroll bar

3.8. Step 7: Gaining Insight In order to meet Guideline E, a chart is often useful for supporting an analysis. In this case, a line chart is appropriate for visualizing the time series and the resulting forecast. In order to include this chart, first select the range from B5 to D16. Then click on the icon "Chart Wizard" and place a line chart using basically the default settings on the worksheet (see Figure 9(14)). (13) http://ite.pubs.informs.org/Vol4No1/Scheubrein/Book6.zip (14) http://ite.pubs.informs.org/Vol4No1/Scheubrein/Book7.zip

INFORMS Transcations on Education 4:1 (37-47)

43

© INFORMS ISSN: 1532-0545

SCHEUBREIN Elements of End-User Software Engineering

If the smoothing parameter is now changed by moving the scroll bar the effect is instantly visible in the chart.

ed to the layout of the worksheets. For this important issue Raffensperger (2003) and Ragsdale (2003a, ch. 3.7) provide rules which cannot be presented here in detail. Another facet of extensibility is that a user is provided with some kind of documentation about the current functionality of the tool. This documentation becomes especially crucial if the tool is only used every once in a while. Such a basic documentation can be included in the worksheet in several ways. First, Excel offers the possibility of documenting a single cell by rightclicking and choosing the entry "Insert Comment" from the context menu. Now the cell has a small, red triangle in the upper right corner. If the user moves the cursor over the cell, the comment opens (see cell D6 in Figure 11(16)). A second possibility is to draw a text box on the worksheet. For this, first select to open the drawing bar, use to draw the box, and then write the description in the box.

Figure 9: Visualization to support the analysis

3.9. Step 8: Clarifying the Dimensions of Values When working with formulas, it is often useful to look at the units of the values in order to avoid making mistakes. Accordingly, explicitly stating the units on the worksheet can be helpful. In Excel, one way to include the units is to define a special number format. In order to format a cell, the user selects and then enters the format code, using one of the existing codes as a starting point. In the example, the quantity of the demand could be measured in gallons, resulting in the format instruction {0 "gal."} (see Figure 10(15)). The help function provides an extensive description of the various ways of formatting a cell.

Figure 11: Two possibilities for worksheet documentation

3.11. Step 10: Providing Extended Documentation Often a personal productivity tool is not so "personal" but will also be used by others (see Grossman, 2002). In such a case, it is useful to provide an extended documentation. This can be done by adding an entry page to the system with the necessary information. This entry page can hold a description of the problem, the methodological approach, and references to additional information. As in the previous step, this information can be stored in text boxes.

Figure 10: Formatting of the data

3.10. Step 9: Providing Basic Documentation According to Guideline A, the tool should be reusable and extensible. One aspect of this extensibility is relat-

(15) http://ite.pubs.informs.org/Vol4No1/Scheubrein/Book8.zip (16) http://ite.pubs.informs.org/Vol4No1/Scheubrein/Book9.zip

INFORMS Transcations on Education 4:1 (37-47)

44

© INFORMS ISSN: 1532-0545

SCHEUBREIN Elements of End-User Software Engineering

Additionally, it is useful to place two buttons called "Start" and "Example" on the page (see Figure 12(17)). The "Start" button provides a dialog in which the user can enter new data. Using the "Example" button automatically inserts some typical data, in order to demonstrate the functionality of the tool to a new user. These procedures can be added using the macro language of the spreadsheet package. In Excel this language is called VBA. While a detailed discussion of the program in the workbook of this step is beyond the scope of this article, you can download it and switch to the editor using the key combination ALTF11. It should be noted that for security reasons, the execution of macros is by default deactivated in more recent versions of Excel. In order to activate it, the menu entry has to be selected, and the security level should be set to "medium".

Figure 12: Adding an introduction

4. Summary In this article, some aspects of the software engineering of personal productivity tools are discussed. Often these tools are implemented by an end-user using a spreadsheet package because this type of software is easily accessible and provides a broad range of functionality.

For people new to programming, the macro recorder can be used to provide the skeleton of the procedures. After having started the macro recorder from the menu entry , the user manually inputs the steps which are necessary, and the corresponding procedure is generated automatically. This approach to programming is normally only successful for very small procedures. Normally, the recorded program has to be revised in the visual basic editor of Excel. Such a revision requires sufficient experience in programming VBA. Coming from an OR/MS background, especially Albright (2001) can be recommended to learn VBA, because he shows which of the numerous constructs are essential for implementing decision support systems.

Nevertheless, implementing a spreadsheet tool is not a straightforward activity. Therefore, this paper provides guidelines for end-users on how to build an analytical tool. A case study illustrates how these guidelines translate into the implementation of a spreadsheet-based tool which can be reused and extended even though only basic functions of the spreadsheet package are used.

Acknowledgements The author would like to thank Erhan Erkut for providing a workshop in the year 2000 on how to use spreadsheet software as a didactic instrument. Also, a lecture from John Lawrence in the year 2001 provided valuable additional insights. At the INFORMS conference in November 2002, Ronald Lodewyck gave a useful presentation on how to produce and use videos for teaching purposes. Valuable suggestions based on an early version of this paper were made by Thomas A. Grossman. Last but not least, an associate editor of ITE and four anonymous referees helped improve this document with their comments. (17) http://ite.pubs.informs.org/Vol4No1/Scheubrein/Book10.zip

INFORMS Transcations on Education 4:1 (37-47)

45

© INFORMS ISSN: 1532-0545

SCHEUBREIN Elements of End-User Software Engineering

European Journal of Operational Research, Vol. 127, No. 1, pp. 14-27.

References

Grauer, R. T. and M. Barber (2002), Exploring Microsoft Excel Version 2002, Prentice Hall, Upper Saddle River, NJ.

Albright, S. C. (2001), VBA for Modelers - Developing Decision Support Systems with Microsoft Excel, Duxbury, Pacific Grove, CA, http://www.indiana.edu/~mgtsci/home_VBA.html

Grossman, T. A. (2002), "Spreadsheet Engineering - A Research Framework", http://sprig.section.informs.org/

Anderson, D. R. et al. (2000), An Introduction to Management Science - Quantitative Approaches to Decision Making, 9th ed., South-Western, Cincinnati, OH.

Hesse, R. (1997), Managerial Spreadsheet Modeling and Analysis, Irwin, Chicago. Hillier, F. S. et al. (2000), Introduction to Management Science - A Modeling and Case Studies Approach with Spreadsheets, McGraw-Hill, New York, http://www.mhhe.com/hilliermgtsci

Baker, K. (2000), "Gaining Insight in Linear Programming from Patterns in Optimal Solutions", INFORMS Transactions on Education, Vol. 1, No. 1, http://ite.pubs.informs.org/Vol1No1/Baker/

Humphrey, W. S. (1997), Introduction to the Personal Software Process, Addison-Wesley, Readings, MA.

Bocij, P. et al. (2003), Business Information Systems Technology, Development and Management for the e-business, Financial Times Prentice Hall, Harlow/UK.

Ingolfsson, A. and T. A. Grossman, (2002), "Graphical Spreadsheet Simulation of Queues", INFORMS Transactions on Education, Vol. 2, No. 2, http://ite.pubs.informs.org/Vol2No2/IngolfssonGrossman/

Booch, G. et al. (1999), The Unified Modeling Language User Guide, Addison-Wesley, Boston, MA. Camm, J. D. and J. R. Evans (2000), Management Science and Decision Technology, South-Western, Cincinnati, OH.

Janvrin, D. and J. Morrison (2000), "Using a structured design approach to reduce risks in end user spreadsheet development", Information & Management, Vol. 37, pp. 1-12.

Chan, Y. E. and V. C. Storey (1996), "The Use of Spreadsheets in Organizations: Determinants and Consequences", Information & Management, Vol. 31, No. 3, pp. 119-134.

SUN (2003), "JavaBeans - The Only Component Architecture for Java Technology", http://java.sun.com/products/javabeans

Conway, D. G. and C. T. Ragsdale (1997), "Modeling Optimization Problems in the Unstructured World of Spreadsheets", Omega, Vol. 25, No. 3, pp. 313-322.

Kirkwood, C. W. (1997), Strategic Decision Making Multiobjective Decision Analysis with Spreadsheets, Duxbury, Belmont, CA, http://www.public.asu.edu/~kirkwood/

Denardo, E. V. (2002), The Science of Decision Making: A Problem-Based Approach Using Excel, Wiley, New York.

Lawrence, J. A. and B. A. Pasternack, (2002), Applied Management Science - Modeling, Spreadsheet Analysis, and Communication for Decision Making, 2nd ed., Wiley, New York, http://www.wiley.com/college/lawrence

Eckstein, J. and S. T. Riedmueller (2002), "YASAI - Yet Another Add-in for Teaching Elementary Monte Carlo Simulation in Excel", INFORMS Transactions on Education, Vol. 2, No. 2, http://ite.pubs.informs.org/Vol2No2/EcksteinRiedmueller/

Leon, L. et al. (1996), "Spreadsheets and OR/MS - An End-User Perspective", Interfaces, Vol. 26, No. 2, pp. 92-104, http://www.interfaces.smeal.psu.edu/issues/edelman.php? article_id=v26n2a9

Edwards, J. S. et al. (2000), "The role of OR specialists in 'do it yourself' spreadsheet development",

INFORMS Transcations on Education 4:1 (37-47)

MICROSOFT (2003), "Defining the Basic Elements of .NET", 46

© INFORMS ISSN: 1532-0545

SCHEUBREIN Elements of End-User Software Engineering

http://www.microsoft.com/net/basics/whatis.asp

FORMS Transactions on Education, Vol. 2, No. 2, http://ite.pubs.informs.org/Vol2No2/Troxell/

Moore, J. H. and L. R. Weatherford, (2001), Decision Modeling with Microsoft Excel, 6th ed., Prentice Hall, Upper Saddle River, NJ, http://www.prenhall.com/moore

Winston, W. L. (1996), "The Teachers' Forum - Management Science with Spreadsheets for MBA's at Indiana University", Interfaces, Vol. 26, No. 2, pp. 105-111, http://www.interfaces.smeal.psu.edu/issues/edelman.php? article_id=v26n2a10

OBJECT MANAGEMENT GROUP (2003), http://www.omg.org/ Ragsdale, C. T. (2001), "Teaching Management Science With Spreadsheets - From Decision Models to Decision Support", INFORMS Transactions on Education, Vol. 1, No. 2, http://ite.pubs.informs.org/Vol1No2/Ragsdale/

Winston, W. L. and S. C. Albright (2001), Practical Management Science, 2nd ed., Duxbury, Pacific Grove, CA, http://www.indiana.edu/~mgtsci/home_PMS.html

Ragsdale, C. T. (2003a), Spreadsheet Modeling and Decision Analysis - A Practical Introduction to Management Science, 4th ed., South-Western, Cincinnati, OH. Ragsdale C. T. (2003b), "A New Approach to Implementing Project Networks in Spreadsheets", INFORMS Transactions on Education, Vol. 3, No. 1, http://ite.pubs.informs.org/Vol3No3/Ragsdale/ Raffensperger, J. F. (2003), "The New Guidelines for Writing Spreadsheets", http://www.mang.canterbury.ac.nz/people/jfraffen/ spreadsheets/index.html Savage, S. L. (1997), "Weighting the Pros and Cons of Decision Technology in Spreadsheets", ORMS Today, Vol. 24, No. 1, http://www.lionhrtpub.com/orms/orms-297/savage.html Savage, S. L. (2003), Decision Making with Insight, 2nd ed., Brooks/Cole - Thompson Learning, Belmont, CA. Seal, K. C. (2001), "A Generalized PERT/CPM Implementation in a Spreadsheet", INFORMS Transactions on Education, Vol. 2, No. 1, http://ite.pubs.informs.org/Vol2No1/Seal Sommerville, I. (2000), Software Engineering, 6th ed., Addison-Wesley, Readings, MA, http://www.software-engin.com/ Stevenson, W. L. (2002), Operations Management, 7th ed., McGraw-Hill, New York. Troxell, D. S. (2002), "Optimization Software Pitfalls Raising Awareness in the Classroom", ININFORMS Transcations on Education 4:1 (37-47)

47

© INFORMS ISSN: 1532-0545