Gathering - [Free] Uml For The It Business Analyst A Practical Guide To In its version, (PDF) Software Requirements, 3rd Edition | Tomas Causa. Bien Dit French 1 Workbook Answer Bible Promise Book The Living. Book. Language English. Title. UML for the IT business analyst a practical guide to 2nd ed. Physical. Description xxv, p.: ill. 24 cm. Subject. Computer. Subject ISBN. Copies. Permanent. Links. UML for the IT Business Analyst 2nd Edition Why is ISBN important? . Learning PTR; 2 edition (June 18, ); Language: English; ISBN
|Language:||English, Spanish, Arabic|
|ePub File Size:||26.47 MB|
|PDF File Size:||18.71 MB|
|Distribution:||Free* [*Regsitration Required]|
UML for the IT Business Analyst, Second Edition: A Practical Guide to Requirements ISBN ISBN eISBN- Whether you are a new IT business analyst; an experienced analyst, but new to the UML; a developer who is interested in expanding your role to encompass IT. Micheal Blaha (second edition). 4. UML For The IT Business Analyst, Second Edition UML for the IT Business Analyst: A Practical Guide to Object-Oriented.
TABLE 4. But the UML does give you the option of indicating the inputs and outputs of any activity on the diagram by adding object flows. One of the first steps for the BA is to review this preliminary documentation, often in a kick-off meeting with stakeholders. Had they included the requirement, they would have been unlikely to purchase this software in the first place—and even if they had, they would have been able to pass the modification cost on to the vendor. Structural analysis still has a place in empirical lifecycles, especially when it relates to the business architecture, because of its value in defining business concepts and in discovering across-the-board business rules that are easy to miss. Do not show these to stakeholders.
Submit Search. Successfully reported this slideshow. We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime. Upcoming SlideShare. Like this presentation? Why not share! An annual anal Embed Size px. Start on. Show related SlideShares at end. WordPress Shortcode. Published in: Full Name Comment goes here. Are you sure you want to Yes No. Be the first to like this. No Downloads.
Views Total views. Actions Shares. For your lifelong learning solutions, visit courseptr. And for Joy Walker. You are the prototype. It was one of those rare times when all aspects of life lined up. There were times when I prepared for an art exhibition, facilitated workshops in poor neighborhoods, and analyzed IT systems—all in the same day. This book is one of the products of that exciting and very productive time: Its case study is drawn from IT work my company did there for the Community Peace Program CPP , an organization that aims to reduce violence in poverty-stricken neighborhoods through a process of dispute resolution called restorative justice.
F One of the communities I visited often due to my work was the township of Zweletemba. There is a point in the trip to Zweletemba when you enter a tunnel that goes right through the mountains.
Inevitably, it was at that point in the journey that I always fell asleep, awakening just as we exited the tunnel into what seemed like a magical world. Zweletemba, situated in the mountainous interior of the peninsula, is a place of contradictions. There is great poverty, with many people living in ramshackle homes built of materials salvaged from junk piles, but there is also great physical beauty, personal warmth, music, and humor.
The CPP was, at that time, interested in growing the organization using the lessons learned from Zweletemba—and, in the years that have followed, has in fact expanded to include numerous communities in the country.
It was in advance of this expansion that the organization had asked my company to prepare requirements for an IT solution that would assist them in case management. I was looking for a case study that would be complex enough to include the intricacies of typical systems. And, as an unfamiliar system, it puts the reader in the position of extreme business analysis—really not knowing anything about the system at the start of the project. Projects like the CPP case study exemplify what I love most about business analysis—that it has introduced me to a variety of systems and, through them, to the people behind those systems.
Through business analysis, I have met and worked with people from all walks of life—defense contractors, social workers, investment bankers, funeral directors—and they have, in turn, satisfied my inquisitiveness about people and how they do things. I hope that this book will help you excel at it so that it gives you the enjoyment it has given to me over the years. Many thanks, also, to Adrian Marchis and the business analyst community at modernanalyst. Thanks also to Adam Kahn, David Barrett, and Amy Ruddell of Diversified Business Communications for promoting the business-analysis profession and the ideas in this book through the BA World conferences they have organized, the Noble workshops my company has delivered there over the years, as well as their publication, Business Analyst Times.
In the time that has passed between the two editions, Brian was tragically killed in a road accident. I am honored to have been able to benefit from his advice while he was alive. The experience of being put under the Lyons microscope was a challenging one—but one I wouldn't have missed for the world.
Podeswa is also a sought-after speaker at international BA conferences. Podeswa is also a recognized visual artist whose artwork has been exhibited and reviewed internationally and supported by the Canada Council for the Arts.
OO technology and painting. His artwork is represented by the Peak Gallery www. Web site at www. For a full suite of business-analysis courses based on this and other writings by the author, please visit the Noble Inc. Table of Contents Introduction. Composite Aggregation Composition. The Initiation Phase.
BRD Initiation Version. Model Business Use Cases. Business Use-Case Diagrams. Model System Use Cases. Identify Actors Role Map. Role Map. System Use-Case Packages. System Use-Case Diagrams. Describe System Use Cases. Decision Table. Decision Tree. Advanced Use-Case Features. Identify States of Critical Objects. Identify State Transitions.
Identify State Activities. State Activities. Identify Composite States. Composite States. Identify Concurrent States. Structural Analysis. Identify Entity Classes. Entity Classes. Model Generalizations.
Model Transient Roles. Transient Roles. Analyze Associations. Analyze Multiplicity. Add Attributes. Add Lookup Tables. Analyze Lookup Tables.
Add Operations. Distribute Operations. Revise Class Structure. Revise Structure. Specify Testing. Deriving Test Cases from Decision Tables. Specify Implementation Plan. Set Baseline for Development. A Sequence Diagram. CPP Case Study. As a former developer and current IT business analyst, I could see an approaching technological wave affecting my colleagues. The result was BA documentation that had to first be translated into OO terms and standards by the developers—an inefficient and error-prone step.
I Since developing B. They have, in turn, helped me improve the process by sharing with me their best practices, templates, and other tools they use on the job. This knowledge has made its way back into B.
Thanks to contacts made through a colleague in corporate training, Charlie Orosz, I had an opportunity to publish B. I believe it fills a real need.
Today, BAs often find themselves working on UML projects; yet they still have a long way to go to exploit the technology beyond the adoption of use cases just one part of the UML. I wrote this book to fill that gap. I believe that people learn best by doing. In keeping with that, you and I will, together, develop and validate the requirements for an IT system as we move through the steps.
By the time you have completed the book—and the case study in it— you will have hands-on experience in using OO standards UML 2 and techniques and in integrating these with other, non-OO techniques over the course of an OO IT project. Who This Book Is For This book is intended for anyone performing the role of the information-technology business analyst IT BA —an integral part of a software-development team responsible for documenting and verifying the business and user requirements for a software system.
For example, this book will be of benefit to the developer who is interested in expanding his or her role to encompass IT BA activities. In this case, you may be wondering how you can exploit the UML tools and techniques you already know to include the gathering and documentation of business requirements.
This book will guide you through that process. As noted by some readers of the first edition, this book is more about a requirementsgathering approach that happens to use the Unified Modeling Language UML standard than it is about the UML per se. That said, to use this book most directly, your project should be using the UML standard.
Often, this means the contemplated solution is one that will be built using an objectoriented OO language, but this is not necessarily the case because the UML contains many diagrams that have little to do with OO—and those that do may be easily converted. You will need, however, to replace the UML terms and diagrams in this book with non-UML equivalents—for example, using the term business services and processes instead of the UML term business use cases; level 1 data flow diagrams instead of UML use-case diagrams; non-UML swimlane workflow diagrams instead of UML activity diagrams with partitions; etc.
You may be wondering about the relevance of this book to your project based on the lifecycle approach being used to define its phases, tasks, and roles. This book is applicable to all lifecycle approaches. How the techniques are applied, however, must be tailored for each lifecycle approach and, indeed, for each project. In short, with respect to lifecycle, the artifacts described in this book are produced in greater depth on definitive well-defined lifecycles than on empirical less defined, more adaptable ones.
For example, while a large project using rational unified process RUP —an iterative, but definitive, lifecycle—might require textual system use-case descriptions specifications and class diagrams to a level of detail comparable to that shown in the book, a small project using an empirical lifecycle might only require higher-level documentation: Why go even that far on an empirical project?
You need that level of detail to estimate the cost, time, and resources for the project and to uncover sometimes subtle and elusive business rules. However, you are unlikely to create complete use-case textual descriptions or complete structural models class diagrams, etc. This last point brings us to the impact of the project lifecycle approach on the sequence in which the business analysis steps described in this book are carried out.
On an iterative project, where there are numerous cycles of analysis, design, coding, and testing throughout the project, all the analysis is not done up front but is instead done incrementally as the project progresses typically, during the iteration in which they will be implemented, just before they are to be designed and coded. On the other hand, on traditional, waterfall projects, where all the analysis is performed before design begins, all the documentation described in this book is created up front.
When it is appropriate, an iterative, agile lifecycle is preferred because business stakeholders are more likely to get what they really want when the solution comes through a process of trial-and-error rather than from an abstract preconception of what the requirements might be. However, I do not advocate any one particular approach for all projects; I have been in this business long enough to know that one size will never fit all.
On one project, you might be working for a client with a low tolerance for uncertainty perhaps because of the cost or regulatory requirements and, consequently, be using a waterfall approach, where there are few unknowns.
On another project, you might be working with clients who are unsure of what they want perhaps because of a rapidly changing business environment or because the service is so new and, therefore, be using an agile lifecycle, where the expectation of change is built into the lifecycle approach. Over your career as a business analyst or as anyone whose role includes business-analysis responsibilities , you need to be prepared to work under all these lifecycle approaches. Many organizations are excellent at developing good software products.
Where they are often weak is in developing the right software product. The mismatch between what the user wants and what the developers deliver can often be traced to poor practices in business analysis and quality control. In addition, many IT projects experience time and cost overruns due to the difficulty in responding to a rapidly changing business environment.
Finally, many project failures are due to faulty communication between those who know the business and those who write the software. With B. You can then pass the model one or more digital files to the developers, 4Thanks to Tony Alderson for this description of non-redundancy. The Appendices who can use it as the starting point for their design. Actively use the accompanying job aids while working on the job. Use the following artifacts: I encourage you to work through the case study yourself.
Only by trying out the ideas as you learn them will you really be able to practically apply the techniques presented in this book. These appendices contain the condensed methodology, including examples of every diagram covered in the book, templates, lists of questions to ask at various stages of the interview, and a glossary of UML symbols and terms.
As you read this book, you will spend a lot of time analyzing complex relationships in a system. So the best approach is to just play with an idea and see where it leads you. The new section of the book describes the BABOK 2 knowledge areas areas of expertise and describes how they and their component tasks map to this book. I hope this information will be of help to those who wish to prepare for certification.
Also included are changes to the UML. The current version, UML 2. Changes from UML 2. The terminology changes reflected in this edition are as follows: The term inclusion use case has been replaced by the term included use case.
The term extension use case has been replaced by the term extending use case. The term composition has been replaced by the term composite aggregation. I had intended to steer clear of these issues in the first edition because to properly cover the topic seemed beyond the scope of this book. It has since occurred to me, however, that the unintended side effect of this decision was to leave the impression in the minds of some readers that a waterfall lifecycle approach is being advocated—contrary to my intention.
In a waterfall approach, project activities in one phase, such as requirements analysis, must be completed before the next phase begins; in iterative approaches, all activities may occur in any phase, albeit to varying degrees.
Also, the phase names used in the original edition as well as their descriptions have been changed to be generic enough to encompass all approaches, including agile lifecycles. The changes to phase names are as follows: Finally, the instructions for using IBM Rational Rose have been removed from this edition of the book. Since the first edition of the book was written, IBM has shifted its marketing focus to other modeling products.
There are so many modeling tools in use today and marketplace preferences are changing so rapidly that removing tool-specific instructions seemed the best approach. Chapter Objectives At the end of this chapter, you will understand the following: Just to clear up any possible confusion: This person is involved in process improvement, cost-cutting, and so on. This person liaises with business and technical stakeholders and is responsible for gathering the requirements that originate from the business.
This book is directed at anyone acting as an IT BA on a project. For example, they may be developers who do double duty as requirements elicitors a common practice, for example, on agile projects , or systems analysts whose responsibilities include modeling the business domain as is the case on RUP projects. If your responsibilities include liaising with stakeholders, or eliciting, analyzing, or documenting requirements on an IT project, you are, in effect—if not in title—an IT BA, and the intended reader of this book.
For example, workflow diagrams are used by both while system use cases are specific to the IT BA. Perspective on the IT BA Role The discipline of business analysis has evolved over the past few years into a mature profession with well-defined responsibilities and areas of expertise.
Since then, the International Institute of Business Analysis IIBA has taken the lead internationally in defining the knowledge areas required for the practice of business analysis and creating a certification process for the professional BA. Despite the potential confusion, in practice, most organizations have a pretty similar idea of what the IT BA does: An IT BA is a liaison between the stakeholders of a software system and the developers who create or modify it.
A stakeholder is a person or an organization affected by a project: The IT BA is expected to discover, analyze, negotiate, represent, and validate the requirements of a new or modified software system. Basically, this means capturing the requirements and supporting the testing of the software solution to ascertain whether it meets those requirements.
The fast answer is that the diagrams are for the developers. That is, the diagrams are important because they get across the requirements in an unambiguous, standardized4 way. The slow answer is that the diagrams are more than that. There is a logical, step-by-step process to drawing a diagram.
At each step, you have to ask the user certain questions to discover what to draw next. The act of drawing the diagram tells you what questions to ask and when, and even when the interview is complete which is when all the diagram elements have been resolved. For example, on a consulting job for an accountancy firm, I was asked to help the team make changes to its customer-relations management CRM processes.
The current system involved too much double entry. The behavioral model judges analyzes the system by its actions. Behavioral Model A behavioral model is an abstract representation of what the system does. It is a collection of all useful stimulus and response patterns that together define the behavior of the system. Using structural modeling, I was able to discover these two definitions and help the team develop a common language. In this book, the artifacts that fall into this category are as follows: That is, they depict those elements in a specification that are irrespective of time.
The elements in a structure diagram represent the meaningful concepts of an application, and may include abstract, real-world and implementation concepts. For example, a structure diagram for an airline reservation system might include classifiers that represent seat assignment algorithms, tickets, and a credit authorization service.
OO is an approach to viewing and creating a complex system as an assembly of smaller components. The OO approach is often at odds with an older and still-used approach called structured analysis. This being the case, those with prior experience with structured analysis may be wondering at this point whether they have to throw away everything they already know because of OO.
The good news is that despite the theoretical differences between the approaches, many of the OO diagrams are quite similar to the structured analysis ones—at least as they are used in a BA context. Things are much more serious for programmers switching to OO. Table 1. TABLE 1. An activity diagram with object states can be used similarly to a level 2 or higher DFD. It covers identification of stakeholders, selection of business analysis techniques, the process that will be used to manage requirements, and how to assess the progress of the work.
This knowledge area describes problem definition and analysis, business case development, feasibility studies, and the definition of solution scope. It involves analyzing stakeholder needs to define solutions that meet those needs, assessing the current state of the business to identify and recommend improvements, and the verification and validation of the resulting requirements.
On the definition of concepts and relationships, see Chapter 8. On structural business rules, see Chapter 8. See Chapter 8 for the UML approach class diagrams.
See Chapter 4. See Chapter 6. It also describes how business analysts assess deployed solutions to see how well they meet the original need so that the sponsoring organization can assess the performance and effectiveness of the solution. In particular, see the following sections of Chapter A structural model describes what a system is. It describes the sequence of activities and who or what is responsible for each activity.
Understand key OO concepts: OO affects the way the software engineer technical systems analyst designs the system specifications. OO affects the way the code itself is structured. NET languages support OO concepts and structures. The UML standards cover terminology and diagramming conventions. This book uses the latest version of that standard, UML 2. If this happens with your team, ask what difference the outcome of the argument will have on the quality of the resulting software.
In many cases, particularly during business analysis, there are no ramifications. In such cases, discuss it, make a decision, and move on.
Cognitive Psychology and OO As a business analyst, your job is to get inside the heads of your stakeholders so that you can extract what they know about a piece of the real world—a business system—and pass it on to the developers, who will simulate that system on a computer. This approach would have to begin with an understanding of how people actually think about the world, and would have to be Attributes and Operations broad enough to take the project from requirements gathering right through to construction of the software.
Object orientation is one such approach. It begins by proposing that the object is the basic unit by which we organize knowledge. Taken together, these internal objects model a segment of the real world. The BA Perspective You begin to analyze a business area by asking stakeholders to describe the business objects it encompasses.
A business object is something the business and the IT system that automates it must keep track of or that participates in business processes. Examples of such an object might include an invoice, a customer-service representative, or a call.
Attributes and Operations OO theory continues by examining the kind of knowledge that is attached to each internal object. Because we can recognize an object again after having seen it once, our internal representation of an object must include a record of its properties.
In OO, color and size are referred to as attributes; blue and large are attribute values. Every object has its own set of attribute values. Something else we remember about an object is its function. For example, the first time you saw a crayon, it took you some time to learn that it could be used to scribble on the walls.
Unfortunately for your parents, the next time you saw that crayon, you knew exactly what to do with it. Because you remembered that scribble was something you could do with that object. In OO, scribble is referred to as an operation. But this is not always the case. For example, you know that you can place a call with a particular mobile phone—but you also remember that to do so, you must follow a particular procedure: First you enter the phone number and then you press the Send key.
In OO terms, place a call is an operation; the procedure used to carry it out is called a method.
The BA Perspective Next, you take each operation and ask stakeholders what procedure they use to carry it out. You document the procedure as a method. For example, you ask stakeholders what procedure they follow when withdrawing funds from an account. They tell you that they first check to see if there is a hold on the account and whether there are sufficient funds available for withdrawal.
If everything is in order, they reduce the balance and create an audit trail of the transaction. You document this procedure as the method used to carry out the withdraw operation. Encapsulation Every day you use objects without knowing how they work or what their internal structure is. This is a useful aspect of the way we human objects interact with other objects. It keeps us from having to know too much. It also means that we can easily switch to another object with a different internal structure as long as it behaves the same way externally.
This is the OO principle of encapsulation: Attributes and methods remain hidden from view. OO Concept: Classes OO Concept: Classes You have seen that our ability to internally model an object allows us to use it the next time we encounter it without relearning it. Yet we do this all the time. We can do this because we recognize that all these objects belong to the same type: In OO, the category that an object belongs to is called its class. He speaks of one of his patients who, unable to classify objects, wrongly concluded that his wife was a hat and tried to put her on his head as he was leaving the office.
The minute you know that two objects belong to the class, iPhone 3G, you know a number of things about them: For example, you know that both objects will have a serial number, a phone number, and various camera settings. The same operations apply to both objects. For example, you can place a call and take a picture with each of these objects. For example, the procedure for placing a call is the same for both phones. What They Say: A class describes a set of objects that share the same specifications of features, constraints, and semantics.
A class is a category. All objects that belong to the same category have the same attributes and operations but the values of the attributes may change from object to object. This means that the same properties are significant for all objects in a class.
That said, the value of the attributes may change from object to object within a class—e. In other words, all objects in a class can do the same things—and they do them the same way. These are termed entity classes. Relationships We often define one class in terms of another class. For example, a Car is a kind of a Vehicle.
Both Car and Vehicle are classes. Generalization The concept of a class allows us to make statements about a set of objects that we treat exactly the same way. But sometimes we run into objects that are only partially alike. For example, we may own a store that has a number of iPhone 3G objects and a number of Motorola Razr phone objects. The iPhone 3Gs are not exactly like the Motorola Razr phones, but they do share some characteristics—for example, the ability to place a mobile call.
We treat this situation by thinking of these objects not only as iPhone 3G or Motorola Razr phones but also as mobile phones.
A particular phone object, for example, might be able to run a particular iPhone application by virtue of being an iPhone 3G—but it can also place a mobile call by virtue of being a mobile phone. The relationship between the Mobile Phone class and either of its subtypes iPhone 3G or Motorola Razr is called generalization.
Relationships Why do we generalize? It allows us to make statements that cover a broad range of objects. For example, when we say that a mobile phone can receive a text message, we are stating a rule that applies to all of its specializations. Each instance of the specific classifier is also an indirect instance of the general classifier. Thus, the specific classifier inherits the features of the more general classifier.
When an object belongs to a specialized class for example, iPhone 3G , this automatically implies that it belongs to a generalization of that class for example, Mobile Phone. Any attribute or operation that applies to the generalized class also applies to the specialized class.
Furthermore, any relationships specified for the generalized class also apply to the specialized class. Other terms in use include the following: Generalized Class Specialized Class Superclass Subclass Base class Derived class Parent Child The idea that a specialized class automatically adopts the attributes, operations, and relationships of its generalized class is given a special name in OO: The mechanism by which more specific elements incorporate structure and behavior of more general elements.
Inheritance refers to the mechanism by which a specialized class adopts—that is, inherits—all the attributes, operations, and relationships5 of a generalized class. Then you document which attributes and operations apply to all Accounts, which apply only to Checking Accounts, and which to Savings Accounts. By structuring your requirements this way, you only have to document rules common to all account types once. This makes it easier to revise the documentation if these business rules ever change.
Association Another way that classes may be related to each other is through association. When you connect a mouse to a PC, you are associating mouse with PC. An instance of an association is called a link. An association between two classes indicates that objects instances of one class may be related linked to objects of the other class.
You specify an association at the class level; you specify a link at the object level. The BA Perspective You analyze how the business links objects of one class with those of another or, sometimes, with other objects of the same class. For example, the military needs to track which mechanics serviced each piece of equipment, what the maintenance schedule is for each one, and so on.
As a BA, you document these types of rules as associations. This is a critical part of your job. Miss an association—or document it incorrectly—and you may end up with software that does not support an important business rule.
Had they done so, they would have included in their requirements the fact that the business needed to be able to associate each employee with one or more unions. As a result of the omission, not only did the municipality end up purchasing HR software that did not support this requirement, they also had to absorb the cost of customization.
Had they included the requirement, they would have been unlikely to purchase this software in the first place—and even if they had, they would have been able to pass the modification cost on to the vendor.
Aggregation Aggregation is the relationship between a whole and its parts. For example, the trade organization CompTIA is an aggregation of member organizations; an insurance policy is an aggregation of a basic policy and amendments to the policy, and a stamp collection is an aggregation of stamps. A special form of association that specifies a whole-part relationship between the aggregate whole and a component part.
Formally, in the UML, aggregation is considered to be a specific type of association, where the class on one end of the association represents a whole and the class at the other end represents a part. With aggregation, a part may belong to more than one whole. For example, a catalogue object is a collection aggregation that consists of many product objects. However, any particular product object may appear in more than one catalogue object.
You model these relationships as aggregations. Then you focus on which rules attributes, operations, and relationships apply to the whole and which apply to the parts. One thing this process enables you to do is reuse the requirements of a part object in a new context. You define the attributes and operations of a PIN.
Composite Aggregation Composition Composite aggregation, also known as composition, is a special form of aggregation wherein each part may belong to only one whole at a time. If a composite is deleted, all of its parts are normally deleted with it. Formally, composition is a specific kind of aggregation. In aggregation, a part may belong to more than one whole at the same time; in composite aggregation, however, the object may belong to only one whole at a time.
The parts are destroyed whenever the whole is destroyed—except for those parts that have been removed prior to the deletion of the whole. The most general relationship is association, followed by aggregation, and, finally, composite aggregation. While the distinction from a BA perspective is helpful, it is not critical. If you have any problem deciding, specify the whole-part relationship as aggregation. In fact, there is nothing wrong with the BA modeling all whole-part relationships as simple associations.
You lose a little bit of nuance in the model — but it will make no difference to the resulting IT solution. Polymorphism The BA Perspective You model strong whole-part relationships between classes of business objects as composite aggregation. The Case Report Form was a record of everything that was recorded about a patient with respect to the drug being researched; each Module was a record of one visit to the clinic by the patient.
The developers understood from this model that each Module could only belong to one Case Report Form at a time and that when a Case Report Form was removed from the system, all of its Modules needed to be removed as well. Polymorphism Polymorphism means the ability to take on many forms. The term is applied both to objects and to operations. Polymorphic Objects Suppose a financial company handles different subtypes of Funds, such as an Asia Fund, Domestic Fund, and so on, each with its own idiosyncrasies.
The BA models this situation using a generalized class, Fund, and a specialized class for each subtype of Fund. Next, the BA moves on to capture investment rules in an Investment class.
Checking with the stakeholders, the BA finds that one of its operations, invest capital, deals with all Funds the same way, regardless of subtype. The BA handles this by ensuring that the documentation for the invest capital operation refers exclusively to the generalized class Fund—not to any of its specializations. When the operation is actually executed, though, the Fund object will take on one of many forms—for example, an Asia Fund or a Domestic Fund.
In other words, the Fund object is polymorphic. Polymorphic Operations Continuing with the same example, since all the Fund subtypes have to be able to accept deposits, the BA defines a Fund operation called accept deposit.
This operation is inherited by all the specializations. The BA can also specify a method for this Fund operation that will be inherited by the specializations. But what if one or more of the specializations— for example, the Asia Fund—uses a different procedure for accepting deposits? In this case, the BA can add documentation to the Asia Fund class that describes a method that overrides the one inherited from the generalized class.
For example, the method described might involve supplementary charges. In practice, when capital investment causes a Fund to perform an accept deposit operation, the method that is used to carry out the operation will take on one of many forms. This is what is meant by a polymorphic operation. With polymorphic operations, the selection of the method depends on which particular class Asia Fund, Domestic Fund, and so on is carrying it out.
The BA Perspective When you define operations for a generalized class, you look for those that all specializations must be able to support. If you can, you define a method that describes how the operation is typically carried out.
If any specialized classes have different ways of doing the operation, you define a new method for it at the specialized class level. This simplifies the documentation. They all use the same interface—an accelerator pedal—to change speed, even though the internal method may differ from model to model.
The auto industry designs cars this way so that the drivers do not have to learn a new interface for each new model of car. Use Cases and Scenarios A use case is a use to which the system will be put that produces an observable result and usually provides value to one or more entities that interact with the system.
For example, some of the use cases that customers need in a Web-based banking system are Make bill payment, Stop payment, and Order checks. A use case is the specification of a set of actions performed by a system, which yields an observable result that is, typically, of value for one or more actors or other stakeholders of the system. A use case is a usage of the system that provides an observable and usually meaningful result. A specific sequence of actions that illustrates behaviors.
A scenario may be used to illustrate an interaction or the execution of a use-case instance. A scenario is one path through a use case—one way that it might play out. For example, the Make bill payment use case may play out in one of the following ways: Attempt to make a payment from an account and succeed in doing so.
Scenario 2: Attempt to make a payment from an account and fail because there is a hold on the account.
The BA Perspective During behavioral analysis, you identify and document the use cases of the system—what the users want to do with it. You do this by identifying and describing its scenarios— all the ways the interaction could play out. These use cases and scenarios are your user requirements. Business and System Use Cases Over time, practitioners began to distinguish between two kinds of use cases: The question is, what type of system is being referring to?
For example, Process Claim is a business use case describing an interaction with an insurance company. For example, system use cases that support the aforementioned business use case are Record Claim, Validate Coverage, Assign Adjuster, and so on. Each of these describes an interaction between a user and the computer system.
A system use case typically involves one active primary user and takes place over a single session on the computer. At the end of the system use case, the user should feel that he or she has achieved a useful goal. The BA Perspective Early in a project, you identify and describe the business use cases that the IT project will affect.
At this point, you focus on the business aspect of proposed changes—how they will affect workflow and the human roles within the business. Next, you analyze each business use case, looking for activities that the IT project will cover.
You group these activities into system use cases, taking care to ensure that each system use case gives the user something of real benefit. These system use cases then drive the whole development process. For example, in each release, a planned set of system use cases is analyzed unless this was done up front , designed, coded, and implemented. With this use case—centered approach, users get features that add real value to their jobs with each software release.
Chapter Summary In this chapter, you learned the following concepts: An object has attributes and operations associated with it. The object is the basic unit of an OO system. An operation is a service that a class of objects can carry out. A method is the process used to carry out an operation.
Encapsulation is an OO principle stating that everything about an object—its operations and properties—is contained within the object. Objects of the same class share the same attributes and methods. A number of different types of relationships were discussed in this chapter: A generalized class describes the commonalities.
Each variation is called a specialized class. A specialized class inherits all the operations, attributes, and relationships of the generalized class. Composite aggregation is a specific form of aggregation wherein the parts have no existence independent of the whole.
The class of the acting object determines which action is selected. A system use case is a typical interaction with an IT system. No definition for inheritance appears in the latest version, UML 2. All specializations subtypes of Account inherit this relationship—i. However, an inherited method may be overridden by a method specified for the specialized class. This last property is referred to as polymorphism.
No definition for a ggregation appears in the latest version, UML 2. The term composition was defined in the UML 2 infrastructure. The UML 2. No definition for scenario appears in the latest version, UML 2. A stereotype extends the meaning of a model element. For example, in business modeling, a business actor is a stereotype of the UML actor.
I prefer the term system use case as it avoids confusion regarding the type of system involved in the interaction. Chapter 3 Steps of B. The SDLC defines the specific phases and activities of a project. Make the business case for the project. Work also begins on the user experience and on drafts of architectural proof of concepts. The prototyping effort during the Initiation phase should be risk-driven and limited to gaining confidence that a solution is possible.
On iterative projects, requirements analysis peaks during this phase but never disappears entirely. During this phase, architectural proofs of concept are also constructed. Complete the analysis and design, code, integrate, and test the software. On iterative projects, these activities are performed for each iteration within the phase.
Design and coding appear in all phases, but peak during this phase.
Perform final testing before the product or service is transitioned into production. While final testing occurs in this phase, testing activities may occur throughout the SDLC—for example, before design or as a replacement for it. Manage and coordinate deployment into production and close the IT project.
Steps A deeper assessment of these phases and their relationship to the B.
Step 1: Initiation The objectives of the Initiation phase are to develop the business case for the project, establish project and product scope, and explore solutions, including the preliminary architecture.
The BA assists the project manager by identifying stakeholders, business services and processes, and IT services affected by the project.
By the end of this phase, key functionality is identified, such as key system use cases user tasks and IT services. When a non-agile process is used, these requirements are baselined and subsequent changes to scope are managed in a controlled manner using a change-management process. The Initiation phase poses a conundrum for the BA. The purpose of this phase is to get a rough cut at the business case for a proposed IT project. The answer is to do just enough research to be able to create a ballpark estimate.
These techniques are as follows: A tool for identifying and describing end-to-end business processes affected by the project. Used to help you and stakeholders form a consensus regarding the workflow of each business use case.
These describe the users and external systems that will interact with the proposed IT system. Used to help stakeholders break out the end-to-end business processes into meaningful interactions with the IT system. By the end of this phase, you will have a rough idea about the project as well as a fairly comprehensive list of system use cases, and you will know which users will be involved with each system use case. The B. Steps The main deliverable of this phase is an early draft of a business requirements document BRD.
Baselining allows you to see what the requirements looked like at various checkpoints in order to see, for example, whether a feature requested later by a stakeholder was within the scope as defined at that time. This and the previous phase are the key phases for the BA. Requirements analysis peaks during this phase. In iterative processes, analysis continues throughout the lifecycle; in waterfall processes, it is completed in this phase. Some system use cases are selected for development during this phase in order to demonstrate architectural proofs of concept.
BA responsibilities during this phase focus on eliciting detailed requirements from stakeholders, analyzing and documenting them for verification by stakeholders and for use by solution providers.
You will exploit a number of UML and complementary techniques to assist in requirements elicitation, analysis, and documentation during this phase. Testing, in the sense used in this book, is not just the running of programs to uncover errors; it includes other validation and verification activities as well as test planning and preparation.
Following accepted quality assurance practices, I introduce testing long before the code is written. Identify states of critical objects 2. Identify state transitions 3.
Identify state activities 4. Identify superstates 5. Step 3: Construction Business-analysis activity during this phase depends on the lifecycle approach being used. On waterfall projects, where all the analysis is done up front, there is no requirements gathering or analysis during this phase; however, the BA is involved in supporting quality assurance and validating that the technical design meets the requirements for example, by reviewing test plans and design specifications.
On iterative projects, where requirements analysis and solution development take place over a number of iterations, the steps described for the Discovery phase steps 2a through 2e are carried out during each iteration of the Construction phase. Step 4: Step 5: Closeout The business analyst supports the deployment process, reviewing transition plans and participating in a post-implementation review PIR to evaluate the success of the change.
Ascribing operations to classes is not quite as easy—and I like to do the easy things first. Feel free to make changes to the order described for analyzing operations, attributes, or any other step. Consider B. By following it, you will get to the end result—comprehensive requirements—relatively effortlessly.
During the Initiation phase, you identify system use cases in the behavioral model. Nouns discovered during this process are added to the structural model if they relate to new business concepts or objects. For example, the system use case Adjudicate Loan Application introduces the term Loan Application, which you define in the structural model. You continue working on the structural model during the Initiation phase, describing key business classes and their relationships to each other.
Following the Initiation phase, as you describe each system use case step 2ai , you verify it against the existing structural model. Does the system use case comply with rules expressed in the structural model? Has the system use case introduced new classes? You resolve any differences between the system use case and the structural model and update the structural model if necessary.
By the time you have described the last system use case, the structural model should be complete and fully verified. Are structural models class diagrams and ERDs always worth doing, or are they a waste of time?
How much detail should you put into the user requirements? Obviously, blindly creating documentation without understanding its value—or if it even has any value—is not useful. The problem is when to do what. Following are some general guidelines. Tailoring B. At one end of the continuum are definitive lifecycles, which follow a formal, well-defined process. Projects using this style of lifecycle will produce much of the documentation described in this book and to a comparable level of detail.
At the other end of the continuum are empirical processes—less formal, adaptive processes, such as those that use an agile approach.
Empirical processes require less analysis and documentation than definitive ones. Detailed user requirements are not documented on such projects because the requirements are in a constant state of flux and because the process relies on a heavily collaborative process of trial and error in order to determine what stakeholders want.
On these projects, you might analyze the impact of the proposed change on business use cases and on their internal workflow, and identify and briefly describe system use cases and their main alternate flows optional and error pathways , but not create detailed system usecase descriptions.
Brief descriptions of system use cases are sufficient for project estimation and for planning iterations, but anything more than that is generally not necessary with this approach. Structural analysis still has a place in empirical lifecycles, especially when it relates to the business architecture, because of its value in defining business concepts and in discovering across-the-board business rules that are easy to miss.
However, you are unlikely to produce a complete structural model on such projects. For empirical lifecycles, these are the rules to follow: Do it as late in the process as possible.
Whether an iterative approach is being used: How analysis activities are sequenced within the development process is determined by whether the project is using a waterfall or an iterative lifecycle. With a waterfall lifecycle, all the analysis must be done up front before implementation begins. Hence, all the B. On an iterative project also referred to as iterative-incremental , the solution is developed in cycles, called iterations.
Each iteration is like a mini-project, involving some degree of analysis, design, and coding, and should result in an increment of functionality; in other words, the user must be able to do something he or she could not do before.
For example, you might identify and briefly describe system use cases during the Initiation phase as shown in the B. The type of lifecycle that is most appropriate for a project—and hence the timing and amount of analysis and documentation it entails—depends on many factors. One is the degree of uncertainty that the project sponsor and stakeholders are willing to accept. If the budget is large, clients are less likely to be willing to sign off on high-level documentation that leaves many of the details unknown.
They often want to know exactly what they are paying for up front, before any development or procurement begins.
In this case, the situation may dictate that a definitive, waterfall process be used. On the other hand, where a small budget is involved, clients may be willing to live with more uncertainty and, hence, be comfortable with an empirical approach. Regulatory requirements have an impact on how much of the requirements must be pinned down in writing.
If they require an extensive paper trail, the use of a definitive lifecycle is indicated. Close proximity of solution providers and business stakeholders and small team sizes both argue for an empirical approach. Verbal communication works fine in these settings; indeed, formal, written documentation only slows down the process.
On the other hand, when large teams or distances are involved, a definitive, well-defined process with formal documentation may be needed to facilitate coordination and communication.
The greater the expertise of the developers, the less documentation may be required. For example, if the team has deep experience handling software internationalization, then the requirements related to this issue need not be spelled out in detail.
In-house and custom solutions favor more documentation; vendor-supplied off-the-shelf solutions favor less documentation. Some of the business rules and requirements for the project are likely to be standard across the industry and are, therefore, likely to be supported in an off-the-shelf solution. These requirements entail less risk— and hence, less need for documentation—than those that are peculiar to the client organization.
What Do You Show Stakeholders? In mature organizations, many processes and systems may already be documented, so the extent of new analysis and documentation required on a new project is less than on a less mature organization, where existing documentation is sparse.
Not every document you produce is aimed at the same audience. You need to tailor what you show to the audience that will see it.