结构化分析与设计PPT课件_第1页
结构化分析与设计PPT课件_第2页
结构化分析与设计PPT课件_第3页
结构化分析与设计PPT课件_第4页
结构化分析与设计PPT课件_第5页
已阅读5页,还剩66页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

結構化分析與設計,2,大綱,為何要做系統分析與設計結構化分析結構化設計,為何要做系統分析與設計,4,為何要做系統分析,傳統軟體開發方法的問題直接設計與撰寫程式:分析階段更改一個錯誤花一塊錢,延遲到維護階段可能要100元。軟體危機:軟體品質不良生產力不夠、同樣的錯誤一再發生、發展完成的軟體與使用者的需求不合、沒有良好而完整的軟體開發方法、沒有文件無法維護等等。符合使用者需求(meetuserrequirement),結構化分析,6,結構化分析,GraphicandConciseTop-downpartitionedNonredundantEssential,7,結構化分析工具,資料流程圖資料流程序(處理)資料儲存體源頭/終點資料字典迷你規格書E-RModel,DATAFLOW6,1PROCESS,SOURCE,SINK,2PROCESS,DATAFLOW1,DATAFLOW5,DATAFLOW3,DATAFLOW2,DATAFLOW4,8,系統分析策略,描繪現行實體作業系統描繪現行邏輯作業系統描繪新邏輯作業系統描繪新實體作業系統,9,進行分結構化分析,描繪整體系統自上而下分割層次化標號分割至單一功能為止(Functionalprimitive)檢查資料流的進出數目資料儲存體是否恰當程序是否確實能完成其功能,10,描繪整體系統,0WORLDON-A-CHIP,INC.,CUSTOMER,PLANNINGDEPT,PAYROLLDEPT,MANUFACTURER,ChipShipment,ChipStock,PurchaseOrder,ManufacturerInvoice,Payment,FinancialReport,SalesmanCommissionForm,Payment,CustomerTransaction,CustomerReply,11,自上而下分割,層次化標號分割至單一功能為止(Functionalprimitive),2,2.1,2.2,2.3,12,自上而下分割,CUSTOMER,1SALESDEPT,3ACCOUNTINGDEPT,2DHIPDEPT,PLANNINGDEPT,PAYROLLDEPT,MANUFACTURER,CHIPINVENTORY,PURCHASEORDERFILE,CustomerTransaction,CustomerReply,ChipsAvail-able,ChipsStock,PurchaseOrder,ManufacturerInvoice,ManufacturerPayment,SalesmanCommissionFrom,FinancialReport,CustomerPayment,OrderCancellation,SalesOrder,ChipShipment,ChipSalesInvoice,13,自上而下分割,1.1ROUTECUSTOMERTRANS-ACTION,1.2INQUIREABOUTCHIPAVAILABILITY,1.3CANCELORDER,1.4ORDERCHIPS,UnknownTransaction,CustomerTransaction,CustomerChipOrder,CustomerInquiry,InvalidCancellation,CustomerCancellation,InvalidOrder,CustomerReply,ChipAvailable,OrderCancellation,ChipsHeld,SalesOrder,ChipsHeld,14,系統包裝,A,B,C,Real-time,On-Line,Batch,Manual,15,如何描繪DFD(1),源頭/終點(ExternalEntity),利用小寫字母在左上角標示以為區別中間標示儲存體名稱,employee,b,employee,b,若有重複情況可在左下角劃一斜線以為區隔,16,資料流(DataFlow)源頭/終點、程序與資料儲存體中若有資料進出,以資料流之符號連結若對於兩實體中間之資料流同時存在流進與流出,則可以雙箭頭表示,但要注意其資料流名稱之差異資料流可以結合多個資料元素並以一個名稱表示,但須在資料字典中加以定義,如何描繪DFD(2),1PROCESS,DataStore,customer,a,1PROCESS,OrdersPaymentsReturnsInquiries,customer,a,1PROCESS,CustomerTransactions,customer,a,1PROCESS,CustomerTransactions,2PROCESS,17,如何描繪DFD(3),程序(Process),1PROCESS,處理程序以圓圈表示並加註編號程序中間必須加以命名,命名原則為V+N,資料儲存體(DataStore),DataStore,DDataStore,DDataStore,1PROCESS,資料儲存體與程序之資料流可以將名稱省略若根據某一鍵值以取得整筆紀錄,亦可在資料流上表示,C_ID#,CustomerTrans.,18,練習,王子書店需要一客戶訂貨處理系統,當接獲客戶訂單時,除了檢查庫存餘額之外,尚須檢查客戶信用狀況,接單之處理情況需即刻回應客戶。當餘額夠時直接從倉庫出貨並將整筆資料送至會計部列印發票,若餘額不夠,則列印採購單向出版社訂貨,同時將採購交易紀錄送至會計部,當出版社送貨到達時,須先入庫再行出貨。每天進出貨狀況須向管理部門報告,每月交易狀況須向總經理報告。,19,資料字典,用來記錄或描述在資料流程圖中所使用到的資料資料結構與資料元素三種基本描述方式,SequenceRepetitionSelection,DataitemADataitemBDataitemC,IsdataitemPanddataitemQanddataitemRisiterationsofdataitemSeitherdataitemTordataitemUordataitemV,20,資料字典,Longform,Sequence:telephonenumberisareacodeandofficecodeandnumberrepetition:passengerlistisiterationsofpassengernameselection:customerorderiseithervacuumcleanerorderorjetengineorder,Sequence:telephonenumber=areacode+officecode+numberrepetition:passengerlist=passengernameselection:customerorder=vacuumcleanerorder|jetengineorder,Shortform,21,資料字典,TELEPHONENUMBER,AREACODE,OFFICECODE,NUMBER,PASSENGERLIST,PASSENGERNAME,CUSTOMERORDER,VACUUMCLEANERORDER,JETENGINEORDER,Sequence,Repetition,Selection,Graphicform,22,資料字典基本符號,=iscomposedof+and()optional(maybepresentorabsent)iterationselectoneofseveralalternativechoices*commentidentifier(keyfield)forastore|separatesalternativechoicesintheconstruction,23,範例,Name=courtesy-title+first-name+(middle-name)+last-nameCourtesy-title=Mr.|Miss|Mrs.|Ms.|Dr.|ProfessorFirst-name=legal-characterMiddle-name=legal-characterLast-name=legal-characterLegal-character=A-Z|a-z|0-9|-|,24,資料字典定義,A=B+C具備以下三種含意:意義(meaning):資料之意義,可以使用“*”來表示組成(composition):由其他資料元素或資料結構所組成值(values):資料元素不能再被分解,而必須將其在應用系統中所代表的值表達出來,25,基本使用方式(一),CommentExample:Current-height=*units:pounds;range:1-400*Date-of-birth=*units:dayssinceJan1,1900;range:0-36500*Sex=*value:M|F*OptionalExample:Customer-address=(shipping-addr)+(billing-addr)Customer-address=shipping-addr|billing-addr|shipping-addr+billing-addrCustomer-address=shipping-addr+(billing-addr),26,基本使用方式(二),IterationExample:Order=customer-name+shipping-addr+itemOrder=customer-name+shipping-addr+1item10SelectionExample:Customer-type=government|industry|university|otherAliasesExample:Client=*aliasforcustomer*,27,迷你規格書,結構化英文狀態轉換圖決策樹決策表,以祈使句為開頭使用資料字典所定義之文句使用保留關鍵字使用sequence,decision,repetition句型,A,B,C,28,迷你規格書之描述,3.3,3.2,3.4,3.1,這些程序需要描述程序規格(及迷你規格書),這些程序不需要描述程序規格,29,結構化英文,通常以結構化語言之型態表現定義一組完整之關鍵字描述過程中以簡潔之英文(中文)表達在一程序中可能會用到暫時變數,但此變數應只出現在此一程序之中Example:Daily-total=0DOWHILEtherearemoreordersinORDERSwithinvoice-date=todaysdateREADnextorderinORDERSwithinvoice-date=todaysdateDISPLAYtoAccountinginvoice-number,customer-name,total-amountDaily-total=daily-total+total-amountENDDODISPLAYtoAccountingdaily-total,30,結構化英文指引,描述每個程序應盡量在一頁之內,如果無法在一頁之內描述完,分析師應考慮用其發方法處理,或者這個程序需要進一步分割巢狀結構應盡量在三層以內使用內縮格式(indentation),31,PRE/POST條件,若程序本身非常清楚或因時間不足分析師知道有許多解決方法,或讓程式設計師能自己設計解決方法一種最方便的描述方式ExampleProcessspecification3.5:ComputesalestaxPrecondition1Sale-dataoccurswithitem-typematchinganitem-categoryintax-categoriesPostcondition1Sales-taxissettosale-amount*tax-rate,32,PRE/POST描述規範,PRECONDITIONWhatinputsmustbeavailable.Whatrelationshipsmustexistbetweeninputsorwithininputs.Whatrelationshipsmustexistbetweeninputsanddatastores.Whatrelationshipsmustexistbetweendifferentstoresorwithinasinglestore.POSTCONDITIONTheoutputsthatwillbegeneratedorproducedbytheprocess.Therelationshipsthatwillexistbetweenoutputvaluesandtheoriginalinputvalues.Therelationshipsthatwillexistbetweenoutputvaluesandvaluesinoneormorestores.Thechangesthatwillhavebeenmadetostores:newitemsadded,existingitemsmodified,orexistingitemsdeleted.,33,決策表,34,決策表規範,找出所有規格中的條件並決定每一條件的值決定每一個可能的行動檢查可能的條件組合或所應採取的行動是否有矛盾與衝突之處是否某些條件或行動可以一並考量將所有列出之條件及行動再一次的開會討論,35,E-RModel,描述邏輯資料庫設計之工具使用圖形方式描繪資料儲存體彼此之間的關係,部門,員工,專案,結構化設計,37,系統設計,一連串將需求轉換為輪廓、結構或計畫的動作,使得最後可以在電腦上執行將系統分割為黑盒子每一黑盒子恰可解決一完整小問題每一小黑盒子的功能很容易了解黑盒子與黑盒子之間的關係僅只於兩者之間的連結黑盒子的分割將盡可能的獨立將黑盒子組成為一架構,38,結構化設計,結構圖模組規格書實體資料庫設計輸出入介面,39,結構圖,模組輸出入功能描述機制內部資料名稱,預訂模組,計算每月薪資,模組,名稱,資料耦合,旗標,40,結構圖,ISSUEPAYCHECKSFORALLEMPLOYEES,GETEMPLOYEEPAYRECORD,CALCULATENETPAYFORHOURLYWORKER,CALCULATENETPAYFORSALARIEDWORKER,PRINTPAYCHECK,CALCULATEGROSSPAYFORHOURLYWORKER,CALCULATENORMALDEDUCTIONS,CALCULATEGROSSPAYFORSALARIEDWORKER,EmployeePayRecord,EndofEmployeePayRecords,HourlyPayRecord,NetHourlyPay,SalariedPayRecord,NetSalariedPay,EmployeeNumber,EmployeeName,EmployeePay,PayRate,HoursWorked,GrossHourlyPay,TaxDetails,NormalDeductions,GrossSalariedPay,TaxDetails,GrossSalariedPay,NormalPay,Bonuses,41,結構圖符號,A,B,正常呼叫,非同步啟動,A,B,B被A重複呼叫,42,結構圖符號(續),A,rem,rem,連結符號,e,c,b,A,d,交易中心,A,c,b,f,d,e,g,實體包裝,43,設計原則,內聚力功能內聚順序內聚溝通內聚程序內聚暫時內聚邏輯內聚巧合內聚,耦合力資料耦合戳記耦合控制耦合共通耦合內容耦合,44,內聚力,功能內聚:模組內部成員都為解決同一問題而存在順序內聚:模組內部成員從事多項活動,而在各項活動中,前一項活動的輸出要作為後一項活動之輸入溝通內聚:模組內部成員從事多項活動,而這些活動使用相同的輸入資料程序內聚:模組內部成員從事多項活動,而這些活動彼此間可能毫無關係,這些活動聚集在同一模組的原因是控制流由一個活動轉移至另一個活動暫時內聚:模組內部成員要在同一時間一起執行而聚集一塊邏輯內聚:模組內活動屬於同一種類,而模組被呼叫時,這些活動會被執行是由外在的因素控制巧合內聚:模組內活動沒有任何有意義的關係,45,耦合力,資料耦合:假如兩模組之間的聯繫是使用參數傳遞,每一參數又僅是單一欄位或同類表戳記耦合:假如兩模組之間的聯繫是使用參數,且其參數為資料結構控制耦合:某一模組藉著傳遞某些資料以控制另一模組內部邏輯共通耦合:兩個模組參考到相同的整體資料區域內容耦合:某一模組參考到另一模組的內容,46,內聚力與耦合力,內聚力是對模組內各個成員間功能結合強度的度量兩個模組的連結性愈少,引起連鎖反應之機會就愈少我們希望更改某一模組使得必須更改另外模組的危險性減低到最少,同時我們希望客戶的更改僅可能的影響少一點的模組維護模組時不需考慮到模組內部細節我們期望高內聚力低耦合力的模組,47,設計策略,轉換分析繪製DFD尋找轉換中心產生第一層結構圖細分第一層結構圖確認工作交易分析,48,轉換分析,1EDITFIELD,2COLLECTTRANACTION,3CROSS-VALIDATETRANSAC-TION,5MATCHTRANSAC-TIONWITHMASTERRECORD,4VALIDATEMASTERRECORD,7UPDATEMASTERRECORD,6REFORMATNEWMASTERRECORD,8FORMATREPORTLINE,InvalidField,Field,EditedField,Transaction,EditedField,InvalidField,ValidTransaction,UnmatchedTransaction,ValidMasterRecordandValidTransaction,AppliedTransaction,AppliedTransactionReportLine,NewMasterRecord,MasterRecord,InvalidMasterRecord,ValidMasterRecord,UnmatchedMasterRecord,UpdateMasterRecord,A,B,C,D,E,F,I,H,G,49,轉換分析,B,C,F,H,E,I,J,a,b,c,e,d,f,g,h,i,j,CentralTransform,50,轉換分析,WHOLESYSTEM,GETc,GETe,PUTf,GETb,READd,PUTgorh,PUTi,WRITEj,READa,c,e,f,g,h,i,j,a,b,d,51,模組規格書,模組名稱:SELECTPASSENGERSEAT目的:Tochooseforacustomeraseatthatisvalidforhisclassandisascloseaspossibletohisseatingpreference輸入參數:Weighted_Seating_Pref輸出參數:Selected_Seat,Pref_Available功能描述:1.Scantheavailableseats,beginninginthepassengersassignedclassandworkingtolowerclasses.2.Noteforeachseatitsdifferencefromthecustomerspreference.3.Selecttheseatwiththeleastdifference:thisisSELECTED_SEAT.,52,練習,某公司欲計算每月員工薪資,並將其轉換成美元後製成報表印出,員工薪資有月薪及日薪兩種,並要計算出缺勤及加班費請繪製DFD並轉成結構圖,53,其他設計原則,分解決策分割系統形狀錯誤報告編輯,限制性與一般性靜態記憶資料叢集起始與終止模組扇出與扇入,54,分解,減小模組尺寸加強系統模組化,使系統易於了解及易於修改避免相同功能製作在兩個以上的模組內將工作與管理分開提供更通用模組簡化製作,55,決策分割,決策包含兩部分:認知與執行,認知,Ifcustomeraccountnumberisnotknownthenrejectwholecustomerrecordendif,執行,當認知所需資料與執行所需資料不在同一模組時,就產生決策分裂,56,系統形狀,A,B,C,D,57,錯誤報告,系統中負責報告錯誤發生的模組應同時具備有偵測錯誤和認知錯誤型態之兩種能力另一種方式是將錯誤訊息集中放置同一模組錯誤訊息之格式及詞彙較能有一致性避免重複訊息較為容易更正錯誤訊息或轉換他國語言較為容易,58,編輯,先編輯已知的,再編輯未知的先編輯語法,再編輯語意先單獨編輯,再交互編輯先編輯內部,再編輯外部,59,資料叢集,資料叢集為一種集合若干模組的方法,常被用於該群模組需要存取結構非常複雜或是有安全性顧慮的資料,Commondataarea,60,限制性與一般性,模組功能不能太過狹隘也不可太過通用限制性模組從事非常特定工作處理非常特定的資料值型態或結構模組使用上有許多限制一般性模組從事工作廣泛同時處理多種資料值型態或結構將資料以參數或讀入的方式取得,61,扇入與扇出,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论