Introduction System development is a crucial function the modern organization. Likewise, an introductory course Systems Analysis and Design remains a critical component a Management Information System (MIS) degree program. (Most MIS programs also include these components: Fundamental Concepts of Information and Computer Technology, Computer Hardware and Software, Project Management, Database Design, Telecommunications and Networking, Introductory Programming, and Information Systems Management.) Broadly speaking, the Analysis and Design course involves techniques from four skill categories: interpersonal skills, technical skills, analytical skills, and communication skills (Misic and Russo, 1999). Detailed content analysis, for twenty-nine of the leading textbooks this area, is provided by Misic and Russo (2000). An old saying suggests that in theory, there's no difference between theory and practice, but practice there is ... Like Woratschek (1999), academicians who spend a little time the trenche s often learn that formal system analysis and design techniques are sparsely used many organizations. This gap between tasks, tools, activities and approaches that are taught the MIS curriculum and those that are used, or viewed as useful, by practitioners has been documented (Misic and Russo, 1999). There are many valid reasons why gaps like these exist. Educators know that activities used to learn a process are often different from those required to do the process. They realize that instruction should involve fo rmative (best practices) as opposed to normative (usual practices). Educators also often feel responsible for leading the change preparing future systems analysts. Nowhere, however, does the gap between education and industry seem more profound and inexplicable than the teaching of object-oriented (OO) principles. The OO approach offers clear advantages of reusability, extendibility, and portability. On the one hand, we see the Internet driving the future and with it the demand for OO information technology skills such as proficiency the OO programming language Java (Brandel, 2000; Enticknap, 2001; Watson, 2000). In some firms, staff increases up to 40% are expected for people with knowledge of OO methodologies and UML (Goff, 1998). Object-oriented development has moved into the mainstream with the widespread adoption of the Common Object Request Broker Architecture (CORBA), Microsoft's .NET Initiative, and Sun's Enterprise Java (J2EE) (Langley, 2001; Sullivan, 2001). On the other hand, OO analysis and design seems to play a minor role the current MIS curriculum. Misic and Russo (2000) indicate that of 29 systems analysis and design textbooks studied, 26 (or 90%) of them devoted less than 5% of the text to OO analysis and design techniques. McLeod (1996) indicates that instructors tend to favor the traditional process-oriented methodologies over the more recently developed ones that emphasize data and objects...decisions strongly influenced by the instructor's experience. This paper focuses on an object-oriented technique commonly used software design, namely the identification and application of design patterns. We discuss the introduction of design patterns the System Analysis and Design course, providing a concrete example involving two patterns, the Decorator pattern (the skin) and the Strategy pattern (the guts). Design Patterns and Software Frameworks Few complex software systems today are built from scratch using the so-called Greenfield engineering strategy (Bruegge and Dutoit, 2000). Many more projects are evolutionary, involving the redesign and re-implementation of an existing system and/or its interface, triggered by new technology or new information. Reusable program modules are beginning to be recognized as having tremendous strategic value as managers face re-engineering failures at a rate as high as 70% (Fayed, 2000). …
Read full abstract