軟件項目開發流程
需求分析 ----》 概要設計 ---》 項目計劃 ----》詳細設計---》編碼測試 -----》mysql
項目測試 ----》調試修改 ---》項目發佈----》後期維護
>需求分析 : 肯定用戶的真實需求
>>1. 肯定用戶的真實需求,項目的基本功能
>>2. 肯定項目的總體難度和可行性分析
>>3. 需求分析文檔,用戶確認
>概要設計:對項目進行初步分析和總體設計
>>1. 肯定功能模塊
>>2. 進行可行性分析 搭建總體架構圖
>>3. 肯定技術思路和使用框架
>>4. 造成概要文檔指導開發流程
>項目計劃 : 肯定項目開發的時間軸和流程
>>1. 肯定開發工做的前後順序
>>2. 肯定時間軸 ,事件里程碑
>>3. 人員分工
>>4. 造成甘特圖和思惟導圖等輔助內容
>詳細設計 : 項目的具體實現
>>1.造成詳細設計文檔 : 思路,邏輯流程,功能說明,技術點說明,數據結構說明,代碼說明
>編碼測試 : 按照預約計劃實現代碼編寫,而且作基本檢測
>>1. 代碼編寫
>>2. 寫測試程序
>>3. 技術攻關
>項目測試 : 對項目按照功能進行測試
>>1. 跨平臺測試 ,使用測試
>>2. 根據測試報告進行代碼修改
>>3. 完成測試報告
>項目發佈
>>1.項目交付用戶進行發佈
>>2.編寫項目說明文檔
>後期維護
>>1.維護項目正常運轉
>>2.進行項目的迭代升級sql
功能說明
>用戶能夠登陸和註冊
* 登陸憑藉用戶名和密碼登陸
* 註冊要求用戶必須填寫用戶名,密碼,其餘內容自定
* 用戶名要求不能重複
* 要求用戶信息可以長期保存
>能夠經過基本的圖形界面print以提示客戶端輸入。
* 程序分爲服務端和客戶端兩部分
* 客戶端經過print打印簡單界面輸入命令發起請求
* 服務端主要負責邏輯數據處理
* 啓動服務端後應該能知足多個客戶端同時操做
>客戶端啓動後即進入一級界面,包含以下功能:登陸 註冊 退出
* 退出後即退出該軟件
* 登陸成功即進入二級界面,失敗回到一級界面
* 註冊成功能夠回到一級界面繼續登陸,也能夠直接用註冊用戶進入二級界面
>用戶登陸後進入二級界面,功能以下:查單詞 歷史記錄 註銷
* 選擇註銷則回到一級界面
* 查單詞:循環輸入單詞,獲得單詞解釋,輸入特殊符號退出單詞查詢狀態
* 歷史記錄:查詢當前用戶的查詞記錄,要求記錄包含name word time。能夠查看全部記錄或者前10條都可。
>單詞本說明
>>每一個單詞必定佔一行
>>單詞按照從小到大順序排列
>>單詞和解釋之間必定有空格
>查詞說明
>>直接使用單詞本查詢(文本操做)
>>先將單詞存入數據庫,而後經過數據庫查詢。(數據庫操做)數據庫
* tcp 套接字
* 多進程 併發
* 歷史記錄 : 前10條
* 註冊成功 直接登陸服務器
數據表進行創建
數據結構
*單詞數據庫 架構
create database dictionary charset=utf8;併發
*單詞數據表 words -> id word mean框架
create table (id int primary key auto_incremant, word varchar(32),mean text);
* 用戶 user -> id name passwdtcp
create table user (id int primary key auto_increment,name varchar(32) not null,passwd varchar(128) not null);
* 歷史記錄 hist-> id name word time ide
create table hist (id int primary key auto_increment,name varchar(32) not null, word varchar(28) not null,time datetime default now() );
1 import pymysql 2 import re 3 4 f = open('dictionary.txt‘) 5 db = pymysql.connect(host = 'localhost', 6 port = 3306, 7 user = 'root', 8 password = '123456', 9 database = 'dictionary', 10 charset = 'utf8') 11 #建立遊標 12 cur = db.cursor() 13 #執行插入語句 14 sql = "insert into words (word,mean) values (%s ,%s)" 15 16 for line in f: 17 #元祖 非空字符,匹配中間的空格,有些存在無解釋 18 tup = re.findall(r'(\S+)\s+(.*)',line)[0] 19 try: 20 cur.execute(sql,tup)#遊標方法 21 db.commit()#執行寫操做須要提交 22 except: 23 db.rollback() 24 25 f.close() 26 cur.close() 27 db.close()
幾個模塊 封裝設計
客戶端 :
服務端 : 邏輯請求處理 , 數據庫操做處理
函數封裝: 直接寫一個功能程序提供給使用者使用。使用者直接運行,而不是須要使用個人代碼的某一部分。
功能分析 和 通訊搭建
併發通訊 登陸 註冊 查單詞 歷史記錄 退出 返回上一級界面
羅列功能邏輯 :每一個功能肯定服務端和客戶端該作什麼,編寫代碼測試
註冊 客戶端: 輸入註冊信息
發送請求
獲得反饋
服務端 : 接收請求
判斷是否容許註冊
容許註冊將信息存入數據庫
給客戶端反饋結果
登陸 客戶端: 輸入用戶名密碼
發送請求給服務器
獲得服務器反饋
服務端: 接收請求
判斷是否容許登陸
發送結果
查單詞 客戶端: 輸入單詞
發送請求 Q name word
等待接收結果
服務端: 接收請求
查找單詞
發送結果
插入歷史記錄
設定客戶端服務端協議