29
CS 5150 1 CS 5150 Software Engineering Lecture 10 Requirements 3

CS 5150 1 CS 5150 Software Engineering Lecture 10 Requirements 3

  • View
    227

  • Download
    3

Embed Size (px)

Citation preview

Page 1: CS 5150 1 CS 5150 Software Engineering Lecture 10 Requirements 3

CS 5150 1

CS 5150 Software Engineering

Lecture 10

Requirements 3

Page 2: CS 5150 1 CS 5150 Software Engineering Lecture 10 Requirements 3

CS 5150 2

Course Administration

Progress report

Progress report due on Friday

Test 2

Monday October 5, Phillips Hall 219 at 7:30 p.m.

Page 3: CS 5150 1 CS 5150 Software Engineering Lecture 10 Requirements 3

CS 5150 3

Course Administration

Assignment 2, Milestone 2, October 14-16

Read information on the Assignments Web page

Reserve time for your presentation. See the home page of the Web site.

i Client(s) must be present

ii Not all team members must be present, but each team member must make a presentation at least once

during the semester

Page 4: CS 5150 1 CS 5150 Software Engineering Lecture 10 Requirements 3

CS 5150 4

Course Administration

Assignment 2, Milestone 2, October 14-16

• One third of the total work from the feasibility study.

• If you are following an iterative process, this is a major milestone when you can report visible progress to your client. Typically, this will include a first set of requirements, a provisional design and a prototype that can be used to demonstrate the functionality of the system, including user interface design.

• If you are following a modified waterfall process, this progress report should include completion of the requirements phase and perhaps the first steps in the design.

Page 5: CS 5150 1 CS 5150 Software Engineering Lecture 10 Requirements 3

CS 5150 5

Software Development Principles and Practices

Software development

Software development is a craft. Software developers have a variety of tools that can be applied in different situations.

Part of the art of software development is to select the appropriate tool for a given implementation

Page 6: CS 5150 1 CS 5150 Software Engineering Lecture 10 Requirements 3

CS 5150 6

Modeling Techniques for Requirements Analysis, Modeling and Specification

The craft of requirements analysis, modeling and specification is to select the appropriate tool for the particular task.

• A variety of tools and techniques.

• Many are familiar from other courses.

• There is no correct technique that fits all situations.

As you build understanding of the requirements through viewpoint analysis, scenarios and use cases, etc., use modeling tools to specify requirements. The models provide a bridge between the client's understanding and the developers.

Page 7: CS 5150 1 CS 5150 Software Engineering Lecture 10 Requirements 3

CS 5150 7

Modeling Tools: Decision Table (Poor Example)

University Admission Decision

Note that the rules are too vague.

High SAT T F F F F F

High grades - T F F F F

Sports - - T T F F

Recommendations - - T F T F

Reject X X X

Accept X X X

Page 8: CS 5150 1 CS 5150 Software Engineering Lecture 10 Requirements 3

CS 5150 8

Modeling Tools: Decision Table (Good Example)

University Admission Decision

Note that the rules are now specific and testable.

SAT > S T F F F F F

GPA > G - T F F F F

Athletics code = - - T T F F

Recommendations > A- - - T F T F

Send rejection letter X X X

Send acceptance letter X X X

Page 9: CS 5150 1 CS 5150 Software Engineering Lecture 10 Requirements 3

CS 5150 9

Modeling Tools: Data-Flow Models

External entities

Processing steps

Data stores or sources

Data flows

An informal modeling technique to show the flow of data through a system.

Page 10: CS 5150 1 CS 5150 Software Engineering Lecture 10 Requirements 3

CS 5150 10

Modeling Tools: Data-Flow Model Example: University Admissions (first attempt)

Applicant

Applicationform Receive

application

Completedapplication

Evaluate

Rejection

Acceptance

Shows the flow, but where is the data stored?

Page 11: CS 5150 1 CS 5150 Software Engineering Lecture 10 Requirements 3

CS 5150 11

Modeling Tools: Data-Flow Model Example: Assemble Application Stage

Applicant

Applicationform

Receive

Completedapplication

Supportinginformation Pending

database

Acknowledgment

Beginevaluation

Applicantdatabase

Evaluationrequest

AND

AND

Acknowledgment

Does this model cover all applications? Are there special cases?

Page 12: CS 5150 1 CS 5150 Software Engineering Lecture 10 Requirements 3

CS 5150 12

Modeling Tools: Data-Flow ModelExample: Process Completed Application Stage

Rejection

Evaluation

Applicantdatabase

Evaluationrequest Acceptance Financial

aid

Offer

Specialrequest

The requirements will need specification of the decision-making process.

Page 13: CS 5150 1 CS 5150 Software Engineering Lecture 10 Requirements 3

CS 5150 13

Procedural Models: Flowchart

Operation

Decision

Manual operation

Report

An informal modeling technique to show the decisions and paths that data takes through a system.

Page 14: CS 5150 1 CS 5150 Software Engineering Lecture 10 Requirements 3

CS 5150 14

Modeling Tools: FlowchartExample: University Admissions

Form received New?

Database record

T

Notify student

F Update database

Complete?

Notify student

T

FEvaluate

Page 15: CS 5150 1 CS 5150 Software Engineering Lecture 10 Requirements 3

CS 5150 15

Procedural Models: Pseudo-code

Example: Check project plan

check_plan (report)

if report (date_time) > due_date_time then error (too_late) if report (client) = none then error (no_client) if report (team) < min_team or > max_team then error (bad_team) if error() = none then comments = read_report (report) return (comments (text), comments (grade)) else return error()

An informal modeling technique to show the logic behind part of a system.

Page 16: CS 5150 1 CS 5150 Software Engineering Lecture 10 Requirements 3

CS 5150 16

Modeling Tools: Transition Diagrams

A system is modeled as a set of states, Si

A transition is a change from one state to another.

The occurrence of a condition, Ci, causes the transition from one state to another

Transition function:

f (Si, Cj) = Sk

Example S1 S2

S30

0

0

1

11

Page 17: CS 5150 1 CS 5150 Software Engineering Lecture 10 Requirements 3

CS 5150 17

Modeling Tools: Transition Diagram for User Interfaces Example: CS 5150 Web Site

home

syllabus projects booksassign-mentstests integrity about

slides surveysconcepts examples

forms

Page 18: CS 5150 1 CS 5150 Software Engineering Lecture 10 Requirements 3

CS 5150 18

Modeling Tools: Finite State MachineExample: Therapy Control Consol

Example: Radiation Therapy Control Console

You are developing requirements for the operator's control console. In a client interview, the client describes the dangers inherent in using the machine.

The operator must follow a strict procedure before the machine is ready to run.

You use a finite state machine to specify the procedures. This shows the client that you understand the requirements and specifies the procedures for the developers.

Page 19: CS 5150 1 CS 5150 Software Engineering Lecture 10 Requirements 3

CS 5150 19

Modeling Tools: Finite State MachineTherapy Control Consol: Scenario

"The set up is carried out before the patient is made ready. The operator selects the patient information from a database. This provides a list of radiation fields that are approved for this patient. The operator selects the first field. This completes the set up.

"The patient is now made ready. The lock is taken off the machine and the doses with this field are applied. The operator then returns to the field selection and chooses another field."

Page 20: CS 5150 1 CS 5150 Software Engineering Lecture 10 Requirements 3

CS 5150 20

Modeling Tools: Finite State MachineState Transition Diagram

Patients Fields Setup ReadyBeam

on

Enter Enter Start

Stop

Select field

Select patient(lock on)

(lock off)

Discuss each state and transition with the client.

Page 21: CS 5150 1 CS 5150 Software Engineering Lecture 10 Requirements 3

CS 5150 21

Modeling Tools: Finite State MachineState Transition Table

SelectPatient

SelectField

Enter lock off Start Stop lock on

Patients

Fields

Setup

Ready

Beamon

Fields

Fields

Fields

Patients

Patients

Patients

Setup

Setup

Setup

Ready

Beamon

Ready

This table can be used both for requirements specification and for the design specification.

Page 22: CS 5150 1 CS 5150 Software Engineering Lecture 10 Requirements 3

CS 5150 22

Modeling Tools: Entity-Relation Model

A requirements and design methodology for relational databases

• A database of entities and relations

• Tools for displaying and manipulating entity-relation diagrams

• Tools for manipulating the database (e.g., as input to database design)

Entity-relationship models can be used both for requirements specification and for the design specification.

Page 23: CS 5150 1 CS 5150 Software Engineering Lecture 10 Requirements 3

CS 5150 23

Modeling Tools: Entity-Relation Diagram

An entity (noun)

A relation between entities (verb)

An entity or relation attribute

Note: There are various notations used for entity-relationship diagrams. This is the notation used by Chen (1976).

Page 24: CS 5150 1 CS 5150 Software Engineering Lecture 10 Requirements 3

CS 5150 24

Modeling Tools: Entity Relationship DiagramExample: CS 5150 Project

CS 5150 Student

Major

Project

5 to 71

IsMember

Client team

member

IsClient

1:n

IsContact0:n

1

1

Page 25: CS 5150 1 CS 5150 Software Engineering Lecture 10 Requirements 3

CS 5150 25

Entity Relationship Diagram as a Design ToolExample: Database Schema for Web Data

Notation: Each table represents an entity Each arrow represents a relation

Page 26: CS 5150 1 CS 5150 Software Engineering Lecture 10 Requirements 3

CS 5150 26

Modeling Tools: Petri Nets

A Petri Net models parallelism

A

S1

Sm

S

S

A

Event 1

Event n

Event

A

Event 1

Event n ..

Page 27: CS 5150 1 CS 5150 Software Engineering Lecture 10 Requirements 3

CS 5150 27

Modeling Tools: Prototyping Requirements

Rapid prototyping is the most comprehensive of all modeling methods

A method for specifying requirements by building a system that demonstrates the functionality of key parts of the required system

Particularly valuable for user interfaces

Page 28: CS 5150 1 CS 5150 Software Engineering Lecture 10 Requirements 3

CS 5150 28

Data Dictionaries

A data dictionary is a list of names used by the system

• Name (e.g., "start_date")

• Brief definition (e.g., what is "date")

• What is it? (e.g., integer, relation)

• Where is it used (e.g., source, used by, etc.)

• May be combined with a glossary

As the system is developed, the data dictionary in the requirements is the basis of the system data dictionary, which is a formal part of the system specification.

Page 29: CS 5150 1 CS 5150 Software Engineering Lecture 10 Requirements 3

CS 5150 29

A Note on Object Models

This course teaches object models as a tool for design.

Some people recommend object models for requirements definition, but it is difficult to use them without constraining the system design.

Flow charts and finite state machines are supported by UML as design models, but can also be used for requirements.

*