Chapter One 1.1 With what other terminology is systems analysis and design synonymous? Systems analysis and design is also known as information systems engineering, software engineering, systems engineering, software development, and systems development. 1.2 What activities and deliverables are included in analysis? Activities: systems planning, feasibility study (optional), requirements determination, user acceptance,and prototyping (optional). Deliverables: Requirements specification and prototype (optional). 1.3 What activities and deliverables are included in design and implementation? Activities: Physical design, prototyping (optional), software construction/purchase, user documentation, testing, training, user acceptance, conversion, and implementing the system. Deliverable: Information system. 1.4 Describe a system and the components of a systems model. A generic systems model consists of six components- inputs, processes, outputs, controls, feedback, and boundary. Using predetermined controls, a system accepts inputs at its boundary, processes them into outputs, and provides a feedback mechanism for taking any necessary corrective action. 1.5 What two key components distinguish an information system from an automated information system? Software and hardware. 1.6 How are data incorporated into an automated information system and what role does it play? Data are either input, stored, or output. As part of the information system, data that are input and data that are stored are transformed or processed into meaningful output data called information. 1.7 How do the components of an information system relate and what is the purpose of each component? In addition to having the six general system components, an information system has three additional components- people, procedures, and data. People interface in some way with a system. The way we are supposed to interface with the information system is often documented in the form of procedures, and our interaction usually results in providing data to the system. 1.8 Name and describe each of the basic characteristics of an automated information system? Data are either input, stored, or output. A function is a business activity performed. Behavior is the observable effects of a request. 1.9 What are some of the problems associated with systems analysis and design? 1) Analysis problems, at their inception, have ill-defined boundaries and structure, and have a sufficient degree of uncertainty about the nature of the solution. 2) The solutions systems analysts come up with to solve the problems are artificial, and since they are designed by humans with different backgrounds, experiences, biases, and so on, there exists an endless variety of potential solutions. 3)Analysis problems are dynamic. 4) The solutions to analysis problems require interdisciplinary knowledge and skills, hence, the need for a team approach to information systems development. 5) The knowledge base of the systems analyst is continually evolving. 6) The process of analysis is primarily a cognitive activity. 1.10 What sociological and psychological factors play a role in systems analysis and design? Information systems involve people and, whenever people are involved in an activity, difficulties can arise due to the myriad number of human behavior and communication issues that people bring with them into the project. These issues are buried deep into the makeup and experiences of each human being. 1.11 Who is affected most by an information system? The systems analyst. 1.12 Given the previous question, explain how a systems analyst is more than just a programmer. In a typical business, the systems analyst may need to interact with individuals who have different roles within that business. The greater the number of interactions with individuals who have different roles calls for more experienced systems analysts. In situations where the systems analysts needs to be involved in many different human interactions, he or she may be functioning as a project manager. 1.13 Briefly describe the components of the general model of systems analysis and design. The general model identifies three major items: activities (analysis, design, and implementation), people involved in the activities (user, information technology staff), and inputs and outputs (requirements, problem definition skills,requirements specification, problem solution skills, continued involvement, and the information system). 1.14 What are the activities involved in systems analysis and design? Activities, also referred to as tasks, are the work that is performed by systems analysts and others as part of analysis and design in order to complete the systems development process. Analysis activities include: systems planning, feasibility study, requirements determination, user acceptance, and prototyping. Design activities include: physical desing, prototyping, software construction/purchase, user documentation, testing, training, user acceptance, conversion, and implementation. 1.15 What is the most critical element to keep in mind when developing an information system? Why? Requirements determination. Mistakes and oversights made during this activity become prohibitively expensive when they are eventually discovered later in the project. 1.16 How does your answer to the previous question affect a standardized application of a particular information system to all problems of a similar nature? Mistakes and oversights can be reduced by the availability of a standardized problem domain template. Such a template could provide the systems analyst with an initial check list of predetermined inputs, processes, and outputs from which to begin with when designing a specific instance of an information system for this problem domain. 1.17 What are some of the causes that trigger new or updated information systems projects? Problems, Opportunities, Directives, and Constraints. 1.18 What is the purpose of the systems development life cycle (SDLC)? The information systems development life cycle (SDLC) is the process by which an information system comes to life and maintains its usefulness to a business as it moves from inception to replacement; its purpose is to help facilitate this process. 1.19 Briefly describe the activities in an SDLC. 1) Systems planning (planning for an information system) 2) Feasibility study 3) Requirements planning 4) Conceptual design 5)Physical design, prototyping, construction, and testing, or purchase, testing, and integration. 6) Conversion (from current system to new or changed system) 7) Training 8) Implementation 9) Evolution for enhancements and maintenance. 1.20 What are some of the guiding principles of information systems analysis and design? 1) The system is for the user. 2) A work breakdown structure such as an SDLC should be established for all information systems development projects. 3) Information systems development is not a sequential process; it allows for activity to overlap, revisting, inclusion/exclusion, and so on. 4) Information systems are capital investments for the business. 5) The project manager should not be afraid to cancel a project if its success is seriously challenged. 6) Documentation (manual and/or electronic) is a deliverable product during each activity of the SDLC. 7) Senior management support is necessary for the development project. Chapter Two 2.1 What is the meaning of feasibility in an information systems development project context? It is the measure of how beneficial the development or enhancement of an information system would be to the business. 2.2 What is feasibility analysis and what is its purpose in information systems development? It is the process by which feasibility is measured. It is an ongoing process done frequently during systems development projects in order to achieve a creeping commitment from the user and to continually assess the current status of the project. 2.3 Discuss operational feasibility in an information systems development project. Operational feasibility is the measure of how well a particular information system will work in a given environment. 2.4 What does technical feasibility measure? The practicality of a specific technical information system solution and the availability of technical resources. 2.5 What are some of the implications of economic feasibility (or non-feasibility) of an information systems development project? Economic feasibility is the measure of the cost-effectiveness of an information systems solution. When the benefits exceed the costs, the system has economic value to the business. How much value is a function of management's perspective on investments. 2.6 What are some of the different elements that make up systems development costs and annual operating costs? Systems development costs are a one-time cost. The annual operating costs are an ongoing cost once the information system is implemented. Systems development costs include: development personnel, training, supplies, purchased software and hardware. Annual operating costs include: maintenance personnel, supplies, and hardware and software upgrades. 2.7 In information systems development, what does the requirements determination process accomplish? Requirements determination addresses the gathering and documenting of the true and real requirements for the information system being developed. 2.8 List several of the problems and difficulties associated with requirements determination. Most are attributed to the fact that this is a highly cognitive and creative activity for all of the members of the development team, including the users. The systems analyst's amount of functional understanding of the problem domain, the dynamic nature of the problem domain being investigated, the dynamic nature of the business environment, communication issues, and human factors also contribute to the challenge. 2.9 Describe how a business's environment can have an effect on the requirements determination process. Information systems development must coexist with the business dynamics. In effect, systems analysts are essentially shooting at a moving target during systems development. Today's requirements may be obsolete tomorrow or next week, month, or year. 2.10 Discuss a particular problem that may result when a systems analyst is working with an unfamiliar topic or functional business area. Critical requirements determination factors could easily be overlooked. 2.11 Contrast the problem domain with an information system as a whole. What differentiates the two? And what/who determines what each will consist of? In systems analysis and design, the problem domain refers to the business problem, area, or fuction being investigated and analyzed. Rarely does everything within a problem domain become part of the information system. Discussions with the information system's user will help determine when to include aspects of the problem domain and when to exclude them. 2.12 What do requirements mean in an information systems context? How does this differ from a common definition of requirements? The definition of requirements for our purposes is the wants and/or needs of the user within a problem domain. Technically speaking, requirements refers to those items that are necessary or essential in the system. Within the systems context, however, requirements often includes those items that may not necessarily be essential but are, nonetheless, desired and, therefore, required. 2.13 Why is requirements determination regarded as a perpetual activity? In reality the requirements are defined at the beginning of the project along with the system's objectives. However, additional requirements are often identified during later activities of the systems development life cycle (SDLC). For example, new or changed requirement may surface during the testing activity, an activity where it is ultimately determined how the system will be best implemented in the environment. Therefore, while it is nice to think about requirements determination being completed very early during systems development, it is somewhat artificial to close off the definition and gathering of requirements as we move from analysis activities to design and implementation activities. 2.14 What are the four sub-activities within requirements determination and what is the role of each? 1) Requirements Anticipation--The systems analyst hypothesizes that particular requirements are relevant based on his or her previous experience with other similar systems and knowledge about the problem domain. 2) Requirements Elicitation--The systems analyst uses this activity to gather the essential requirements from the user employing a variety of techniques, such as interviews, questionnaires, group brainstorming meetings, and voice and e-mail. 3) Requirements Assurance--The systems analyst uses the activity of requirements assurance to validate and veryify the requirements with the user as being the real and essential requirements. 4) Requirements Specification--This is the activity that the systems analyst uses to explicity catalog and document the requirements either during or after the elicitation and assurance activities. 2.15 How do these sub-activities relate to each other? The preceding four subactivities are tightly coupled with each other and highly iterative in nature. Systems analysts have often commented that it is difficult to isolate one subactivity from the others because they are so interrelated. 2.16 Briefly describe the main idea behind the PIECES method of requirements determination. The main idea is to focus on the actual work of doing requirements determination. The goal of the model is to assure the systems analyst and the user that questions will be included during analysis about each of these six essential subjects as it relates to the problem domain. 2.17 What are the components of the PIECES model? Briefly describe each. 1) Performance questions address how the system needs to perform for the user. 2)The information category provides the basis for the information or data model that the system needs to maintain. 3) The economy subject area addresses project development and operational cost information along with any objectives that may relate to economy or savings associated with the system. 4) The control category is closely associated with system security issues as well as the editing required on the incoming data. 5) Efficiency is a measure of method correctness. 6) The final category is essentially the functional requirements of the system which is associated with services. 2.18 What is the first part of Kozar's Requirements Model? Discuss its importance with regard to the model as a whole. The Mission/Purpose is the first part of the model. The important point for the requirements model is that a general business direction must be provided before the information system requirements can be identified. 2.19 In what case would the PIECES model rather than the Requirements Model be a more practical method of requirements determination? The PIECES model may be more practical when the business model is not well defined and/or the business objectives lack specific tactics that can direct information system activities. 2.20 Name and briefly describe the four major activites in Coad's object-oriented method for gathering and modeling problem domain requirements. 1) Identify purpose and features of the information system. 2) Identify objects and patterns. 3) Establish object responsibilities: "what I know," "who I know," and "what Ido." 4) Work out the system's dynamics using scenarios. 2.21 Name and briefly describe the four major model components in Coad's object-oriented method for gathering and modeling problem domain requirements. 1) Problem domain--activities related primarily to the problem domain under consideration. 2) Human interaction--activities related primarily to the human-computer interface, such as displays (windows) and reports. 3) Data management--activities related primarily to the persistent storage of data, such as databases. 4) System interaction--activities related primarily to the interaction of this system with other systems. 2.22 What are the global, individual and group methods available for gathering requirements? What are some of the problems with these particular methods? Starting with the global view of the system, the requirements can be gathered by 1)reviewing current or past reports, forms, files, and so on, 2)conducting research into what other companies hav e done for the same problem domain, and 3)conducting site visits to similar system installations. The drawback to the global view, and thus all three of its requirements-gathering methods, is that it focuses on what has already been done and may overlook innovations needed for the future.Within the individual category, common methods include: 1)interviews, 2)observations, 3) questionnaires, or surveys, and 4)creating a prototype. Some typical drawbacks to these methods include taking the longest time to accomplish and disastrous group meetings due to poor facilitation and lack of conflict resolution mechanisms. 2.23 What is the most important thing to keep in mind during the requirements determination process? The focus of this phase of the systems development life cycle should be on "what" the information system is supposed to do rather than on "how" it is going to do it. Understanding and accurately documenting "what" the information system is supposed to do is the most important thing to keep in mind. 2.24 What is prototyping and what advantages does it present during requirements determination? The idea is to explore system alternatives by developing small working models of the proposed system so that user reactions can be gathered. It goes along with the notion that "users don't know what they want until the users see what they don't want." Therefore, quite often the value of prototyping at the requirements level is to eliminate the unwanted features of the system, as well as define the desired features. 2.25 What are some of the other group-level techniques and how can they be used to enhance the requirements determination process? Other group techniques include group brainstorming, electronic JAD, and the use of group systems software often referred to as groupware. They can enhance the process by allowing the group to develop its own synergy; letting the user see that others are affected by what he or she does and if the group is well facilitated with a way to effectively resolve conflict, communication among the users improves. Finally, because the individual ideas of the users are gathered in one place at one time, group methods are more efficient for the project team and provide a natural way to synthesize and consolidate results. 2.26 Give an example of how group-level interaction in requirements determination can fail. Group interactions can be a disaster for the project team when the meetings are poorly facilitated, have no way to resolve conflict, and/or consist of people who are not directly and/or potentially involved with the system. 2.27 Describe the steps that facilitated groups take during requirements determination. The steps to use in facilitating groups are to brainstorm with the expectation that as many ideas will be generated as possible. When ideas begin to be repeated or no new ideas come forth, or if the preassigned time is up, idea generation is closed off. All ideas, regardless of "value" or seriousness, are recorded so that everyone in the room can see the list. The list is then reviewed and consolidated where needed. Depending on the length of the list and its intended use, the next step can either consist of rank ordering the items into a priority list, classifying each item into one of several categories, or rated in importance to the system. 2.28 What are the three common elements essential to requirements determination, regardless of the method used to gather? 1) Feedback to the user for verification is necessary, 2) context-free content is desired, and 3) good communication skills are required. 2.29 What is the main goal behind requirements determination? The main goal is to accurately document the real requirements for the information system from a "what the information system is supposed to do" perspective. 2.30 Discuss some of the problems that lead to requirements ambiguity. How can these problems be alleviated? The three most common sources of requirements ambiguity are 1)missing requirements, 2)ambiguous words, and 3) introduced elements. These ambiguities can be alleviated if the systems development team develops synergy as it works together. 2.31 Why are correcting errors and realizing deficiencies so important during the requirements determination process? Studies over many years have suggested that the cost to fix errors, oversights, and other problems that exist in requirements documents escalates the further you are into the project when the problem is detected. Chapter Three 3.1 What is a methodology? A methodology is the way something is done in systems analysis and design. 3.2 Briefly discuss the different ways of acquiring a methodology. Methodologies can be 1)obtained or purchased from another business, 2)created by your own business team, or 3)a combination of the two. 3.3 How would you best describe the traditional methodology classification? Today classifying one's methodology as being traditional is often a kind way of saying that you have no methodology at all or, at best, an unstructured, unrepeatable, unmeasurable, ad hoc way of doing something. 3.4 Given your answer to the previous question, what is the major disadvantage of this type of methodology? The traditional methodology becomes much less effective as the size of the team grows or as the complexity of the information system grows. 3.5 Why is the structured analysis and design methodology sometimes called the data flow modeling methodology? Because in this methodology, the real world is described by the flow of data through an information system and the transformations of the data into information as the data move. 3.6 How has computer-aided software engineering (CASE) changed the structured methodology? With the introduction of CASE tools around 1984, computerized software support has emerged to provide assistance for drawing the methodology notations, validating and verifying the methodology models that the notations represent, and allowing management to monitor the progress of a project via computerized project management support. 3.7 What problem-solving approach is at the heart of an information modeling methodology? The predominant focus of this methodology is to do the analysis and design from an information perspective. In other words, the analyst uses a "what information does the system have to be able to provide the user?" problem-solving approach. 3.8 How does an information modeling methodology differ from the approach used in a structured methodology? It approaches the development of information systems predominantly from an information perspective rather than a functional perspective as does the structured methodology. 3.9 How does the approach taken in an object-oriented methodology differ from strategies employed by the information modeling methodology? The problem-solving strategy inherent in object-oriented programming is to approach the problem from an object (e.g., person, place, or thing) perspective rather than the functional perspective of traditional and structured methodologies or the information perspective of an information engineering methodology. 3.10 List and describe the eight characteristics of an object-oriented methodology. 1)Common methods of organization--assist with organizing an information systems model as well as the software that is ultimately written. 2)Abstraction--is the principle of ignoring those aspects of a problem domain that are not relevant to the current purpose in order to concentrate more fully on those that are. 3)Encapsulation or information hiding--is the notion that a software component (module, subroutine, method, and so on) should isolate or hide a single design decision. 4)Inheritance--is a mechanism for expressing similarity. 5)Polymorphism--in the general sense is the ability to take on different forms. 6)Message communication--is the way objects in an object-oriented methodology communicate with each other. 7) Associations--are useful to assist with relating things in an information system to each other. 8)Resue--can take one of three forms: sharing, copying or cloning, or adjusting. 3.11 What role does abstraction play in an object-oriented methodology? Abstraction is used to identify essential information system requirements while simultaneously eliminating nonessential aspects. An abstraction intentionally ignores some qualities, attributes, or functions of an information system in order to focus attention on others. 3.12 What is another term for encapsulation, and what is its purpose within an information system? Information hiding is another term for encapsulation. Encapsulation helps to localize their volatility when changes and maintenance are required after they have become software modules. A further elaboration of encapsulation or information hiding is any mechanism that allows certain portions of the information system to be "hidden". This can be useful in at least two different situations: a. When it is important that people only use of have access to a certain subset of the complete information system. b. To purposely prevent other components of the information system from being aware of or unable to take advantage of certain other components in the system. 3.13 What is one of the main advantages of reuse within an object-oriented methodology? The main advantage of reuse is that it saves time, time that would otherwise be spent creating and debugging new code. A second significant advantage of reuse is that of using code again that has "no known defects". 3.14 Discuss a few of the roadblocks that are standing in the way of industry acceptance of reuse? The first factor is the retraining of the mindset of the analysts and programmers who are accustomed to creating their own systems models and code. The second factor relates to the administrative factors that must be established for setting up a library of reusable models and code. 3.15 What significant aspect of object-oriented methodology resolves problems associated with the older methodologies? The use of only one model in object-oriented methodologies resolves problems with regard to the different views, and with regard to the proverbial transition from analysis to design. 3.16 What are the three concepts within classification theory and how do they relate to object-oriented methodology? 1)The differentiation of experience into particular objects and their characteristics--objects and their characteristics. 2)The distinction between whole objects and their component parts-- wholes and parts. 3)The formation of and the distinction between different classes of objects--classes or groups of objects. People's common understanding and use of classification theory is one strong reason why an object-oriented perspective is a viable approach to analyzing, designing, and building information systems. People are already familiar with it. Learning something totally new is not required. 3.17 What is meant by reuse? What role does it play in systems analysis and design? Reuse simply means taking something that has already been used or put into action, and using it or putting it into action again. Reuse is a much talked about concept in systems analysis and design, but one which is still struggling to make a significant contribution to the development process. The role that reuse assumes in systems analysis and design is primarily related to the sharing, copying or cloning, or adjusting of previously created code. 3.18 Name and discuss the different types of reuse that are possible. Reuse can take one of three forms: (1)sharing, (2)copying or cloning, or (3)adjusting. Sharing: In software development, a subroutine, module, paragraph, procedure, service, or file definition are all potentially reusable; they can all be used over and over again, intact, within an information system. Copying or cloning: In software development, we could have a paragraph of a COBOL program that we copy and put into another COBOL program, giving two paragraphs that are identical. Adjusting: A variation of the adjusting type of reuse is the situation in which the standard item is actually changed and then used in some other application. 3.19 List and briefly define the four model components in Coad's Object-Oriented Methodology. 1)The problem domain component--contains objects that directly correspond to the problem being modeled. 2)The human interaction component--contains objects that provide an interface between the problem domain objects and people. 3)The data management component--contains objects that provide an interface between problem domain objects and a database or file management system. 4)The system interaction component--contains objects that provide an interface between problem domain objects and other systems or devices. 3.20 List and briefly describe Coad's object-oriented analysis notation symbols. 1)The model component--notation symbol, is used to partition the object model into four distinct partitioning groupings-problem domain, human interaction, data management, and system interaction. 2)Class-with-objects--are people, places, and things, such as employee, vendor, store location, rental transaction, video, VCR, and so on. 3)Classes- are abstract class-with-objects used to show generalization-specialization connections. 4)The generalization-specialization connection-- symbol is used to associate one generalization class or class- with-objects with one or more specialization classes or class- with-objects symbol together in a hierarchical parent-child pattern type of relationship. 5)The whole-part object connection--notation symbol is used to associate two class-with- objects symbols together in a whole-part pattern type of relationship. 6) The object connection--notation symbol, like the whole-part object connection, is also used to associate two class-with-objects symbols together. 7)A message--is a request for a service to be performed, sent from a sender to a receiver. 3.21 If you wanted to draw a picture of an information system, what would you need, at minimum, to undertake this task? 1)Familiarity and understanding with a problem domain, and 2)familiarity and understanding of a specific notation. 3.22 Define notation and briefly explain its importance in an object-oriented information system. Notation is a set of symbols used to communicate or represent something. It is vitally important in order to accurately represent the information system that is being analyzed and designed. 3.23 Define and give a few examples of the class and class-with- objects notations. Simply stated, class-with-objects are the things that an information system needs to know within a specific problem domain. Class-with-objects are people, places, and so on. Classes are abstract class-with-objects used to show generalization-specialization connections. Because they are abstract, classes have no objects. Objects are the actual instances of people, places, and things and are always associated with a class-with-objects, as its name implies. For example, individual video objects associated with the Video class-with- objects would be each specific movie video that is available for either rent or sale. 3.24 What is the importance of the class and class-with-objects symbol notations within the problem domain component of the object model? The model component notation symbol, is used to partition the object model into four distinct partitioning groupings-problem domain, human interaction, data management, and system interaction. All of the classes and class-with-objects would be listed in the problem domain(PD) model component. Since each model component simply lists the classes and class-with-objects contained within it, it can be viewed as a more abstract view of the object model. 3.25 What are the two additional elements usually found within the class and class-with-objects notations and what is their purpose? Classes and class-with-objects usually have attributes or characteristics which describe them in more detail. Classes and class-with-objects usually have services that the class or class- with-objects is responsible for accomplishing. 3.26 What is the purpose of the generalization-specialization connection within Coad's object-oriented methodology notation? The generalization-specialization connection symbol is used to associate one generalization class or class-with-objects with one or more specialization classes or class-with-objects symbol together in a hierarchical parent-child pattern type of relationship. Often specializations can be thought of as being a "type" or "kind" of the generalization. 3.27 Distinguish the whole-part object connection symbol from the generalization-specialization connection symbol. The whole-part object connection--notation symbol is used to associate two class-with-objects symbols together in a whole-part pattern type of relationship, while the generalization- specialization connection symbol is used to associate one generalization class or class-with-objects with one or more specialization classes or class-with-objects symbol. 3.28 What is the main purpose of the "n-n" and "1" notation in the whole-part object connection? Basically, this notation represents constraints placed on the connection relationship. 3.29 What is the nature of relationships as symbolized by the object connection? The object connection notation symbol, like the whole-part object connection, is also used to associate two class-with-objects symbols together. However, this connection is not considered as strong a connection as whole-part. Constraints are also indicated on an object connection symbol. 3.30 What is the purpose of a message? Describe how one works. A message is a request for a service to be performed, sent from a sender to a receiver. It is used to help a class or class-with- objects carry out its intended responsibilities. Classes and class-with-objects usually have one or more services belonging to them. Often a service needs help from another service in the same or another class or class-with-objects in order to perform its responsibility. For example, a createPaycheck service may send a message to getEmployeeSalary, computeGrossPay, and computeFedTax services (among others) in order to fully prepare a paycheck for printing. 3.31 Why is it sometimes helpful to identify attributes within a particular class or class-with-objects? Attributes and services help communicate more about what data (attributes) are associated with the information system, and what functions (services) are performed by the information system. 3.32 What distinguishes a service from an attribute within a particular class or class-with-objects? Attributes are characteristics which describe a class or class- with-objects in more detail. Services represent the actions or functions that a particular class or class-with-objects must accomplish in order to help fulfill the overall mission of the information system. Chapter Four 4.1 Briefly define and give an example of a class and an object. An object is defined as an abstraction of a person, place, or thing within the problem domain of which the information system must be aware. A class is a set or collection of abstracted objects that share common characteristics. Examples of objects, or what is often referred to as instances, could be your wetsuit, your backpack, your surfboard, your automobile, your skateboard, your telephone, each key on your key chain, the paycheck you received last pay day, and so on. Examples of classes could be Wetsuit, Backpack, Surfboard, Automobile, Skateboard, Telephone, Key, and Paycheck. 4.2 What is the difference between a class and class-with-objects? A class (with no objects) will never have objects. A class-with- objects may have objects now or in the future. 4.3 What is the major distinction between classes and objects? An object must always belong to a class. There is no provision in the notation for a stand-alone object. 4.4 How many different notation symbols are used for class and object? Draw each of them. The class-with-objects notation is a double squircle with the inner squircle being a bolder-line than the outer squircle. The class (with no objects also known as an abstract class) notation is a single, bold-line squircle. 4.5 In object-oriented notation, how is a class distinguished from a class-with-objects? The only difference between the class and class-with-objects squircle is the outer, thin squircle that surrounds the inner, thick class squircle. When you see the class-with-objects squircle, you can infer that this class has the potential to have zero, one, two, or more object instances associated with it. Even if the class-with-objects squircle has thousands of objects, it is drawn with only one thin squircle surrounding the class's thick squircle. 4.6 What are the three sections within the class template? Give examples of each. A class is also partitioned into three parts--its name, its attributes, and its services. An example of a name could be Student; examples of attributes could be StudentIdNumber, FirstName, LastName, Address, and GradePointAverage; examples of services could be RegisterForCourse, DropCourse, ChangeAddressPhone, and RequestTranscript. 4.7 What are the steps in a noun phrase strategy of identifying objects? 1)Read and understand the requirements document because the goal of the "finding objects" activity is to create a model that very closely parallels the real world problem domain in question. 2)Reread the document looking specifically for noun phrases. Make a preliminary list of these phrases and change all plurals in the list to singular, such as bicycles to bicycle. 3)Divide the noun phrase list into three categories: obvious objects, obvious non-sense objects, and "not sure of" objects. 4)Discard the nonsense noun phrase list. 5)Discuss the "not sure" noun phrase list in more detail until each phrase can be moved to either the obvious or nonsense list. 4.8 In general, what is a noun phrase strategy trying to find? The noun strategy tends to find objects based on "what the object is" (e.g., a person, place, or thing). 4.9 How does your answer to the previous question change if you are using a verb strategy? The verb strategy is based on "what the object does" (e.g., it prints, it computes, it displays, it dispenses cash, and so on). 4.10 When starting a search for objects, what are some of the items you should be especially aware of? 1) Tangible items. 2)Roles played by people or organizations. 3)Incidents/interactions. and 4)Specifications which have a tabular (row/column) quality. 4.11 What is meant by challenging a list of possible objects? Each object on the list should be challenged based on: 1)Needed remembrance--does the information system need to keep track of this object? Why? 2)Needed services--does the information system need to have certain services performed by this object? Why? 3)Does the object have more than one identifiable attribute? If none or only one can be identified, then seriously consider the need to keep this object. If it is still justifiable, then by all means, keep it. 4)Will there be more than one of this type of object that could be grouped into a class? 4.12 What is generally done with derived results such as an employee report? Why? Many of these derived result type objects are identified initially, but they end up being eliminated as objects. The systems analyst must retain the fact that the report is still an output of the information system. With this in mind, derived result type objects become the output of one or more services in some other object, such as the Employee object having a service that creates an employee report. 4.13 What is done with requirements that can be deferred? They are put on a future enhancements list to be dealt with after the information system has been implemented. Chapter Five 5.1 What is an attribute, and what is an attribute's purpose in an object model? They are an integral and necessary component of object-oriented models and often contribute to the identification and grouping of classes. Attributes add more detail to classes, which in turn reveals more of how the model should be constructed. 5.2 What is the most important method for identifying and defining attributes? Discuss why this is so important. Dicusssing the class-with-objects and their potential or candidate attributes with the users. This is important because they are usually the "owners" of the data represented by attributes therefore they should know the most about those data. 5.3 What are some of the specific questions that can be asked of a user in an attempt to best identify attributes? It helps to "put yourself in the class-with-object's shoes for a few minutes" to better relate to it. 1)How am "I" described in general? 2)How am "I" described in this specific problem domain? 3) What do "I" (as this class or object) need to know? 4) What state information do "I" need to remember over time? 5)What states can "I" be in? 5.4 What is a single value attribute? The single-value attribute is perhaps the most frequently encountered attribute type. A single-value attribute is one that has only one value or state for itself at any moment in time. 5.5 Define and give a few examples of a mutually exclusive attribute. An attribute is said to be mutually exclusive value attribute if the presence or absence of its value is dependent upon the presence or absence of one or more other attribute values. The business policy decisions that this information system is representing play a vital role in determining whether an attribute is of the mutually exclusive value type. Ex: The business policy for an information system states that an employee may be either hourly or salaried, but not both. With this in mind then, either the hourlyRate attribute or the weeklySalary attribute would have a value for each Employee object instance. Another mutually exclusive attribute would be either male or female, but not both. 5.6 What is the purpose of demoting multi-value attributes to the lower level in a whole-part object connection pattern? Multivalue attributes can be demoted to become the lower level in a whole-part object connection pattern. By doing this, redundancy is avoided. The whole-part object connection constraints are also noted, which allows the software to administer the number of "part" objects associated with each "whole" object and vice versa. 5.7 What aspect of using multi-value attributes in a whole-part object connection pattern makes this task better suited for the design phase of systems analysis and design? The fact that it is more focused on "how" rather than "what," makes it more appropriate for consideration during the design phase of information systems engineering. 5.8 What is an attribute data dictionary and what is its purpose in an object-oriented methodology? An attribute data dictionary is an alphabetized list of attribute names, which class each belongs to, and details regarding each attribute's definition and editing rules. The purpose of the attribute data dictionary is to provide documentation for support, clarification, and organization. Chapter Six 6.1 Define and give an example of a gen-spec pattern. Generalization-specialization (gen-spec) is a hierarchical parent-child pattern. It is not unique to systems development in general or object-oriented systems development specifically. An example would be the child-like classification of AirplaneType, AutomobileType, and BoatType to the parent-like classification of Vehicle. 6.2 Define and give an example of a whole-part object connection pattern for each of assembly-part, container-content and group- member patterns. Assembly and parts is probably the easiest to identify. This variation is often used to identify a manufactured item (assembly) and the different subassemblies and parts (part) that it is comprised of. For example, a personal computer is made up of power supply, mother board, chips, disk drives, screws, and so on. Container and contents is a variation that can help with situations where the objects aren't really the traditional assembly and parts that you may be used to thinking about. For example, an airplane cockpit (container) consists of gauges, dials, levers, lights, and so on (contents). The third variation of the whole-part pattern is the group and members, which helps with some situations the other variations do not address well. For example, Professional Organization may be a class that has the Association for Computing Machinery (ACM) professional group as an object along with the Data Processing Management Association (DPMA) and others. The people who are members of these professional associations are considered the members of the group. 6.3 Define and give an example of the participant-transaction pattern. The participant-transaction object connection pattern connects a participant object, such as a person or organization, with a transaction object, such as a sale or payment. People and organizations perform transactions. Students pay registration fees to take courses at a university. 6.4 Define and give an example of the place-transaction pattern. The place-transaction object connection pattern connects a place object, such as a store, office, or ticket window, with a transaction object, such as a sale or payment. Transactions are performed at locations. Students pay registration fees at a university cashier's window. 6.5 Define and give an example of the participant-place pattern. The participant-place object connection pattern connects a participant object, such as a person or organization, with a place object, such as a store, office, or ticket window. Participants are organized by place. At some point in time each university student declares his or her major, which is housed in a particular college on the university campus. 6.6 Define and give an example of the transaction-transaction line item pattern. The transaction-transaction line item object connection pattern connects a transaction object, such as a sale or order, with a transaction line item object, such as sale line item or order line item. Transactions usually have one or more transaction line items. Students paying full university registration fees have several items that they are paying for, such as tuition, health, and student body fees. 6.7 Define and give an example of the item-line item pattern. The item-transaction line item object connection pattern connects an item object, such as a product, with a transaction lien item object, such as sale line item or order line item. Each transaction line item has one item. The items that a university registration fees system is aware of are things like tuition, health, and student body fees. Each student's registration fee transaction will have one or more of these fees associated with it. 6.8 Define and give an example of the peer-peer pattern. The peer-peer pattern is an object connection between objects within the same class. In this example the user-determined policy was that a student could have zero, one, two, or three roommates; therefore, it is possible to look at your Student object instance and find out the names of your roommates, assuming you had one, two, or three as in this example. Chapter Seven 7.1 Define services in the context of object-oriented programming. Services, often called methods in other object-oriented methodologies and object-oriented programming, are the actions that the information system must perform in order for it to fulfill its intended purpose and meet the information system needs of the user. 7.2 How do services relate to business or information system objectives and tactics? Another way to think about services is that they are the information system tactics. As such, they support the information system objectives, which in turn support the business tactics, which in turn support the business objectives. Finally, business objectives support the overall goals and mission of the business. 7.3 What are the two types of services in Coad's object-oriented methodology? There are two general types of services in Coad's object-oriented methodology: 1) those that are basic to all classes, and 2) those that are dependent on the specific functional requirements of the problem domain. All services fall into one of these two broad categories. 7.4 List and briefly define the different basic services. The basic services are: create object, search, get and set attribute values, add and remove object connections, and delete object. The create object service creates new objects within a class. The search service locates a specific object within the class. The get service retrieves the value of an attribute or group of attributes. The set service updates the attribute's value. The add connection service connects objects one to another, while the remove connection service disconnects objects from one another. The delete service deletes or removes objects from a class when requested to do so. 7.5 Define and give an example of each of the basic services. The create object service creates new objects within a class. For example, the values for each of the following attributes could be established--student's name, identification number, address--with the set attribute value service. The search service locates a specific object within the class. For example, "Search Student, StudentName == Smith" would be a request to find the student object or objects that have this student name. The get service retrieves the value of an attribute or group of attributes. For example, to display the name of a student, a get service would be issued to retrieve the value of the student name attribute. The set service updates the attribute's value. Anytime there is a need to update attribute values with new ones, this service is invoked. The add connection service connects objects one to another, while the remove connection service disconnects objects from one another. For example, the add connection service would be used if a student became a member of the DPMA club; and the remove connection service would be used if a student was removed as a member of the DPMA club. The delete service deletes or removes objects from a class when requested to do so. This service deletes the whole object so that there is no longer any way to retrieve the object again without some type of "restore," "recover," or "undelete" feature within an object- oriented language. 7.6 Define and give an example of a problem domain specific service. As the name implies, problem domain specific services are unique to the problem domain and the specific class defined within the problem domain. An example of a problem domain specific service, using a car rental problem domain, might entail subtracting the value of the endingMileage attribute from the beginningMileage attribute in the Automobile class in order to find the total miles driven. 7.7 Discuss the characteristics of services that are sometimes compared to a division of labor. In an information system of any consequence, services communicate with other services on a regular basis. This is normal and similar to the division of labor concept in business. The division of labor in business means that certain people do certain jobs hoping to increase efficiency and effectiveness due to that person's experience and expertise with the job. 7.8 Briefly discuss a few of the techniques that can be used to identify services. Services can be found and identified using one or more of the following techniques: 1)identify events and associated services, 2)identify class states, 3)identify needed messages, and 4)specify the details of the services 7.9 When attempting to identify services by specifying the details of the services, what is meant by a "walk- through" process? What can be accomplished by this activity? One suggestion based on many years of information systems analysis and design experience is that the amount of detail specified during the analysis activity should be sufficient enough that you could "walk" the user through each user-defined service via the steps you have detailed, and your user would be able to get a sense that the service actually does accomplish the intended work. This walk-through activity is a good verification and validation step and represents the requirements assurance portion of the requirements determination activity. 7.10 What are some of the problems associated with using "written word" documentation when specifying the details of a service? 1)Too many words; the documents are simply overwhelming for a user to validate and verify their correctness. 2)The words were often confusing, so more words were used to try to clarify, often leading to additional confusion. 3)These wordy documents were often attempting to create a visual image of the information system in the user's mind and simply did not do it well. 7.11 Define a service scenario and give an example of one. A scenario is a specific time-ordered sequence of object interactions, one that exists to fulfill a specific need within the information system. The scenario view is similar in concept to you asking for assistance from someone else, such as "What time is it?" or "Can you give me a ride to the beach today?", or "Here is the money, buy me one too." In all of these examples you wanted or needed assistance from someone else in order to accomplish some action, idea, or task you have. 7.12 What are some of the advantages of using Structured English (pseudocode) as a method of specifying service details? Structured english is, first of all, english which makes it almost universally understandable. Second, by using a very select subset of verbs, one can be very precise as to the action needed to accomplish the requirement. Third, using a structured, or indented, format when writing structured english makes it much more easily understood and communicative for those who have to create software from the structured english. 7.13 Discuss the problems with using Structured English that can be alleviated by a decision table or decision tree. Both decision tables and decision trees can help identify and resolve three common problems with words: 1) Missed conditions, such as "If the student's grade point average is less than 3.5, do not admit to the university; if greater than 3.5, admit." What about the student who has exactly 3.5? 2)Conflicting conditions, such as "If the student has a 3.5 or greater grade point average, admit to the university; if the student's GMAT score is not in the upper 10 percent, do not admit." What do you do with a student who has a 3.9 grade point average but has a GMAT score below the 10 percent level? 3)Missed actions; sometimes new actions are discovered as a result of identifying missed and conflicting conditions. In addition to this, new actions can be identified as you combine the various conditions and discover that no action has been identified for this particular combination of conditions. 7.14 When creating a decision table, how are duplicated actions treated? Duplicated actions, which are often possible under different condition rules, are consolidated with another rule (column) whenever possible in order to reduce the number of rules. 7.15 In what situations should you use a state-transition diagram? Certain problem domains and services within them lend themselves to the use of state-transition diagrams to more effectively communicate the details of a service, a portion of a service, or the interaction between services. Historically, state-transition diagrams have frequently been used to illustrate the parts of an information system having a time-dependent behavior component to them. 7.16 Define and illustrate a message. The concept is that a message is a sender service requesting help from a receiver service. As each of the many service details in the video store's model are worked on, other existing (and new) services would be identified that need to be used to help the service perform its task. When this condition arises, more message communication would be required to communicate the need for assistance between the two services. 7.17 What are the three parts of a message and how do they relate? A message is a request for a service to be performed sent from a sender to a receiver. The sender sends a command and optionally some arguments; the receiver performs the service; the receiver returns control to the sender, along with some optional results.