1.软件定义:程序、数据、文档。特性:逻辑产品,无老化,客户定制。
2.软件工程:将系统化的、规范地、可度量的方法应用于软件开发、运行、维护的过程,即将工程化应用与软件中,以及对所述方法的研究。
3.软件过程是指按照项目的进度、成本和质量等方面的,开发和维护满足用户需求的软件所必须的一组有序的软件开发活动的集合。
4.定义软件过程步骤:
1)选择合适的软件过程模型2)确定和描述软件开发活动3)确定和描述软件开发活动间的关系4)文档化软件过程5)评审软件过程6)认可、发布和培训
5.关键路径是指软件项目进度计划中从起始活动开始到结束活动为止,具有最长长度的路径。
6.软件项目跟踪和控制是指在软件项目的实施过程中,随时掌握软件项目的实际开发情况,使得当软件项目的实施与软件项目计划相背离或出现问题和风险时,能够采取有效的措施来控制软件项目的实施。
7.软件需求是指用户对目标软件系统在功能、性能、质量等方面的期望,以及对目标软件系统在运行环境、资源消耗等方面的约束。分为功能性需求和非功能性需求。
步骤:需求工程策划---需求获取---需求分析---需求规范化---需求验证---总结
8.软件设计是指针对需求工程给出的软件需求,综合考虑各种制约因素,探求切实可行的软件解决方案,并最终给出方案的逻辑表示。设计模型包括:体系结构模型,用户界面模型,用例设计模型,子系统及构件的设计模型,数据模型。
XXX模式(模型—视图—控制器模式)将软件系统划分为3种构件。
10.体系结构设计的步骤:
1)开发初始的顶层架构
2)搜索并选取可用的设计资产
3)研究公共的基础性软件技术问题,设计技术支持方案
4)确定设计元素
5)开发软件部署模型
6)设计并发机制
7)构建软件体系结构模型
8)评审软件体系结构模型
11.数据模型设计步骤:
1)确定设计模型中需要持久保存的类的对象及其属性
2)确定持久存储的数据之间的组织方式
3)确定数据模型中的操作
4)进一步优化持久数据操作的性能
12.软件的实现是指通过编写代码、单元测试、集成测试、调试、确认等活动,生成可用的、有意义的软件。其任务是根据详细设计规格说明书来生成完整的、可执行的软件代码。
13.编程风格:节俭化模块化简单化结构化文档化格式化
文档化:1有效、适当地使用注释,保证注释有一定意义,说明性强。
2使用含义明确的变量名
3协调使用程序块注释和程序行注释
4始终坚持编制文档
14.软件测试是理解软件系统的行为并修正软件内在缺陷的过程。
15错误来源:
软件开发的复杂性
现实条件的约束
人类本性的弱点
16.软件调试技术
记录和查看日志,查找类似代码和问题,代码消去法,简化重现过程,排除法,值错法,编译检测法,更换编译器,每次改变一个因素,边界条件法,检查最近的修改,删除假设法,检查未被测试的代码,不变式和断言,跟踪系统运行情况,深入理解算法,检查链接,增加重放能力。
17.软件测试是软件质量保证的关键步骤,主要对软件需求和设计规格说明书、软件代码进行审查,以在软件产品交付使用之前尽可能多地发现软件中潜伏的错误。
18.要执行的活动的次序及其在软件生命周期中实施的时机组成了软件测试的过程。
19.黑盒测试:等价分类法边界值分析法
20.把检查软件与其他系统软件和应用软件能否正常地交互和共享信息的测试活动称为兼容性测试。
21.α测试是指软件开发公司组织内部人员模拟各类用户行为对即将面市的软件产品进行测试,试图发现其中的错误并予以修正。
α测试的结果进行修改后的软件产品称为β版本。
β测试是指软件开发公司组织各方面的典型用户在日常工作中实际使用β版本,要求用户报告异常情况、提出批评意见。
V模型的特点:
1、瀑布模型的变种;
2、使用单元测试检验程序设计
3、使用集成测试检验系统体系设计
4、使用接受测试验证需求说明
5、检验和验证过程时发现问题,V模型左边的在它的右边的重新展开前被再次执行。快速原型的特点:
1、允许对需求或设计进行反复调查
2、减少了开发过程的风险和不确定因素