34
Software Engineering Lecture 11: System Analysis

Software Engineering Lecture 11: System Analysis

Embed Size (px)

Citation preview

Page 1: Software Engineering Lecture 11: System Analysis

Software Engineering

Lecture 11: System Analysis

Page 2: Software Engineering Lecture 11: System Analysis

Today’s Topics Requirements Analysis & Elicitation Modeling the Problem Domain Prototyping Structured Analysis Models

Page 3: Software Engineering Lecture 11: System Analysis

Analysis: A Bridge Between System Engineering & Software Design

[From SEPA/5e]

Page 4: Software Engineering Lecture 11: System Analysis

Interview Questions “Who is requesting the work?” “Who will use the solution?” “Desired economic benefits?” “Another source for solutions?” “What’s ‘good’ output?” “What problems are addressed?” “Environment of use?” “Special issues or constraints?” Meta-questions re: process

Page 5: Software Engineering Lecture 11: System Analysis

Facilitated Application-Specific Techniques (FAST)

Conduct meetings at neutral site Rules for meetings established Formal agenda, informal discussion “Facilitator” controls meeting “Definition mechanism” agreed upon by

participants

Page 6: Software Engineering Lecture 11: System Analysis

FAST [3]

Goals:• identify problem

• propose elements of a solution

• negotiate different approaches

• specify preliminary set of requirements

• atmosphere: goal-directed

Page 7: Software Engineering Lecture 11: System Analysis

Quality Function Deployment (QFD)

Normal Requirements(explicitly discussed)

Expected Requirements(easy install, good doc)

Exciting Requirements(unexpected, welcome)

Prioritize, document, and discuss with customer

Page 8: Software Engineering Lecture 11: System Analysis

Modeling the Information Domain

Data (numbers, text, etc.) Control (events) Information Content (objects, attributes) Information Flow

(changes to data/control during execution) Information Structure

(internal data and control, relations, etc.)

Page 9: Software Engineering Lecture 11: System Analysis

[From SEPA/5e]

Information Flow and Transformation

Page 10: Software Engineering Lecture 11: System Analysis

Modeling Focus on “what”, not “how” Functional models (HIPO to algorithm

identification) Behavioral models

(program state & changes thereto) Models provide:

• tool for understanding

• focal point for review

• foundation for design

Page 11: Software Engineering Lecture 11: System Analysis

Partitioning

Decompose information, functional, and behavioral domains into subproblems

Vertical: expose more detail Horizontal: decompose into subcomponents

Page 12: Software Engineering Lecture 11: System Analysis

[From SEPA/5e]

Horizontal Partitioning

• functional decomposition

Page 13: Software Engineering Lecture 11: System Analysis

[From SEPA/5e]

VerticalPartitioning

• exposes detail

Page 14: Software Engineering Lecture 11: System Analysis

Essential vs. Implementation View

Essential view• presents the functions to be accomplished, without

implementation details

Implementation view• presents “real-world” manifestation of essential elements

• “current mode of operation”(not a proposed design!)

Page 15: Software Engineering Lecture 11: System Analysis

Prototyping Construct/analyze a prototype:

• to validate requirements

• to show feasibility of solution

Throwaway: discarded before full development Evolutionary: prototype is first version of

finished system

Page 16: Software Engineering Lecture 11: System Analysis

[From SEPA/5e]

The Prototyping Decision Process

Page 17: Software Engineering Lecture 11: System Analysis

StructuredAnalysisModel

[From SEPA/5e]

Page 18: Software Engineering Lecture 11: System Analysis

Structured Analysis

Data Dictionary• descriptions of all data objects

Entity-Relationship Diagram • depicts relations between objects

Data Flow Diagram• how data are transformed

• functions that transform them

Page 19: Software Engineering Lecture 11: System Analysis

Structured Analysis [2] State-Transition Diagram

• states: modes of behavior

• transitions: trigger state change

Data Object Description• note attributes of each object

Process Specification• describe each process in DFD

Control Specification• describe each state/transition in STD

Page 20: Software Engineering Lecture 11: System Analysis

[Fro

m S

EPA

/5e]

Data Objects, Attributes, Relationships

Page 21: Software Engineering Lecture 11: System Analysis

Tabular Representation of Data Objects

[From SEPA/5e]

Page 22: Software Engineering Lecture 11: System Analysis

[Fro

m S

EPA

/5e]

Relationships

Page 23: Software Engineering Lecture 11: System Analysis

[Fro

m S

EPA

/5e]

Cardinality and Modality

Page 24: Software Engineering Lecture 11: System Analysis

[Fro

m S

EPA

/5e]

Simple ERD, Data Object Table

Page 25: Software Engineering Lecture 11: System Analysis

[Fro

m S

EPA

/5e]

ExpandedERD

Page 26: Software Engineering Lecture 11: System Analysis

[Fro

m S

EPA

/5e]

Data ObjectType Hierarchy

Page 27: Software Engineering Lecture 11: System Analysis

[Fro

m S

EPA

/5e]

AssociativeData Objects

Page 28: Software Engineering Lecture 11: System Analysis

Information Flow Model

[From SEPA/5e]• data flow diagram

Page 29: Software Engineering Lecture 11: System Analysis

[Fro

m S

EPA

/5e]

BehavioralModel

• control flow diagram

Page 30: Software Engineering Lecture 11: System Analysis

[Fro

m S

EPA

/5e]

State-TransitionDiagram

Page 31: Software Engineering Lecture 11: System Analysis

Specifications Control Specification

• state-transition diagram

• program activation table: “a combinatorial specification of behavior”

Process Specification• narrative text

• pseudocode or program design language (PDL)

Page 32: Software Engineering Lecture 11: System Analysis

[Fro

m S

EPA

/5e]

Program Activation Table

• which processes are invoked when an event occurs?

Page 33: Software Engineering Lecture 11: System Analysis

Specifications [2] Data Dictionary (for each object):

• Name & Aliases

• Where Used / How Used

• Content Description

• Supplementary Information• data types, default values, restrictions, limitations, etc.

Page 34: Software Engineering Lecture 11: System Analysis

Questions?