An open API service indexing awesome lists of open source software.

https://github.com/librauee/se

software engineering
https://github.com/librauee/se

Last synced: 4 months ago
JSON representation

software engineering

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风行后此问题得到了一定程度的缓解)