时间:2018/12/13
1.软件危机:“已完成”的软件,不满足用户的需求,进度不能保障,开发成本难测;质量没有保证。
2.软件工程的定义是:将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护过程,以及对所选方法的研究。
3.软件工程研究的主要内容分为:软件开发技术和软件开发管理两个方面。
4.软件工程的7条基本原理是:①用分阶段的生命周期计划严格管理②坚持进行阶段评审③实行严格的产品控制④采用现代程序设计技术⑤结果应能清楚地审查⑥开发小组的人员应该少而精⑦承认不断改进软件工程实践的必要性。
5.软件生命周期:1可行性研究、2需求分析、3设计、4编码、5测试、集成、维护阶段。
6.软件过程:软件开发过程、活动和任务的结构框架。它能够清晰、直观地表达软件开发全过程,明确规定要完成的主要活动和任务。 软件过程模型主要有瀑布模型、演化模型、喷泉模型、螺旋模型、智能模型。模型的选择是基于软件的特点和应用领域。
7.目前,主流的软件开发方法有:结构化方法和面向对象方法。
1. 可行性研究的目的是:用最小的代价在尽可能短的时间内确定问题是否能够解决。
2. 可行性研究的四大要素是:经济上可行,技术可行,法律允许、社会环境可行。
1.需求工程是指应用有效的技术和方法进行需求分析,确定客户需求,帮助分析人员理解问题,定义目标系统的外部特征的一门学科。需求工程中的主要活动有:需求获取、需求分析、需求规格说明、需求验证和需求变更管理。
2. 软件需求可分解为四个层次:业务需求、用户需求、功能需求和非功能需求。
3. 数据流程图是描绘系统逻辑模型的图形工具,描绘信息在系统中的流动和处理情况。
4. 数据字典主要用来描述数据流程图中的数据流、数据存储、处理过程和外部实体。
5. 结构化分析的步骤:根据用户的需求画出初始的数据流程图,写出数据字典和初始的加工处理说明(IPO图),实体关系用E-R图描述。以初始数据流程图为基础进行回溯,完善初始的数据流程图。对软件性能指标、接口定义、设计和实现的约束条件等逐一进行分析。以数据流程图为核心,辅以数据字典和处理说明,将整个软件的功能要求、数据要求和运行要求和扩展要求逐一确认。修正开发计划。编写需求规格说明书和初始的用户手册。
6. 需求规格说明书的主要内容:软件功能说明,软件性能要求、设计限制、外部接口要求。
1. 软件设计的主要原则:模块独立性和信息隐藏。
2. 反映模块独立性有两个标准:内聚和耦合。内聚衡量一个模块内部各个元素彼此结合的紧密程度,耦合衡量模块之间彼此依赖的程度。
3. 信息隐藏的核心内容是:一个模块中所包含的信息,不允许其他不需要这些信息的模块访问。
4. 结构化设计是基于模块化的、自顶向下、逐步求精等概念上的设计方法。
5. 结构化设计方法的步骤:首先分析数据流的类型,将数据流程图映射为程序结构图,优化设计结构,评审软件结构。
1. 软件测试的定义:是为了发现错误而执行程序的过程,其目的在于以最少的时间和人力,系统地找出软件中潜在的各种错误和缺陷。
2. 软件测试技术大体上可以分成白盒测试和黑盒测试。
白盒测试技术依据的是程序的逻辑结构,主要包括逻辑覆盖方法;
黑盒测试技术依据的是软件行为的描述,主要包括等价类划分、边界值分析测试等方法。
1.软件生存周期定义:软件定义、软件开发、软件维护;
2.阶段划分:
可行性研究:明确问题,粗略计划,
需求分析:明确做什么,
总体设计:如何实现目标系统
详细设计:如何具体实现系统,设计每个模块的算法和数据结构
实现(编码和单元测试)、
集成测试:选择语言、测试模块
确认测试:
使用和维护。
结构化分析(数据模型、功能模型、行为模型、数据字典)
发现需求、求精、建模
结构化设计(模块独立、面向数据流设计方法、面向数据结构设计方法、编码)
分两步:概要设计(将软件需求转化为数据结构和系统结构)、详细设计(通过细化)
软件测试(逻辑覆盖、面向对象方法学)
UML简介