Introduction

The productivity of knowledge is going to be the determining factor in the competitive position of a company, an industry, an entire country.

—Peter F. Drucker [Drucker 1993]

The nature of business has changed, and the signs of this change are all around us. Fundamental methods of business, forged during the industrial revolution and perfected over the last 300 years, have now been forever replaced. The new methods are primarily based on information and technology and driven by global competition. This era, in which production methods are based on knowledge rather than labor and competition, has been coined the information age. The pioneers of this age have created new companies so powerful that they can rival or threaten the powerhouses of the established business world.

There is much more to these new business methods than meets the eye. Information and technology are critical but not necessarily sufficient to foster a change of this magnitude to the business landscape. A small start-up company such as Amazon.com is not capable of challenging a Barnes and Noble with technology alone. It has been able to use technology and information to create productivity increases and competitive advantage. And it has created competitive advantage in a very organic and imaginative way.

The news of productivity increases and competitive advantage has not been lost on those of us who have not been the actual pioneers of the information age. The rapid acceleration of computer and telecommunications technology has generally resulted in a significant boost in the velocity of business [Greenspan 1999]. It seems that most of us have benefited, even if we don’t ourselves use the ad hoc methodologies that propel 10 percent of the start-ups to success. It is, however, important to understand the critical factors that contribute to the general well-being that we are all currently experiencing. We must also understand the factors that can allow us to be more competitive.

Role of Information Technology

One thing is certain: there is no longer any doubt about the role of information technology in today’s companies. It is a fundamental part of the operations of every company. The relationship between business and computers, albeit tumultuous at times, has solidified. The result is a partnership that fosters or enables true business change.

As information technology has focused on business change, so has business itself. Business engineering and automation are no longer synonymous with layoffs [Hammer 1995]. In many cases, automation can be used simply to handle the mundane work, allowing us humans to focus on the more interesting areas of our jobs. Interestingly enough, there are also cases where automation cannot be used. In these cases, automation has been found to create more problems than it solves. Many health care claim systems have been fully automated, only to find that combatting fraud requires human intervention. The result has been a harmonious combination of humans and technology in today’s claim systems. However, the point is that we now realize that change is inevitable. If we do not change when competitive advantage can be increased, our competitors will, and we will lose the market position for which we have worked so hard.

Information technology is an essential enabler of this business change [Hammer 1993]. However, technology initiatives cannot be performed in a vacuum. They must be completed as part of a bigger ambition: the changing of a business system. This change must occur in organizational, process, and people initiatives. Technology can then be used to enable the change.

Enabling Change through Information Technology

Nowhere is the partnership of information and technology exemplified more than in the World Wide Web. Very few companies that wish to remain in business can afford to ignore this medium. The Internet, as an avenue for sales, marketing, and support, continues to be very lucrative. In fact, the number of businesses with Web sites on the Internet surpasses the number of businesses with toll-free phone numbers! Web sites are only one of many ways that software automation can increase efficiency.

A popular view is that all business change projects utilizing information technology should have a measurable result [Thorp 1999]. Certainly a measurable result, commonly known as return on investment, is important to any business. However, using only the bottom line as an indicator of the value of any project misses some of the key lessons of the twentieth century. Creating Web-based technology centers initially was not thought of as yielding tangible value for companies. You never know when an important technology change may occur. Businesses that are ready for change do better than those that are not.

Another intangible benefit of information technology is the potential for innovation. Innovation is key to the information age, yet very little instruction is offered on how to encourage innovation in a systematic way. Peter Drucker, who correctly predicted in 1993 [Drucker 1993] from an economic and sociological perspective much of what we are seeing today, described the dynamics of what we now know as knowledge management. He claimed that the way to encourage the productivity of knowledge is

. . . to focus on the end result, on the task, on the work. “Only connect” was the constant admonition of the great English novelist, E. M. Forster. It has been the hallmark of the artist, but equally of the great scientist—of a Darwin, a Bohr, an Einstein. At their level, the capacity to connect may be inborn and part of the mystery we call “genius.” But to a large extent, the ability to connect and thus to raise the yield of existing knowledge (whether for an individual, for a team, or for the entire organization) is learnable. Eventually, it should become teachable. It requires a methodology for problem definition—even more urgently perhaps than it requires the currently fashionable methodology for “problem solving.”

What Peter Drucker is describing is the need for a methodology to systematically define problems that occur in business. Without this methodology, we cannot make the connections required for innovation. A methodology is needed that ingrains the ability to consistently use technology and information to create productivity increases and competitive advantage. Some of the values of these increases may be tangible, others intangible (at least by strict accounting rules).

Our ability to define problems gives us three very important pieces of the productivity puzzle. The first and most important is the ability to focus on the result that we are attempting to achieve. The second is the realization of the need and the desire to continuously learn. Finally, there is the gratification of solving a worthwhile problem. A motivated, learning organization is a worthy adversary in the competitive battles of a global economy and technological paradigm shifts.

Software Industry

The software industry has proven to be a lucrative business all on its own, producing wealth without compare for a few individuals. Perhaps this wealth and opportunity come from the role this technology plays in the change of business. Certainly all software is not aimed at business. Some is aimed at the consumer and some is written just for fun.

Regardless of who the audience may be, building software that meets their needs is critical to the success of the system. Therefore, in software as in business, problem formulation is very important. It is also very difficult. Fred Brooks [1987] wrote in a landmark article:

The hardest single part of building a software system is deciding precisely what to build. No other part of the conceptual work is as difficult as establishing the detailed technical requirements, including all the interfaces to people, to machines, and to other software systems. No other part of the work so cripples the resulting system if done wrong. No other part is more difficult to rectify later.

Brooks stated then what is still true today. The most difficult aspect in the successful delivery of software solutions is the precise conceptualization and specification of the system to be built. To create the conceptualization and specification requires not only an in-depth understanding of the problem to be solved but also an understanding of how the computer can be used to help solve the problem.

The problem with the conceptualization and specification of software applications is the invisibility factor [Brooks 1987]. Invisibility means that it is very difficult to visualize a new software function. The customer tries to describe what he wants done; the requirements are then gathered, and all is passed along to the eager developer. Unfortunately, during this process, something often gets lost in translation (Figure I-1). This imperfect communication may also be one reason why the process of specifying an application is so hard and takes such a long time. New applications may be useless because they are not what the customer asked for. The complexity involved in this understanding naturally increases with the size of the system, with the innovation involved in the problem and the solution, and with the number of interfaces that the system has.

Figure I-1. Exact software function is difficult to visualize and communicate

image

Software Component Industry

Because of the competitive nature of the software industry, time to market is often the most critical element in the success or failure of a system. Components are a promising technology capable of increasing software development productivity. Components make it possible to assemble software systems from building blocks. System developers build a basic system using these building blocks and add their own elements for competitive advantage.

Certainly the technology for capturing the building blocks is available. One example of a component technology that is widely used is JavaBeans. The critical element necessary to create components is the distillation of requirements to the level of detail that allows them to be useful to a component creator [Finch 1998]. Distilling requirements to this level also creates a focus on solving the problem instead of on overengineering.

Measurable Value

The focus of an engineering effort using advanced use case modeling is on the development of a complex system. This complex system is called the final deliverable (Figure I-2). The value of the final deliverable should be quantifiable so that the return on investment for the project may be understood. Along the way to achieving this final goal, models are created to better understand the goal. These models are called artifacts.

Figure I-2. Final deliverables of the advanced use case modeling process

image

The people to whom we are delivering a system of measurable value are called stakeholders. A stakeholder is someone who is directly affected by the delivery of the complex system. Some stakeholders may directly interact with the proposed system; they may be users, operations people, installers, and so on. These stakeholders belong to a group known in use case modeling as actors. An actor is an entity (some of which may be human) that interacts with the system. We examine actors of software systems in detail in Chapter 1.

Others may be affected indirectly by the delivery of the system. These stakeholders may be customers (who do not use the system), management, developers, and so on. Whether a stakeholder is direct or indirect, the satisfaction of this diverse group of people is important to the success or failure of a project. However, each of these groups may have a very different idea of what they want from the system and a very different point of view.

Advanced Use Case Modeling

Advanced use case modeling is a systematic process for formulating problems for business engineering, software engineering (Figure I-3), or component engineering. This process is extremely powerful, yet it is easily understood by people whose focus is either business or software. The technique targets the uses of systems and so focuses attention directly on the problem to be solved. The methodology describes how to create models that specify interactions in a business, software system, or component system. Modeling interactions allows us to obtain tangible and measurable value in whatever area we are in. We reap the intangible benefits (such as innovation and the ability to deal with the unexpected) as well.

Figure I-3. The advanced use case modeling process framework

image

Use cases are the fundamental unit of modeling in the advanced use case modeling process. Use cases drive the activities performed within the process and also the activities that happen next. Most important of all, they provide a common language in which all parts of an organization (business, software system, and component engineering) can communicate.

Use cases provide an incremental and “modular” way to describe a system. A use case describes a way in which a complex system is employed by its users. Additions or changes to system functionality are easy to make to models. Since a use case merely describes one way to use a system, the complete description of a system requires many use cases. The combination of the use cases and the actors in a given system forms its use case model. The use case model describes the composite behavior of a system.

Use cases provide representations of system requirements that can be easily understood by the different stakeholders. Each use case is described using narrative text. The use case model is described with a combination of narrative text and a small subset of easy-to-learn symbols called the Unified Modeling Language (UML).

Advanced use case modeling is a methodology applicable to a wide range of problems in business, software, and component engineering. The successful use of the methodology requires an environment in which the end result is understood to be of value.

Conclusion

Advanced use case modeling grew out of the many productivity initiatives that began in the late 1980s: business processes, object-oriented systems, and software component engineering. This methodology is a systematic technique for defining, conceptualizing, and specifying problems in these domains. Formulation and subsequent solution of problems in these areas often yields tangible benefits: a more efficient business process, a new software system, or a component library.

It is our belief that use case modeling provides intangible benefits as well. We offer use cases as a user-friendly and systematic way of achieving innovation and productivity gains. The goal of the methodology is to increase productivity through a single, unified communication vehicle that branches from business to systems to components. Certainly the groups responsible for these deliverables are very different. However, a common language facilitates the business change required to compete effectively in any arena.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.216.49.228