综述
1.什么是软件,什么是软件危机,软件危机的原因,如何消除。
2.软件工程的概念,什么是软件工程,软件工程的基本原理
3什么是cmm(Capability Maturity Model for Software),软件能力成熟度模型是一种对软件组织在定义、实施、度量、控制和改善其软件过程的实践中各个发展阶段的描述形成的标准。用于评价软件机构的软件过程能力成熟度的模型。1级-初始级、2级-可重复级、3级-已定义级、4级-已管理级、5级-优化级。
4.什么是cmmi(Capability Maturity Model Integration),能力成熟度模型集成。阶段式,连续式。去看看课本。
5.什么是case,计算机辅助软件工程(CASE) Computer Aided Software Engineering在软件工程活动中,软件工程师和管理人员按照软件工程的方法和原则,借助于计算机及其软件工具的帮助,开发、维护、管理软件产品的过程称为计算机辅助软件工程。
6.Agile Development,敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。(看课本去)
7.Software maintenance,软件维护,是指在软件产品发布后,因修正错误、提升性能或其他属性而进行的软件修改。软件维护活动类型总起来大概有四种:纠错性维护(校正性维护)、适应性维护、完善性维护或增强、预防性维护或再工程。除此四类维护活动外,还有一些其它类型的维护活动,如:支援性维护(如用户的培训等)。
提高可维护性的方法: 模块化,高内聚低耦合,使用结构化程序设计技术;改进现有程序的不完善的文档,提高程序的可理解性等等。
8.什么是软件项目管理,太多了,看看书去。
9.可行性研究,又叫可行性分析,评价总体方案(系统目标)的可能性、必要性。
可行性研究的含义:按照各种有效的方法和工作程序,对拟建工程项目在技术上的先进性、适用性,经济上的合理性、盈利性,以及项目的实施等方面深入的系统分析。
可行性研究的目的:用最小的代价在最短的时间内确定该项目是否值得去解决,是否存在可行的解决方案。
主要内容:技术上可行、经济上可行、操作上可行、法律法规上可行。
10.软件的生存周期,软件产品或软件系统从设计、投入使用到被淘汰的全过程。
软件生存周期一般分为:软件定义(问题定义、可行性研究、需求分析)、软件开发(总体设计、详细设计、编码和单元测试、综合测试)、软件维护三个时期。
11.需求工程,软件需求工程是软件开发人员和用户密切配合,充分交换意见,获得对需求一致意见的过程。需求分析的原则。
12.设计的原则,模块独立性,判定表,判定树,部件级设计。
13.结构化分析方法。
14.DFD
15.数据字典
16.静态建模(类图、对象图),动态建模(用况图、通信图、顺序图...)
17.测试 白盒测试 黑盒测试
18.面向对象分析与设计。
详细
1.结构化方法
·一种面向数据流的传统软件开发发放。以数据流为中心构建软件的分析模型和设计模型。分为结构化分析(sa)、结构化设计(sd)、结构化程序设计(sp)。
数据字典
是模型的核心,包含了软件使用和产生的所有数据的描述。
数据流图(data flow diagram)
用于功能建模,描述系统的输入数据流如何经过一系列加工变换成系统的输出数据流。
——> 数据流(data flow) 由一组固定成分的数据组成,代表数据的流动方向(加工->加工 加工->宿 源->加工 文件<->加工)
圈 加工(process) 描述了输入数据流到输出数据流的变换,即将输入数据流加工成输出数据流。
双横线 文件(file) 使用文件、数据库等保存某些数据结果供以后使用
矩形框 源或宿(source or sink) 存在于软件系统致亲爱的人员或组织,表示软件输入数据的来源和输出数据的去向。
分层:
顶层图:只有一张,代表整个软件系统的1个加工,描述系统与外界(源或宿)之间的数据流
0层图:顶层图的加工分解后的图(改加工只有一个,不需要编号)
低层图:其中的加工不在进行任何分解
中间层:除上面三种之外的图,其中至少要一个加工在下层图中分解成一张子图(子图记号为图x(x为分解的父图中的加工编号),加工编号为1,2,3......,其子图加工编号为1.1,1.2,1.3...;1.1.1,1.1.2,1.1.3...)
实体-关系图(Entity Relationship Diagram)
用于数据建模,描述数据字典中数据之间的关系。
状态转换图(State Transform Diagram)
用于行为建模,描述系统接受哪些外部事件,以及在外部事件的作用下的状态迁移情况。