49
Kal Bugrara, Ph.D Software Engineering Northeastern University Fundamentals Of Software Engineering Lecture III

Fundamentals Of Software Engineering Lecture III

  • Upload
    rachel

  • View
    39

  • Download
    0

Embed Size (px)

DESCRIPTION

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? - PowerPoint PPT Presentation

Citation preview

Page 1: Fundamentals Of Software Engineering Lecture III

Kal Bugrara, Ph.D Software Engineering Northeastern University

Fundamentals Of Software Engineering

Lecture III

Page 2: Fundamentals Of Software Engineering Lecture III

Kal Bugrara, Ph.D Software Engineering Northeastern University

A step by step process for gathering requirements

In context of a new system

Page 3: Fundamentals Of Software Engineering Lecture III

Kal Bugrara, Ph.D 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

Page 4: Fundamentals Of Software Engineering Lecture III

Kal Bugrara, Ph.D 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.

Page 5: Fundamentals Of Software Engineering Lecture III

Kal Bugrara, Ph.D 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.

Page 6: Fundamentals Of Software Engineering Lecture III

Kal Bugrara, Ph.D Software Engineering Northeastern University

Customer Service

Literature Literature DistributionDistribution

LegalLegalAccounting and Accounting and FinanceFinance

3rd Parties3rd Parties3rd Parties3rd PartiesCustomersCustomers

Information Information TechnologyTechnology

OperationsOperations

Customer Customer ServiceService

BackofficeBackoffice

Page 7: Fundamentals Of Software Engineering Lecture III

Kal Bugrara, Ph.D 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

Page 8: Fundamentals Of Software Engineering Lecture III

Kal Bugrara, Ph.D 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.

Page 9: Fundamentals Of Software Engineering Lecture III

Kal Bugrara, Ph.D 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.

Page 10: Fundamentals Of Software Engineering Lecture III

Kal Bugrara, Ph.D 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.

Page 11: Fundamentals Of Software Engineering Lecture III

Kal Bugrara, Ph.D 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.

Page 12: Fundamentals Of Software Engineering Lecture III

Kal Bugrara, Ph.D 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

Page 13: Fundamentals Of Software Engineering Lecture III

Kal Bugrara, Ph.D 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.

Page 14: Fundamentals Of Software Engineering Lecture III

Kal Bugrara, Ph.D 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”

Page 15: Fundamentals Of Software Engineering Lecture III

Kal Bugrara, Ph.D 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.

Page 16: Fundamentals Of Software Engineering Lecture III

Kal Bugrara, Ph.D 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.

Page 17: Fundamentals Of Software Engineering Lecture III

Kal Bugrara, Ph.D 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.

Page 18: Fundamentals Of Software Engineering Lecture III

Kal Bugrara, Ph.D Software Engineering Northeastern University

Business IssuesCurrent

CapabilityUser needs and

Preferences

System vision, functions, features,

tools, benefits

CSRProcesses

Data Elements

User Interface Specification

Policies & Procedures

System Interface

Specifications

PerformanceMetrics

Deliverables

A complete and executing process-oriented system

Page 19: Fundamentals Of Software Engineering Lecture III

Kal Bugrara, Ph.D Software Engineering Northeastern University

Information Engineering and Business Modeling

Page 20: Fundamentals Of Software Engineering Lecture III

Kal Bugrara, Ph.D Software Engineering Northeastern University

Why need information?

Management converts information to action.

The process is called decision making…

Jay Forrester

Page 21: Fundamentals Of Software Engineering Lecture III

Kal Bugrara, Ph.D Software Engineering Northeastern University

Information has quality

Information must be

Accurate

Timely

Relevant

What happens if any of these requirements is missing?

Page 22: Fundamentals Of Software Engineering Lecture III

Kal Bugrara, Ph.D 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

Page 23: Fundamentals Of Software Engineering Lecture III

Kal Bugrara, Ph.D Software Engineering Northeastern University

Time vs. information

xx

xx

xx

x

Time

Information or data as input (static)

work activities or

processes or

program steps

By definition

a business process

has a goal

Page 24: Fundamentals Of Software Engineering Lecture III

Kal Bugrara, Ph.D 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.

Page 25: Fundamentals Of Software Engineering Lecture III

Kal Bugrara, Ph.D Software Engineering Northeastern University

Business requirements as a formal model

Design techniques

Concepts, Classes,

Attributes, operations, relationships, inheritance

Activity diagrams, Use cases, sequence diagrams, etc.

business processes

Design facet

Information,data elements, glossary of business terms

User interaction,

user interfacing processes,

program steps,

procedures, functions

work activities

Time

Static

Dynamic

Page 26: Fundamentals Of Software Engineering Lecture III

Kal Bugrara, Ph.D Software Engineering Northeastern University

Engineering a software solution

Requirements

Software

Architecture

Deployment

Formal Business Model

Information models,

User cases, user interfacing processes and procedures, business processes

Detailed object models,

sequence diagrams,

database schemas, etc.

Programs,

Services, existing applications and data bases, etc

Development/

Integration

What is the impact of something going wrong?

This is our next topic

Page 27: Fundamentals Of Software Engineering Lecture III

Kal Bugrara, Ph.D 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.

Page 28: Fundamentals Of Software Engineering Lecture III

Kal Bugrara, Ph.D 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

Page 29: Fundamentals Of Software Engineering Lecture III

Kal Bugrara, Ph.D 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

Page 30: Fundamentals Of Software Engineering Lecture III

Kal Bugrara, Ph.D Software Engineering Northeastern University

Information Engineering and Business Modeling

Page 31: Fundamentals Of Software Engineering Lecture III

Kal Bugrara, Ph.D 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/

Abstractingconcept

We create our own reality through the concepts we form

Page 32: Fundamentals Of Software Engineering Lecture III

Kal Bugrara, Ph.D Software Engineering Northeastern University

Concepts apply to objectsApple: 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

Page 33: Fundamentals Of Software Engineering Lecture III

Kal Bugrara, Ph.D 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.

Page 34: Fundamentals Of Software Engineering Lecture III

Kal Bugrara, Ph.D Software Engineering Northeastern University

What is the domain here?

Job Position

Job Function

Person

Company

Employee

CustomerSupplier

ProductOrder

Page 35: Fundamentals Of Software Engineering Lecture III

Kal Bugrara, Ph.D Software Engineering Northeastern University

How do these concepts relate to each other?

Customer Company

Page 36: Fundamentals Of Software Engineering Lecture III

Kal Bugrara, Ph.D Software Engineering Northeastern University

Two-place Concepts

a customer buys from Company

Company has customer(s)

Customer Company

Page 37: Fundamentals Of Software Engineering Lecture III

Kal Bugrara, Ph.D Software Engineering Northeastern University

Two-place Concepts

Product offered by Company

Company offers Product

Product Company

Page 38: Fundamentals Of Software Engineering Lecture III

Kal Bugrara, Ph.D Software Engineering Northeastern University

Two-place Concepts

Supplies resources to Company

Company resources provided by supplier(s)

Supplier Company

Page 39: Fundamentals Of Software Engineering Lecture III

Kal Bugrara, Ph.D Software Engineering Northeastern University

Two-place Concepts

The concept of employment

a person has a job position within the company

vs the company has person as employee

Person Company

Page 40: Fundamentals Of Software Engineering Lecture III

Kal Bugrara, Ph.D Software Engineering Northeastern University

Two-place Concepts

Person Companyemployer

employee

Company has employees

Person employed by company

Page 41: Fundamentals Of Software Engineering Lecture III

Kal Bugrara, Ph.D Software Engineering Northeastern University

Two-place Concepts

Job Position Company

Company has job positions filled by persons

Page 42: Fundamentals Of Software Engineering Lecture III

Kal Bugrara, Ph.D Software Engineering Northeastern University

Concepts that apply to multiple objects

Job PositionPerson Company

Company has job positions filled by persons

Page 43: Fundamentals Of Software Engineering Lecture III

Kal Bugrara, Ph.D Software Engineering Northeastern University

Concepts that apply to multiple objects

Job Position

Job Function

Person

Company

Job position

is a 3 place concept

Some concepts have instances that are clusters of objects

Each instance of job position is a cluster of 3 objects (person= joe, company: NYSE, job function: manager)

Page 44: Fundamentals Of Software Engineering Lecture III

Kal Bugrara, Ph.D Software Engineering Northeastern University

Concepts that apply to multiple objects

Vote Candidate

Election

Person

Page 45: Fundamentals Of Software Engineering Lecture III

Kal Bugrara, Ph.D Software Engineering Northeastern University

Concepts that apply to multiple objects

CandidateElection

Election has: a list of candidate running in that election, an election date, responsible

election officials, and covers a region or a district.

Election Team

Date

District

Page 46: Fundamentals Of Software Engineering Lecture III

Kal Bugrara, Ph.D Software Engineering Northeastern University

A 4 place concept

Job Position

Role

Company

Each instance of employment is a cluster of 3 objects (person= joe, company: NYSE, job function: manager)

employee

employer

Role played

Related employment

Person

Employment

Status

Page 47: Fundamentals Of Software Engineering Lecture III

Kal Bugrara, Ph.D Software Engineering Northeastern University

Two-place Concepts

Product Catalog Company

Company has product catalog.

Vendor

Page 48: Fundamentals Of Software Engineering Lecture III

Kal Bugrara, Ph.D Software Engineering Northeastern University

Two-place Concepts

Product Catalog 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

Product

Page 49: Fundamentals Of Software Engineering Lecture III

Kal Bugrara, Ph.D Software Engineering Northeastern University