1. 软件生命周期&C/S、B/S 架构

目录

[1. 软件生命周期](#1. 软件生命周期)

[2. 面向对象](#2. 面向对象)

[2.1 面向对象分析](#2.1 面向对象分析)

[2.2 面向对象设计](#2.2 面向对象设计)

[2.3 面向对象编程](#2.3 面向对象编程)

[3. C/S、B/S 架构](#3. C/S、B/S 架构)

[3.1 CS 架构](#3.1 CS 架构)

[3.2 BS 架构](#3.2 BS 架构)


1. 软件生命周期

软件生命周期中划分为可行性研究、需求分析、概要设计、详细设计、实现、组装(集成)测试、
确认测试、使用、维护、退役10个阶段,如下图:

  • 可行性研究:通过分析软件开发要求,确定软件项目的性质、目标和规模,得出可行性研究报告,如果可行性研究报告是可行的,就要制订详细的项目开发计划。此阶段交付成果为可行性研究报告;

  • 需求分析是软件生命周期中重要的也是决定性的一步,通过需求分析才能把软件功能和性能的总体概念描述为具体的软件需求规格说明书,为软件开发奠定基础,此阶段交付成果为软件需求规格说明书;

  • 概要设计:根据软件需求规格说明建立软件系统的总体结构和模块间的关系,定义各功能模块接口,设计全局数据库或数据结构,规定设计约束,制定组装(集成)测试计划;

  • 详细设计:将各模块要实现的功能用相应的设计工具详细的描述出来;

  • 实现:写出正确的、易理解的和易维护的程序模块。程序员根据详细设计文档将详细设计转化为程序,完成单元测试;

  • 组装测试(集成测试):将经过单元测试的模块逐步进行组装和测试;

  • 确认测试:测试系统是否达到了系统要求,按照规格说明书的规定,由用户(或在用户积极参与下)对系统进行验收。必要时,还可以再通过现场测试或并行运行等方法对系统进行进一步测试;

  • 使用:将软件安装在用户确定的运行环境中,测试通过后移交用户使用。在软件使用过程中,客户和维护人员必须认真收集发现的软件错误,定期或阶段性的撰写软件问题报告和软件修改报告;

  • 维护:通过各种必要的维护活动使系统持久的满足用户需要;

  • 退役:终止对软件产品的支持,软件停止使用。

作为实践项目,我们主要完成需求分析、概要及详细(系统)设计、实现、单元和集成测试、部署使用这几个阶段的任务。

2. 面向对象

对象的数据对应表示为属性,对象的动作表示为方法。

使用面向对象方法对系统进行构建主要分为以下几个阶段:

2.1 面向对象分析

Object-Oriented Analysis(OOA)发生在需求分析阶段,解决"做什么"的问题,主要任务是确定对象的属性与方法,对象与对象之间的关系,各个操作的具体流程,但不考虑系统具体实现有关的因素;

2.2 面向对象设计

Object-Oriented Design(OOD)发生在系统设计阶段,解决的是"怎么做"的问题,其基本思想包括抽象、封装和可扩展性,其中可扩展性主要通过继承和多态来实现。主要任务是把实现对象进行工程化规范,管理程序内部各部分的相互依赖,为面向对象编程提供指导与依据;

2.3 面向对象编程

Object-Oriented Programming (OOP)发生在系统开发阶段,使用面象对象语言如JAVA,实现OOD模型中的各个成分;OOP的三个主要目标是:重用性,灵活性和扩展性。

3. C/S、B/S 架构

  • C/S 架构即客户端/服务器架构模式
  • B/S 架构即浏览器/服务器架构模式

3.1 CS 架构

C/S 架构全称是客户端/服务器(Client/Server)架构,是常用的两层架构。客户端需要安装客户端软件,服务端程序运行在服务器上,提供Socket或数据库服务。

常用于固定用户群体中。常见的C/S架构的应用,比如QQ,CCTALK,各种网络游戏等等,一般需要安装并且与服务器进行网络通信的都属于此类。

优点:

  • 大部分业务都可以在客户端完成,充分利用本地的计算机资源
  • 响应速度快
  • 个性化定制能力强
  • 面向相对固定的用户群,对信息安全的控制能力强

缺点:

  • 需要安装客户端才能使用
  • 维护成本高,任何一台电脑上的客户端出现问题都需要进行维护,升能过程繁琐

3.2 BS 架构

B/S架构全称是浏览器/服务器(Browser/Server)结构,分为Web浏览器、服务器程序、数据库服务三部分,可以理解为是对C/S架构一种改进。由于所有的业务逻辑都由服务器程序处理,所以客户端仅使用浏览器就可以完成所有操作,大大降低了客户端的维护成本。

常用于对公开用户提供的网络服务中。比如常见的大型网站都属于此类。

优点:

  • 客户端零维护,只需要安装一个浏览器即可
  • 所有业务都集中在服务器端,业务扩展非常方便
  • 维护成本低,只需要维护服务器即可

缺点:

  • 服务器安全与业务处理能力需要花费很大精力与成本
  • 不同浏览器支持不尽人意

JAVA EE项目都基于B/S架构。

相关推荐
Light602 小时前
云途领航:现代应用架构助力企业转型新篇
微服务·架构·saas·paas·iaas·ipaas·apaas
言之。4 小时前
【面试题】构建高并发、高可用服务架构:技术选型与设计
架构
小马爱打代码7 小时前
Tomcat整体架构分析
java·架构·tomcat
time_silence8 小时前
微服务——不熟与运维
运维·微服务·架构
-指短琴长-8 小时前
Docker之技术架构【八大架构演进之路】
docker·容器·架构
武子康9 小时前
大数据-259 离线数仓 - Griffin架构 修改配置 pom.xml sparkProperties 编译启动
xml·java·大数据·hive·hadoop·架构
2401_8576176210 小时前
“无缝购物体验”:跨平台网上购物商城的设计与实现
java·开发语言·前端·安全·架构·php
思忖小下10 小时前
梳理你的思路(从OOP到架构设计)_介绍GoF设计模式
设计模式·架构·eit
秀儿y10 小时前
单机服务和微服务
java·开发语言·微服务·云原生·架构