https://github.com/librauee/se
software engineering
https://github.com/librauee/se
Last synced: 4 months ago
JSON representation
software engineering
- Host: GitHub
- URL: https://github.com/librauee/se
- Owner: librauee
- Created: 2019-12-11T09:24:32.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2020-01-02T07:41:56.000Z (over 6 years ago)
- Last Synced: 2025-07-19T06:40:43.750Z (11 months ago)
- Size: 8.79 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Software Engineering
## Key point of examination
### 软件过程
* 什么是瀑布模型,有何特性,为什么有僵化的瀑布模型之说?
1. 瀑布模型:它提出了一个系统的、顺序的软件开发方法,从用户需求规格说明开始,通过计划、建模、构建和部署的过程,最终提供一个完整的软件并提供持续的技术支持。
2. 特性:① 阶段间具有顺序性和依赖性;② 推迟实现的观点,划分逻辑设计与物理设计,尽可能推迟程序的物理实现;③ 质量保证的观点,每个阶段必须完成规定的文档,对其中问题通过复审及早发现,及早解决。
3. 僵化:对变更的无奈。① 有些类型的系统需求是模糊的;② 项目参与者之间存在通信鸿沟;③ 预先定义的需求可能是过时的。
* 瀑布模型和喷泉模型的区别
* CMMI的作用、目的以及级别
能力成熟度模型集成,可分为五个级别:
1. **完成级**
* 在完成级水平上,企业对项目的目标与要做的努力很清晰,项目的目标得以实现。但是由于任务的完成带有很大的偶然性,企业无法保证在实施同类项目的时候仍然能够完成任务。企业在一级上的项目实施对实施人员有很大的依赖性。
2. **管理级**
* 在管理级水平上,企业在项目实施上能够遵守既定的计划与流程,有资源准备,权责到人,对相关的项目实施人员有相应的培训,对整个流程有监测与控制,并与上级单位对项目与流程进行审查。企业在二级水平上体现了对项目的一系列的管理程序。这一系列的管理手段排除了企业在一级时完成任务的随机性,保证了企业的所有项目实施都会得到成功。
3. **定义级**
* 在定义级水平上,企业不仅能够对项目的实施有一整套的管理措施,并保障项目的完成;而且,企业能够根据自身的特殊情况以及自己的标准流程,将这套管理体系与流程予以制度化这样,企业不仅能够在同类的项目上生到成功的实施,在不同类的项目上一样能够得到成功的实施。科学的管理成为企业的一种文化,企业的组织财富。
4. **量化管理级**
* 在量化管理级水平上,企业的项目管理不仅形成了一种制度,而且要实现数字化的管理。对管理流程要做到量化与数字化。通过量化技术来实现流程的稳定性,实现管理的精度,降低项目实施在质量上的波动。
5. **优化级**
* 在优化级水平上,企业的项目管理达到了最高的境界。企业不仅能够通过信息手段与数字化手段来实现对项目的管理,而且能够充分利用信息资料,对企业在项目实施的过程中可能出现的次品予以预防。能够主动地改善流程,运用新技术,实现流程的优化。
* 敏捷过程
* 比较分析两种主流的方法学(面向过程分析方法和面向对象的分析方法)
主要可分为三个方面论述
1. **方法**
* 前者以功能为主,围绕功能组织数据
* 后者以数据为中心,围绕数据组织功能
2. **过程**
* 前者是一种传统的结构化分析方法,瀑布模型为典型模型,在需求明确的情况下采用较为合适
* 后者把面向对象的思想应用于软件开发过程,指导开发活动的系统方法,生命周期长,稳定性高,是迭代的,其中喷泉模型为典型模型
3. **工具**
* 前者主要的分析与描述工具为**数据流图**、数据字典、判定表和判定树等
* 后者主要的分析与描述工具为三视点模型、例图、类图、状态图等
* 试比较B/S (Browser/Server) 和C/S (Client/Server)架构的优缺点?⭐⭐⭐
* C/S优点:
1. C/S架构的界面和操作可以很丰富。
2. 安全性能可以很容易保证,实现多层认证也不难。
3. 由于只有一层交互,因此响应速度较快。
* C/S缺点:
1. 适用面窄,通常用于局域网中。
2. 用户群固定。由于程序需要安装才可使用,因此不适合面向一些不可知的用户。
3. 维护成本高,发生一次升级,则所有客户端的程序都需要改变。
* B/S优点:
1. 客户端无需安装,有Web浏览器即可。
2. B/S架构可以直接放在广域网上,通过一定的权限控制实现多客户访问的目的,交互性较强。
3. B/S架构无需升级多个客户端,升级服务器即可。
* B/S缺点:
1. 在跨浏览器上,B/S架构不尽如人意。
2. 表现要达到C/S程序的程度需要花费不少精力。
3. 在速度和安全性上需要花费巨大的设计成本,这是B/S架构的最大问题。
4. 客户端服务器端的交互是请求-响应模式,通常需要刷新页面,这并不是客户乐意看到的。(在Ajax风行后此问题得到了一定程度的缓解)