版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
需求獲取SOFTWARE
ENGINEERING工程4.1
Capturing
the
requirements需求獲取Requirement: a
feature
of
the
system
or
adescription
of
something
the
system
iscapable
of ng
in
order
to
fulfill
thesystem’s
purpose需求是系統(tǒng)的特征,或?yàn)榱藢?shí)現(xiàn)系統(tǒng)目標(biāo)系統(tǒng)能做什么的一個(gè)描述。需求過程是用來導(dǎo)出、確認(rèn)和
系統(tǒng)需求文檔的一組結(jié)構(gòu)化活動(dòng)
需求分析的目標(biāo)是準(zhǔn)確理解用戶的要求,進(jìn)行細(xì)致的
分析,將用戶的非形式的要求轉(zhuǎn)化為完整的需求定義,再將需求定義轉(zhuǎn)換為相應(yīng)的形式的規(guī)格說明。需求分析工作是生存期中重要的一步,也是決定性的一步。只有通過需求功能和性能的總體概念描述分析才能把為具體的開發(fā)的基礎(chǔ)。需求規(guī)格說明,從而奠定需求分析工作也是一個(gè)不斷認(rèn)識(shí)和逐步細(xì)化的過程。該過程將劃階段所確定的
范圍逐步細(xì)化到可詳細(xì)定義的程度,并分析出各種不同的
元素,然后為這些元素找到可行的解決方法。Why
are
requirements
important
?需求為什么重要?The
causesof
failed
projects
1994Standish
)1. plete
requirements
(13.1%)Lack
of
user
involvement
(12.4%)Lack
of
resources
(10.6%)Unrealistic
expectations
(9.9%)Lack
of
executive
support
(9.3%)不完整的需求缺少用戶的參與缺少資源不切實(shí)際的期望缺乏行政支持6.
Changing
requirements
and
specifications
(8.7%)改動(dòng)需求和規(guī)格說明Lack
of
planning
(8.1%)System
no
longer
needed
(7.5%)缺少計(jì)劃不再需要該系統(tǒng)需求為何重要—有關(guān)錯(cuò)誤的一些事實(shí)事實(shí)1在
生命周期中,一個(gè)錯(cuò)誤發(fā)現(xiàn)得越晚,修復(fù)錯(cuò)誤的費(fèi)用越高階段相對(duì)修復(fù)費(fèi)用需求階段0.1~0.2設(shè)計(jì)階段0.5編碼階段1單元測(cè)試階段2驗(yàn)收測(cè)試階段5階段20表4.1
生命周期中修復(fù)
的相對(duì)費(fèi)用需求為何重要—有關(guān)錯(cuò)誤的一些事實(shí)事實(shí)2許多錯(cuò)誤是潛伏的,并且在錯(cuò)誤產(chǎn)生后很長(zhǎng)一段時(shí)間才被檢查出來Boehm從TRW公司所做的
項(xiàng)目中得出結(jié)論:所有被檢測(cè)出來的錯(cuò)誤中的54%實(shí)際上是在編碼和單元測(cè)試階段以后才被發(fā)現(xiàn)的;更糟糕的是,此類錯(cuò)誤中的絕大部分(占45%)是屬于需求和設(shè)計(jì)階段的,而編碼階段的錯(cuò)誤只占9%。需求為何重要—有關(guān)錯(cuò)誤的一些事實(shí)事實(shí)3在需求過程中會(huì)產(chǎn)生很多錯(cuò)誤DeMarco在一份
中,被檢查出來的錯(cuò)誤的56%產(chǎn)生的根源可以追溯到需求階段。AIRMICS所進(jìn)行的一項(xiàng) 發(fā)現(xiàn),在一份軍方大型管理信息系統(tǒng)的需求規(guī)格說明書中存在著500多個(gè)錯(cuò)誤,當(dāng)然這僅僅是一個(gè)
項(xiàng)目中的一次需求為何重要—有關(guān)錯(cuò)誤的一些事實(shí)事實(shí)4在需求階段,代表性的錯(cuò)誤為不明確、疏忽、不一致和二義性研究
對(duì) A7E飛機(jī)上的飛行操作程序進(jìn)行實(shí)地測(cè)試,得出的研究數(shù)據(jù)表明:
A7E項(xiàng)目中77%的需求錯(cuò)誤特點(diǎn)是不明確、疏忽、不一致和二義性。49%不正確的事實(shí)31%疏忽13%不一致5%
二義性2%
放錯(cuò)位置需求為何重要—有關(guān)錯(cuò)誤的一些事實(shí)事實(shí)5需求錯(cuò)誤是可以被檢查出來的發(fā)現(xiàn)錯(cuò)誤的方法 發(fā)現(xiàn)錯(cuò)誤的比例(%)651056檢查單元測(cè)試集成測(cè)試演進(jìn)其他Basili和Weiss的數(shù)據(jù)表明:在A-7E的 定義文檔中,33%的需求錯(cuò)誤是通過人工檢查出來的。Celko覺得利用自動(dòng)分析工具能夠從SRS中檢查出來相當(dāng)數(shù)量的錯(cuò)誤。需求為何重要—有關(guān)錯(cuò)誤的一些事實(shí)由上面這些事實(shí),能得出如下四點(diǎn)結(jié)論:在需求過程中會(huì)產(chǎn)生很多錯(cuò)誤(事實(shí)3和4)許多錯(cuò)誤并沒有在早期被發(fā)現(xiàn)(事實(shí)2)這樣的錯(cuò)誤是能夠在產(chǎn)生的初期被檢查出來的(事實(shí)5)費(fèi)用會(huì)–如果沒有及時(shí)檢查出來這些錯(cuò)誤,直線上升(事實(shí)1)需求過程不僅是可能的而且也是值得的需求分析的任務(wù)“建造一個(gè)系統(tǒng)的最的部分是決定要建造什么……沒有別的工作在做錯(cuò)時(shí)會(huì)如此影響最終系統(tǒng),沒有別的工作比以后矯正更?!盕red
BrooksThe
process
of
determining
the
requirementsforasoftwarebasedsystem基于
系統(tǒng)的需求定義過程需求分析階段研究的對(duì)象是
項(xiàng)目的用戶要求。
開發(fā)項(xiàng)目是要實(shí)現(xiàn)目標(biāo)系統(tǒng)的物理模型。作為目標(biāo)系統(tǒng)的參考,需求分析的任務(wù)就是借助于當(dāng)前系統(tǒng)的邏輯模型導(dǎo)出目標(biāo)系統(tǒng)的邏輯模型,解決目標(biāo)系統(tǒng)的"做什么"的問題。實(shí)現(xiàn)步驟如圖:1、獲得當(dāng)前系統(tǒng)的物理模型所謂當(dāng)前系統(tǒng)可能是需要改進(jìn)的某個(gè)已在計(jì)算機(jī)上運(yùn)行的數(shù)據(jù)處理系統(tǒng),也可能是一個(gè)人工的數(shù)據(jù)處理過程。在這一步首先分析現(xiàn)實(shí)世界,理解當(dāng)前系統(tǒng)是如何運(yùn)行的,了解當(dāng)前系統(tǒng)的組織機(jī)構(gòu)、輸入輸出、資源利用情況和日常數(shù)據(jù)處理過程,并用一個(gè)具體模型來反映自己對(duì)當(dāng)前系統(tǒng)的理解。這一模型應(yīng)客觀地反映現(xiàn)實(shí)世界的實(shí)際情況。2
抽象出當(dāng)前系統(tǒng)的邏輯模型在理解當(dāng)前系統(tǒng)"怎樣做"的基礎(chǔ)上,抽取其"做什么"的本質(zhì),從而從當(dāng)前系統(tǒng)的物理模型抽象出當(dāng)前系統(tǒng)的邏輯模型。在物理模型中有許多物理的因素,隨著分析工作的深入,有些非本質(zhì)的物理因素就成為不必要的負(fù)擔(dān),因而需要對(duì)物理模型進(jìn)行分析,區(qū)分出本質(zhì)的和非本質(zhì)的因素,去掉那些非本質(zhì)的因素即可獲得反映系統(tǒng)本質(zhì)的邏輯模3
建立目標(biāo)系統(tǒng)的邏輯模型分析目標(biāo)系統(tǒng)與當(dāng)前系統(tǒng)邏輯上的差別,明確目標(biāo)系統(tǒng)到底要"做什么",從而從當(dāng)前系統(tǒng)的邏輯模型導(dǎo)出目標(biāo)系統(tǒng)的邏輯模型。具體做法:①
目標(biāo)系統(tǒng)與當(dāng)前系統(tǒng)在邏輯上的差別;②將變化的部分看做是新的處理步驟,對(duì)數(shù)據(jù)流圖進(jìn)行調(diào)整;③由外向里對(duì)變更部分進(jìn)行分析,憑經(jīng)驗(yàn)推斷其結(jié)構(gòu),獲得目標(biāo)系統(tǒng)的邏輯模型。4、補(bǔ)充目標(biāo)系統(tǒng)的邏輯模型補(bǔ)充內(nèi)容包括:①說明目標(biāo)系統(tǒng)的用戶界面。根據(jù)目標(biāo)系統(tǒng)所處的應(yīng)用環(huán)境及它與外界環(huán)境的相互關(guān)系,有可能與它發(fā)生聯(lián)系和作用的部分,從而決定人機(jī)界面。②說明至今尚未詳細(xì)考慮的細(xì)節(jié)。這些細(xì)節(jié)包括系統(tǒng)的啟動(dòng)和結(jié)束、出錯(cuò)處理、系統(tǒng)的輸入輸出和系統(tǒng)性能方面的需求。③其它。例如系統(tǒng)的其它必須滿足的性能和限制等等。需求分析的過程需求分析階段的工作,可以分成以下四個(gè)方面:?jiǎn)栴}識(shí)別(提取)分析與綜合編制需求分析階段的文檔需求分析評(píng)審1
問題識(shí)別解決要求被開發(fā)
做什么,做到什么程度的問題。另外,需要建立分析所需要的通信途徑,以保證能順利地對(duì)問題進(jìn)行分析。需求分析的通信途徑功能,2
分析與綜合進(jìn)行各種要求的一致性分析檢查;從數(shù)據(jù)流和數(shù)據(jù)結(jié)構(gòu)出發(fā),逐步細(xì)化所有的功能;對(duì)數(shù)據(jù)域進(jìn)行分解,并分配到各個(gè)子功能上,以確定系統(tǒng)的構(gòu)成和各個(gè)主要成分;找出系統(tǒng)各成分之間的聯(lián)系、接口特性和設(shè)計(jì)上的限制。判斷是否存在因片面性或短期行為而導(dǎo)致的不合理的用戶要求,是否有用戶尚未 真正有價(jià)值的潛在要求。剔除其不合理的部分,增加其需要部分。綜
系統(tǒng)的解決方案,給出目標(biāo)系統(tǒng)的詳細(xì)邏輯模型。3
編制需求分析階段的文檔需求說明書:把分析 和用戶雙方共同的理解和分析結(jié)果用規(guī)范的方式描述出來,作為今后各項(xiàng)工作的基礎(chǔ);初步的用戶手冊(cè):著重反映目標(biāo) 的用戶功能界面和用戶使用的具體要求。用戶手冊(cè)能強(qiáng)制分析 從用戶使用的觀點(diǎn)來思考問題;編寫確認(rèn)測(cè)試計(jì)劃,作為今后確認(rèn)測(cè)試的依據(jù);修改和完善 開發(fā)計(jì)劃:在需求分析階段對(duì)目標(biāo)系統(tǒng)有了更進(jìn)一步的了解,因此能夠更準(zhǔn)確地估算開發(fā)成本、進(jìn)度和資源需求,需要對(duì) 開發(fā)計(jì)劃做適當(dāng)?shù)男薷摹?
需求分析評(píng)審對(duì)功能的正確性、文檔的一致性、完備性、準(zhǔn)確性和清晰性,以及其它需求給予評(píng)價(jià)。必須理解并描述問題的信息域,根據(jù)這條準(zhǔn)則應(yīng)該建立數(shù)據(jù)模型;必須定義應(yīng)完成的功能,這條準(zhǔn)則要求建立功能模型;必須描述作為外部事件結(jié)果的行為,這條準(zhǔn)則要求建立行為模型;必須對(duì)描述信息、功能和行為的模型進(jìn)行分解,用層次的方式展示細(xì)節(jié).需求分析的任務(wù)需求分析的原則.需要能夠表達(dá)和理解問題的信息域和功能域.以層次化的方式對(duì)問題進(jìn)行分解和不斷細(xì)化.要給出系統(tǒng)的邏輯視圖和物理視圖需求分析形成需求文檔需求確認(rèn)需求定義(不斷演進(jìn))需求規(guī)約(不斷演進(jìn))設(shè)計(jì)階段需求過程的總結(jié)需求提取需求提取、分析和協(xié)商的螺旋4.2
需求獲取技術(shù)需求獲取技術(shù)包括兩方面的工作:·建立獲取用戶要求的方法的框架;·支持和
需求獲取的過程的機(jī)制。Requiremen
icitation
需求提?。ㄒ觯┬枨筇崛∈峭ㄟ^與客戶、系統(tǒng)用戶和其他與系統(tǒng)開發(fā)相關(guān)的
交流來發(fā)現(xiàn)需求的過程。必須從項(xiàng)目干系人的角度考慮問題,花時(shí)間找到他們的真正需求為提出系統(tǒng)需求,必須理解待解決問題、組織的
業(yè)務(wù)過程、系統(tǒng)可能使用方式、系統(tǒng)的應(yīng)用領(lǐng)域,以及文檔中與系統(tǒng)相關(guān)的內(nèi)容,
相關(guān)人員
他們需要的系統(tǒng)服務(wù)和系統(tǒng)約束主要來源是新系統(tǒng)的各種系統(tǒng)相關(guān)者,即項(xiàng)目干系人。主要考慮下面這些:1.系統(tǒng)的用戶,從兩個(gè)方向來收
料:流水平方向:在各分工協(xié)作部門中尋找物流、人力流信息流、單據(jù)流、報(bào)表流、數(shù)據(jù)流等流程。垂直方向:針對(duì)不同層次用戶提取業(yè)務(wù)操作用戶:錄入、修改、提交、處理、打印、界面、傳輸、通信、時(shí)間、速度等方面的需求管理用戶:業(yè)務(wù)管理、作業(yè)控制需求主管(決策)用戶:宏觀上的統(tǒng)計(jì)、查詢、決策需求系統(tǒng)需求的資料來源,項(xiàng)目預(yù)2.客戶:項(xiàng)目小組要向客戶匯算技術(shù)
:技術(shù)、
方面的需求從各類系統(tǒng)相關(guān)者中識(shí)別出關(guān)鍵的人做領(lǐng)域其他來源:領(lǐng)域模型當(dāng)前的組織、系統(tǒng)、狀態(tài)模型現(xiàn)有文檔需求模板庫(kù)、可重用需求庫(kù)等系統(tǒng)需求的資料來源向用戶
需求
表召開需求調(diào)研會(huì)深入重點(diǎn)崗位了解實(shí)際業(yè)務(wù)工作邊收集分析、邊整理、邊征求修改意見定期向各用戶層次分別匯報(bào)、演示需求提取的實(shí)際入手方法確定系統(tǒng)的邊界從多個(gè)角度
待解決的問題對(duì)確定需求優(yōu)先級(jí)很有幫助:多個(gè)角度下都被建議的需求應(yīng)該具有高優(yōu)先級(jí)需求提取中注意的事項(xiàng)Three
kinds
of
requirements
三類需求:those
thatabsolu y
must
be
met絕對(duì)需要滿足的需求those
that
are
highly
desirable
but
notnecessary想要但并非必須的需求those
that
are
possible
but
could
be
eliminated可以接受但也可以排除的需求“我知道你相信你已經(jīng)理解了你認(rèn)為我所說的內(nèi)容,但是我并不能肯定你已經(jīng)認(rèn)識(shí)到你所聽到的并不是我所想要的?!毙枨筇崛≈凶⒁獾氖马?xiàng)需求獲取的主要4.3
Types
and
Characteristics
of
requirements需求類型和特征sThe
requirements
definition
and
specificationdescribe
everything
about
how
the
system
is
to
interactwith
i
vironment.
Included
are
the
following
kindsOfitems.需求定義和詳細(xì)說明文檔描述了系統(tǒng)如何與環(huán)境交互的所有事情。包括:Physical
environmentInterfacesUsers
and
human
factorsFunctionalityationDataResourcesSecurityQuality
assurancePhysical
environment物理環(huán)境Where
is
the
equipment
to
function?設(shè)備在哪運(yùn)行?Is
there
one
location
or
several?在一個(gè)地方還是多個(gè)地方?Are
there
any
environment
restrictions,
such
astemperature,
humidity,
or
magnetic
interference?是否有環(huán)境的限制,如溫度、濕度或電磁干擾等?Interfaces
接口Is
the
input
coming
from
one
or
more
other
systems?有來自其它系統(tǒng)的輸入嗎?Is
the
output
going
to
one
or
more
other
systems?有到其它系統(tǒng)的輸出嗎?Is
there
a
prescribed
wayin
which
the
data
must
beformatted?Is
there
a
prescribed
medium
that
the
datamust
use?對(duì)數(shù)據(jù)
介質(zhì)有規(guī)定嗎?Users
and
human
factors用戶與人的因素Who
will
use
the
system?誰使用系統(tǒng)?Will
there
be
several
types
of
users?會(huì)有多種用戶嗎?What
is
the
skill
level
of
each
type
of
user?各種用戶熟練程度?What
kind
of
training
will
be
required
for
end
type
of
user?各類用戶需受什么類型的培訓(xùn)?How
easy
will
it
be
for
a
user
to
understand
and
use
thesystem?用戶理解、使用系統(tǒng)的難度?How
difficult
will
it
be
for
auser
to
misuse
the
system?用戶錯(cuò)誤操作系統(tǒng)的可能性?Functionality功能性t?What
will
the
system
do?系統(tǒng)做什么?What
will
the
system系統(tǒng)什么時(shí)候做?Are
there
several
modes
of
operation?操作是否有多種模式?
Howandwhencanthesystembechangedorenhanced?何時(shí)及如何改變或擴(kuò)充系統(tǒng)?Are
there
constraints
on
execution
speed,
responsetime,
or
throughput?執(zhí)行速度、響應(yīng)時(shí)間或吞吐量是否有限制?ation文檔ation
is
required?How
much需要多少文檔?Should
it
beon-line,
in
book
format,
orboth?印刷形式,還是兩種都要?ationTo
what
audience
is
each
type
ofaddressed?文檔針對(duì)哪些讀者?Data數(shù)據(jù)Forbothinputandoutput,whatshouldtheformatofthedatabe?輸入、輸出數(shù)據(jù)的格式?Howoftenwilltheybereceivedorsent?接收、發(fā)送數(shù)據(jù)的頻率?Howaccuratemusttheybe?數(shù)據(jù)的準(zhǔn)確性要求多高?Towhatdegreeofprecisionmustthecalculationsbemade?計(jì)算精度要求多高?Howmuchdataflowthroughthesystem?系統(tǒng)中有多少數(shù)據(jù)流?Mustanydataberetainedforanyperiodoftime?數(shù)據(jù)在任何時(shí)段都要保存嗎?Resources資源What
materials
nelor
other
resources
are
requiredto
build,
use and
maintain
the
system?構(gòu)造、
和使用系統(tǒng)時(shí),需要哪些材料
或其它資源。What
skills
must
the
developers
have?開發(fā)
應(yīng)該具有怎樣的技能。How
much
physical
space
will
be
taken
up
by
the
system?系統(tǒng)占據(jù)多少物理空間?heating orairWhat
are
the
requirements
for
powerconditioning?動(dòng)力、供暖或空調(diào)的需求?Is
there
a
prescribed
timetable
for
development?有規(guī)定的開發(fā)時(shí)間表嗎?Is
there
a
limit
on
the
amount
of
money
to
be
spent
ondevelopment
or
on
hardware
and
software?開發(fā)或
硬件上有無
的限制?Security安全性Must
access
to
the
system
or
to
information
be
controlled?需要控制對(duì)系統(tǒng)或信息的
嗎?How
will
one
user’s
data
be
isolated
from
others?如何
用戶之間的數(shù)據(jù)?How
will
user
programs
be
isolated
from
other
programs
andfrom
the
operating
system?用戶程序如何與其它程序和操作系統(tǒng)
?How
often
will
the
system
be
backed
up?系統(tǒng)多久備份一次?Must
the
backup
copies
be
stared
at
a
different
location?備份拷貝要保存到其他地方嗎?Should
precautions
be
taken
against
fire water
damage,
ortheft?要采取預(yù)防措施防止水災(zāi)、火災(zāi)或者
嗎?Quality
assurance質(zhì)量保證What
are
the
requirements
for
reliability,
availability,
maintainability,
security,and
the
other
quality
attributes
introduced
in
chapter
1?第一章中介紹的系統(tǒng)的可靠性、可用性、可
性、安全性和其他屬是什么?How
must
the
characteristics
of
the
system
be
demonstrated
to
others?要向其他人展示系統(tǒng)的特征嗎?Must
the
system
detect
and
isolate
faults?系統(tǒng)必須監(jiān)測(cè)和
錯(cuò)誤嗎?What
is
the
prescribed
me between
failures?規(guī)定的平均故障間隔時(shí)間是多少?Is
there
a um
time
allowed
for
restarting
the
system
after
a
failure?產(chǎn)生故障后重啟系統(tǒng)允許的最大時(shí)間是多少?How
can
the
system
incorporate
changes
to
the
design?系統(tǒng)是怎樣將變動(dòng)和設(shè)計(jì)相結(jié)合的?Will
maintenance
merely
correct
errors
or
will
it
also
include
improving
the
system?是只修改錯(cuò)誤還是也包括對(duì)改進(jìn)系統(tǒng)?What
efficiency
measures
will
apply
to
resource
usage
and
response
time?使用什么效率測(cè)量方法測(cè)量資源使用和響應(yīng)時(shí)間How
easy
should
it
be
to
move
the
system
from
one
location
to
another
or
from
onetype
of
computer
to
another?將系統(tǒng)從一個(gè)地方移到另一個(gè)地方或者從一種計(jì)算機(jī)移到另一種計(jì)算機(jī)上容易嗎?Characteristics
of
requirements需求的特征Are
they
correct?Are
they
consistent?Are
they
complete?Are
they
realistic?需求是正確的嗎?需求是一致的嗎?需求是完整的嗎?需求是現(xiàn)實(shí)的嗎?Does
each
describe
something
the
customerneeds?是否每個(gè)需求都描述了顧客要求的某件事?Are
they
verifiable?Are
they
traceable?需求是可驗(yàn)證的嗎?需求是可追蹤的嗎?關(guān)于需求的完整性Requirement
is
Completed:
if
all
possible
states,
statechanges,
inputs,
products,
and
constraints
are
described
bysome
requirement.需求是完整的:如果某些需求描述了所有可能的狀態(tài),以及狀態(tài)的變化、輸入、過程和約束。A
system
description
is
externally
complete:
if
thedescription
constrains
all
the
proper
ties
to
the
environmentdesired
by
the
customer.系統(tǒng)描述是外部完整的:如果描述包含的所有關(guān)系都與顧客想要的環(huán)境相關(guān)時(shí)。A
system
description
is
internally
complete:
if
there
are
noundefined
references
among
the
requirements.系統(tǒng)描述是
完整的:需求之間沒有未定義的
。4.4
需求分析方法需求分析方法由對(duì)的信息域和功能域的系統(tǒng)分析過程及其表示方法組成。目前存在許多需求分析方法,每一種分析方法都引入了的不同的記號(hào)和分析策略。它們具有以下的共性:支持信息域分析的機(jī)制功能表示的方法接口的定義問題分解的機(jī)制以及對(duì)抽象的支持必須理解并描述問題的信息域,根據(jù)這條準(zhǔn)則應(yīng)該建立數(shù)據(jù)模型;必須定義應(yīng)完成的功能,這條準(zhǔn)則要求建立功能模型;必須描述作為外部事件結(jié)果的行為,這條準(zhǔn)則要求建立行為模型;必須對(duì)描述信息、功能和行為的模型進(jìn)行分解,用層次的方式展示細(xì)節(jié).需求分析的任務(wù)Natural
language
may
not
bethe
precise
andunambiguous
medium
needed
for
expressing
thesystem’s
functionality
and
the
relationship
of
itsrelevant
parts.
Requirements
are
not
always
easilyseparated
according
to
the
system
elements
withwhich
they
deal.
Theuse
of
natural
languagecanadd
to
confusion
here.How
to
express
requirementsWe
have
investigated
many
ways
to
definerequirements
in
a
more
rigorous
andcontrolled
fashion.應(yīng)用更嚴(yán)格、更受約束的方式來定義需求。需求的描述分為靜態(tài)描述和動(dòng)態(tài)描述A
system
description
lists
the
system
entitiesor
objects,
their
attributes,
and
their
relationswith
each
other.
but
it
does
not
describe
howrelationships
change
with
time.
this
view
isstatic.Static
descriptions
of
requirements需求的靜態(tài)描述方法Indirect
reference
and
RecurrencerelationsExample: k
equations
in
n
variables(n元k個(gè)方程)F(0)=1;
F(1)=1;
F(n+1)=F(n)+F(n-1)Axiomatic
definition<condition><bool-term>::=::=<bool-term>
|
<bool-term>
or<condition><bool-factor>
|
<bool-factor>
and
<bool-term><bool-factor>::=<expr>
<relop>
<expr>
|(<condition>)<relop>::=<
|
<
|
=
|
>
|
>
|
<
><expr>::=<term>
|
<expr>
<addop>
<term>
|
<addop>
<expr><term>::=<factor>
|
<term>
<mpyop>
<factor><factor>::=<scaled-expr>
|
<primary><scaled-expr><primary><number><regname><integer><regchar><addop><digit>::=::=(<expr>)<scale>
|
<number>
<scale>::=
(<expr>)
<regname>
|
<number>
|
<func>
(<expr>)::=
<integer>
|
<integer>.
|
.<integer>
|
<integer>.<integer>::=
$
<regchar>
|
<regname>
<regchar>::=
<digit>
|
<digit>
<integer>::=
<digit>
|
<letter>
|
<underscore>::=
+
|
-0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9<func>::=abs
|
trunc<letter>::=A
|
a
|
B
|
b|
C
|
c
|
D
|
d
|
E
|
e
|.
.
.
|
Y<myop>|
y
|
Z
|::=z*
|
/
|
mod<scale>::=c
|
d
|
h|
i
|
l
|
P
|
p
|
q
|
t
|
v<underscore>::=_
(ASCII
character95)Expression
as
a
languageData ion
數(shù)據(jù)抽象Semester
recordSemester
typeSemester
dateGrade-pointaverageCompleted
hoursSemester
type(Fall,
Spring,
Summer)Address
informationephone
numberStreet
address
CityStatePostal
codeStudent
recordNameStudent
numberAddress
informationNumberof
semesters{Semester
record}Dynamic
descriptions
動(dòng)態(tài)描述Decision
tables判定表High
standardizHigh
gradesOutside
activitieGood
recommeSend
rejection
lend
admission表的左端為條件和動(dòng)作,表中的數(shù)據(jù)表示處于的狀態(tài)和要遵守的規(guī)則?!癟”表示條件為真,“F”表示條件 -”表示無所謂,“X”表示采取的動(dòng)作。如果一個(gè)需求(數(shù)據(jù)流圖的加工)需要依賴于多個(gè)邏輯條件的取值,使用判定表來描述比較合適。判定表商店業(yè)務(wù)處理系統(tǒng)中“檢查發(fā)貨單”判定樹也是用來表達(dá)加工邏輯的一種工具。有時(shí)侯它比判定表更直觀。檢查發(fā)貨單金額>$500金額$500欠款>60天欠款60天發(fā)貨單不發(fā)出批準(zhǔn)書發(fā)出批準(zhǔn)書、欠款>60天發(fā)出批準(zhǔn)書、發(fā)貨單及賒欠報(bào)告欠款60天發(fā)出批準(zhǔn)書、發(fā)貨單判定樹Functional
descriptions
and
transition
d
agrams功能性描述與變遷圖f(Si,
Cj)
SkTable
4.2.
Transition
table.Current
stateInputNext
stateS10S2S11S1S20S2S21S1S30S1S31S3變遷表狀態(tài)遷移圖(簡(jiǎn)稱為狀態(tài)圖)通過描繪系統(tǒng)的狀態(tài)及引起系統(tǒng)狀態(tài)轉(zhuǎn)換的事件,來表示系統(tǒng)的行為狀態(tài):狀態(tài)是任何可以被觀察到的系統(tǒng)行為模式,規(guī)定了系統(tǒng)對(duì)事件的響應(yīng)方式事件:在某個(gè)特定時(shí)刻發(fā)生的事情,它是對(duì)引起系統(tǒng)做動(dòng)作或(和)從一個(gè)狀態(tài)轉(zhuǎn)換到另一個(gè)狀態(tài)的外界事件的抽象狀態(tài)遷移圖狀態(tài)轉(zhuǎn)換圖狀態(tài)遷移圖和與其等價(jià)的狀態(tài)轉(zhuǎn)換表示例柵欄圖Jackson
的有限狀態(tài)機(jī)4 Event
tables事件表Table
4.3.
Event
table.ModeEvent
1Event
2Event
3Event
4GraphicsAction
1Action
80XArchitectureXAction
2
followed
by
Action
3Actions
5
and
6
in
parallel0Native0Action
4Actions
1,
2
and
3Action
7Petri網(wǎng),簡(jiǎn)稱PNG
(Petri
Net
Graph)
最早是作為表達(dá)異步系統(tǒng)的控制規(guī)則的圖形表示法提出來的,現(xiàn)在已廣泛地應(yīng)用于硬件與系統(tǒng)的開發(fā)中,它適用于描述與分析相互獨(dú)立、協(xié)同操作的處理系統(tǒng),也就是并發(fā)執(zhí)行的處理系統(tǒng)。5 Petri
NetPetri網(wǎng)是一種有向圖,它有兩種結(jié)點(diǎn):位置(
place):符號(hào)為“○”,它用來表示系統(tǒng)的狀態(tài)。轉(zhuǎn)移(
transition
):符號(hào)為“
”
或“︱”,它用來表示系統(tǒng)中的事件。圖中的有向邊表示對(duì)轉(zhuǎn)移的輸入,或由轉(zhuǎn)移的輸出:“→”表示事件發(fā)生的前提,即對(duì)轉(zhuǎn)移(事件)的輸入,“︱→”表示事件的結(jié)果,即由轉(zhuǎn)移(事件)的輸出。Petri
Net稱轉(zhuǎn)移的啟動(dòng)為激發(fā)或開火(fire),它是轉(zhuǎn)移的輸出;只有當(dāng)作為輸入的所有位置的條件都滿足時(shí)才標(biāo)記
或稱令牌(token),是表明系統(tǒng)當(dāng)前處于什么狀態(tài)的標(biāo)志5
Petri網(wǎng)處理兩個(gè)進(jìn)程的同步問題Additional
notations
其他方法Hierarchical
techniques(Warnier
diagrams)Structured ysis
and
Design
Technique(SADT)Object-oriented
specifications面 象的規(guī)格說明層次方框圖:
用樹形結(jié)構(gòu)的一系列多層次的矩形描述數(shù)據(jù)的層次結(jié)構(gòu)層次技術(shù)Warnier
DiagramsWarnier
圖示例報(bào)紙專欄的數(shù)據(jù)層次結(jié)構(gòu)○+IPO圖(input
,processing
,output)其他圖形工具改進(jìn)的IPO圖其他圖形工具Douglas
Ross提出,由DeMarco推廣,由Ward和Mellor以及后來的Hatley和Pirbhai
構(gòu)化分析方法的框架。結(jié)構(gòu)化分析方法是一種建模技術(shù)。它建立的分析模型
。這種分析模型必須達(dá)到三個(gè)主要目標(biāo):(1)
描述用戶要求;(2)
建立(3)
定義設(shè)計(jì)的基礎(chǔ);開發(fā)完成時(shí)必須確認(rèn)的一組需求。在模型的是數(shù)據(jù)詞典,它描述了所有的在目標(biāo)系統(tǒng)中使用的和生成的數(shù)據(jù)對(duì)象。圍繞著這個(gè)的有三種圖:實(shí)體 關(guān)系圖(ERD)描述數(shù)據(jù)對(duì)象及數(shù)據(jù)對(duì)象之間的關(guān)系;數(shù)據(jù)流圖(DFD)描述數(shù)據(jù)在系統(tǒng)中如何被傳送或變換,以及描述如何對(duì)數(shù)據(jù)流進(jìn)行變換的功能(子功能);狀態(tài)
遷移圖(STD)描述系統(tǒng)對(duì)外部事件如何響應(yīng),如何動(dòng)作。(2)功能建模和數(shù)據(jù)流(3)行為建模(4)數(shù)據(jù)詞典數(shù)據(jù)建模數(shù)據(jù)模型包括三種互相關(guān)聯(lián)的信息:數(shù)據(jù)對(duì)象描述對(duì)象的屬性描述對(duì)象間相互連接的關(guān)系數(shù)據(jù)建模方法用來創(chuàng)建部分分析模型,但它也可以用于數(shù)據(jù)庫(kù)設(shè)計(jì)并支持其他的需求分析方法。1數(shù)據(jù)對(duì)象數(shù)據(jù)對(duì)象是需被目標(biāo)系統(tǒng)所理解的復(fù)合信息的表示。所謂復(fù)合信息是具有若干不同特征或?qū)傩缘男畔ⅰ?shù)據(jù)對(duì)象可以是外部實(shí)體(如顯示器),事物(如報(bào)表或顯示),角色(如教師或?qū)W生),行為(如一個(gè)
呼叫)或事件(如單擊鼠標(biāo)左鍵),組織單位(如院),地點(diǎn)(如室)或結(jié)構(gòu)(如文件)。數(shù)據(jù)對(duì)象只封裝了數(shù)據(jù),沒有包含作用于這些數(shù)據(jù)上的操作。這與面象開發(fā)方法中的類和對(duì)象不同。具有相同特征的數(shù)據(jù)對(duì)象組成的集合仍然稱為數(shù)據(jù)對(duì)象,其中的某一個(gè)對(duì)象叫做該數(shù)據(jù)對(duì)象的一個(gè)實(shí)例。2、屬性屬性定義了數(shù)據(jù)對(duì)象的特可用來:(1)
為數(shù)據(jù)對(duì)象的實(shí)例命名;描述這個(gè)實(shí)例;建立對(duì)另一個(gè)數(shù)據(jù)對(duì)象的另一個(gè)實(shí)例的。如學(xué)生數(shù)據(jù)對(duì)象的屬性可以有學(xué)號(hào)、出生年月、籍貫等。為了唯一地標(biāo)識(shí)數(shù)據(jù)對(duì)象的某一個(gè)實(shí)例,定義數(shù)據(jù)對(duì)象中的一個(gè)屬性或幾個(gè)屬性為關(guān)鍵碼(key),書寫為_id,例如在"學(xué)生"數(shù)據(jù)對(duì)象中用"學(xué)號(hào)"做關(guān)鍵碼,它可唯一地標(biāo)識(shí)一個(gè)"學(xué)生"數(shù)據(jù)對(duì)象中的實(shí)例。3、關(guān)系各個(gè)數(shù)據(jù)對(duì)象的實(shí)例之間可以按多種不同的方式相連接。4、基數(shù)和參與性提供更進(jìn)一步的有關(guān)數(shù)據(jù)對(duì)象關(guān)聯(lián)的信息。實(shí)例的關(guān)聯(lián)有三種:①
一對(duì)一
;②
一對(duì)多(1:m);③
多對(duì)多(n:m)。這種實(shí)例的關(guān)聯(lián)稱為“基數(shù)”。基數(shù)表明了“重復(fù)性”。5
―關(guān)系圖數(shù)據(jù)對(duì)象及其關(guān)系可用ERD表示。ERD最初是由PeterChen為關(guān)系數(shù)據(jù)庫(kù)提出來的,后來又經(jīng)過了擴(kuò)展。ERD的主要目的是表示數(shù)據(jù)對(duì)象及其關(guān)系。它包括的基本成分有數(shù)據(jù)對(duì)象、屬性、關(guān)系和各種類型符號(hào)。實(shí)體―關(guān)系圖的建立步驟(1)在捕獲需求的過程中,要求用戶列出應(yīng)用或業(yè)務(wù)過程涉及到的所有“事物”。這些事物將來可能會(huì)演變?yōu)橐幌盗械妮斎?輸出數(shù)據(jù)對(duì)象以及生產(chǎn)和消費(fèi)信息的外部實(shí)體。(2)一次考慮一個(gè)對(duì)象。分析和用戶共同確認(rèn)這個(gè)對(duì)象與其他對(duì)象之間是否存在連接(在本階段不命名)。(3)
當(dāng)存在連接時(shí),分析
和用戶應(yīng)創(chuàng)建一個(gè)或多個(gè)對(duì)象--關(guān)系對(duì)。(4)對(duì)每一個(gè)對(duì)象--關(guān)系對(duì),它的基數(shù)和參與性。(5)迭代執(zhí)行步驟(2)~(4),直到所有對(duì)象--關(guān)系對(duì)定義完成。在這個(gè)過程中發(fā)生遺漏是很正常的。在每次迭代時(shí)總會(huì)增加新的對(duì)象和關(guān)系。(6)(7)規(guī)范化并復(fù)審實(shí)體--關(guān)系圖。(8)重復(fù)執(zhí)行步驟(1)~(7),直到數(shù)據(jù)建模完成。E-R圖中表示實(shí)體聯(lián)系的符號(hào)如下:在E-R圖中,每個(gè)方框表示實(shí)體型或?qū)傩裕娇蛑g的連線表示實(shí)體之間,或?qū)嶓w與屬性之間的聯(lián)系。出現(xiàn)在連線上的短豎線可以看成是“1”,而圓圈隱含表示“0”。例如,在教學(xué)管理中,一個(gè)教師可以教授零門、一門或多門課程,每位學(xué)生也需要學(xué)習(xí)幾門課程。因此,教學(xué)管理中涉及的對(duì)象(實(shí)體型)有學(xué)生、教師和課程。用E-R圖描述它們之間的聯(lián)系,得下圖。其中,學(xué)生與課程是多對(duì)多的聯(lián)系,而教師與課程的聯(lián)系是一對(duì)零或多。、專確定屬性。例如,學(xué)生具有學(xué)號(hào)、業(yè)(其它略)等屬性;課程具有課程號(hào)、課程名、學(xué)分、學(xué)時(shí)數(shù)等屬性;等教師具有職工號(hào)、屬性。此外,學(xué)生通過學(xué)號(hào)、分?jǐn)?shù)與課程發(fā)生聯(lián)系。如此可得教學(xué)實(shí)體模型。教學(xué)實(shí)體模型數(shù)據(jù)規(guī)范化的目的:為減少數(shù)據(jù)冗余,避免出現(xiàn)過程,通常用“范式(normal
forms)”定義消除數(shù)據(jù)冗余的程度數(shù)據(jù)規(guī)范化每個(gè)屬性值都必須是原子值,即僅僅是一個(gè)簡(jiǎn)單值而不含 結(jié)構(gòu),第一范式(1NF)第二范式滿足第一范式條件,而且每個(gè)非關(guān)鍵字屬性都由整個(gè)關(guān)鍵字決定(而不是由關(guān)鍵字的一部分來決定)第二范式(2NF)數(shù)據(jù)冗余:同一門課程由n個(gè)學(xué)生選修,“學(xué)分”就重復(fù)n-1次;同一個(gè)學(xué)生選修了m門課程,
和
就重復(fù)了m-1次。更新異常:若調(diào)整了某門課程的學(xué)分,數(shù)據(jù)表中所有行的
“學(xué)分”值都要更新,否則會(huì)出現(xiàn)同一門課程學(xué)分不同的情況。異常:假設(shè)要開設(shè)一門新的課程,暫時(shí)還沒有人選修。這樣,由于還沒有“學(xué)號(hào)”關(guān)鍵字,課程名稱和學(xué)分也無法記錄入數(shù)據(jù)庫(kù)。刪除異常:假設(shè)一批學(xué)生已經(jīng)完成課程的選修,這些選修記錄就應(yīng)該從數(shù)據(jù)庫(kù)表中刪除。但是,與此同時(shí),課程名稱和學(xué)分信息也被刪除了。第二范式(2NF)的例子把選課關(guān)系表SelectCourse改為如下三個(gè)表:學(xué)生:Student(學(xué)號(hào),
,
);課程:Course(課程名稱,
學(xué)分);選課關(guān)系:SelectCourse(學(xué)號(hào),課程名稱,成績(jī))。這樣的數(shù)據(jù)庫(kù)表是符合第二范式的,消除了數(shù)據(jù)冗余
更新異常、
異常和刪除異常。所有單關(guān)鍵字的數(shù)據(jù)庫(kù)表都符合第二范式
因?yàn)椴豢赡艽嬖诮M合關(guān)鍵字。第二范式(2NF)的例子第三范式符合第二范式的條件,且非主屬性相互獨(dú)立,即任何非主屬性間不存在函數(shù)依賴。假定學(xué)生關(guān)系表為Student(學(xué)號(hào),,,所在學(xué)院,學(xué)院地點(diǎn),學(xué)院),關(guān)鍵字為單一關(guān)鍵字“學(xué)號(hào)”(學(xué)號(hào))→(,,所在學(xué)院,學(xué)院地點(diǎn),學(xué)院電話)這個(gè)數(shù)據(jù)庫(kù)是符合2NF的,但是不符合3NF,因?yàn)榇嬖诜顷P(guān)鍵字段“學(xué)院地點(diǎn)”、“學(xué)院”對(duì)非關(guān)鍵字段“所在學(xué)院”的函數(shù)依賴:(所在學(xué)院)→(學(xué)院地點(diǎn),學(xué)院)第三范式(3NF)功能建模和數(shù)據(jù)流最初,結(jié)構(gòu)化分析方法僅數(shù)據(jù)流建模。目標(biāo)系統(tǒng)被表示成數(shù)據(jù)變換流程圖。系統(tǒng)的功能體現(xiàn)在核心的數(shù)據(jù)變換中。系統(tǒng)的輸入源于用方框表示的外部實(shí)體,這種輸入系統(tǒng)的數(shù)據(jù)變換,產(chǎn)生傳遞給外部實(shí)體的輸出。功能建模的思想就是用抽象模型的概念,按照數(shù)據(jù)傳遞、變換的關(guān)系,自頂向下逐層分解,直到找到滿足功能要求的所有可實(shí)現(xiàn)的為根據(jù)DeMarco
了數(shù)據(jù)流圖來表達(dá)系統(tǒng)內(nèi)數(shù)據(jù)的運(yùn)動(dòng)情況,而數(shù)據(jù)流的變換則用結(jié)構(gòu)化語言、判定表與判定樹來描述。1、數(shù)據(jù)流圖(Data
Flow
Diagrams)DFD的符號(hào)或數(shù)據(jù)的源點(diǎn)/終點(diǎn)或或變換數(shù)據(jù)的處理/加工/變換數(shù)據(jù)
(文件)數(shù)據(jù)流源點(diǎn)和終點(diǎn)源點(diǎn)和終點(diǎn)是系統(tǒng)之外的實(shí)體,可以是人、物或其他系統(tǒng)。源點(diǎn)和終點(diǎn)是為了幫助理解系統(tǒng)接口而引入的。加工/變換對(duì)數(shù)據(jù)進(jìn)行處理的單元。在分層數(shù)據(jù)流圖中,要對(duì)加工進(jìn)行
,以便于管理。加工也要選取適當(dāng)?shù)拿郑蕴岣邤?shù)據(jù)流圖的易讀性。DFD的符號(hào)數(shù)據(jù)流由一組數(shù)據(jù)項(xiàng)組成。例如,數(shù)據(jù)流“訂票單由住址航班號(hào)、日期始點(diǎn)終點(diǎn)等數(shù)據(jù)項(xiàng)組成;數(shù)據(jù)流“航班”由航班號(hào)、日期和等數(shù)據(jù)項(xiàng)組成數(shù)據(jù)流可以從加工流向加工,如“航班”、
“費(fèi)用”;可以從源點(diǎn)流向加工,或從加工流向終點(diǎn);可以從加工流向數(shù)據(jù)或從數(shù)據(jù)流向加工DFD的符號(hào)文件用來暫時(shí) 數(shù)據(jù)的。如果加工要讀文件,則數(shù)據(jù)流的方向是從文件到加工;如果加工要寫文件,則數(shù)據(jù)流的方向是從加工到文件;如果加工既要讀文件又要寫文件,則數(shù)據(jù)流的方向是雙向的DFD的符號(hào)旅行社旅客預(yù)定機(jī)票機(jī)票準(zhǔn)備記帳DFDDFD的符號(hào)++AB⊕C有A或有B,但不能A、B同時(shí)存在,就有C采購(gòu)部每天需要一張定貨報(bào)表通過放在倉(cāng)庫(kù)中的CRT終端把事務(wù)報(bào)告給定貨系統(tǒng)。怎樣畫DFD:定貨系統(tǒng)的例子怎樣畫DFD:定貨系統(tǒng)的例子源點(diǎn)/終點(diǎn)采購(gòu)員倉(cāng)庫(kù)管理員數(shù)據(jù)流定貨報(bào)表零件 零件名稱定貨數(shù)量
目前價(jià)格主要供應(yīng)者
次要供應(yīng)者事務(wù)零件事務(wù)類型數(shù)量處理產(chǎn)生報(bào)表處理事務(wù)數(shù)據(jù)定貨信息(同定貨報(bào)表)庫(kù)存零件庫(kù)存量庫(kù)存量臨界值定貨系統(tǒng)的基本系統(tǒng)模型定貨系統(tǒng)的功能級(jí)數(shù)據(jù)流圖把處理事務(wù)的功能進(jìn)一步分解后的數(shù)據(jù)流圖2、分層數(shù)據(jù)流圖為了表達(dá)數(shù)據(jù)處理過程的數(shù)據(jù)加工情況,用一個(gè)數(shù)據(jù)流圖是不夠的。稍為復(fù)雜的實(shí)際問題,在數(shù)據(jù)流圖上常常出現(xiàn)十幾個(gè)甚至幾十個(gè)加工。這樣的數(shù)據(jù)流圖看起來很不清楚。層次結(jié)構(gòu)的數(shù)據(jù)流圖能很好地解決這一問題。按照系統(tǒng)的層次結(jié)構(gòu)進(jìn)行逐步分解,并以分層的數(shù)據(jù)流圖反映這種結(jié)構(gòu)關(guān)系,能清楚地表達(dá)和容易理解整個(gè)系統(tǒng)。把基本系統(tǒng)模型加上源點(diǎn)和終點(diǎn)作為頂層數(shù)據(jù)流圖自頂向下逐層畫數(shù)據(jù)流圖的步驟分層的數(shù)據(jù)流圖分層的數(shù)據(jù)流圖分層的數(shù)據(jù)流圖畫數(shù)據(jù)流圖不是畫流程圖父圖和子圖的平衡問題局部文件的問題命名問題畫數(shù)據(jù)流圖需要注意的幾個(gè)問題12435763.13.23.33.43.63.5ACBYEXWVFDGHDFGH父圖和子圖的平衡問題12344.44.34.24.1AGCBFDEEHLFG1323.13.2考生成績(jī)錄取通知書考生準(zhǔn)考證號(hào)通訊地址考生成績(jī)文件(數(shù)據(jù)
)總是局部于分層數(shù)據(jù)流圖的某一層或某幾層,所以數(shù)據(jù)流圖中引入的文件都是局部文件局部文件的問題12.132.242.3ABCABCDEG2FFED一個(gè)加工的分解最好不要超過9個(gè)子加工。超過9個(gè)時(shí),可以用增加層次,減少子加工數(shù)的方法。分解在邏輯上應(yīng)合
能硬性分割。也就是說,要根據(jù)問題的邏輯特性進(jìn)行分解。在保證數(shù)據(jù)流的易理解的前提下,盡量減少分解層次。這樣可以減少層次的界面。分解要均勻。即在一張數(shù)據(jù)流圖中,不要有這樣的情況:有些加工已是基本加工,另一些加工還要分解好幾層,但絕對(duì)均勻不可能,不要相差太大。數(shù)據(jù)流命名名字應(yīng)代表整個(gè)數(shù)據(jù)流(有時(shí)也會(huì)把現(xiàn)實(shí)環(huán)境中傳遞的一組數(shù)據(jù)中最重要的那個(gè)數(shù)據(jù)的名字作為數(shù)據(jù)流的名字)命名問題(數(shù)據(jù)流)考生成績(jī)分類后的考生成績(jī)錄取分類現(xiàn)實(shí)環(huán)境中,傳遞的一些表格、單據(jù)的名字可以直接作為數(shù)據(jù)流的名字。命名問題(數(shù)據(jù)流)車間調(diào)度全廠統(tǒng)計(jì)生產(chǎn)報(bào)表統(tǒng)計(jì)表日?qǐng)?bào)表月報(bào)表不要使用空洞的、缺乏具體含義的名字控制流作為數(shù)據(jù)流。如果在為某個(gè)數(shù)據(jù)流命名時(shí)遇到
,可能是數(shù)據(jù)流圖分解不當(dāng),應(yīng)考慮重新分解DFD命名問題(數(shù)據(jù)流)錄取分類取下一個(gè)考生成績(jī)加工(處理)命名頂層的加工名可以是項(xiàng)目的名字。不要使用空洞的、缺乏具體含義的名字。通常先為數(shù)據(jù)流命名,然后再為與之相關(guān)聯(lián)的處理命名。這樣命名比較容易,而且體現(xiàn)了人類
的“由表及里”的思考過程。如果在為某個(gè)加工命名時(shí)遇到
,可能是數(shù)據(jù)流圖分解不當(dāng),應(yīng)考慮重新分解DFD。命名問題(處理)加工的名字最好由一個(gè)謂語動(dòng)詞加上一個(gè)賓語組成。如“計(jì)算運(yùn)費(fèi)”、“準(zhǔn)備機(jī)票
。也可以把賓語和謂語動(dòng)詞顛倒書寫。如“運(yùn)費(fèi)計(jì)算”、“機(jī)票準(zhǔn)備”。名字應(yīng)該反映整個(gè)處理的功能,而不是它的一部分功能。通常名字中僅包括一個(gè)動(dòng)詞,如果必須用兩個(gè)動(dòng)詞才能描述整個(gè)處理的功能,則把這個(gè)處理再分解成兩個(gè)處理可能更恰當(dāng)些。命名問題(處理)從數(shù)據(jù)流圖出發(fā)出結(jié)構(gòu)從數(shù)據(jù)流圖出發(fā)出結(jié)構(gòu)3
加工規(guī)格說明用來說明DFD中的數(shù)據(jù)加工的加工細(xì)節(jié)。加工規(guī)格說明描述了數(shù)據(jù)加工的輸入,實(shí)現(xiàn)加工的算法以及產(chǎn)生的輸出。另外,加工規(guī)格說明指明了加工(功能)的約束和限制,與加工相關(guān)的性能要求,以及影響加工的實(shí)現(xiàn)方式的設(shè)計(jì)約束。寫加工規(guī)格說明的主要目的是要表達(dá)"做什么",而不是"怎樣做"。因此它應(yīng)描述數(shù)據(jù)加工實(shí)現(xiàn)加工的策略而不是實(shí)現(xiàn)加工的細(xì)節(jié)。用于寫加工邏輯說明的工具結(jié)構(gòu)化英語(Structured
English)判定表(Decision
Table)判定樹(Decision
Tree)是一種介于自然語言和形式化語言之間的語言。結(jié)構(gòu)化英語的詞匯表由英語命令動(dòng)詞;數(shù)據(jù)詞典中定義的名字;有限的自定義詞;控制結(jié)構(gòu)CASE_OFIF_THEN_ELSEWHILE_DOREPEAT_UNTIL等組成。結(jié)構(gòu)化英語語言的正文用基本控制結(jié)構(gòu)進(jìn)行分割,加工中的操作用自然語言短語來表示其基本控制結(jié)構(gòu)有三種:簡(jiǎn)單陳述句結(jié)構(gòu);重復(fù)結(jié)構(gòu):while do
或
repeat_until
結(jié)構(gòu);判定結(jié)構(gòu):if_then
或
case_of
結(jié)構(gòu);if
發(fā)貨單金額超過$500
thenif
欠款超過了60天then在償還欠款前不予批準(zhǔn)else
(欠款未超期)發(fā)批準(zhǔn)書,發(fā)貨單else
(發(fā)貨單金額未超過$500)if
欠款超過60天then發(fā)批準(zhǔn)書,發(fā)貨單及賒欠報(bào)告else
(欠款未超期)發(fā)批準(zhǔn)書,發(fā)貨單例:商店業(yè)務(wù)處理系統(tǒng)中“檢查發(fā)貨單”4
針對(duì)實(shí)時(shí)系統(tǒng)的Ward&Mellor擴(kuò)展為適應(yīng)實(shí)時(shí)系統(tǒng) 以下要求進(jìn)行的擴(kuò)展:(1)在時(shí)間連續(xù)的基礎(chǔ)上接收或產(chǎn)生數(shù)據(jù)流;(2)貫穿系統(tǒng)的控制信息和相關(guān)的控制處理;在多任務(wù)的情況下可能會(huì)遇到同一個(gè)加工的多個(gè)實(shí)例;系統(tǒng)狀態(tài)以及導(dǎo)致系統(tǒng)狀態(tài)遷移的機(jī)制。時(shí)間連續(xù)的數(shù)據(jù)流與普通數(shù)據(jù)流事件可以作為普通數(shù)據(jù)加工的輸入數(shù)據(jù)流,控制也可以接收普通的輸入數(shù)據(jù)流。5
Hatley和Pirbhai對(duì)結(jié)構(gòu)化分析技術(shù)的擴(kuò)展該擴(kuò)展主要關(guān)注面向控制的規(guī)格說明,而不是擴(kuò)充數(shù)據(jù)流圖的圖形符號(hào)。通過建立控制流圖(CFD)以區(qū)別于數(shù)據(jù)流圖(DFD)。在控制流圖中的加工與數(shù)據(jù)流圖中相同,但傳遞的是控制流而不是數(shù)據(jù)流。用數(shù)據(jù)流圖表示對(duì)數(shù)據(jù)和操作數(shù)據(jù)的加工;用控制流圖表示事件在加工之間如何流動(dòng),說明導(dǎo)致各個(gè)加工激活的外部事件。Ward
&
Pirbhai方法行為建模行為建模給出需求分析方法的所有操作原則,只在結(jié)構(gòu)化分析方法的擴(kuò)充版本才提供這種建模的符號(hào)。行為建模的工具:1、狀態(tài) 遷移圖Petri網(wǎng)控制規(guī)格說明(狀態(tài)
遷移圖(STD)
、加工激活表
)數(shù)據(jù)字典(DD)數(shù)據(jù)詞典精確地、嚴(yán)格地定義了每一個(gè)與系統(tǒng)相關(guān)的數(shù)據(jù)元素,并以字典式順序?qū)⑺鼈兘M織起來,使得用戶和分析員對(duì)所有的輸入、輸出、
成分和中間計(jì)算有共同的理解。數(shù)據(jù)詞典表示每個(gè)數(shù)據(jù)對(duì)象和控制項(xiàng)的特性數(shù)據(jù)字典是對(duì)數(shù)據(jù)流圖中包含的所有元素的定義的集合,使得每個(gè)圖形元素都有確切解釋。數(shù)據(jù)字典與數(shù)據(jù)流圖共同構(gòu)成系統(tǒng)的邏輯模型,數(shù)據(jù)子詞典與數(shù)據(jù)流圖配合,能清楚地表達(dá)數(shù)據(jù)處理的要求。詞條描述是對(duì)在數(shù)據(jù)流圖中每一個(gè)被命名的圖形元素的定義,內(nèi)容有:圖形元素名字、別名或、分類、描述、定義、位置、其它等。定義絕大多數(shù)復(fù)雜事物的方法,都是用被定義的事物的成分的某種組合表示這個(gè)事物,這些組成成分又由更低層的成分的組合來定義。順序即以確定次序連接兩個(gè)或多個(gè)分量選擇即從兩個(gè)或多個(gè)可能的元素中選取一個(gè)重復(fù)即把指定的分量重復(fù)零次或多次可選即一個(gè)分量是可有可無的(重復(fù)零次或一次)符號(hào)含義舉例+“被定義為與x=a+bx由a和b組成或
x=[a,b],
x由a或由b組成或
x=[a
|b],
x由a或由b組成重復(fù)
x={a},
x由0個(gè)或多個(gè)a組成重復(fù)
x=3{a}8,x由3到8個(gè)a組成可選
x
=(a),在x中a可有可無[...
,
...][...|...]{
...
}m{...}n(...)“...”..基本數(shù)據(jù)元素
x=“a”,x是取值為a的元素連結(jié)符
x
=
1..9,x可取1到9中任一值數(shù)據(jù)流條目中出現(xiàn)的符號(hào)數(shù)據(jù)流是數(shù)據(jù)結(jié)構(gòu)在系統(tǒng)內(nèi)
的路徑。一個(gè)數(shù)據(jù)流詞條應(yīng)有以下幾項(xiàng)內(nèi)容:數(shù)據(jù)流名;說明:簡(jiǎn)要介紹作用即它產(chǎn)生的原因和結(jié)果;數(shù)據(jù)流來源:來自何方;數(shù)據(jù)流去向:去向何處;數(shù)據(jù)流組成:數(shù)據(jù)結(jié)構(gòu);每個(gè)數(shù)據(jù)量的流通量:數(shù)據(jù)量,流通量;(1)數(shù)據(jù)流詞條描述數(shù)據(jù)流條目的例子數(shù)據(jù)流條目的例子戶名+所號(hào)+帳號(hào)+
日+性質(zhì)+(印密)+1{存取行}50戶名=2{字母}24所號(hào)=“001”..“999”帳號(hào)=“00000001”..“99999999”日
年+月+日
1”..“6”
注:“1”表示普通戶,“5”表示工資戶等印密=“0”
注:印密在
上不顯示存取行=日期+(
)+支出+存入+余額+操作+復(fù)核DFD中每個(gè)數(shù)據(jù)結(jié)構(gòu)都是由數(shù)據(jù)元素構(gòu)成的,數(shù)據(jù)元素是數(shù)據(jù)處理中最小的、不可再分的單位,它直接反映事物的某一特征,其描述需要以下信息:數(shù)據(jù)元素名;編碼類類型:數(shù)字(離散值,連續(xù)值)型);長(zhǎng)度;取值范圍;相關(guān)的數(shù)據(jù)元素及數(shù)據(jù)結(jié)構(gòu);(2)數(shù)據(jù)元素詞條描述數(shù)據(jù)元素條目描述在實(shí)際應(yīng)用中,對(duì)數(shù)據(jù)流和數(shù)據(jù)元素的描述可以靈活地剪裁,數(shù)據(jù)流元素的描述也可以采用和數(shù)據(jù)流相似的方式。例如:名字(數(shù)據(jù)流名):定貨報(bào)表別名:定貨信息描述(說明):每天一次送給采購(gòu)員的需要定貨的零件表定義(數(shù)據(jù)流組成):定貨報(bào)表
零件
+零件名稱+定貨數(shù)量+目前價(jià)格+主要供應(yīng)者+次要供應(yīng)者位置(數(shù)據(jù)流去向):輸出到名字:定貨數(shù)量別名:描述:某個(gè)零件一次定貨的數(shù)量定義:定貨數(shù)量=1{數(shù)字}5位置(相關(guān)的數(shù)據(jù)結(jié)構(gòu)):定貨報(bào)表定貨信息數(shù)據(jù)文件是數(shù)據(jù)結(jié)構(gòu)保存的地方。本類詞條應(yīng)有以下內(nèi)容:數(shù)據(jù)文件名;簡(jiǎn)述:存放的是什么數(shù)據(jù);輸入數(shù)據(jù);輸出數(shù)據(jù);數(shù)據(jù)文件組成:數(shù)據(jù)結(jié)構(gòu);方式:順序
直接,關(guān)鍵碼;存取頻率;(3)數(shù)據(jù)文件詞條描述加工到后來就是一段程序,它的表達(dá)方式有判定表、判定樹、結(jié)構(gòu)化英語等,在一個(gè)詞條中。主要內(nèi)容有:全部描述有加工名;加工加工的層次;簡(jiǎn)要描述:加工邏輯及功能簡(jiǎn)述;輸入數(shù)據(jù)流;輸出數(shù)據(jù)流;加工邏輯:簡(jiǎn)述加工程序,加工順序;(4)加工邏輯詞條描述對(duì)于數(shù)據(jù)處理系統(tǒng)來說,源點(diǎn)和匯點(diǎn)應(yīng)比較少,否則就會(huì)缺少獨(dú)立性,人機(jī)界面太立性。復(fù)雜,這時(shí)應(yīng)考慮減少以提高系這類詞條應(yīng)包括:名稱:外部實(shí)體名;簡(jiǎn)要描述:什么外部實(shí)體;有關(guān)數(shù)據(jù)流;數(shù)目;(5)源點(diǎn)及匯(終)點(diǎn)詞條描述分房標(biāo)準(zhǔn)文件住房文件住房文件房租文件調(diào)房咨詢退房查詢住戶情況、查詢房租統(tǒng)計(jì)數(shù)據(jù)流分析實(shí)例房管部門住戶檢查要求處理類型分配住房房租計(jì)算調(diào)房退房處理統(tǒng)計(jì)咨詢類別處理住房查詢房租查詢打印處理消去房租調(diào)房處理房租核計(jì)核對(duì)條件住房住房標(biāo)準(zhǔn)文件住房文件房租文件文件住房文件住房文件房租文件文件Object-oriented
specifications面 象的規(guī)格說明Each
entity
in
thesystem
isan
objectA
method
oroperation
is
an
action
thatcanbeperformed
directly
by
the
object
or
can
happen
totheobjectEncapsulation:
the
methods
form
a
protectiveboundary
around
an
objectClass
hierarchies
of
objec courage
inheritancePolymorphism: same
method
for
different
objects,each
with
different
behavior4.5
prototy
requirementsRapidprototy原型化需求buildsections
of
theproposedsystem
to
determine
the
necessity,desirability,orfeasibilityofrequirements.快速原型化構(gòu)造了部分期望的系統(tǒng)來確定需求的必要性、愿望或可行性。A
prototypegives
us
the
opportunity
to“fine
tune”what
our
customers
wantor
whatwe
think
willworkbest
ina
design.原型給了我們“調(diào)整”顧客想要什么或者我們認(rèn)為在設(shè)計(jì)中會(huì)最有效的東西的機(jī)會(huì)。
原型化方法是在研究需求分析階段的方法和技術(shù)中產(chǎn)生的,它主要針對(duì)傳統(tǒng)方法所的
。因此,也面向
開發(fā)的其它項(xiàng)目的特點(diǎn)和運(yùn)行原型的目的不同,原型有三種不同的作用類型:探索型、實(shí)驗(yàn)型、演化型。探索型:目的是要弄清對(duì)目標(biāo)系統(tǒng)的要求,確定所希望的特性,并探討多種方案的可行性要針對(duì)開發(fā)目標(biāo)模糊,用戶和開發(fā)者對(duì)項(xiàng)目都缺乏經(jīng)驗(yàn)的情況。之前,考核方案是實(shí)驗(yàn)型:用于大規(guī)模開發(fā)否合適,規(guī)格說明是否可靠。演化型:目的不在于改進(jìn)規(guī)格說明,而是將系統(tǒng)建造得易于變化,在
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 土地承包改造合同范例
- 承包景區(qū)開發(fā)合同范例
- 產(chǎn)品借用合同范例
- 承攬面子工程合同范例
- 蔬菜買賣合作合同范例
- 醫(yī)院藥店合同范例
- 合同范例婚紗
- 河砂銷售合同范例
- 勞動(dòng)合同范例官方
- 設(shè)備安裝付款合同范例
- 任命基金管理人協(xié)議
- 2024年河北中考語文試題及答案
- HG/T 22820-2024 化工安全儀表系統(tǒng)工程設(shè)計(jì)規(guī)范(正式版)
- 偏微分方程智慧樹知到期末考試答案章節(jié)答案2024年山東大學(xué)(威海)
- 村集體經(jīng)濟(jì)入股分紅協(xié)議書
- 新時(shí)代大學(xué)生勞動(dòng)教育智慧樹知到期末考試答案章節(jié)答案2024年黑龍江農(nóng)業(yè)經(jīng)濟(jì)職業(yè)學(xué)院
- MOOC 計(jì)量經(jīng)濟(jì)學(xué)-西南財(cái)經(jīng)大學(xué) 中國(guó)大學(xué)慕課答案
- MOOC 高等數(shù)學(xué)(上)-西北工業(yè)大學(xué) 中國(guó)大學(xué)慕課答案
- 毛澤東思想概論智慧樹知到期末考試答案2024年
- 中醫(yī)診所消防應(yīng)急預(yù)案
- 2024版國(guó)開電大法學(xué)本科《國(guó)際經(jīng)濟(jì)法》歷年期末考試總題庫(kù)
評(píng)論
0/150
提交評(píng)論