1 / 70

資訊系統 民國百年年序 問題因應

資訊系統 民國百年年序 問題因應. 行政院主計處電子處理資料中心 宣導團隊 (02)2380-3878 anne0105@dgbas.gov.tw 宣導網址 http://y100.dgbas.gov.tw. 目錄. 壹、前言 貳、釋疑 參、工作時程規劃 肆、因應步驟 伍、委外考量 陸、 緊急應變 處理 柒、結論. 附錄. 各資訊系統 原始碼 清查表. 各程式語言 之日期關鍵 字詞一覽表. 資料庫 的清查. 搜尋關鍵 字詞的工具. 壹、前言. 國人環境因素考量,以民國年份顯示紀年 或可 能 仍以 2 位數規劃與設計民國年欄位,導致

calum
Download Presentation

資訊系統 民國百年年序 問題因應

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 資訊系統民國百年年序問題因應 行政院主計處電子處理資料中心 宣導團隊 (02)2380-3878 anne0105@dgbas.gov.tw 宣導網址http://y100.dgbas.gov.tw

  2. 目錄 壹、前言 貳、釋疑 參、工作時程規劃 肆、因應步驟 伍、委外考量 陸、緊急應變處理 柒、結論

  3. 附錄 各資訊系統 原始碼 清查表 各程式語言 之日期關鍵 字詞一覽表 資料庫 的清查 搜尋關鍵 字詞的工具

  4. 壹、前言 • 國人環境因素考量,以民國年份顯示紀年 • 或可能仍以2位數規劃與設計民國年欄位,導致 • 錯誤顯示依程式文數字右靠的邏輯,民國100年呈現「00」 • 錯誤計算如民國100年有人退休年資(00年-70年=-70年),再乘以退休基數,依會計常識,負數的金額代表負債! • 此即所謂的「資訊民國百年問題」

  5. 解說百年蟲 Dim iYear, iMonth, iDay iYear = CInt(Left(dtNow, 2))+1911 iMonth = Month(dtNow) iDay = Day(dtNow) dtNow char(06) 舊型電腦的記憶體及儲存空間有限 撰寫程式時為了節省空間,把日期記成"YYMMDD"

  6. 實例 ○○ ○○ ○○ 005123458 00/08/01 00/09/30 00/09/17 00/09/18 00/09/18 00/09/18 00/09/18 民國100年查詢銀行帳戶之交易明細,會發生什麼情形?

  7. 貳、釋疑 極少例子與硬體或軔體有關,亦宜檢視 民國年欄位資訊的用途資料的儲存(如出生欄位)、計算(如程式中的公式)、顯示(如螢幕)、印表(如証明單、收費單…等) 民國百年問題只發生在資訊系統它不像Y2K(千禧年危機)涉及硬體設計、操作系統OS、程式語言、與業務資訊應用系統,甚至發生於嵌入式設備 民國百年問題只發生在我國百年問題雖比千禧年的問題簡單許多,衝擊性亦輕,但卻也不容等閒視之。因為百業電腦化,且涉及國情習慣 Y2K時未「一併處理民國百年」問題人事更迭,或許在電腦年序可能的問題上沒有特別留意欄位長度的陷阱,仍或可能習慣性地使用2位數

  8. 可能的風險 社會觀感、民眾權益 司法系統 電信系統 醫療系統 金融系統 稅務系統 工廠程控

  9. 如何面對 • 需要處理的問題 • 只是一件小事但涵蓋範圍可是很龐大 • 認為是一樁危機但如期完成則是轉機 • 成立專案小組 • 確定業務與資訊單位合作,尤其要高階主管支持 • 專案成員中最好有熟悉系統、程式和業務者 • 決定清倉重點優先序 • 確實執行清倉、風險評估、修正與測試 • 需要擔心的事情 • 規劃適當時程,及早因應 • 事先擬定緊急應變處理,降低風險

  10. 參、工作時程規劃 委外 自行維護 or 專 案 管 理 清倉 測試 上線 影響評估 修正 緊急應變處理

  11. 規劃工作時程之原則 視業務系統之多寡與繁複、業務影響大小等因素,建議時程可按後續說明之處理程序步驟,採日期倒推法規劃 最好有2至3個月的緩衝期作為測試後的觀察期,以處理遺漏部分 最好在民國99年9月底前全部完成 辦理完成委外作業

  12. 肆、因應步驟 建議各機關必須針對個別軟體環境分類,搜集所使用的各種軟體語言工具的日期年份的習慣性程式寫法;找出關鍵字詞,彙成關鍵字詞庫,以之當key進行原始碼的搜尋,找出有民國年的欄位,然後修正、測試和取代舊程式 資訊技術演進神速,2000年以前,應用系統平台多屬傳統主機型態,程式語言多集中於COBOL、FORTRAN等,因應方法單純 今日歷經Client-Server、Web-Base、Web2.0等規劃或設計風潮演化,使用軟體語言工具很多

  13. 因應步驟 (接續) • 針對程式及資料庫,其步驟說明如下: 一、清查 二、分類 三、搜尋 四、修正 五、測試 六、正式上線

  14. 一、清查工作內容 1.原碼程式,分:(1)需編譯者(2)直譯者 按「各資訊系統原始碼清查表」全面清查 2.資料(庫)

  15. 二、分類工作內容 1.將各資訊系統原始碼依程式語言工具歸類 2.搜集有關民國年的各資訊系統,及該程式語言工具寫法,擬出關鍵字詞(含運算的公式) 3.彙總各資訊系統關鍵字詞成關鍵字詞檔 4.可參考「各程式語言之日期關鍵字詞一覽表」

  16. 三、搜尋工作內容 搜尋方式有二途徑: 1.從原碼找起 (1)逐步以一個資訊系統的原碼檔為對象 (2)依關鍵字詞搜尋有無民國年的定義或公式 2.從結果異常找起 (1)建立一個測試環境,系統年份設定為2011 (2)按功能或系統分類,測試民國年份是否正 常顯示100年

  17. 四、修正工作內容 建議於測試環境執行 1.執行修正前,務必先作好原始程式碼完整備份及擬妥回復程序;避免修正或測試失敗 2.執行修正與測試的日期宜選在假日;避免失敗而影響正常作業 3.team work狀況下,宜妥善分配team member負責修正之程式群,避免重覆修正,免除版本控制之問題 4.修正原始程式碼,並應記錄 5.若原碼程式檔非直譯語言,需重新編譯執行檔至原執行檔所在之目錄夾

  18. 五、測試工作內容 1.建立測試環境為之(與正式作業分開為宜) 2.檢視相關的儲存、計算、顯示、印表…等功能是否無誤

  19. 六、正式上線工作內容 資料庫部份:HOW使用關鍵字詞搜尋資料庫! 1.確認測試成功後,上線至正式系統,完成原始程式碼修正作業

  20. Ps:常見的困難 無工具可用,如何有系統地搜尋: 建議仿windows檔案搜尋方式;先設定Source置放之程式目錄夾為尋找範圍,再以keyword一一搜尋(閱讀時需在適當的編輯器) 或寫一簡單程式,以關鍵字詞檔表列搜尋產出對應的原碼檔名和關鍵字,再從原碼檔名逐檔修正(較麻煩)。EX:檢查檔案字串程式(免費的、IMC開發) 或如使用有料的UltraEdit、或免費的編輯器NOTEPAD++搜尋關鍵字詞。 版本落差: 原始碼已遺失,或維護版本已經沒有記錄 或可由儲存、計算、顯示、印表…等功能逆推回去 或使用反組譯工具還原(麻煩,不保證100%,且需專業) 建議先利用測試環境,從結果異常找起的方法搜尋 完全委外: 建議仿版本落差方式,瞭解可能的民國年呈現的業務資訊作業,與委外廠商確認或只好再專案委外辦理。此外,與各委外的廠商連繫,瞭解該系統的民國年設計模式,以為奧援。

  21. 伍、委外考量 尋求委外服務之考量 委外參考事項 如何因應委外經費問題

  22. 尋求委外服務之考量 現有資訊人員 人員充足 已培養其他部門同仁 時間足夠 系統不大 自行維護 加派人手 或 部份委外 委外 原委外開發 原廠商有能力、人力支援修正作業 另委請其他信譽良好的廠商修正 經費足夠 排擠其他業務經費支應 已於99年編列預算

  23. 委外參考事項(1/2) 委外廠商是否有充裕的支援? 充裕的人力 瞭解該項業務的能力與經驗 充足的時間 純熟的技術能力 後勤支援能力 委外廠商是否能協助解決民國百年問題? 委外服務之專案管理能力 執行專案能力 承包專案的經歷 委外服務供應商之替代方案 如期完成與保證 超過時程的應變方案

  24. 委外參考事項(2/2) 如何篩選委外廠商 熟悉本系統架構、程式語言的廠商 具備專案能力的廠商 具有經驗且尚有餘力的廠商 負責且風評佳(實績) 收費合理項目清楚 建議書徵求文件應包含哪些項目? 完全更正責任 範圍的釐定 評估、檢視、更正、測試哪些系統? 限時完成與罰則 工具的應用及費用的涵蓋 本身所能提供之機器設備、人力時間配合等等 廠商資格 廠商提出具體解決程序與處理方法的計畫

  25. 如何因應委外經費問題(1/2) 是否有維護合約? 是 否 建議於今年底,提早 辦理明(99)年的維護, 並將百年序問題列維護 合約中,且要求於99年 04月之前完成檢視、更 正及測試 則只能在既有經費中 調整優先順序,以辦 理委外

  26. 如以委外處理本案,如何計價? 依據採購法計價規定,或採總價法或採按件數計價,以所費的人月計價 建議單位先了解廠商處理步驟、方法,然後估算人月,會有清楚且合理的計價方式 個人認為這純是清查和修改的工作,工具使用恰當,則只是人力使用,技術門檻不高,計價不宜太高 如何因應委外經費問題(2/2)

  27. 陸、緊急應變處理 • 目的 • 減少百年蟲風險,以確保正常運作 再完備的測試也可能有疏漏 • 一旦發生危機進行替代作業 • 緊急因應處理 • 在日期資料顯示或印出之前,寫一可檢查民國年的API程式,以轉換欄位位數暫時因應 • 僅為治標不治本的緊急因應方法,且時間不宜拖延太久 • 因為尚有儲存民國年欄位資訊的資料檔或資料庫需要更正,若直接於程式中引用計算,仍會出現百年問題

  28. 柒、結論 民國百年問題只發生在國內基於國情,政府機關提供民眾的資訊係採民國記年,國際資訊業者不一定會關注這個課題 及早正視,速謀動員改正政府資訊多少具有公文書特質,必須為民眾所信賴,自然必須正確無誤

  29. End • 敬請指教 • Q & A • 相關資料下載處 https://itschool.dgbas.gov.tw/epaper/980702/index2.htm

  30. 各資訊系統原始碼清查表 檢測項目:民國年欄位長度 檢測期限: 修正期限: 負責同仁:

  31. 資料庫的清查 先確認儲存「日期」所採用之資料類型為何,及欄位長度是否足夠 配合擴充欄位長度

  32. 各程式語言之日期關鍵字詞一覽表 Java、JSP程式語言之日期關鍵字詞 ASP、VB程式語言之日期關鍵字詞 ASP.NET程式語言之日期關鍵字詞 DELPHI程式語言之日期關鍵字

  33. Java、JSP程式語言之日期關鍵字詞

  34. ASP、VB程式語言之日期關鍵字詞

  35. ASP.NET程式語言之日期關鍵字詞

  36. DELPHI程式語言之日期關鍵字

  37. 搜尋關鍵字詞的工具 檢查檔案字串 UltraEdit Notepad++

  38. 壹、使用「檢查檔案字串」搜尋關鍵字詞 簡介: • 行政院主計處電子處理資料中心開發 • 專用於搜尋資料夾中搜尋檔案是否有百年問題的關鍵字 • 需配合其他編輯器使用(預設使用Notepad++編輯器) • 搜尋到的檔案及關鍵字配對會以清單顯示 • 可雙點搜尋結果,直接開啟編輯器進行檢視或修改

  39. Step 1: • 開啟「檢查檔案字串」工具 • 選擇欲檢查的目錄所在的磁碟 • 在「檢查目錄」區選擇欲檢查的目錄 • 在「檢查檔案的檔名」區輸入或選擇欲檢查的檔案的檔名的樣式(預設*.*) • 使用加入字串及移除字串按鈕來增刪欲「比對的字串」清單 • 確認(或選擇)編輯器的絕對路徑 • 按「開始檢查」按鈕,開始檢查 利用「檢查檔案字串」工具

  40. Step 2: • 滑鼠雙點清單中某筆結果,對該筆檔案進行檢視或編輯 找到的字串 利用「檢查檔案字串」工具

  41. 貳、使用UltraEdit搜尋關鍵字詞 簡介 文書編輯器 提供超強的文字檔或任何原始程式檔編輯、預視、列印功能 提供直接編輯十六進位碼功能 可編輯 HTML 檔案,以彩色顯示HTML標記,方便網頁編輯 可同時開啟多個檔案編輯 提供編譯java原始程式檔功能 提供多重檔案搜尋及多重檔案取代,一併搜尋目錄夾下所有子目錄夾 非免費軟體

  42. Step 1、開啟UltraEdit工具,選擇「搜尋」-「多重檔案搜尋」 利用UltraEdit搜尋

  43. Step 2、輸入搜尋關鍵字,如:「Calendar」,選擇source置放之程式目錄夾,按「搜尋」按鈕 利用UltraEdit搜尋

  44. Step 3、搜尋完成,搜尋之結果在下方窗格 利用UltraEdit搜尋

  45. Step 4、下方窗格右邊之捲軸,拉至最尾端,顯示共找到之次數及檔案個數 利用UltraEdit搜尋

  46. Step 5、點選搜尋到「Calendar」之某一程式檔 「BackupQ.java」, 上方窗格會自動開啟 「BackupQ.java」原始程式檔,即可開始修正程式碼 利用UltraEdit搜尋

  47. 參、使用Notepad++搜尋關鍵字詞 簡介: 文書編輯器 程式語法高亮度顯示及語法摺疊功能 高亮度括號及縮排輔助 強大的搜尋及取代功能 若有彩色印表機,可以把原始碼以多種顏色列印出來(列印所見即所得) 可以同時開啟多頁面來編輯(支援同時編輯多重文件) 免費的編輯器 http://notepad-plus.sourceforge.net/tw/site.htm

  48. Step 1、開啟Notepad++工具,選擇「尋找」-「搜尋目錄」 利用Notepad++搜尋

  49. Step 2、在尋找目標欄輸入搜尋關鍵字,如:「PF_ADMINISTRATOR」 利用Notepad++搜尋

  50. Step 3、在資料夾欄選擇欲搜尋之目標資料夾 按一下 按鈕即跳出瀏覽資料夾的視窗 利用Notepad++搜尋

More Related