490 likes | 640 Views
Fundamentals Of Software Engineering Lecture III. A step by step process for gathering requirements In context of a new system. Business Requirements: Key Questions. What is the business need? What are the business issues underlying the need What is working? What is not working?
E N D
Fundamentals Of Software EngineeringLecture III Software Engineering Northeastern University
A step by step process for gathering requirementsIn context of a new system Software Engineering Northeastern University
Business Requirements: Key Questions • What is the business need? • What are the business issues underlying the need • What is working? What is not working? • What is the business’ vision for the new system? What benefits and qualities that will result? • Who are the stakeholder of the system? What are their needs and preferences? • Users • Sponsors, etc. • All stakeholders are customers Software Engineering Northeastern University
Business Requirements (Contd.) • What is our offer to these customers? • What are the features and benefits that will satisfy customers needs and preferences. • How are we going to deliver the offer? • What is the business’ “glossary of terms”? • How users are going to interface to the new system? How are they going to interact with the new system? What business tasks they perform? What are the data elements they need? What tools are needed to help facilitate their work. Software Engineering Northeastern University
Step 1: Understand the Business Situation • What are the business issues underlying the need? • What is the “pain” we want to eliminate? • The most significant interest in understanding the current business situation is to identify the issues that exist and are inherent to it, where they occur, why they occur, and to what degree they impact current performance. • The important outcome in this circumstance is a set of business issues that need to be addressed in order to leverage the opportunities created by the new system. Software Engineering Northeastern University
Customer Service 3rd Parties 3rd Parties Customer Service Customers Backoffice Operations Literature Distribution Accounting and Finance Information Technology Legal Software Engineering Northeastern University
Example • Customer Service Customer Service Representatives (CSR) answer the phone and respond to customer questions • Customers are not happy with the service. Customers think CSRs are not helpful – they don’t know what they are doing • The call-handle time is too long • High cost of training customer service representatives (csr) • CSR work practices are very complicated • CSRs use 4 desktop applications • CSRs are busy working with the desktop tools and have little time taking care of the customer • Customers call for service but management does not know what they are calling about Software Engineering Northeastern University
Poor CSR Productivity • Must lessen the need for CSR expertise – more customers/clients handled. • Must lessen the need for training – more CSR uptime available. • High costs of implementing changes to existing applications • Must show how quickly changes to how CSRs work could be integrated into the applications being developed, with relevant training minimized. Software Engineering Northeastern University
Lack of Real-time Activity Reporting • Must capture in real-time the what, where, when, how and for whom the CSR is working on various business tasks. • Must show how the solution provides real data for business improvement and innovation. Software Engineering Northeastern University
Magnitude of these Problems A large investment company reports: If the average phone call length is reduced by THREE seconds, the company will save $200,000 per year. Software Engineering Northeastern University
Step 2: Users and their preferences • Who are the stakeholder of the new system? What are their needs and preferences? • Users • Sponsors, etc. • They all are customers • Work with management on a set of criteria for classifying users. The criteria could include similarity of need, size, volume, and profitability. The users of the new system are then classified accordingly. A sample group of users will be selected for detailed interviews and requirements gathering. Software Engineering Northeastern University
Example • Customer Service Users and their needs: • customer service reps • Combine all the desktop applications into on easy to use tool • The tool support provides answers to most customer questions • Team leaders • Measure CSR performance and including call-handle-time • Unit managers • Measure team performance and compare • Reduced need for CSR training • Auditors • Reports that show compliance with company rules and regulations Software Engineering Northeastern University
Step 3: The Business Offer • What is our offer to these customers? What are the features and benefits that will satisfy customers’ needs and preferences? • With clear understanding of the user needs and preferences, the focus shifts to documenting the information, features and benefits the business must deliver to users in order to satisfy their requirements. • In this step and for each customer category, we capture the (information) products used to satisfy the requirements, and any associated service level agreements. The business offers form the basis for identifying the work activities and consequently the business processes that deliver the business offers to customers. Software Engineering Northeastern University
Step 4: Goals and Measures • To ensure a successful implementation of the system and ultimately realize the intended benefits, a sound measurement system must be integral to the business process and the underlying software solution. • Knowing what to measure, instructing the system to measure it, and acting on the things learned will create a great opportunity to manage the business process instead of “the application” Software Engineering Northeastern University
Step 5: Information Engineering • What are the information needs of people doing the work? • To be deliberate about understanding the data requirements and therefore limit the scope of the data elements to those that really matter, we start with analyzing the work activity and its purpose. The resource needs of the work activity is subsequently derived. • The deliverables from this step include a data model that captures all the information elements needed to support the work. The data model will be in a format that lends itself to software implementation. Software Engineering Northeastern University
Step 6: User interface specification • Screen design for business tasks is iterative and parallels the development of the data elements. • Produce screen drafts as soon as possible to provide end users with something tangible to work with. This motivates the subject matter experts’ thinking about the work to be done and leads to a productive development. This “early draft” approach is fundamental to an iterative development methodology. • The new system will evolve over the course of the project with business users fully engaged throughout. Software Engineering Northeastern University
Step 7: Standard Policies and Procedures • There are a number of standards and compliance conditions that must be captured and factored into the design. Software Engineering Northeastern University
Deliverables Current Capability User needs and Preferences Business Issues System vision, functions, features, tools, benefits System Interface Specifications Performance Metrics User Interface Specification CSR Processes Policies & Procedures Data Elements A complete and executing process-oriented system Software Engineering Northeastern University
Information Engineering and Business Modeling Software Engineering Northeastern University
Why need information? Management converts information to action. The process is called decision making… Jay Forrester Software Engineering Northeastern University
Information has quality • Information must be • Accurate • Timely • Relevant What happens if any of these requirements is missing? Software Engineering Northeastern University
The challenge for Software Engineers Design and build software systems capable of providing The right information ... To the right people ... At the right time … … And these are highly interdependent Software Engineering Northeastern University
Time vs. information Information or data as input (static) work activities or processes or program steps x x x x x x x By definition a business process has a goal Time Software Engineering Northeastern University
Because management needs to know ... The intersection of data elements and the process steps at any given moment in time gives you the ability to answer such questions as who is doing what, why, when, where, how, and most importantly for whom. Software Engineering Northeastern University
Business requirements as a formal model Design facet Design techniques Time Information,data elements, glossary of business terms Concepts, Classes, Attributes, operations, relationships, inheritance Static User interaction, user interfacing processes, program steps, procedures, functions work activities Activity diagrams, Use cases, sequence diagrams, etc. business processes Dynamic Software Engineering Northeastern University
Engineering a software solution Deployment Development/ Integration Programs, Services, existing applications and data bases, etc Detailed object models, sequence diagrams, database schemas, etc. Software Architecture Formal Business Model Information models, User cases, user interfacing processes and procedures, business processes This is our next topic Requirements What is the impact of something going wrong? Software Engineering Northeastern University
Modeling the business problem • The objective is to capture what might be termed as • Glossary of business terms • Business lexicon • Business vocabulary • Data Elements • Map these common business terms (and their relationships) into a formal information model - a key component of the business model. Software Engineering Northeastern University
The steps for Developing a Business Model 1. Scope the problem domain 2. Capture the key concepts within the problem domain 3. Generalize and specialize concepts as necessary 4. Surface any relationships between concepts 5. Formalize the concepts by mapping them to class definitions define class attributes define operations on the class class inheritance class relationships Software Engineering Northeastern University
Problem Domain Subject matter, field, realm, specialty, boundary Business unit, organization, enterprise Etc. • Examples: • Human Resources, compensation, pension, • Customer service, finance, • Tax code, personal deductions Software Engineering Northeastern University
Information Engineering and Business Modeling Software Engineering Northeastern University
Why focus on concepts? ? Conceptualization is a basic human mental function Conceptualization means thinking or abstraction The result of doing conceptualization (thinking, or abstractions) is a concept Conceptualize/ Abstracting concept We create our own reality through the concepts we form Software Engineering Northeastern University
Concepts apply to objects Apple: this piece of fruit I am about to eat Concept Examples of objects to which the concept applies Person Peter, Paul, and Mary Employee John works for Acme Inc. Task That piece of work Kim is performing right now Family Jim and Joan are happily married and have two lovely children Software Engineering Northeastern University
Exercise Identify an object in the classroom. Provide a few concepts that apply to that object. Provide an example of a concept. Identify a few objects to which that concept applies. Software Engineering Northeastern University
What is the domain here? Person Customer Supplier Job Position Job Function Employee Order Product Company Software Engineering Northeastern University
How do these concepts relate to each other? Customer Company Software Engineering Northeastern University
Two-place Concepts Company Customer a customer buys from Company Company has customer(s) Software Engineering Northeastern University
Two-place Concepts Company Product Product offered by Company Company offers Product Software Engineering Northeastern University
Two-place Concepts Company Supplier Supplies resources to Company Company resources provided by supplier(s) Software Engineering Northeastern University
Two-place Concepts Company Person The concept of employment a person has a job position within the company vs the company has person as employee Software Engineering Northeastern University
Two-place Concepts Company has employees employee Company Person employer Person employed by company Software Engineering Northeastern University
Two-place Concepts Job Position Company Company has job positions filled by persons Software Engineering Northeastern University
Concepts that apply to multiple objects Job Position Person Company Company has job positions filled by persons Software Engineering Northeastern University
Concepts that apply to multiple objects Some concepts have instances that are clusters of objects Person Job position is a 3 place concept Job Position Job Function Company Each instance of job position is a cluster of 3 objects (person= joe, company: NYSE, job function: manager) Software Engineering Northeastern University
Concepts that apply to multiple objects Election Candidate Vote Person Software Engineering Northeastern University
Concepts that apply to multiple objects Date Election Team Election Candidate District Election has: a list of candidate running in that election, an election date, responsible election officials, and covers a region or a district. Software Engineering Northeastern University
A 4 place concept Person employee Job Position Employment Status Related employment Role Role played employer Company Each instance of employment is a cluster of 3 objects (person= joe, company: NYSE, job function: manager) Software Engineering Northeastern University
Two-place Concepts Product Catalog Company Vendor Company has product catalog. Software Engineering Northeastern University
Two-place Concepts Product Catalog Product Company Company has product catalog. The product catalog defines a collection of Products. A product belongs to a product catalog. The product catalog is owned by company Software Engineering Northeastern University