CS 5150 Software Engineering Requirements 3 Lecture 10

advertisement
CS 5150
Software Engineering
Lecture 10
Requirements 3
CS 5150
1
Course Administration
Test 2
Monday October 3, Philips Hall 101 at 7:30 p.m.
Covers all material in Lectures 1 to 11.
Presentations
Sign up with Corinne Russell for your
presentations.
She will be out next week. Please copy Raghu and
me on messages about the presentations.
CS 5150
2
Course Administration
Assignment 2, Milestone 2, October 12-14
Read information on the Assignments Web page
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
iii Report due Friday at 11:00 p.m.
iv Survey due Friday at 11:00 p.m.
CS 5150
3
Course Administration
Assignment 2, Milestone 2, October 12-14
• One third of the total work from the feasibility study.
• If you are following an iterative or incremental process,
this is a major milestone when you report visible progress to
your client. This will include at least a first set of
requirements, and design, including user interface design. It
might be the end of the first iteration or sprint.
• If you are following a modified waterfall process, this
milestone should include completion of the requirements
phase and perhaps the first steps in the design.
Include a review of progress to date against your plan.
CS 5150
4
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
CS 5150
5
Modeling Techniques for Requirements Analysis
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 familiar from other courses.
• No correct technique that fits all situations.
As you build understanding of the requirements through
viewpoint analysis, scenarios and use cases, etc., use
models to specify requirements. The models provide a
bridge between the client's understanding and the
developers.
CS 5150
6
Modeling Tools: Data-Flow Models
An informal modeling technique to show the flow of
data through a system.
External entities
Processing steps
Data stores or sources
Data flows
CS 5150
7
Modeling Tools: Data-Flow Model
Example: University Admissions (first attempt)
Rejection
Application
Completed
form
Receive application
Evaluate
application
Applicant
Acceptance
Shows the flow, but where
is the data stored?
CS 5150
8
Modeling Tools: Data-Flow Model
Example: Assemble Application Stage
Acknowledgment
Application
form
Receive
Applicant
Supporting
information Pending
database
CS 5150
Completed
application
Acknowledgment
AND
Begin
evaluation
Evaluation
request
AND
Does this model
cover all
applications? Are
there special cases?
Applicant
database
9
Modeling Tools: Data-Flow Model
Example: Process Completed Application Stage
The requirements will need
specification of the decisionmaking process.
Rejection
Evaluation
request
Acceptance
Evaluation
Financial
aid
Offer
Special
request
Applicant
database
CS 5150
10
Modeling Tools: Decision Table
University Admission Decision
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
X
X
X
Send rejection letter
Send acceptance letter
X
X
X
Note that the rules are specific and testable.
CS 5150
11
Modeling Tools: Flowchart
An informal modeling technique to show the decisions
and paths that data takes through a system.
Operation
Decision
Manual operation
Report
CS 5150
12
Modeling Tools: Flowchart
Example: University Admissions
Form
received
New
F
applicant?
T
New database
record
Update
database
Application T
complete?
F
Notify
student
Evaluate
Notify
student
CS 5150
13
Modeling Tools: Pseudo-code
An informal modeling technique to show the logic
behind part of a system.
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()
CS 5150
14
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
0
Example
1
S1
0
CS 5150
1
S3
S2
0
1
15
Modeling Tools: Finite State Machine
Example: Therapy Control Consol
Example: Radiation Therapy Control Console
You are developing requirements for the operator's
control console. In an interview, the client describes the
procedures that the operator must follow when operating
the machine.
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.
CS 5150
16
Modeling Tools: Finite State Machine
Therapy 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."
CS 5150
17
Modeling Tools: Finite State Machine
State Transition Diagram
Discuss each state
and transition with
the client.
Select field
Enter
Patients
Enter
Fields
Start
(lock off)
Setup
Beam
on
Ready
Stop
(lock on)
Select patient
CS 5150
18
Modeling Tools: Finite State Machine
State Transition Table
Select Select
Enter lock off Start
Patient Field
Patients
Fields Patients
Setup Patients Fields
Ready Patients Fields
Stop
lock on
Fields
Setup
Ready
Beam
on
Setup
Beam
Ready Setup
on
This table can be used for requirements definition,
program design, and acceptance testing.
CS 5150
19
Transition Diagram for User Interfaces
Example: CS 5150 Web Site (part)
home
syllabus projects
slides
books
concepts
tests
assignintegrity about
ments
examples surveys
scripts
CS 5150
20
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.
CS 5150
21
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).
CS 5150
22
Modeling Tools: Entity Relationship Diagram
Example: CS 5150 Project
IsClient
Major
1
1
CS 5150
Student
Project
1
5 to 7
IsMember
CS 5150
Client
team
member
0:n
IsContact
1
23
Entity Relationship Diagram as a Design Tool
Example: Database Schema for Web Data
Notation: Each table represents an entity
Each arrow represents a relation
CS 5150
24
Modeling Tools: Petri Nets
A Petri Net models parallelism
A
Event
S
Event 1
S
A
Event n
Event 1
A
Event n
CS 5150
..
.
S1
Sm
25
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
CS 5150
26
Requirements Definition: 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 part of the system specification.
CS 5150
27
A Note on Class and Object Models
This course teaches class and object models as a tool for
design.
Some people recommend class and 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 are equally useful for requirements.
*
CS 5150
28
Download