Java 系統分析與架構設計

肖海鵬 王榮芝 張天怡 王化宇 周洪翠

  • Java 系統分析與架構設計-preview-1
  • Java 系統分析與架構設計-preview-2
  • Java 系統分析與架構設計-preview-3
Java 系統分析與架構設計-preview-1

買這商品的人也買了...

商品描述

《Java系統分析與架構設計》面向軟件工程項目實戰,內容按照軟件項目的生命周期展開,分別為軟件項目需求分析、軟件項目架構設計(開發架構模式為主)、軟件項目模塊設計、軟件項目的持久層設計(關系型物理表設計、Redis設計、MongoDB設計)、軟件項目的部署等。   《Java系統分析與架構設計》共7章,第1章以大型企業項目“中國石油物資採購管理信息系統”為例,詳細講解需求分析技術,如流程圖分解、UML用例圖設計、UML狀態圖設計、概念模型分析等;第2章為“軟件架構設計”,講解架構設計五視圖、Java EE架構模式、微服務架構模式、Dubbo 3架構模式、MOM架構模式等內容,同時結合大型分佈式項目“電影院綜合票務管理平臺”進行詳細的架構設計示範;第3章為“項目模塊設計”,講解UML類圖、UML時序圖設計方法,同時結合項目“新聞系統”與“物流管理系統”進行模塊設計的項目實戰示範;第4章為“持久層物理表設計”,講解“三範式與反範式”設計方法,並總結13個真實企業級軟件項目,進行物理表設計示範;第5章為“持久層Redis數據庫設計”,結合“當當書城”項目進行Redis項目實戰示範;第6章為“持久層MongoDB數據庫設計”,結合“新浪微博”系統,進行MongoDB項目實戰示範;第7章為“項目部署”,講解了Nginx反向代理、Docker虛擬化部署以及Web服務器集群、MySQL集群部署、Redis集群部署、MongoDB集群部署。   《Java系統分析與架構設計》提供大量項目實戰代碼示例,具體程序代碼見本書配套資源,獲取方式見前言。   《Java系統分析與架構設計》適合作為高等院校電腦、軟件工程專業高年級本科生、研究生的教材,也可供有一定編程經驗的軟件開發人員、廣大科技工作者和研究人員參考使用。

目錄大綱

  

  

  

  

  

  

  

  

第1章  軟件需求分析技術 1

     

1.1  案例:中國石油物資採購管理信息系統軟件需求分析 2

1.1.1  項目概述 2

1.1.2  業務需求概述 7

1.1.3  業務流程分解 11

1.1.4  功能需求描述 16

1.2  業務流程圖的重要性 17

1.2.1  基本流程圖 17

1.2.2  復雜流程分解 19

1.2.3  角色參與流程 19

1.3  UML與軟件需求 20

1.3.1  UML介紹 20

1.3.2  UML用例圖 21

1.3.3  UML狀態圖 24

1.3.4  UML活動圖 27

1.4  軟件需求概念模型 28

1.4.1  實體與屬性 29

1.4.2  實體之間的關系 30

第2章  軟件架構設計 32

2.1  架構設計五視圖 32

2.2  開發架構模式選擇 33

2.3  軟件三層架構 34

2.4  MVC架構 38

2.5  AJAX架構 41

2.6  前後台分離架構 43

2.7  Java EE架構 45

2.7.1  Java EE架構介紹 45

2.7.2  創建EJB項目 47

2.7.3  編寫EJB服務 47

2.7.4  Web站點調用EJB服務 53

2.8  Web服務架構 54

2.8.1  Web服務與RPC 54

2.8.2  創建Web服務 56

2.8.3  編寫Web服務 57

2.8.4  Web站點調用Web服務 58

2.9  微服務架構 59

2.9.1  Spring Cloud Netflix介紹 59

2.9.2  Spring Boot與Spring Cloud 60

2.9.3  註冊服務器Eureka 61

2.9.4  服務提供者 63

2.9.5  服務消費者 65

2.9.6  微服務異常傳遞 68

2.10  Dubbo架構 70

2.10.1  Dubbo 3介紹 71

2.10.2  Dubbo 3新特性 73

2.10.3  Dubbo註冊中心 76

2.10.4  Dubbo服務提供者 78

2.10.5  Dubbo服務消費者 80

2.10.6  Dubbo交互協議 83

2.11  MOM架構 85

2.11.1  JMS與MOM 86

2.11.2  ActiveMQ服務器搭建 87

2.11.3  發送點對點消息 88

2.11.4  主動接收點對點消息 90

2.11.5  監聽接收點對點消息 91

2.11.6  發送主題消息 93

2.11.7  主動接收主題消息 93

2.11.8  監聽接收主題消息 93

2.11.9  多用戶同時接收點對點消息 94

2.11.10  多用戶同時接收主題消息 95

2.11.11  消息生命期 96

2.11.12  會話與消息確認模式 96

2.11.13  案例:JTA與MOM實現用戶異步註冊 100

2.12  案例:電影院綜合票務管理平臺架構設計 105

2.12.1  票務平臺業務需求 105

2.12.2  票務平臺行業規範 106

2.12.3  票務平臺整體架構設計 109

2.12.4  院線票務系統架構設計 110

2.12.5  網絡代售系統架構設計 111

2.12.6  院線票務系統與授權管理平臺接口設計 112

2.12.7  院線票務系統與影院管理系統接口設計 115

2.12.8  院線票務系統與網絡代售系統接口設計 116

2.12.9  院線票務系統消息通知設計 122

2.12.10  自動取票接口設計 123

第3章  項目模塊設計 124

3.1  UML與邏輯設計 124

3.1.1  UML類圖 124

3.1.2  UML時序圖 130

3.1.3  UML協作圖 131

3.2  新聞系統模塊設計 132

3.2.1  新聞系統功能描述 132

3.2.2  新聞系統開發架構 133

3.2.3  新聞系統主頁設計 133

3.2.4  新聞目錄列表頁設計 136

3.2.5  新聞頁設計 139

3.2.6  新聞評論頁設計 141

3.2.7  新聞發布設計 143

3.3  物流管理系統模塊設計 145

3.3.1  物流管理系統需求分析 145

3.3.2  物流管理系統模塊設計 148

第4章  持久層物理表設計 155

4.1  持久層設計原則 156

4.1.1  三範式原則 156

4.1.2  反範式原則 158

4.1.3  BASE與ACID原則 160

4.1.4  事務隔離級別 162

4.1.5  CAP原則 164

4.1.6  內存一致性 165

4.2  PowerDesigner與物理模型 165

4.2.1  PowerDesigner功能介紹 166

4.2.2  PowerDesigner概念數據建模 167

4.2.3  PowerDesigner邏輯數據建模 167

4.2.4  PowerDesigner物理數據建模 168

4.3  案例:ERP系統員工與用戶表設計 169

4.3.1  項目功能需求 169

4.3.2  物理表設計 170

4.4  案例:業務系統權限表設計 171

4.4.1  簡單業務系統的權限表設計 171

4.4.2  中型業務系統的權限表設計 172

4.4.3  Spring Security權限設計 177

4.4.4  大型業務系統的權限設計 181

4.5  案例:學校設備管理系統表設計 184

4.5.1  項目功能需求 184

4.5.2  物理表設計 184

4.5.3  項目核心代碼參考 185

4.6  案例:企業會議室預訂系統表設計 187

4.6.1  項目功能需求 187

4.6.2  物理表設計 188

4.6.3  項目核心代碼參考 190

4.7  案例:網上訂餐系統表設計 192

4.7.1  項目功能需求 192

4.7.2  物理表設計 192

4.8  案例:當當書城系統表設計 195

4.8.1  項目功能需求 195

4.8.2  物理表設計 195

4.8.3  項目核心代碼參考 198

4.9  案例:戶外旅游網系統表設計 201

4.9.1  項目功能需求 201

4.9.2  物理表設計 203

4.9.3  項目核心代碼參考 206

4.10  案例:新聞系統表設計 208

4.10.1  項目功能需求 208

4.10.2  物理表設計 208

4.10.3  項目核心代碼參考 210

4.11  案例:物流管理系統表設計 210

4.11.1  項目功能需求 210

4.11.2  物理表設計 210

4.12  案例:學生在線考試系統表設計 212

4.12.1  項目需求用例分析 212

4.12.2  項目需求流程分解 213

4.12.3  項目總體設計 214

4.12.4  項目物理表設計 219

4.13  案例:影院管理系統表設計 221

4.13.1  項目需求與設計 221

4.13.2  物理表設計 223

4.13.3  項目核心代碼 224

4.14  案例:分佈式連鎖酒店管理系統表設計 226

4.14.1  項目需求與設計 227

4.14.2  物理表設計 230

4.14.3  項目核心代碼 233

4.15  案例:中國石油物資採購管理信息系統表設計 237

4.15.1  項目功能需求與設計 237

4.15.2  物理表設計 240

4.15.3  項目核心代碼 244

第5章  持久層Redis數據庫設計 247

5.1  Redis功能介紹 247

5.2  Redis應用場景 248

5.3  Redis下載與安裝 248

5.4  案例:當當書城Redis實戰 250

5.4.1  Jedis連接Redis服務器 250

5.4.2  圖書緩存和排序 251

5.4.3  統計圖書訪問次數 253

5.4.4  圖書評論 255

5.4.5  圖書評論點贊 257

5.5  Spring整合Redis管理HTTP Session 258

第6章  持久層MongoDB數據庫設計 261

6.1  集合與文檔 261

6.2  MongoDB應用場景 262

6.3  MongoDB下載與安裝 264

6.4  系統數據庫與用戶庫 266

6.5  權限管理 267

6.6  文檔的CRUD操作 269

6.7  內嵌文檔 270

6.8  索引 272

6.9  查詢分析 274

6.10  案例:新浪微博MongoDB實戰 276

6.10.1  微博項目分析 276

6.10.2  Java連接MongoDB 278

6.10.3  微博項目代碼實現 279

第7章  項目部署 286

7.1  中型項目部署架構 286

7.2  Nginx 287

7.2.1  Nginx介紹 287

7.2.2  Nginx下載與安裝 288

7.2.3  Nginx文件服務器配置 289

7.2.4  Nginx反向代理服務器配置 291

7.3  Docker虛擬化 293

7.3.1  Docker容器與鏡像 293

7.3.2  Docker下載與安裝 294

7.3.3  Docker常用命令 296

7.3.4  Docker搭建Tomcat集群 299

7.3.5  項目部署到Tomcat集群 301

7.3.6  Nginx路由Tomcat集群 302

7.4  MySQL集群部署 302

7.4.1  Master Slave Replication 303

7.4.2  MHA Cluster 304

7.4.3  Galera Cluster(PXC) 305

7.4.4  MGR Cluster 307

7.4.5  NDB Cluster 308

7.5  Redis集群部署 309

7.5.1  Master Slave Replication 309

7.5.2  哨兵模式 309

7.5.3  Redis Cluster 310

7.6  MongoDB集群部署 312

7.6.1  主從集群 312

7.6.2  副本集 312

7.6.3  分片集群 314

 

IV

 

 

V