




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
目錄TOC\o"1-2"\h\u12985第一章、生產(chǎn)研發(fā)部分 223588第一節(jié)、項目需求理解 219935第二節(jié)、方案整體設(shè)計 4422570第三節(jié)、系統(tǒng)功能 5424195第四節(jié)、系統(tǒng)性能 7220671第二章、項目組織管理 12319302第一節(jié)、項目角色與職責 123973第二節(jié)、項目進度計劃 12819511第三節(jié)、項目管理方案 1327691第三章、售后服務(wù) 16526504第一節(jié)、售后服務(wù)方案 16519860第二節(jié)、運行保障體系 1705523第三節(jié)、培訓方案 17418977第四節(jié)、知識轉(zhuǎn)移 180
第一章、生產(chǎn)研發(fā)部分第一節(jié)、項目需求理解1.系統(tǒng)功能性需求分析(1)功能劃分本次開發(fā)任務(wù)對如下功能模塊進行功能的新增和調(diào)整:注冊登錄業(yè)務(wù)流程重構(gòu)、賬號的數(shù)據(jù)操作權(quán)限調(diào)整、頁面的優(yōu)化和兼容性調(diào)整、支付優(yōu)化、會員策略調(diào)整、視頻音頻課下架開關(guān)、單詞增加關(guān)聯(lián)詞組、教輔綁定改版。(2)功能描述1、注冊登錄業(yè)務(wù)流程重構(gòu)應(yīng)用場景針對新用戶,用戶在進行賬號注冊時,強制綁定手機號;針對老用戶,如果沒有綁定過手機號的用戶,進入APP時,需要彈窗提示用戶去進行手機號綁定,才可以使用APP功能;需求分析需求實現(xiàn)用戶注冊時選擇第三方登錄,進入綁定手機號頁面;2、綁定手機號頁面,“跳過”按鈕去掉,強制用戶進行手機號綁定;歷史登錄賬號應(yīng)用場景用戶可以通過歷史登錄賬號,查看登錄過人教口語APP的全部賬號;需求分析在“我的”頁面新增歷史登錄賬號功能;需求實現(xiàn)在“我的”頁面新增“歷史登錄賬號”功能欄,點擊進入歷史登錄賬號頁面,可查看歷史登錄賬號列表,顯示歷史登錄賬號和對應(yīng)登錄設(shè)備;游客賬號取消應(yīng)用場景針對新用戶進入APP的賬號必須要先走注冊登錄流程,APP不在支持游客賬號;針對存在注冊賬號和游客賬號兩種權(quán)限的老用戶,進行賬號數(shù)據(jù)的合并;需求分析游客賬號取消;需求實現(xiàn)不提供游客查看功能,關(guān)閉游客賬號權(quán)限,進入APP必須注冊;根據(jù)登錄設(shè)備查找歷史賬號應(yīng)用場景根據(jù)用戶登錄端口的不同,管理后臺需實現(xiàn)可查看登錄賬號所使用的設(shè)備,并且通過用戶的登錄設(shè)備可查詢,此設(shè)備歷史登錄過的賬號;需求分析需求實現(xiàn)實現(xiàn)賬號、設(shè)備雙向查找;注銷賬號驗證應(yīng)用場景在用戶注銷賬號時,增加手機驗證功能,需要用戶發(fā)送并正確填寫驗證碼,才可以注銷賬號;需求分析注銷賬號,增加手機驗證功能;需求實現(xiàn)用戶進入注銷賬號頁,點擊“確認注銷”按鈕后,增加手機驗證功能;VIP相關(guān)調(diào)整應(yīng)用場景我的頁面,非會員不顯示VIP標識;VIP頁面,調(diào)整非會員的VIP卡片;需求分析頁面樣式調(diào)整;需求實現(xiàn)我的頁面,非會員不顯示VIP標識;VIP頁面,調(diào)整非會員的VIP卡片;關(guān)于我們應(yīng)用場景刪除客服相關(guān)文案;需求分析頁面樣式調(diào)整;需求實現(xiàn)刪除客服相關(guān)文案;兼容性問題ipad13單詞展示的兼容問題,android首頁和我的頁面兼容問題,大字體兼容問題;買錯課本優(yōu)化在購買課本時,新增新手引導的引導頁,降低用戶買錯課本的操作,同時考慮到用戶交互的友好性,允許用戶跳過;針對買錯課本的用戶,通過后臺配置支持策略,用戶可查看買錯課本后,APP支持的對應(yīng)策略,進行對應(yīng)操作;支付優(yōu)化單科、會員、包月會員鑒權(quán)流程與權(quán)限時間調(diào)整,優(yōu)化前后端校驗機制;帳號歷史權(quán)限、歷史訂單記錄;定時任務(wù)新增報警機制,增加執(zhí)行日志,代碼優(yōu)化;客戶端訂單與權(quán)限合并,前后端權(quán)限一致。增強客戶端訂單可讀性,增加兌換碼、激活碼訂單、管理員授權(quán)內(nèi)容;訂單權(quán)限校驗優(yōu)化,異常訂單處理流程(自動續(xù)費、訂單期間無權(quán)限情況);11、包月會員策略調(diào)整到期短信提示功能,微信續(xù)費簽約,1天內(nèi)未完成支付發(fā)送短息提醒,超X天未完成支付則解約;微信續(xù)費權(quán)限延時2天(不疊加),蘋果續(xù)費新增過渡期;增加解約策略:注銷賬號自動解約,包月會員購買會員產(chǎn)品時詢問是否解約。新增解約入口;客戶端新增簽約狀態(tài),后臺優(yōu)化簽約狀態(tài)和記錄;鑒權(quán)流程及權(quán)限時間調(diào)整;12、視頻音頻課下架開關(guān)新用戶無法看到入口;老用戶可査看入口,不可購買;13、單詞增加關(guān)聯(lián)詞組客戶端增加關(guān)聯(lián)詞組模塊、如近義詞、反義詞、相關(guān)短語等。后臺對單詞內(nèi)容增加詞組字段及相關(guān)編輯功能。例句支持多個展示;14、教輔綁定改版教輔首次綁定、更換改版;教輔分冊次統(tǒng)計埋點,記錄綁定數(shù)據(jù);針對上述需求,首先需要經(jīng)雙方協(xié)調(diào),形成《需求調(diào)研計劃》及《需求調(diào)研大綱》,確定準備工作、需求調(diào)研的內(nèi)容、方法方式以及人員和日程安排等內(nèi)容,經(jīng)雙方同意后按此計劃開始調(diào)研。調(diào)研正式開始前項目開發(fā)組應(yīng)檢查所有必要的準備工作已經(jīng)圓滿完成。項目開發(fā)組根據(jù)調(diào)研中系統(tǒng)實際技術(shù)需求和各個子系統(tǒng)的業(yè)務(wù)需求,編寫并向工程領(lǐng)導小組提交符合CMMILEVEL3規(guī)范要求的《系統(tǒng)需求分析報告》,并由項目組評審,不合格的部分進一步完善調(diào)研;評審通過后由雙方共同簽署評審意見,并正式生效。對于軟件生產(chǎn)過程而言,需求階段是整個過程中最重要的階段,需求分析成果的好壞將直接導致項目的成功與否,因此合作雙方在此階段多投入是值得的。而且一旦評審通過并生效,則需求報告將成為系統(tǒng)的設(shè)計、開發(fā)、測試、實施試運行和項目驗收的基本依據(jù)之一,因此原則上用戶需求將不再因為其它因素的改變而變更,如需進行此種變更,需經(jīng)雙方項目負責人協(xié)商確定。
2.系統(tǒng)非功能性需求分析(1)質(zhì)量需求代碼質(zhì)量需求(1) 對于重構(gòu)或新功能開發(fā),要求使用行業(yè)內(nèi)通用的編碼規(guī)范進行約束。(2) 代碼應(yīng)具有良好可讀性、可擴展性、可維護性以及可重用性和可測試性。(3) 要求以自動化代碼質(zhì)量檢查和團隊成員共同代碼走查相結(jié)合的方式,保證所有上線的代碼都經(jīng)過機器與人工多個環(huán)節(jié)的檢查。(4) 基于git進行代碼版本管理,代碼分支劃分科學、合理,確保代碼安全、穩(wěn)定。服務(wù)質(zhì)量需求(1) 本期開發(fā)內(nèi)容無功能問題,項目整體功能測試用例通過率高于95%(2) App崩潰率低于0.5%(3) 故障修復需在1小時內(nèi)做出明確響應(yīng)和安排,在4小時內(nèi)為甲方提供維修服務(wù),故障修復時間不得超過36小時。若需要現(xiàn)場服務(wù)才能解決問題,應(yīng)在8小時內(nèi)到達用戶現(xiàn)場。(2)性能需求(1) 7期開發(fā)期間,需要對人教口語app分階段優(yōu)化產(chǎn)品系統(tǒng)架構(gòu)、技術(shù)架構(gòu)、應(yīng)用架構(gòu),以降低用戶增長對原系統(tǒng)帶來的性能和安全風險以及資源成本。(2) 為保證口語系統(tǒng)在開學季高并發(fā)下的用戶體驗,滿足在現(xiàn)有2臺8cl6g應(yīng)用服務(wù)器3臺8cl6g數(shù)據(jù)庫(讀寫分離一寫兩讀)條件下接口達到lOOOqps并且響應(yīng)時間在1s。(3)安全需求漏洞修復應(yīng)按照甲方需求按時完成人教口語App的漏洞修復工作,并配合完成漏洞修復驗證工作。等保測評應(yīng)按照甲方要求按時配合完成人教口語App以及后臺服務(wù)的年度等保測評工作,包括但不限于安全內(nèi)容整改、資料撰寫、人員配合等。App安全認證應(yīng)按照甲方要求按時配合完成App安全認證相關(guān)工作,包括但不限于安全內(nèi)容整改、資料撰寫、人員配合等。(4)兼容性需求乙方應(yīng)在七期開發(fā)期間,確保應(yīng)用軟件在實際用戶toplO的機型、分辨率、操作系統(tǒng)、新出設(shè)備和操作系統(tǒng)上,功能測試用例通過率高于95%,app崩潰率低于0.5%,兼容測試用例通過率高于90%;(5)其他需求數(shù)據(jù)支撐需求,包括但不限于財務(wù)系統(tǒng)、賬號中心、大數(shù)據(jù)平臺等。維保服務(wù)需求,軟件驗收合格之日起向甲方提供12個月的維保服務(wù)。在維保期間,乙方承諾向甲方提供免費的應(yīng)用軟件的答疑、修復、技術(shù)支持及免費版本升級,以保證甲方的正常使用及整個系統(tǒng)正常運行。(6)技術(shù)服務(wù)需求1、產(chǎn)品交付人教口語存在多個版本交付情況,在每個版本交付前需要交付人充分測試,包含單元測試、集成測試和系統(tǒng)測試,要求制定測試計劃、編寫測試用例、出具相應(yīng)的測試報告,確保交付物質(zhì)量。2、產(chǎn)品驗收開發(fā)完成后,需要在驗收時提供第三方測試公司出具的測試報告,測試報告相關(guān)指標需要滿足招標文件技術(shù)需求的各項要求。3、項目進度管理項目在開發(fā)階段,每個開發(fā)任務(wù)有明確的版本計劃和上線時間點,進度落實到個人。以周會或雙周會對項目進度進行校準。4、運營維護支持產(chǎn)品的運營需求,如財務(wù)對賬、運營活動等相關(guān)產(chǎn)品數(shù)據(jù)的提供。支持客服反饋的技術(shù)答疑。5、系統(tǒng)維護開發(fā)完成后,交付方需要在維保期內(nèi)提供bug修改、運營維護等相關(guān)服務(wù)。(7)業(yè)務(wù)運營及維護工作日常功能改進、bug修復;運營活動支持;對賬報表、數(shù)據(jù)統(tǒng)計、埋點管理等日常維護工作;配合數(shù)字公司要求,進行相關(guān)系統(tǒng)測試、代碼及漏洞修復工作;(8)項目安全、合規(guī)相關(guān)工作配合等保、安全認證相關(guān)合規(guī)工作的資料編撰,功能開發(fā)、修復和升級。(9)目標前景1.能夠如期完成約定的委托開發(fā)任務(wù),確保人教口語業(yè)務(wù)穩(wěn)定運行的持續(xù)性和連貫性。2.提供成熟可行的移動端產(chǎn)品運營咨詢服務(wù)。3.提供業(yè)務(wù)相關(guān)的數(shù)據(jù)支持、技術(shù)咨詢支持。3.項目重點難點分析本次開發(fā)任務(wù)中,主要包含對現(xiàn)有系統(tǒng)的升級優(yōu)化和新功能的開發(fā),重點難點如下:(1)系統(tǒng)功能對接要求開發(fā)團隊在對現(xiàn)有系統(tǒng)進行需求理解的基礎(chǔ)上進行系統(tǒng)優(yōu)化,并在此基礎(chǔ)上開發(fā)新功能,開發(fā)團隊必須具備新老系統(tǒng)對接的開發(fā)能力;系統(tǒng)接口標準:RESTful架構(gòu),就是目前最流行的一種互聯(lián)網(wǎng)軟件架構(gòu)。它結(jié)構(gòu)清晰、符合標準、易于理解、擴展方便,所以正得到越來越多網(wǎng)站的采用。REST(RepresentationalStateTransfer),REST的名稱"表現(xiàn)層狀態(tài)轉(zhuǎn)化"中,省略了主語。“表現(xiàn)層"其實指的是"資源”(Resources)的"表現(xiàn)層"。資源(Resources)所謂"資源",就是網(wǎng)絡(luò)上的一個實體,或者說是網(wǎng)絡(luò)上的一個具體信息。它可以是一段文本、一張圖片、一首歌曲、一種服務(wù),總之就是一個具體的實在。你可以用一個URI(統(tǒng)一資源定位符)指向它,每種資源對應(yīng)一個特定的URI。要獲取這個資源,訪問它的URI就可以,因此URI就成了每一個資源的地址或獨一無二的識別符。所謂"上網(wǎng)",就是與互聯(lián)網(wǎng)上一系列的"資源"互動,調(diào)用它的URI。表現(xiàn)層(Representation)"資源"是一種信息實體,它可以有多種外在表現(xiàn)形式。我們把"資源"具體呈現(xiàn)出來的形式,叫做它的"表現(xiàn)層"(Representation)。比如,文本可以用txt格式表現(xiàn),也可以用HTML格式、XML格式、JSON格式表現(xiàn),甚至可以采用二進制格式;圖片可以用JPG格式表現(xiàn),也可以用PNG格式表現(xiàn)。URL只代表資源的實體,不代表它的形式。嚴格地說,有些網(wǎng)址最后的".html"后綴名是不必要的,因為這個后綴名表示格式,屬于"表現(xiàn)層"范疇,而URI應(yīng)該只代表"資源"的位置。它的具體表現(xiàn)形式,應(yīng)該在HTTP請求的頭信息中用Accept和Content-Type字段指定,這兩個字段才是對"表現(xiàn)層"的描述。狀態(tài)轉(zhuǎn)化(StateTransfer)訪問一個網(wǎng)站,就代表了客戶端和服務(wù)器的一個互動過程。在這個過程中,勢必涉及到數(shù)據(jù)和狀態(tài)的變化。互聯(lián)網(wǎng)通信協(xié)議HTTP協(xié)議,是一個無狀態(tài)協(xié)議。這意味著,所有的狀態(tài)都保存在服務(wù)器端。因此,如果客戶端想要操作服務(wù)器,必須通過某種手段,讓服務(wù)器端發(fā)生"狀態(tài)轉(zhuǎn)化"(StateTransfer)。而這種轉(zhuǎn)化是建立在表現(xiàn)層之上的,所以就是"表現(xiàn)層狀態(tài)轉(zhuǎn)化"。客戶端用到的手段,只能是HTTP協(xié)議。具體來說,就是HTTP協(xié)議里面,四個表示操作方式的動詞:GET、POST、PUT、DELETE。四個表示操作方式對應(yīng)對應(yīng)四種基本操作GET獲取資源POST新建資源PUT更新資源DELETE刪除資源綜合上面,RESTful架構(gòu)的內(nèi)容:每一個URI代表一種資源;客戶端和服務(wù)器之間,傳遞這種資源的某種表現(xiàn)層;客戶端通過四個HTTP動詞,對服務(wù)器端資源進行操作,實現(xiàn)"表現(xiàn)層狀態(tài)轉(zhuǎn)化"。RESTfulAPI設(shè)計API與用戶的通信協(xié)議采用HTTPs協(xié)議域名用api關(guān)鍵字標識接口url示例:#應(yīng)該盡量將API部署在專用域名之下。#表示前后端數(shù)據(jù)交互#應(yīng)該盡量將API部署在專用域名之下。/api/路徑路徑又稱"終點"(endpoint),表示API的具體網(wǎng)址。在RESTful架構(gòu)中,每個網(wǎng)址代表一種資源(resource),所以網(wǎng)址中不能有動詞,只能有名詞,而且所用的名詞往往與數(shù)據(jù)庫的表格名對應(yīng)。HTTP動詞對于資源的具體操作類型,由HTTP動詞表示。示例:GET(SELECT):從服務(wù)器取出資源(一項或多項)。POST(CREATE):在服務(wù)器新建一個資源。PUT(UPDATE):在服務(wù)器更新資源(客戶端提供改變后的完整資源)。PATCH(UPDATE):在服務(wù)器更新資源(客戶端提供改變的屬性)。DELETE(DELETE):從服務(wù)器刪除資源。不常用HEAD:獲取資源的元數(shù)據(jù)。OPTIONS:獲取信息,關(guān)于資源的哪些屬性是客戶端可以改變的。狀態(tài)碼示例:200OK-[GET]:服務(wù)器成功返回用戶請求的數(shù)據(jù),該操作是冪等的(Idempotent)。201CREATED-[POST/PUT/PATCH]:用戶新建或修改數(shù)據(jù)成功。202Accepted-[*]:表示一個請求已經(jīng)進入后臺排隊(異步任務(wù))204NOCONTENT-[DELETE]:用戶刪除數(shù)據(jù)成功。301:永久重定向302:暫時重定向400INVALIDREQUEST-[POST/PUT/PATCH]:用戶發(fā)出的請求有錯誤,服務(wù)器沒有進行新建或修改數(shù)據(jù)的操作,該操作是冪等的。401Unauthorized-[*]:表示用戶沒有權(quán)限(令牌、用戶名、密碼錯誤)。403Forbidden-[*]表示用戶得到授權(quán)(與401錯誤相對),但是訪問是被禁止的。404NOTFOUND-[*]:用戶發(fā)出的請求針對的是不存在的記錄,服務(wù)器沒有進行操作,該操作是冪等的。406NotAcceptable-[GET]:用戶請求的格式不可得(比如用戶請求JSON格式,但是只有XML格式)。410Gone-[GET]:用戶請求的資源被永久刪除,且不會再得到的。422Unprocesableentity-[POST/PUT/PATCH]當創(chuàng)建一個對象時,發(fā)生一個驗證錯誤。500INTERNALSERVERERROR-[*]:服務(wù)器發(fā)生錯誤,用戶將無法判斷發(fā)出的請求是否成功。錯誤處理狀態(tài)碼是4xx時,應(yīng)返回錯誤信息,error當做key。示例:{error:"InvalidAPIkey"}返回結(jié)果格式盡量采用json格式避免XML格式示例:GET/collection:返回資源對象的列表(數(shù)組)GET/collection/resource:返回單個資源對象POST/collection:返回新生成的資源對象PUT/collection/resource:返回完整的資源對象PATCH/collection/resource:返回完整的資源對象DELETE/collection/resource:返回一個空文檔(2)接口規(guī)范性設(shè)計系統(tǒng)平臺中的接口眾多,依賴關(guān)系復雜,通過接口交換的數(shù)據(jù)與接口調(diào)用必須遵循統(tǒng)一的接口模型進行設(shè)計。接口模型除了遵循工程統(tǒng)一的數(shù)據(jù)標準和接口規(guī)范標準,實現(xiàn)接口規(guī)范定義的功能外,需要從數(shù)據(jù)管理、完整性管理、接口安全、接口的訪問效率、性能以及可擴展性多個方面設(shè)計接口規(guī)格。(3)接口定義約定客戶端與系統(tǒng)平臺以及系統(tǒng)平臺間的接口消息協(xié)議采用基于HTTP協(xié)議的REST風格接口實現(xiàn),協(xié)議棧如圖所示。業(yè)務(wù)消息會話數(shù)據(jù)HTTP/HTTPSTCP/IP底層承載系統(tǒng)在http協(xié)議中傳輸?shù)膽?yīng)用數(shù)據(jù)采用具有自解釋、自包含特征的JSON數(shù)據(jù)格式,通過配置數(shù)據(jù)對象的序列化和反序列化的實現(xiàn)組件來實現(xiàn)通信數(shù)據(jù)包的編碼和解碼。在接口協(xié)議中,包含接口的版本信息,通過協(xié)議版本約束服務(wù)功能規(guī)范,支持服務(wù)平臺間接口協(xié)作的升級和擴展。一個服務(wù)提供者可通過版本區(qū)別同時支持多個版本的客戶端,從而使得組件服務(wù)的提供者和使用者根據(jù)實際的需要,獨立演進,降低系統(tǒng)升級的復雜度,保證系統(tǒng)具備靈活的擴展和持續(xù)演進的能力。(4)業(yè)務(wù)消息約定請求消息URI中的參數(shù)采用UTF-8編碼并經(jīng)過URLEncode編碼。請求接口URL格式:{http|https}://{host}:{port}/{appname}/{businesscomponentname}/{action};其中:協(xié)議:HTTPREST形式接口host:應(yīng)用支撐平臺交互通信服務(wù)的IP地址或域名port:應(yīng)用支撐平臺交互通信服務(wù)的端口appname:應(yīng)用支撐平臺交互通信服務(wù)部署的應(yīng)用名稱businesscomponentname:業(yè)務(wù)組件名稱action:業(yè)務(wù)操作請求的接口名稱,接口名字可配置應(yīng)答的消息體采用JSON數(shù)據(jù)格式編碼,字符編碼采用UTF-8。應(yīng)答消息根節(jié)點為“response”,每個響應(yīng)包含固定的兩個屬性節(jié)點:“status”和“message”。它們分別表示操作的返回值和返回消息描述,其他的同級子節(jié)點為業(yè)務(wù)返回對象屬性,根據(jù)業(yè)務(wù)類型的不同,有不同的屬性名稱。當客戶端支持數(shù)據(jù)壓縮傳輸時,需要在請求的消息頭的“Accept-Encoding”字段中指定壓縮方式(gzip),如消息可以被壓縮傳輸則平臺將應(yīng)答的數(shù)據(jù)報文進行壓縮作為應(yīng)答數(shù)據(jù)返回,Content-Length為壓縮后的數(shù)據(jù)長度。詳細參見HTTP/1.1RFC2616。(5)響應(yīng)碼規(guī)則約定響應(yīng)結(jié)果碼在響應(yīng)消息的“status”屬性中,相應(yīng)的解釋信息在響應(yīng)消息的“message”屬性中。解釋消息為終端用戶可讀的消息,終端應(yīng)用不需要解析可直接呈現(xiàn)給最終用戶。響應(yīng)結(jié)果碼為6位數(shù)字串。根據(jù)響應(yīng)類型,包括以下幾類響應(yīng)碼。如表中的定義。響應(yīng)碼描述0成功1XXXXX系統(tǒng)錯誤2XXXXX輸入?yún)?shù)不合法錯誤3XXXXX應(yīng)用級返回碼,定義應(yīng)用級的異常返回。4XXXXX正常的應(yīng)用級返回碼,定義特定場景的應(yīng)用級返回說明。(6)數(shù)據(jù)管理業(yè)務(wù)數(shù)據(jù)檢查接口應(yīng)提供業(yè)務(wù)數(shù)據(jù)檢查功能,即對接收的數(shù)據(jù)進行合法性檢查,對非法數(shù)據(jù)和錯誤數(shù)據(jù)則拒絕接收,以防止外來數(shù)據(jù)非法入侵,減輕應(yīng)用支撐平臺系統(tǒng)主機處理負荷。對于接口,其業(yè)務(wù)數(shù)據(jù)檢查的主要內(nèi)容有以下幾個方面:數(shù)據(jù)格式的合法性:如接收到非預(yù)期格式的數(shù)據(jù)。包括接收的數(shù)據(jù)長度,類型,開始結(jié)束標志等。數(shù)據(jù)來源的合法性:如接收到非授權(quán)接口的數(shù)據(jù)。業(yè)務(wù)類型的合法性:如接收到接口指定業(yè)務(wù)類型外的接入請求。對于業(yè)務(wù)數(shù)據(jù)檢查中解析出非法數(shù)據(jù)應(yīng)提供以下幾種處理方式:事件報警:在出現(xiàn)異常情況時自動報警,以便系統(tǒng)管理員及時進行處理。分析原因:在出現(xiàn)異常情況時,可自動分析其出錯原因。如是數(shù)據(jù)來源非法和業(yè)務(wù)類型非法,本地記錄并做后續(xù)管理,如是數(shù)據(jù)格式非法,分析網(wǎng)絡(luò)傳輸原因或?qū)Χ藬?shù)據(jù)處理原因,并做相應(yīng)處理。統(tǒng)計分析:定期對所有的非法記錄做統(tǒng)計分析,分析非法數(shù)據(jù)的各種來源是否具有惡意,并做相應(yīng)處理。(7)接口的可擴展性規(guī)劃與設(shè)計各個端間的通信接口版本信息限定了各個系統(tǒng)平臺間交互的數(shù)據(jù)協(xié)議類型、特定版本發(fā)布的系統(tǒng)接口功能特征、特定功能的訪問參數(shù)等接口規(guī)格。通過接口協(xié)議的版本劃分,為客戶端升級、其他被集成系統(tǒng)的升級、以及系統(tǒng)的部署提供了較高的自由度和靈活性。系統(tǒng)可根據(jù)接口請求中包含的接口協(xié)議版本實現(xiàn)對接口的向下兼容。系統(tǒng)平臺可根據(jù)系統(tǒng)的集群策略,按協(xié)議版本分別部署,也可多版本并存部署。由于系統(tǒng)平臺可同時支持多版本的外部系統(tǒng)及客戶端應(yīng)用訪問系統(tǒng),特別是新版本客戶端發(fā)布時,不要求用戶強制升級,也可降低強制升級安裝包發(fā)布的幾率。從而支持系統(tǒng)的客戶端與系統(tǒng)平臺分離的持續(xù)演進。(8)系統(tǒng)性能優(yōu)化由于系統(tǒng)用戶數(shù)較大,覆蓋面廣,要求開發(fā)團隊具備豐富的Linux系統(tǒng)性能優(yōu)化經(jīng)驗,以保證系統(tǒng)的流暢性和穩(wěn)定性:一、影響Linux性能的各種因素1、系統(tǒng)硬件資源(1)CPU判斷多核CPU不超線程,消耗CPU的業(yè)務(wù)(2)內(nèi)存消耗內(nèi)存的業(yè)務(wù):內(nèi)存數(shù)據(jù)庫(redis/hbase/mongodb)(3)磁盤IO消耗磁盤的業(yè)務(wù):數(shù)據(jù)庫服務(wù)器(4)網(wǎng)絡(luò)帶寬消耗帶寬的業(yè)務(wù):hadoop平臺、視頻業(yè)務(wù)平臺2、操作系統(tǒng)相關(guān)資源(1)系統(tǒng)安裝優(yōu)化磁盤分區(qū)、RAID設(shè)置、swap設(shè)置(2)內(nèi)核參數(shù)優(yōu)化ulimit-n(最大打開文件數(shù))ulimit-u(最大用戶數(shù))(3)文件系統(tǒng)優(yōu)化讀操作頻繁,同時小文件眾多的應(yīng)用:首選ext4文件系統(tǒng),接下來依次是xfs、ext3。寫操作頻繁的應(yīng)用,首選是xfs,接下來依次是ext4和ext3對性能要求不高、數(shù)據(jù)安全要求不高的業(yè)務(wù),ext3是比較好的選擇。3、程序問題此類問題需要開發(fā)人員查看代碼,介入處理。但作為運維人員需要給出程序問題的有力證據(jù)。二、Linux性能優(yōu)化工具1、cpu性能評估工具利用vmstat命令可以對操作系統(tǒng)的內(nèi)存信息、進程狀態(tài)、CPU活勱等進行監(jiān)視。對上面每項的輸出解釋如下:●procsr列表示運行和等待cpu時間片的進程數(shù),這個值如果長期大于系統(tǒng)CPU的個數(shù),說明CPU不足,需要增加CPU。b列表示在等待資源的進程數(shù),比如正在等待I/O、或者內(nèi)存交換等。●memoryswpd列表示切換到內(nèi)存交換區(qū)的內(nèi)存數(shù)量(以k為單位)。如果swpd的值不為0,或者比較大,只要si、so的值長期為0,這種情況下一般不用擔心,不會影響系統(tǒng)性能。free列表示當前空閑的物理內(nèi)存數(shù)量(以k為單位)buff列表示bufferscache的內(nèi)存數(shù)量,一般對塊設(shè)備的讀寫才需要緩沖。cache列表示pagecached的內(nèi)存數(shù)量,一般作為文件系統(tǒng)cached,頻繁訪問的文件都會被cached,如果cache值較大,說明cached的文件數(shù)較多,如果此時IO中bi比較小,說明文件系統(tǒng)效率比較好。●swapsi列表示由磁盤調(diào)入內(nèi)存,也就是內(nèi)存進入內(nèi)存交換區(qū)的數(shù)量。so列表示由內(nèi)存調(diào)入磁盤,也就是內(nèi)存交換區(qū)進入內(nèi)存的數(shù)量。一般情況下,si、so的值都為0,如果si、so的值長期不為0,則表示系統(tǒng)內(nèi)存不足。需要增加系統(tǒng)內(nèi)存。●IO項顯示磁盤讀寫狀況Bi列表示從塊設(shè)備讀入數(shù)據(jù)的總量(即讀磁盤)(每秒kb)。Bo列表示寫入到塊設(shè)備的數(shù)據(jù)總量(即寫磁盤)(每秒kb)這里我們設(shè)置的bi+bo參考值為1000,如果超過1000,而且wa值較大,則表示系統(tǒng)磁盤IO有問題,應(yīng)該考慮提高磁盤的讀寫性能。●system顯示采集間隔內(nèi)發(fā)生的中斷數(shù)in列表示在某一時間間隔中觀測到的每秒設(shè)備中斷數(shù)。cs列表示每秒產(chǎn)生的上下文切換次數(shù)。上面這2個值越大,會看到由內(nèi)核消耗的CPU時間會越多。●CPU項顯示了CPU的使用狀態(tài)us列顯示了用戶進程消耗的CPU時間百分比。us的值比較高時,說明用戶進程消耗的cpu時間多,但是如果長期大于50%,就需要考慮優(yōu)化程序或算法。(3)uptime命令uptime是監(jiān)控系統(tǒng)性能最常用的一個命令,主要用來統(tǒng)計系統(tǒng)當前的運行狀況,輸出的信息依次為:系統(tǒng)現(xiàn)在的時間、系統(tǒng)從上次開機到現(xiàn)在運行了多長時間、系統(tǒng)目前有多少登陸用戶、系統(tǒng)在一分鐘內(nèi)、五分鐘內(nèi)、十五分鐘內(nèi)的平均負載。2、內(nèi)存性能評估(1)free命令free命令是監(jiān)控linux內(nèi)存使用狀況最常用的指令一般有這樣一個經(jīng)驗公式:應(yīng)用程序可用內(nèi)存/系統(tǒng)物理內(nèi)存>70%時,表示系統(tǒng)內(nèi)存資源非常充足,不影響系統(tǒng)性能,應(yīng)用程序可用內(nèi)存/系統(tǒng)物理內(nèi)存<20%時,表示系統(tǒng)內(nèi)存資源緊缺,需要增加系統(tǒng)內(nèi)存,20%<應(yīng)用程序可用內(nèi)存/系統(tǒng)物理內(nèi)存<70%時,表示系統(tǒng)內(nèi)存資源基本能滿足應(yīng)用需求,暫時不影響系統(tǒng)性能。(2)sar/pidstat此兩個命令主要用于監(jiān)控全部或指定進程占用系統(tǒng)資源的情況,如CPU,內(nèi)存、設(shè)備。3、磁盤性能評估通過“iostat–d”命令組合也可以查看系統(tǒng)磁盤的使用狀況,并分析輸出。4、網(wǎng)絡(luò)性能評估(1)ping命令(2)netstat命令(3)mtr/traceroute命令跟蹤網(wǎng)絡(luò)路由狀態(tài),推薦使用mtr,勱態(tài)跟蹤網(wǎng)絡(luò)路由,用于排除網(wǎng)絡(luò)問題非常方便。三、系統(tǒng)性能分析標準
第二節(jié)、方案整體設(shè)計1.項目概述為了更好地踐行教育信息化、教育資源數(shù)字化建設(shè),人教數(shù)字出版有限公司(以下簡稱數(shù)字公司)依托人民教育出版社深耕數(shù)字教材市場,按照“服務(wù)至上、示范引領(lǐng)、安全運行”的工作要求和思路推出“人教口語”這款面向中小學英語垂直學科的數(shù)字化資源應(yīng)用。應(yīng)不斷增長的用戶人數(shù)和使用需求,數(shù)字公司需要對人教口語app及相關(guān)業(yè)務(wù)系統(tǒng)進行升級維護和部分產(chǎn)品功能開發(fā),因此開展人教口語app七期技術(shù)委托開發(fā)的招標工作。人教口語app的開發(fā)范圍涉及iOS、android、鴻蒙系統(tǒng)的移動設(shè)備(包含手機和平板電腦),以及PC端的人教口語運營管理系統(tǒng)。2.項目總體實施原則1.承建方成立領(lǐng)導親自掛帥的項目小組,在調(diào)研、設(shè)計、編碼、安裝調(diào)試、測試、培訓、運行、驗收、售后服務(wù)等項目的各個階段,配合系統(tǒng)開發(fā)方的工作,一方面可以培訓自己的技術(shù)維護隊伍,為系統(tǒng)的使用保駕護航;另一方面,在開發(fā)過程中,協(xié)調(diào)用戶方和承建方的關(guān)系,保證項目的順利進行,及時發(fā)現(xiàn)問題,并對項目進度和質(zhì)量進行監(jiān)督。2.采用“兩手抓”的方針,一手抓開發(fā)、一手抓使用對于軟件項目,之所以稱為一個工程,很大程度上是因為軟件項目的建設(shè),除了技術(shù)因素外,還有很多的非技術(shù)因素需要考慮,并且必須被得到重視。衡量一個軟件項目是否成功,很大程度上不是看這個軟件項目采用了多么先進的技術(shù),而是軟件對用戶來說是否實用,是否能夠幫助用戶解決許多預(yù)期的問題。國內(nèi)很多軟件項目的失敗,很大程度上是使用抓得不夠。建議在項目的試運行過程中,在抓系統(tǒng)維護的同時,也要狠抓系統(tǒng)的使用,開發(fā)方和用戶方齊心協(xié)力幫助業(yè)務(wù)人員從原來的手工處理轉(zhuǎn)到計算機輔助處理上來,在業(yè)務(wù)人員適應(yīng)計算機輔助業(yè)務(wù)處理的過程中,盡可能早發(fā)現(xiàn)系統(tǒng)中存在的問題,從而最大可能地使系統(tǒng)保質(zhì)保量的按時完成。3.數(shù)據(jù)同程序同等重要該系統(tǒng)的建設(shè),數(shù)據(jù)位于首要的地位,程序的編寫完成,僅僅意味著系統(tǒng)完成了一半,數(shù)據(jù)的收集、整理、錄入,對系統(tǒng)的建設(shè)來說同等重要。在項目實施過程中,一定要重視系統(tǒng)中數(shù)據(jù)的錄入工作,充分估計數(shù)據(jù)處理的難度,在系統(tǒng)建設(shè)之初,就將數(shù)據(jù)工作提到議事日程上來,安排相應(yīng)的資金、時間等,將數(shù)據(jù)工作落到實處,只有這樣才能爭取系統(tǒng)早日達到實用化。3.項目總體推進計劃為了有效地保證系統(tǒng)開發(fā)的質(zhì)量,整個系統(tǒng)建設(shè)的全過程劃分為準備、設(shè)計、開發(fā)、實施和運行階段,每個階段完成相應(yīng)的任務(wù),確保信息系統(tǒng)的建設(shè)。軟件安裝完成并確認可在系統(tǒng)正常運行后,開始相關(guān)業(yè)務(wù)人員的培訓;在培訓開始之前需要由雙方協(xié)商形成《培訓計劃》,明確培訓環(huán)境、條件及方式,參加人員,課程課時等詳細內(nèi)容,由雙方現(xiàn)場實施負責人簽字后生效,并分別開始著手準備,在既定時間內(nèi)完成。4.項目總體設(shè)計原則(1)建立規(guī)范保證設(shè)計的一致性對內(nèi)部:多個設(shè)計師合作,依然能保證設(shè)計風格的統(tǒng)一。對用戶:提高用戶體驗,提高操作效率,加深對產(chǎn)品的記憶。提高開發(fā)效率與前端有效溝通的工具,提高設(shè)計還原度,降低對接成本。開發(fā)可以建立公共組件庫,極大的提高了開發(fā)效率。方便產(chǎn)品迭代隨著產(chǎn)品的業(yè)務(wù)變化,發(fā)現(xiàn)一些問題或者需要優(yōu)化用戶體驗的時候,針對單個控件進行調(diào)整,就可以影響全局,十分便捷。(2)字體規(guī)范文字是App中最核心的元素之一,產(chǎn)品傳達給用戶的內(nèi)容。字體有無襯線字體和襯線字體。無論iOS還是Android系統(tǒng),它們都有內(nèi)置的默認字體可供設(shè)計師使用。用心處理好字號大小、字體顏色與字體間距的處理上。用戶界面設(shè)計中,字體是界面設(shè)計中的基本元素。設(shè)計師要設(shè)計好界面中的字體顏色、字體間距、字號的大小、字重等思考。蘋果系統(tǒng)中默認的字體是:蘋方字體。英文字體和數(shù)字字體是:舊金山字體,SanFrancisco字體。其中數(shù)字字體比較好的字體可以用:Dinner字體。安卓系統(tǒng)默認的中文字體是:思源黑體。
英文字體是:Roboto字體。界面設(shè)計中的字體設(shè)計規(guī)范,如下圖所示。(3)設(shè)計原則為了最大限度地提高影響力和影響范圍,請在想象應(yīng)用程序的身份時牢記以下原則。審美完整性審美完整性表示應(yīng)用程序的外觀和行為與其功能的集成程度。例如,一個可以幫助人們執(zhí)行重要任務(wù)的應(yīng)用程序可以通過使用微妙,醒目的圖形,標準控件和可預(yù)測的行為來使他們專注。另一方面,沉浸式應(yīng)用程序(例如游戲)可以提供引人入勝的外觀,帶來樂趣和刺激,同時鼓勵發(fā)現(xiàn)。一致性一致的應(yīng)用程序通過使用系統(tǒng)提供的界面元素,知名的圖標,標準的文本樣式和統(tǒng)一的術(shù)語來實現(xiàn)熟悉的標準和范例。該應(yīng)用程序以人們期望的方式結(jié)合了功能和行為。直接操縱屏幕內(nèi)容的直接操作可以吸引人們并促進理解。用戶在旋轉(zhuǎn)設(shè)備或使用手勢來影響屏幕內(nèi)容時會經(jīng)歷直接的操縱。通過直接操作,他們可以看到其操作的直接可見結(jié)果。反饋反饋確認行動并顯示結(jié)果,以使人們了解情況。內(nèi)置的iOS應(yīng)用程序可響應(yīng)每個用戶操作提供可感知的反饋。輕觸時,交互元素將突出顯示,進度指示器傳達長時間運行的操作的狀態(tài),動畫和聲音有助于闡明操作的結(jié)果。隱喻當應(yīng)用程序的虛擬對象和動作是扎根于現(xiàn)實世界或數(shù)字世界的隱喻時,人們會更快地學習。隱喻在iOS中可以很好地工作,因為人們可以與屏幕進行物理交互。他們將視圖移開以隱藏下面的內(nèi)容。他們拖動和滑動內(nèi)容。他們切換開關(guān),移動滑塊并滾動選擇器值。他們甚至瀏覽書籍和雜志的頁面。
(4)組建規(guī)范ios系統(tǒng)和安卓系統(tǒng)都提供了一些固定的官方組件規(guī)范。遵循其官方組件規(guī)范,可以極大提高設(shè)計和開發(fā)效率,同時降低用戶的學習成本。其中最常見的規(guī)范化組件包括頂部的狀態(tài)欄、導航欄、底部標簽欄和工具欄。狀態(tài)欄ios是20pt,安卓是24dp.導航欄ios是44pt,安卓是56dp.標簽欄ios的高度是49pt,安卓標簽欄的高度是48dp.工具欄工具欄的高度是44pt,安卓是48dp.字體是蘋方字體;英文是SF英文字體。思源黑體,roboto英文字體。ios設(shè)計是11pt到29pt左右,一級主題是24pt以上,二級標題是20pt左右。內(nèi)容,導航欄標題是18pt。三級標題是16pt。文字內(nèi)容一般是14pt品類區(qū)圖標內(nèi)容:12pt。底部TAB圖標文字:10pt到11pt5.項目建設(shè)思路在保證基礎(chǔ)的業(yè)務(wù)流程合規(guī),數(shù)據(jù)安全的前提下,根據(jù)業(yè)務(wù)需求及客戶群體特征,盡量簡化操作流程。根據(jù)項目要求該平臺系統(tǒng)須以源碼方式部署到項目服務(wù)器上,通過已部署成功的后臺系統(tǒng),配置iOS、Android、鴻蒙系統(tǒng)移動設(shè)備(包含手機和平板電腦)相關(guān)參數(shù)實現(xiàn)與前端聯(lián)通調(diào)用。6.項目實施策略通過業(yè)務(wù)咨詢、產(chǎn)品培訓、系統(tǒng)操作的形式分析本次招標范圍內(nèi)的需求,分析差異性需求,根據(jù)差異化需求的情況,我們采取產(chǎn)品功能升級與個性化需求開發(fā)的模式進行處理,既確保了產(chǎn)品的成熟度和穩(wěn)定性,有兼顧了個性化需求,通過敏捷開發(fā)模式,快速迭代保障項目按時、高質(zhì)量的上線運行。在項目中,需要多方共同努力,發(fā)起方和實施方作為一個整體,確定共同的項目目標,同時需要良好的溝通和配合,相互協(xié)調(diào),才可能及時發(fā)現(xiàn)問題,及時糾偏,逐步實現(xiàn)確立的項目目標。為此,必須制定確實可行的、清晰的實施策略,以及各階段的實施方法,用于指導項目計劃的制定、資源的搭配。項目成功實施的關(guān)鍵因素:明確的項目關(guān)系界定,包括:項目實施中的授權(quán)和職責。項目管理機構(gòu)項目管理辦公室ProjectManagementOffice(PMO)作為本項目的管理機構(gòu),管理項目的日常活動,保證本項目的有效實施和最終成功上線,由項目發(fā)起方和實施方共同組成,負責整個項目的目標確定、計劃、控制和實施,制定文檔、問題管理、風險控制、質(zhì)量控制、評審和報告的標準和過程,同時還需要一個項目指導委員會ProjectSteeringCommittee(PSC),負責需求管理、系統(tǒng)架構(gòu)、技術(shù)設(shè)計、接口設(shè)計規(guī)范、技術(shù)開發(fā)規(guī)范、系統(tǒng)性能和可靠性設(shè)計、問題解決、系統(tǒng)支持等。完善有效的項目管理架構(gòu),成立項目指導委員會ProjectSteeringCommittee(PSC),主要由項目總監(jiān)、項目經(jīng)理、咨詢顧問、項目管理辦公室成員(PMO)組成,PSC將擁有最終決定項目范圍、實施優(yōu)先級、資源分配、重要決策,以及處理項目間關(guān)系的權(quán)力;任何問題和沖突必須通過項目執(zhí)行委員會ProjectWorkingCommittee(PWC)提交PSC統(tǒng)一決策,PWC主要包括項目總監(jiān)、項目顧問和所有項目經(jīng)理;PWC在PMO的領(lǐng)導下、在PSC的指導下,負責整個項目的實施過程。
第三節(jié)、系統(tǒng)功能1.平臺整體架構(gòu)圖2.平臺總體功能圖
3.功能設(shè)計原則(1)單一職責原則(LSP)單一職責原則的含義是:只能讓一個類有且只有一個職責,因為如果有兩個職責,當職責1發(fā)生改變,需要修改這個類的代碼時,這個修改有可能會導致職責2的運行發(fā)生問題。單一職責的優(yōu)點是分類清晰,適用于接口、類、方法,一個類一個方法只完成一件事情,避免了代碼耦合出現(xiàn)的問題。但是分得太細又會人為地增加系統(tǒng)的復雜性,為開發(fā)制造了麻煩。(2)里氏替換原則(LSP)里氏替換原則針對的是有繼承關(guān)系的子類和父類,為了減少繼承的弊端而生,含義是只要有父親出現(xiàn)的地方子類就可以出現(xiàn),并且替換為子類也不會有任何錯誤(相反父親未必就能完美替換子類)。為了達成這個目的,子類就必須要實現(xiàn)父類的所有方法,即父類的方法必須是子類全部需要的、在調(diào)用時,必須使用父親/接口、子類可以有自己的個性、實現(xiàn)父類的方法時輸入?yún)?shù)可以被放大、實現(xiàn)父類的輸出結(jié)果時結(jié)果可以縮小。里氏替換的優(yōu)點是讓繼承得到最大作用發(fā)揮,并減少繼承的弊端,缺點是不太靈活。(3)依賴倒置原則(DIP)依賴倒置原則的定義是,實現(xiàn)類之間不發(fā)生直接的依賴關(guān)系,其依賴關(guān)系是通過接口或抽象類產(chǎn)生的,也就是面向接口編程。依賴倒置原則的優(yōu)點是,通過接口使各個類或模塊彼此間獨立,不相互影響,實現(xiàn)模塊之間的松耦合。缺點是增加了額外維護接口和類的工作量。(4)接口隔離原則(ISP)接口隔離的原則是,建立單一的接口,不要建立龐大臃腫的接口,盡量細化接口,接口中的方法盡量少。每個模塊都應(yīng)該是單一的接口,提供給幾個模塊就應(yīng)該有幾個接口,也就是接口模塊化、獨立化。與單一職責原則不一樣,單一職責原則中,一個接口可以有多個方法,這多個方法提供給多個模塊訪問,而接口隔離原則則是倡導一個模塊使用一個一個接口,而不是所有的方法都放在同一個接口中。這樣的設(shè)計原則雖然可以讓系統(tǒng)內(nèi)聚提高,但是也增加了結(jié)構(gòu)的復雜化,導致開發(fā)難度增加。(5)迪米特法則(LOD)迪米特法則又稱最少知道法則,也就是一個對象應(yīng)該對其他對象有最少的理解,即一個類應(yīng)該對自己需要耦合或需要調(diào)用的類知道的最少。可以降低系統(tǒng)之間的耦合,提高系統(tǒng)的健壯性。在下面這個例子中,明星類和粉絲類要發(fā)生通信,就需要一個經(jīng)紀人的中間類,從而達到了最少知道法則。這樣雖然能降低耦合度,但是也大大提高了系統(tǒng)復雜性。(6)開閉原則(OCP)開閉原則也就是,軟件實體(類、模塊、方法)應(yīng)該對擴展開發(fā),對修改關(guān)閉,也就是軟件需要變化時,盡量通過拓展軟件實體的行為來實現(xiàn),而不是修改已有的代碼。開閉原則是面向?qū)ο笤O(shè)計的終極目標,其他原則可以看做是開閉原則的實現(xiàn)方法。
4.功能安全性設(shè)計(1)“嚴禁”原則嚴禁使用明文或在程序/腳本文件中寫死密碼應(yīng)用系統(tǒng)中涉及的任何密碼,均嚴禁使用明文,并嚴禁將密碼寫在代碼/腳本文件中。嚴禁在網(wǎng)頁源碼中暴露應(yīng)用處理邏輯嚴禁在網(wǎng)頁源代碼中出現(xiàn)類似SQL、腳本、條件判斷等應(yīng)用處理邏輯。嚴禁在超鏈接中出現(xiàn)參數(shù)信息嚴禁基于Web的應(yīng)用將數(shù)據(jù)庫連接用戶、密碼等重要參數(shù)信息放在超鏈接中,超鏈接中參數(shù)信息、服務(wù)調(diào)用信息應(yīng)進行變形(亂碼)或者隱藏,以防止SQL注入攻擊,避免黑客猜測數(shù)據(jù)庫表結(jié)構(gòu)、數(shù)據(jù)庫連接用戶和密碼。嚴禁應(yīng)用系統(tǒng)設(shè)計留有“后門”嚴禁以維護、技術(shù)支持或者特殊操作為由,設(shè)計違反或者繞過安全規(guī)則的任何類型的入口和設(shè)計文檔中未說明的任何模式的隱藏入口。(2)必須原則必須提供應(yīng)用系統(tǒng)用戶的身份識別功能身份識別是信息安全服務(wù)的基礎(chǔ),基本原則是要做到用戶區(qū)分的唯一性,認證是基于身份識別的,身份識別最常見的形式就是用戶ID,與密碼組合標識一個用戶身份。必須對密碼加密密碼分為交易密碼和用戶登錄密碼等。應(yīng)用系統(tǒng)應(yīng)對交易密碼的全部使用環(huán)節(jié)進行硬加密,包括密碼的產(chǎn)生、密碼錄入、密碼修改、密碼的傳輸、密碼的保存。應(yīng)用系統(tǒng)應(yīng)支持聯(lián)機密鑰修改,避免加密設(shè)備密鑰變更對應(yīng)用系統(tǒng)正常運行的影響。應(yīng)用系統(tǒng)應(yīng)對系統(tǒng)的使用用戶密碼進行加密(可以是軟加密),包括密碼的產(chǎn)生、密碼錄入、密碼修改、密碼的傳輸、密碼的保存。軟加密時應(yīng)確保軟加密算法具有足夠的強度,并且確保密鑰存儲安全,對密鑰的訪問應(yīng)嚴格控制。同時,還應(yīng)采取必要的措施,確保軟加密算法的安全。必須保證密碼安全傳遞應(yīng)用系統(tǒng)應(yīng)建立完善的密碼傳遞機制,如采用硬件轉(zhuǎn)加密、密碼信封等方式,確保密碼在系統(tǒng)和使用用戶(人)之間的安全傳遞。必須保證密碼強度應(yīng)用系統(tǒng)必須設(shè)計密碼強度檢查機制,密碼錯誤次數(shù)限制等措施,避免用戶使用簡單密碼,防止黑客對密碼進行暴力破解。必須提供用戶賬戶鎖定功能當用戶帳戶幾次登錄嘗試失敗后,必須禁用該帳戶并將事件寫入日志。同時必須提供用戶帳戶解鎖功能。必須在設(shè)計階段將這些策略明確下來。必須支持密碼有效期密碼不應(yīng)固定不變。作為常規(guī)密碼維護的一部分,通過設(shè)置密碼有效期強制應(yīng)用系統(tǒng)用戶對密碼進行定期更改。在應(yīng)用程序設(shè)計階段,必須考慮提供這種類型的功能。必須對前端輸入信息進行驗證將輸入驗證策略作為應(yīng)用程序設(shè)計的核心要素。應(yīng)假定所有的輸入都是惡意的,不要依賴于客戶端的驗證,雖然使用客戶端驗證可以減少客戶端和服務(wù)器之間的信息傳遞次數(shù)。要做到限制、拒絕或者凈化輸入,輸入驗證的首選方法是從開始就限制允許輸入的內(nèi)容。按照已知的有效類型、模式和范圍驗證數(shù)據(jù)要比通過查找已知有害字符的數(shù)據(jù)驗證方法容易。設(shè)計應(yīng)用程序時,應(yīng)了解應(yīng)用程序需要輸入什么內(nèi)容。與潛在的惡意輸入相比,有效數(shù)據(jù)的范圍通常是更為有限的集合。為了使防御更為徹底,可能還需要拒絕已知的有害輸入,達到凈化輸入的效果。(3)盡可能原則盡可能實現(xiàn)用戶的權(quán)限最小化應(yīng)用用戶的權(quán)限最小化,控制應(yīng)用用戶對文件、數(shù)據(jù)的訪問,記錄并統(tǒng)計登錄歷史;對重要信息資源設(shè)置敏感標記并控制對設(shè)置敏感標記資源的操作。盡可能具有防木馬程序設(shè)計應(yīng)用系統(tǒng)盡可能設(shè)計必要的措施防止木馬程序?qū)γ艽a的截取。盡可能使用成熟穩(wěn)定版本的軟件或者工具軟件產(chǎn)品或者工具升級換代非常的迅速,雖然新的版本會帶來很多功能上的提升,但是也可能隱藏著新的缺陷。所以盡可能在功能滿足的情況下使用經(jīng)過驗證的成熟穩(wěn)定的版本。盡可能保證關(guān)鍵信息安全傳遞應(yīng)用系統(tǒng)盡可能完善各種關(guān)鍵信息(例如:磁道信息、卡片校驗碼、制卡文件等)傳遞機制,如采用硬件轉(zhuǎn)加密、密碼信封等方式,確保關(guān)鍵信息在系統(tǒng)和使用用戶(人)之間的安全傳遞。盡可能提供安全審計功能在應(yīng)用系統(tǒng)中發(fā)生的各種與安全相關(guān)的事件,應(yīng)盡可能記錄下來。審計記錄應(yīng)包括安全事件的主體、客體、時間、事件類型、事件內(nèi)容、事件結(jié)果等內(nèi)容。應(yīng)提供審計記錄查詢、分類、分析和存儲保護;能對特定安全事件進行報警;確保審計記錄不被破壞或非授權(quán)訪問。應(yīng)為安全管理中心提供接口;對不能由系統(tǒng)獨立處理的安全事件,提供由授權(quán)主體調(diào)用的接口。并提供審計功能的啟動和關(guān)閉功能。
5.總體設(shè)計階段項目開發(fā)組通過對系統(tǒng)的功能、運行和性能要求加以分析,產(chǎn)生一個高層次的系統(tǒng)結(jié)構(gòu)、軟件結(jié)構(gòu)、接口和數(shù)據(jù)格式的設(shè)計,并向工程領(lǐng)導小組提交《系統(tǒng)設(shè)計報告》(其中包括數(shù)據(jù)庫設(shè)計),組織評審并簽署評審意見。對其中評審不合格的部分進一步完善和重新策劃,評審通過后由雙方共同簽署評審意見,并正式生效,作為后續(xù)軟件開發(fā)和測試的基礎(chǔ)。該報告內(nèi)容的變更由雙方的現(xiàn)場實施負責人、技術(shù)負責人進行交流即可確定,并需向工程領(lǐng)導小組匯報。6.詳細設(shè)計階段項目開發(fā)組在系統(tǒng)設(shè)計報告的基礎(chǔ)上,對功能和性能要求進一步加以分析和細化并且把軟件的詳細設(shè)計文檔化,向工程領(lǐng)導小組提交系統(tǒng)詳細設(shè)計報告,并由項目組組織評審并簽署評審意見。對其中評審不合格的部分進一步完善和重新策劃,評審通過后由雙方共同簽署評審意見,并正式生效,作為后續(xù)軟件開發(fā)和測試的基礎(chǔ)。該報告內(nèi)容的變更由雙方的現(xiàn)場實施負責人、技術(shù)負責人進行交流即可確定,并需向工程領(lǐng)導小組匯報。7.系統(tǒng)開發(fā)階段為了使用戶能夠及時獲知項目的進展情況,開發(fā)小組需要每周向用戶相關(guān)領(lǐng)導提交《項目客戶周報》,用戶項目組可以隨時對項目的工作情況進行檢查。8.系統(tǒng)實施和試運行階段首先需要經(jīng)雙方交流協(xié)調(diào),形成《項目實施計劃》,確定現(xiàn)場實施的準備工作、人員和日程安排、培訓計劃、階段目標等內(nèi)容,經(jīng)雙方負責人簽字后生效,按此計劃開始現(xiàn)場實施。正式開始現(xiàn)場實施前項目開發(fā)組應(yīng)檢查所有必要的準備工作是否已經(jīng)完成。9.項目驗收階段在試運行期內(nèi)系統(tǒng)存在一定的細節(jié)性問題是工程項目不可避免的問題,特別是隨著用戶應(yīng)用的逐漸深入,此類需求會逐級提出,此類問題不屬于系統(tǒng)的致命性錯誤;因此當試運行期內(nèi)所發(fā)現(xiàn)的真正的“問題和錯誤”收斂到一定數(shù)目以下時,各業(yè)務(wù)子系統(tǒng)經(jīng)過一段時間的并行工作新系統(tǒng)已基本可靠,就可以切換到正式運行階段,開始正式運行。正式運行后,由用戶提出驗收要求,雙方共同制定《項目驗收計劃》,組成項目驗收小組,共同進行項目驗收。維護期的具體工作方式請見售后服務(wù)承諾部分,所有維護工作,包括軟件出現(xiàn)問題修改、細節(jié)性功能的增強,用戶都要以《問題及修改記錄》的書面形式提交給公司,修改完成后用戶應(yīng)組織相關(guān)的業(yè)務(wù)負責人進行確認,并在《功能清單》中說明;如遇緊急情況可事后補齊。項目驗收分為功能驗收和非功能驗收,具體如下:(1)功能驗收標準系統(tǒng)各項功能運行穩(wěn)定,數(shù)據(jù)處理正確。確保應(yīng)用軟件和開發(fā)工具符合知識產(chǎn)權(quán)相關(guān)政策法規(guī)的要求,數(shù)據(jù)處理符合信息安全的要求。(2)非功能驗收標準參照需求規(guī)格說明書中的要求,系統(tǒng)各項功能運行穩(wěn)定,數(shù)據(jù)處理正確。
(3)分類標準錯誤級別描述A系統(tǒng)的主要功能模塊無法正常工作系統(tǒng)與外圍系統(tǒng)的數(shù)據(jù)傳輸接口無法正常工作,或數(shù)據(jù)不正確系統(tǒng)的重要數(shù)據(jù)處理結(jié)果不正確系統(tǒng)整體運行不穩(wěn)定系統(tǒng)主要功能模塊或渠道缺失,但雙方達成一致協(xié)議的除外系統(tǒng)不符監(jiān)管、內(nèi)控、保安需求B系統(tǒng)主要功能模塊或渠道功能不完善系統(tǒng)部分非主要交易無法正常工作系統(tǒng)與外圍系統(tǒng)的數(shù)據(jù)傳輸接口工作不穩(wěn)定C系統(tǒng)個別交易無法正常工作或處理結(jié)果錯誤,但可通過其他替代辦法進行處理,不影響業(yè)務(wù)的正常進行因系統(tǒng)設(shè)計原因造成系統(tǒng)個別交易運行效率低D系統(tǒng)在某種情況下才出現(xiàn)的錯誤,且不影響正常的業(yè)務(wù)操作功能錯誤級別分類功能驗收標準驗收結(jié)果功能驗收錯誤情況描述(允許錯誤個數(shù))ABCD合格0000基本合格性能測試驗收(錯誤可進行后續(xù)解決和完善)0<=3<=20<=30最終驗收00<=10<=20不合格除以上兩種情況外的其他情況(一)驗收標準1.功能測試:對招標文件中的服務(wù)內(nèi)容進行測試,所有功能均可正常使用;2.業(yè)務(wù)流程測試:針對該平臺典型的業(yè)務(wù)(優(yōu)惠劵的領(lǐng)取、查詢、核銷)進行測試;3.易用性測試:軟件中各個模塊的界面風格保持一致。(二)驗收資料1.項目驗收申請報告;2.操作手冊及使用手冊;3.源代碼及安裝說明。在服務(wù)過程中供應(yīng)商須對行方的一切有關(guān)信息進行保密。
第四節(jié)、系統(tǒng)性能1.核心設(shè)計原則核心設(shè)計原則:系統(tǒng)各功能模塊化程度高,獨立性強,能夠方便快捷地進行功能擴展;系統(tǒng)界面全部符合招標文件技術(shù)文件的要求;系統(tǒng)能夠穩(wěn)定、快速的運行;體現(xiàn)系統(tǒng)健壯性強,數(shù)據(jù)安全性高,符合教育部安全等保要求;系統(tǒng)具備完善的數(shù)字版權(quán)保護能力;開發(fā)技術(shù)能夠兼容各種操作系統(tǒng)和多種硬件設(shè)備,具備新老系統(tǒng)和設(shè)備的兼容能力等。建設(shè)后的系統(tǒng)應(yīng)具備合理性、規(guī)范性、先進性、前瞻性、安全性、高效性、實用性、可靠性、靈活性、擴展性、穩(wěn)定性、可維護性等性能。(1)功能性與一組功能及其指定的性質(zhì)有關(guān)的一組屬性,具體包括:適合性:與規(guī)定任務(wù)能否提供一組功能以及這組功能的適合程度有關(guān)的軟件屬性。準確性:與能否得到正確或相符的結(jié)果或效果有關(guān)的軟件屬性。互用性:與同其他指定系統(tǒng)進行交互的能力有關(guān)的軟件屬性。依從性:使軟件遵循有關(guān)的標準,約定,法規(guī)及類似規(guī)定的軟件屬性。安全性:與防止對程序及數(shù)據(jù)的非授權(quán)的故意或意外訪問的能力有關(guān)的軟件屬性.充分考慮系統(tǒng)的安全防護,具備較強的數(shù)據(jù)管理機制和控制能力。系統(tǒng)充分考慮與外部系統(tǒng)之間的接口,實現(xiàn)系統(tǒng)的集成應(yīng)用。同時,系統(tǒng)采用開放型的應(yīng)用接口,具有靈活的擴充性,滿足業(yè)務(wù)系統(tǒng)的整合需要。(2)可靠性與在規(guī)定的一段時間和條件下,軟件維持其性能水平的能力有關(guān)的一組屬性,具體包括:成熟性:與由軟件故障引起失效的頻度有關(guān)的軟件屬性。容錯性:與在軟件故障或違反指定接口的情況下,維持規(guī)定的性能水平的能力有關(guān)的軟件屬性。易恢復性:與在失效發(fā)生后,重建其性能水平并恢復直接受影響數(shù)據(jù)的能力以及為達此目的所需的時間和能力有關(guān)的軟件屬性充分考慮性價比。系統(tǒng)采用具有平臺無關(guān)性、安全性、網(wǎng)絡(luò)移動性好的基于JAVA語言,有嚴格的安全控制機制,可以確保系統(tǒng)的健壯、安全可靠;在網(wǎng)絡(luò)上,保證內(nèi)部系統(tǒng)的數(shù)據(jù)不被非法用戶所獲取。在應(yīng)用軟件的設(shè)計上,強化權(quán)限管理功能,具有多級安全機制。通過對各級部門、人員的權(quán)限分配,做到所有人員只能查看與自己相關(guān)的數(shù)據(jù),并建立完善的日志管理,做到所有操作都有據(jù)可查。(3)可操作性與一組規(guī)定或潛在的用戶為使用軟件所需作的努力和對這樣的使用所作用的評價有關(guān)的一組屬性,具體包括:易理解性:與用戶為認識邏輯概念及其應(yīng)用范圍所花的努力有關(guān)的軟件屬性。易學性:與用戶為學習軟件應(yīng)用所花的努力有關(guān)的軟件屬性。易操作性:與用戶為操作和運行控制所花努力有關(guān)的軟件屬性。軟件設(shè)計功能合理、應(yīng)用合理、操作性合理。在操作上,結(jié)合使用人員業(yè)務(wù)操作習慣,界面友好、方便使用。保證各級操作人員能夠迅速掌握、簡單易用。(4)高效性與在規(guī)定的條件下,軟件的性能水平與所使用的資源量之間關(guān)系有關(guān)的一組屬性,具體包括:時間特性:與軟件執(zhí)行其功能時響應(yīng)和處理時間以及吞吐量有關(guān)的軟件屬性.資源特性:與在軟件執(zhí)行其功能時所使用的資源數(shù)量及其使用時間有關(guān)的軟件屬性。(5)可維護性與進行指定的修改所需的努力有關(guān)的一組屬性,具體包括:易分析性:與為診斷缺陷或失效原因急為判定待修改的部分所需努力有關(guān)的軟件屬性.易改變性:與進行修改,排除錯誤或適應(yīng)環(huán)境變化所需努力有關(guān)的軟件屬性。穩(wěn)定性:與修改所造成的未預(yù)料結(jié)果的風險有關(guān)的軟件屬性。易測試性:與確認已修改軟件所需的努力有關(guān)的軟件屬性。系統(tǒng)應(yīng)用軟件統(tǒng)一安裝在組織機構(gòu)管理服務(wù)器上,當發(fā)生系統(tǒng)的重安裝、升級等情況時,只需維護根服務(wù)器的軟件系統(tǒng),客戶端實現(xiàn)零維護,大大降低維護成本。同時,如果下屬部門、人員出現(xiàn)不懂的業(yè)務(wù)處理、軟件操作等情況時,無須到現(xiàn)場處理,只需在系統(tǒng)中授權(quán),就可以在服務(wù)器完成相應(yīng)的操作。(6)可擴展性與軟件可從某一環(huán)境轉(zhuǎn)移到另一個環(huán)境的能力有關(guān)的一組屬性,具體包括:適應(yīng)性:與軟件無需采用有別于為該軟件準備的活動或手段就可能適應(yīng)不同的規(guī)定環(huán)境有關(guān)的軟件屬性。易安裝性:與在指定環(huán)境下安裝軟件所需努力有關(guān)的軟件屬性。遵循性:使軟件遵循與可移植性有關(guān)的標準或約定的軟件屬性。易替換性:與軟件在該軟件環(huán)境中用來替代指定的其他軟件的機會和努力有關(guān)的軟件屬性.應(yīng)考慮未來業(yè)務(wù)的發(fā)展和管理的變化,根據(jù)業(yè)務(wù)量和業(yè)務(wù)擴展情況能夠靈活部署主機設(shè)備,以支持冗余和負載均衡,滿足未來風險預(yù)警管理系統(tǒng)變化的需要。(7)標準化本項目涉及到的各個系統(tǒng)模塊設(shè)計、系統(tǒng)性能、代碼編寫等應(yīng)符合中國有關(guān)軟件項目的標準化的要求:1.軟件開發(fā)過程中作業(yè)標準化;2.確定每個作業(yè)的表示形式;3.確定每個文檔資料的格式;4.規(guī)定組符號;5.根據(jù)軟件開發(fā)經(jīng)驗,制定出大家能夠接受的開發(fā)原則和進度。整個系統(tǒng)的應(yīng)用設(shè)計需符合業(yè)界標準,業(yè)務(wù)、功能、界面、內(nèi)容需保持高度統(tǒng)一性和標準性,從而達到服務(wù)的規(guī)范化和管理的高效性。(8)規(guī)范性代碼命名風格、常量定義、代碼格式、控制語言、注釋規(guī)范符合業(yè)界標準。采用成熟的軟硬件平臺和技術(shù),并符合IT設(shè)計原則。采用行業(yè)標準技術(shù),采用可擴展的系統(tǒng)架構(gòu),開放式語言。按照客戶信息化規(guī)劃統(tǒng)一設(shè)計系統(tǒng)結(jié)構(gòu),特別是應(yīng)用系統(tǒng)建設(shè)結(jié)構(gòu)、數(shù)據(jù)模型結(jié)構(gòu)、數(shù)據(jù)存儲結(jié)構(gòu)以及系統(tǒng)擴展規(guī)劃等內(nèi)容,從規(guī)劃的全局出發(fā)、從長遠的角度考慮。(9)先進性技術(shù)水平要保證先進性,符合當代信息技術(shù)發(fā)展形勢,代表當前計算機科學的發(fā)展方向。所選擇的各平臺供應(yīng)商應(yīng)有能力對該項進行持續(xù)開發(fā),可以保證該項技術(shù)不斷地更新并可順利升級而維持系統(tǒng)的先進性。提供良好的技術(shù)支持和技術(shù)服務(wù),以滿足當前的業(yè)務(wù)需求,使業(yè)務(wù)或生產(chǎn)系統(tǒng)具有較強的運作能力。技術(shù)上采用網(wǎng)絡(luò)計算技術(shù)和分布處理模式,保證技術(shù)上的先進性和前瞻性。采用國際最新的科技成果,從而保證整個系統(tǒng)在整體技術(shù)架構(gòu)上處于領(lǐng)先地位,系統(tǒng)在建成后幾年內(nèi)不應(yīng)由于技術(shù)原因而進行較大的調(diào)整,可通過升級保持系統(tǒng)的先進性,延長其生命周期,同時又要保證先進的技術(shù)是穩(wěn)定的、成熟的。考慮在大量用戶并行的情況下,系統(tǒng)整體運行穩(wěn)定、快速、高效。(10)前瞻性整體設(shè)計應(yīng)具有創(chuàng)新性,考慮未來業(yè)務(wù)發(fā)展的要求,對于法規(guī)政策的變動對業(yè)務(wù)的影響有充分的認知和考慮。便于支持行內(nèi)科技系統(tǒng)建設(shè)和發(fā)展;便于通過更換設(shè)備、參數(shù)修改、外加模塊等實現(xiàn)小成本UI組件升級。項目建設(shè)既充分考慮未來新業(yè)務(wù)和新需求擴展和支持,又要充分考慮軟件體系結(jié)構(gòu)與IT規(guī)劃中其他平臺和系統(tǒng)有效銜接,滿足未來客戶業(yè)務(wù)發(fā)展及管理的需要。(11)安全性保證系統(tǒng)的安全,從多個層面提供安全保障措施;主要采用安全文件傳輸協(xié)議,保證數(shù)據(jù)的安全,包括數(shù)據(jù)傳送的安全、數(shù)據(jù)存儲的安全、數(shù)據(jù)操作的安全;提供健全的安全控管機制,系統(tǒng)運行中不安全、異常因素能提出預(yù)警,可有效防范外部及內(nèi)部的操作風險。具有完善的監(jiān)控功能,對異常能提出預(yù)警,并記錄下錯誤日志,提供錯誤原因的分析,便于異地維護。既要采用完善的身份認證機制、分級權(quán)限管理機制、數(shù)據(jù)加密機制保證統(tǒng)計數(shù)據(jù)真實性和完整性以及防止統(tǒng)計數(shù)據(jù)的不實和泄露,又要從網(wǎng)絡(luò)、系統(tǒng)、軟件、數(shù)據(jù)庫等方面充分考慮系統(tǒng)的安全,并具備容災(zāi)措施和監(jiān)控手段,保證信息統(tǒng)計系統(tǒng)安全運行。(12)高效性可以及時響應(yīng)用戶請求。能保證高效、穩(wěn)定的運行設(shè)計合理的業(yè)務(wù)處理流程,采取必要的技術(shù)手段增強系統(tǒng)的處理能力,最大限度地發(fā)揮系統(tǒng)潛能,確保系統(tǒng)對各類信息的高效處理。(13)實用性充分利用成熟的先進技術(shù),采用性能/價格比比較高的產(chǎn)品。應(yīng)用設(shè)計符合實際,適用于信息系統(tǒng)建設(shè)。同時,系統(tǒng)利于故障跟蹤、檢查和排除,具備完善的異常處理機制。(14)健壯性成熟性:由軟件故障引起系統(tǒng)失效的頻度低。容錯性:與在軟件故障或違反指定接口的情況下,維持規(guī)定的性能水平的能力。易恢復性:與在失效發(fā)生后,重建其性能水平并恢復直接受影響數(shù)據(jù)的能力以及為達此目的所需的時間和能力有關(guān)的軟件屬性充分考慮性價比。系統(tǒng)應(yīng)能自動地或人工地進行每天的數(shù)據(jù)備份、支持全部和增量數(shù)據(jù)備份,且系統(tǒng)應(yīng)具有遠程備份的實現(xiàn)方案;系統(tǒng)日常運行人為干預(yù)程度應(yīng)較低。(15)靈活性可通過參數(shù)化配置選擇,靈活對業(yè)務(wù)進行開關(guān)控制、權(quán)限控制、流程控制等等,而不需要進行程序編譯及服務(wù)重啟。2.系統(tǒng)開發(fā)工具(1)JavaJava是一門\t"/private/var/folders/6v/f4ny_z_n527228lm61gf5yn80000gn/T/com.kingsoft.wpsoffice.mac/wps-yinzhijuan/x/_blank"面向?qū)ο蟮木幊陶Z言,不僅吸收了\t"/private/var/folders/6v/f4ny_z_n527228lm61gf5yn80000gn/T/com.kingsoft.wpsoffice.mac/wps-yinzhijuan/x/_blank"C++語言的各種優(yōu)點,還摒棄了C++里難以理解的多繼承、\t"/private/var/folders/6v/f4ny_z_n527228lm61gf5yn80000gn/T/com.kingsoft.wpsoffice.mac/wps-yinzhijuan/x/_blank"指針等概念,因此Java語言具有功能強大和簡單易用兩個特征。Java語言作為靜態(tài)面向?qū)ο缶幊陶Z言的代表,極好地實現(xiàn)了面向?qū)ο罄碚摚试S程序員以優(yōu)雅的思維方式進行復雜的編程
。Java具有簡單性、面向?qū)ο蟆t"/private/var/folders/6v/f4ny_z_n527228lm61gf5yn80000gn/T/com.kingsoft.wpsoffice.mac/wps-yinzhijuan/x/_blank"分布式、\t"/private/var/folders/6v/f4ny_z_n527228lm61gf5yn80000gn/T/com.kingsoft.wpsoffice.mac/wps-yinzhijuan/x/_blank"健壯性、\t"/private/var/folders/6v/f4ny_z_n527228lm61gf5yn80000gn/T/com.kingsoft.wpsoffice.mac/wps-yinzhijuan/x/_blank"安全性、平臺獨立與可移植性、\t"/private/var/folders/6v/f4ny_z_n527228lm61gf5yn80000gn/T/com.kingsoft.wpsoffice.mac/wps-yinzhijuan/x/_blank"多線程、動態(tài)性等特點
。Java可以編寫\t"/private/var/folders/6v/f4ny_z_n527228lm61gf5yn80000gn/T/com.kingsoft.wpsoffice.mac/wps-yinzhijuan/x/_blank"桌面應(yīng)用程序、Web應(yīng)用程序、\t"/private/var/folders/6v/f4ny_z_n527228lm61gf5yn80000gn/T/com.kingsoft.wpsoffice.mac/wps-yinzhijuan/x/_blank"分布式系統(tǒng)和\t"/private/var/folders/6v/f4ny_z_n527228lm61gf5yn80000gn/T/com.kingsoft.wpsoffice.mac/wps-yinzhijuan/x/_blank"嵌入式系統(tǒng)應(yīng)用程序等。1.簡單性Java看起來設(shè)計得很像\t"/private/var/folders/6v/f4ny_z_n527228lm61gf5yn80000gn/T/com.kingsoft.wpsoffice.mac/wps-yinzhijuan/x/_blank"C++,但是為了使語言小和容易熟悉,設(shè)計者們把C++語言中許多可用的特征去掉了,這些特征是一般程序員很少使用的。例如,Java不支持\t"/private/var/folders/6v/f4ny_z_n527228lm61gf5yn80000gn/T/com.kingsoft.wpsoffice.mac/wps-yinzhijuan/x/_blank"goto語句,代之以提供\t"/private/var/folders/6v/f4ny_z_n527228lm61gf5yn80000gn/T/com.kingsoft.wpsoffice.mac/wps-yinzhijuan/x/_blank"break和\t"/private/var/folders/6v/f4ny_z_n527228lm61gf5yn80000gn/T/com.kingsoft.wpsoffice.mac/wps-yinzhijuan/x/_blank"continue語句以及異常處理。Java還剔除了C++的操作符過載(\t"/private/var/folders/6v/f4ny_z_n527228lm61gf5yn80000gn/T/com.kingsoft.wpsoffice.mac/wps-yinzhijuan/x/_blank"overload)和多繼承特征,并且不使用主文件,免去了預(yù)處理程序。因為Java沒有結(jié)構(gòu),數(shù)組和串都是對象,所以不需要指針。Java能夠自動處理對象的引用和間接引用,實現(xiàn)自動的無用單元收集,使用戶不必為存儲管理問題煩惱,能更多的時間和精力花在研發(fā)上。2.面向?qū)ο驤ava是一個面向?qū)ο蟮恼Z言。對程序員來說,這意味著要注意其中的數(shù)據(jù)和操縱數(shù)據(jù)的方法(method),而不是嚴格地用過程來思考。在一個面向?qū)ο蟮南到y(tǒng)中,類(\t"/private/var/folders/6v/f4ny_z_n527228lm61gf5yn80000gn/T/com.kingsoft.wpsoffice.mac/wps-yinzhijuan/x/_blank"class)是數(shù)據(jù)和操作數(shù)據(jù)的方法的集合。數(shù)據(jù)和方法一起描述對象(object)的狀態(tài)和行為。每一對象是其狀態(tài)和行為的封裝。類是按一定體系和層次安排的,使得子類可以從超類繼承行為。在這個類層次體系中有一個根類,它是具有一般行為的類。Java程序是用類來組織的。Java還包括一個類的擴展集合,分別組成各種程序包(\t"/private/var/folders/6v/f4ny_z_n527228lm61gf5yn80000gn/T/com.kingsoft.wpsoffice.mac/wps-yinzhijuan/x/_blank"Package),用戶可以在自己的程序中使用。例如,Java提供產(chǎn)生圖形用戶接口部件的類(\t"/private/var/folders/6v/f4ny_z_n527228lm61gf5yn80000gn/T/com.kingsoft.wpsoffice.mac/wps-yinzhijuan/x/_blank"java.awt包),這里awt是抽象窗口工具集(abstractwindowingtoolkit)的縮寫,處理輸入輸出的類(\t"/private/var/folders/6v/f4ny_z_n527228lm61gf5yn80000gn/T/com.kingsoft.wpsoffice.mac/wps-yinzhijuan/x/_blank"java.io包)和支持網(wǎng)絡(luò)功能的類(\t"/private/var/folders/6v/f4ny_z_n527228lm61gf5yn80000gn/T/com.kingsoft.wpsoffice.mac/wps-yinzhijuan/x/_blank"包)。3.分布性Java設(shè)計成支持在網(wǎng)絡(luò)上應(yīng)用,它是分布式語言。Java既支持各種層次的網(wǎng)絡(luò)連接,又以Socket類支持可靠的流(\t"/private/var/folders/6v/f4ny_z_n527228lm61gf5yn80000gn/T/com.kingsoft.wpsoffice.mac/wps-yinzhijuan/x/_blank"stream)網(wǎng)絡(luò)連接,所以用戶可以產(chǎn)生分布式的客戶機和服務(wù)器。網(wǎng)絡(luò)變成軟件應(yīng)用的分布運載工具。Java程序只要編寫一次,就可到處運行。4.編譯和解釋性Java編譯程序生成字節(jié)碼(byte-code),而不是通常的機器碼。Java字節(jié)碼提供對體系結(jié)構(gòu)中性的目標文件格式,代碼設(shè)計成可有效地傳送程序到多個平臺。Java程序可以在任何實現(xiàn)了Java解釋程序和運行系統(tǒng)(run-timesystem)的系統(tǒng)上運行。在一個解釋性的環(huán)境中,程序開發(fā)的標準“鏈接”階段大大消失了。如果說Java還有一個鏈接階段,它只是把新類裝進環(huán)境的過程,它是增量式的、\t"/private/var/folders/6v/f4ny_z_n527228lm61gf5yn80000gn/T/com.kingsoft.wpsoffice.mac/wps-yinzhijuan/x/_blank"輕量級的過程。因此,Java支持快速原型和容易試驗,它將導致快速程序開發(fā)。這是一個與傳統(tǒng)的、耗時的“編譯、鏈接和測試”形成鮮明對比的精巧的開發(fā)過程。5.穩(wěn)健性Java原來是用作編寫消費類家用電子產(chǎn)品軟件的語言,所以它是被設(shè)計成寫高可靠和穩(wěn)健軟件的。Java消除了某些編程錯誤,使得用它寫可靠軟件相當容易。Java是一個強類型語言,它允許擴展編譯時檢查潛在類型不匹配問題的功能。Java要求顯式的方法聲明,它不支持C風格的\t"/private/var/folders/6v/f4ny_z_n527228lm61gf5yn80000gn/T/com.kingsoft.wpsoffice.mac/wps-yinzhijuan/x/_blank"隱式聲明。這些嚴格的要求保證編譯程序能捕捉調(diào)用錯誤,這就導致更可靠的程序。可靠性方面最重要的增強之一是Java的存儲模型。Java不支持指針,它消除重寫存儲和\t"/private/var/folders/6v/f4ny_z_n527228lm61gf5yn80000gn/T/com.kingsoft.wpsoffice.mac/wps-yinzhijuan/x/_blank"訛誤數(shù)據(jù)的可能性。類似地,Java自動的“無用單元收集”預(yù)防存儲漏泄和其它有關(guān)動態(tài)存儲分配和解除分配的有害錯誤。Java解釋程序也執(zhí)行許多運行時的檢查,諸如驗證所有數(shù)組和串訪問是否在界限之內(nèi)。異常處理是Java中使得程序更穩(wěn)健的另一個特征。異常是某種類似于錯誤的異常條件出現(xiàn)的信號。使用try/catch/finally語句,程序員可以找到出錯的處理代碼,這就簡化了出錯處理和恢復的任務(wù)。6.安全性Java的存儲分配模型是它防御\t"/private/var/folders/6v/f4ny_z_n527228lm61gf5yn80000gn/T/com.kingsoft.wpsoffice.mac/wps-yinzhijuan/x/_blank"惡意代碼的主要方法之一。Java沒有指針,所以程序員不能得到隱蔽起來的內(nèi)幕和偽造指針去指向\t"/private/var/folders/6v/f4ny_z_n527228lm61gf5yn80000gn/T/com.kingsoft.wpsoffice.mac/wps-yinzhijuan/x/_blank"存儲器。更重要的是,Java編譯程序不處理存儲安排決策,所以程序員不能通過查看\t"/private/var/folders/6v/f4ny_z_n527228lm61gf5yn80000gn/T/com.kingsoft.wpsoffice.mac/wps-yinzhijuan/x/_blank"聲明去猜測類的實際存儲安排。編譯的Java代碼中的存儲引用在運行時由Java解釋程序決定實際存儲地址。Java運行系統(tǒng)使用字節(jié)碼驗證過程來保證裝載到網(wǎng)絡(luò)上的代碼不違背任何Java語言限制。這個安全機制部分包括類如何從網(wǎng)上裝載。例如,裝載的類是放在分開的名字空間而不是局部類,預(yù)防惡意的小應(yīng)用程序用它自己的版本來代替標準Java類。7.可移植性Java使得語言聲明不依賴于實現(xiàn)的方面。例如,Java顯式說明每個基本數(shù)據(jù)類型的大小和它的運算行為(這些數(shù)據(jù)類型由Java語法描述)。Java環(huán)境本身對新的硬件平臺和操作系統(tǒng)是可移植的。Java編譯程序也用Java編寫,而Java運行系統(tǒng)用ANSIC語言編寫。8.高性能Java是一種先編譯后解釋的語言,所以它不如全編譯性語言快。但是有些情況下性能是很要緊的,為了支持這些情況,Java設(shè)計者制作了“及時”編譯程序,它能在運行時把Java字節(jié)碼翻譯成特定\t"/private/var/folders/6v/f4ny_z_n527228lm61gf5yn80000gn/T/com.kingsoft.wpsoffice.mac/wps-yinzhijuan/x/_blank"CPU(中央處理器)的機器代碼,也就是實現(xiàn)全編譯了。Java字節(jié)碼格式設(shè)計時考慮到這些“及時”編譯程序的需要,所以生成機器代碼的過程相當簡單,它能產(chǎn)生相當好的代碼。9.多線程性Java是多線程語言,它提供支持多線程的執(zhí)行(也稱為輕便過程),能處理不同任務(wù),使具有線索的程序設(shè)計很容易。Java的lang包提供一個\t"/private/var/folders/6v/f4ny_z_n527228lm61gf5yn80000gn/T/c
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國手動工具箱市場分析及競爭策略研究報告
- 2025至2030年中國成長百分百市場分析及競爭策略研究報告001
- 2025至2030年中國彩色玻璃花插市場調(diào)查研究報告
- 2025至2030年中國錄像機機芯行業(yè)發(fā)展研究報告
- 2025至2030年中國工程車部件市場調(diào)查研究報告
- 高一數(shù)學期中試卷及答案
- 天使投資基金行業(yè)跨境出海戰(zhàn)略研究報告
- 智能家居保險方案行業(yè)跨境出海戰(zhàn)略研究報告
- 賽事旅游地圖與指南企業(yè)制定與實施新質(zhì)生產(chǎn)力戰(zhàn)略研究報告
- 藝術(shù)主題旅游線路設(shè)計企業(yè)制定與實施新質(zhì)生產(chǎn)力戰(zhàn)略研究報告
- 2025年新高考歷史預(yù)測模擬試卷浙江卷(含答案解析)
- 義烏市事業(yè)單位招聘考試真題2024
- 企業(yè)廉潔風險防控課件教學
- 大數(shù)據(jù)與會計專業(yè)專業(yè)的實習報告
- JT-T-4-2019公路橋梁板式橡膠支座
- 火龍罐綜合灸療法
- 貴州省促進養(yǎng)老托育服務(wù)高質(zhì)量發(fā)展實施方案
- 托利多電子秤校秤步驟
- 《DVT深靜脈血栓》
- 《大豆栽培學》PPT課件.ppt
- 米粉加工廠生產(chǎn)工藝理論介紹
評論
0/150
提交評論