編寫一個項目開發文檔

項目開發過程中為了增加程序的可讀性和程序的健壯性,?方便后期程序的調試和維護,所以需要在開發過程中統一技術規范,一般會在項目初期確定好相關文檔作為這一統一的規范。不同公司會對文檔做不同要求,劃不同的分類,但一般來說(或者拿自己的經驗說)大致可以分為需求文檔、接口文檔、流程圖(可以單獨作為一份文件可以作為附件附在文檔中)、變更文件等。

一、需求文檔

在項目啟動之后,項目的目標已經明確了,那么就要開始著手干活了,但是在干活之前,需要對整個項目分析透徹。那么,如何對業務進行分析呢,看以下的建議。

首先,開發人員要有隨意轉換身份的意識和能力。

A、明確產品功能

在分析業務時,站在用戶的角度上,思考要做的產品能實現什么功能。把所有的功能點列出來!

B、分析某一功能點的流程

在羅列了所有的功能之后,需要站在開發者的角度分析每一個功能點,考慮從客戶端到后臺操作數據庫的整個流程,可以從是什么、為什么、在哪、怎么做、誰來做、做完如何反饋、反饋給誰、上傳到哪、服務器用什么數據庫、數據庫需要什么表、表里有什么字段、每個字段的屬性及意義等等。比如,我要要做一個軟件中個人頭像上傳的功能,首先明確我做的是上傳功能;為什么要上傳?因為個人資料需要頭像;怎么做上傳?通過網絡I/O實現;這個功能在什么位置?軟件有個個人中心模塊,個人中心里有個個人信息子模塊,在這個模塊里可以上傳頭像;誰上傳?已經登錄的用戶;上傳完之后如何反饋?彈窗提示上傳成功;反饋給誰?客戶端已登錄的用戶;上傳到哪?服務器上;用什么數據庫?MySQL;需要什么表?(存到)用戶表;表里有什么字段?用戶信息的基本字段;每個字段的屬性及意義?略。在思考完這些問題之后,可以把一個功能點串成一條完整的從前端到數據庫的線。

C、整合各個功能點–明確分工

在串完所有的功能點之后,站在一個高一層次的角度,把每個功能點之間的聯系理清楚,按照相互的聯系分工合作,優化其中的細節問題。

D、撰寫需求文檔

分工完成之后,按照第二步分析的內容,每個人把自己負責的功能整理成文檔,最后合并文檔,作為統一的需求文檔。

E、繪制業務流程圖

需求文檔確定之后,繪制整個項目的業務流程圖,這時候的流程圖只需要包含前端的業務流程,后臺實現的流程圖不需要在需求文檔中體現,而是放在后面的接口文檔中。

二、接口文檔

不同公司對接口文檔的要求也不盡相同,但包括的內容卻是大同小異的。封面、標題、審批頁、修訂歷史以及格式字體等等風格迥異的次要內容不做贅述,只講干貨!干貨!干貨!

A、請求地址

需要哪個線上地址就寫哪個。注意不要反低級錯誤,比如寫錯某個字母或者大小寫問題。

B、接口信息

說明請求方式,是POST還是GET。

C、功能描述

清晰地描述接口功能,要求言簡意賅,不要寫太多廢話,也不要遺漏任何細節。

D、接口參數說明

聲明參數的名稱,嚴格要求與調用一致,包括大小寫;

簡單說明參數的含義;

參數的數據類型,是string?、int?還是long等(例如參數為@RequestParam(“appKey”)? String?appKey,? @RequestParam(“randomId”)? Integer?randomId);

備注部分,說明參數值是需要哪個公司提供,并詳細說明參數怎么生成的,例如時間戳,是哪個時間段的;參數是否必填,一些參數是必須要有的,有些是可選參數,一定要注意寫清晰。

E、返回值說明

有一個模板返回值,并說明每個返回參數的意義。提供一個真實的調用接口,真實的返回值。

F、接口調用限制

為了安全,雙方采用一個一致的加密算法,保證接口調用的安全。

G、文檔維護

文檔維護時,修改內容部分需要有修改人、修改日期、版本號的信息。

三、流程圖

流程圖可以單獨作為一份文件,也可以作為附件附在對應的文檔中,具體執行按要求來。

業務流程圖

程序結構圖

程序流程圖

四、變更文件

在開發過程中如果出現與預期計劃、文檔不一致的地方,則視為發生變更,此時大致需要提供以下信息:

A、版本歷史(版本號、基本信息)

B、變更前現狀

C、變更內容

D、影響評估

E、審批
————————————————
版權聲明:本文為CSDN博主「Fuzz_」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/qq_36186690/article/details/82903265

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/454263.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/454263.shtml
英文地址,請注明出處:http://en.pswp.cn/news/454263.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

樂在其中設計模式(C#) - 原型模式(Prototype Pattern)

[索引頁][源碼下載]樂在其中設計模式(C#) - 原型模式(Prototype Pattern)作者:webabcd介紹用原型實例指定創建對象的種類,并且通過拷貝這個原型來創建新的對象。示例有一個Message實體類,現在要克隆它。MessageModelusing System; using Syst…

python123添加列表元素_Python之列表

Python變量沒有數據類型,所以Python沒有數組。 整數;浮點數;字符串;對象 創建一個列表: 1.member[大魚,123,3.14,[1,2,3]] 2.empty[] 向列表添加元素: append(): member[…

為機器學習占地14

是將若干個學習器(分類器&回歸器)組合之后產生一個新學習器。弱分類器(weak learner)指那些分類準確率只稍微好于隨機猜測的分類器(errorrate <。 集成算法的成功在于保證弱分類器的多樣性(Diversity)。而且集成不穩定的算法也能夠得到一個比較明顯的性能提升。 常見的…

優秀程序員 分析提高能力 程序進階

我出生在南方的一個農村。還記得小時候家里是很窮的&#xff0c;那時候上學也很便宜&#xff0c;我已記不清初中以前的學費是多少了。反正從小在家里玩泥巴&#xff0c;有一日村里兩個女孩去上學&#xff0c;看到我就說一起去上學吧。當時一想&#xff0c;玩泥巴也厭煩了&#…

html中通過點擊button標簽實現頁面跳轉的三種方法

方法1&#xff1a;使用onclick事件 <input type"button" value"按鈕"onclick"javascrtpt:window.location.hrefhttp://www.baidu.com/" />或者直接使用button標簽 <button onclick"window.location.href https://www.baidu.com…

mybatis調用存儲過程

直接貼代碼吧 注解式可以調用 但是不能返回結果 所有我就貼配置式的 有知道注解怎么返回結果的請評論 數據庫代碼 #表 DROP TABLE IF EXISTS p_user; CREATE TABLE p_user (id int(11) NOT NULL AUTO_INCREMENT,name varchar(10) DEFAULT NULL,sex char(2) DEFAULT NULL,PRIMAR…

java dump分析工具_Java 性能分析工具 (2):Java 內置監控工具

引言本文為 Java 性能分析工具系列文章第二篇&#xff0c;第一篇&#xff1a;操作系統工具。在本文中將介紹如何使用 Java 內置監控工具更加深入的了解 Java 應用程序和 JVM 本身。在 JDK 中有許多內置的工具&#xff0c;其中包括&#xff1a;jcmd&#xff1a;打印一個 Java 進…

Linux+php+memcache+APC加速PHP網站

一、前言對于一個站長而言不僅要做好網站內容外&#xff0c;還需要對網站做優化&#xff0c;如果速度訪問很慢的&#xff0c;沒有人下次再訪問你的站點&#xff0c;目前國內使用php的網站不計其數&#xff0c;這里用我的博客為例&#xff1a;http://chinaapp.sinaapp.com 以加速…

為機器學習占地13

是將若干個學習習 弱分類器間存在一定的差異性&#xff0c;這會導致分類的邊界不同&#xff0c;也就是說可能存在錯誤。那么將多個弱分類器合并后&#xff0c;就可以得到更加合理的邊界&#xff0c;減少整體的錯誤率&#xff0c;實現更好的效果&#xff1b; 對于數據集過大或者…

Python面試題(第二篇)

第二部分 網絡編程和并發&#xff08;34題&#xff09;1、簡述 OSI 七層協議。2、什么是C/S和B/S架構&#xff1f;3、簡述 三次握手、四次揮手的流程。4、什么是arp協議&#xff1f;5、TCP和UDP的區別&#xff1f;6、什么是局域網和廣域網&#xff1f;7、為何基于tcp協議的通信…

noip模擬賽 radius

分析&#xff1a;這道題實在是不好想&#xff0c;一個可以騙分的想法是假定要求的那個點在中心點上,可以騙得不少分.但是在邊上的點要怎么確定呢&#xff1f;理論復雜度O(&#xfe62;無窮).答案一定是和端點有關的&#xff0c;涉及到最大值最小&#xff0c;考慮二分最大值&…

來自IT公司速查手冊的各大IT公司薪資和待遇內幕

來自IT公司速查手冊的各大IT公司薪資和待遇內幕 &#xff08;轉載于 http://xuchaoyi99.cnblogs.com/ &#xff09; 編號 1. 杭州 諾基亞 2. 南京 趨勢科技 Trend 3. 北京 聯想&#xff08;北京&#xff09;有限公司 4. 深圳 華為 5. 深圳 中興通訊 6. 上海 SAP 7.…

Docker 精通之 Dockerfile

Docker 精通系列 Docker 精通之入門Docker 精通之微服務Docker 精通之常用命令Docker 精通之 Dockerfile 1.基本說明 Dockfile 是一個用于編寫 docker 鏡像生成過程的文件&#xff0c;其有特定的語法。在一個文件夾中&#xff0c;如果有一個名字為 Dockfile 的文件&#xff0c…

c語言中int的取值范圍_c語言入門(1)

c語言入門C語言一經出現就以其功能豐富、表達能力強、靈活方便、應用面廣等特點迅速在全世界普及和推廣。C語言不但執行效率高而且可移植性好&#xff0c;可以用來開發應用軟件、驅動、操作系統等。C語言也是其它眾多高級語言的鼻祖語言&#xff0c;所以說學習C語言是進入編程世…

vue : 無法將“vue”項識別為 cmdlet、函數、腳本文件或可運行程序的名稱。請檢查名稱的拼寫,如果包括路徑,請確保路徑正確, 然后再試一次。

vue : 無法將“vue”項識別為 cmdlet、函數、腳本文件或可運行程序的名稱。請檢查名稱的拼寫&#xff0c;如果包括路徑&#xff0c;請確保路徑正確&#xff0c; 然后再試一次。 報錯原因&#xff1a; 沒有安裝腳手架vue-cli 解決方法&#xff1a;安裝腳手架vue-cli npm inst…

session的生命周期

session的生命周期分為創建、活動、銷毀三個階段 創建一個新的會話不代表舊的會話就銷毀了 session.invalidate()方法可以銷毀當前會話 在page1中寫上這個方法再打開網頁 說明該會話被銷毀了出現了錯誤 我們把這個方法寫在所有代碼段的下面 再打開這個網頁 刷新網頁 這個sessio…

虛擬化與網絡

本文轉自Grodd51CTO博客&#xff0c;原文鏈接&#xff1a;http://blog.51cto.com/juispan/1959791&#xff0c;如需轉載請自行聯系原作者

算法基礎之搜索和經典排序

目錄 簡介 搜索算法 二分法查找 排序算法 冒泡排序&#xff08;Bubble Sort&#xff09; 選擇排序&#xff08;Selection Sort&#xff09; 插入排序&#xff08;Insert Sort&#xff09; 快速排序&#xff08;Quick Sort&#xff09; 歸并排序&#xff08;Merge Sort…

IT人不要一直做技術

發表于&#xff1a;2009-03-04 09:51:44 樓主IT人不要一直做技術 【引子】感覺這篇文章很有深意&#xff0c;正是我所想說的話。希望大家有借鑒。 【原文】 我現在是自己做&#xff0c;但我此前有多年在從事軟件開發工作&#xff0c;當回過頭來想一想自己&#xff0c;覺得特別…

背景寬高隨文本變化_中科大提出ContourNet:更準確的任意形狀場景文本檢測新方法...

點擊上方“CVer”&#xff0c;選擇加"星標"置頂重磅干貨&#xff0c;第一時間送達本文轉載自&#xff1a;CSIG文檔圖像分析與識別專委會本文簡要介紹2020年被CVPR錄用的論文“ContourNet: Taking a Further Step toward Accurate Arbitrary-shaped Scene Text Detect…