原型模型的概念
在短时间先开发一个很简易的原型版本。
(2)演化模型(Evolutionary Model)基于原型模型,对需求缺乏准确认识的情况下,根据用户使用过程中提出的意见和建议对原型不断重复改进,缺点是要对用户要求加以控制。
(3)增量模型(Incremental Model)基于原型模型,把需求先划分多个模块,每个模块可进行增量开发。

适合风险比较大的项目,加入了风险分析。
(5)喷泉模型(Fountain Model)
以用户需求为基础,适用于面向对象开发。开发要重复多次。
(6)统一过程(Unified Process)用例和风险驱动,以架构为中心。
(7)敏捷方法(Agile Development)尽可能早地、持续地对有价值的软件的交付,强调是快速、时效性高,不强调文档。
3. 软件开发方法(1)结构化方法自上向下逐层分解。
(2)面向对象开发方法面向对象分析、设计与实现,适合比较复杂的项目模型。
(3)Jackson方法面向结构的开发方法。
(4)原型化方法需求不清晰、业务不确定的情况。
二、软件需求分析(1)可行性分析技术可行性经济可行性操作可行性(2)需求分析功能需求非功能需求设计约束三、软件设计(1)软件设计的原则抽象:内聚(模块内的交互程度)、耦合(模块间的交互程度),希望高内聚、低耦合;模块化信息隐蔽模块独立(2)内聚和耦合内聚类型:功能内聚:最强的内聚,完成一个单一功能;顺序内聚:前一个功能的输出是后一个功能的输入;通信内聚:所有处理元素集中在一个数据结构的区域上;过程内聚暧时内聚(时间内聚):同时执行的动作组合在一起逻辑内聚偶然内聚:功能间没有任何联系耦合非直接耦合:模块间没有直接关系,模块间不传递任何信息。
四、软件测试1. V模型2. 软件测试的过程(1)单元测试、模块测试一般使用白盒测试(知道内部结构和程序流等)
(2)集成测试黑盒测试,按系统设计说明书进行测试。
(3)确认测试黑盒测试,检查软件的功能、性能和其他特征是否与用户的需求一致。
(4)系统测试墨盒测试,把软件放在实际的硬件和网络环境中进行测试,主要测试软件的非功能需求和质量属性是否得到满足。
3. 黑盒测试与白盒测试语句覆盖:被测程序的每个语句至少执行一次(最弱的覆盖标准)。判定覆盖:判定条件(if)至少获得一次真、假值。条件覆盖:每个判定语句中的每个逻辑条件的各种可能值至少满足一次。路径覆盖:覆盖所有可能的程序运行路径。判定/条件覆盖:同时满足判定和条件覆盖。条件组合覆盖:……4. 测试原则与注意事项(1)测试原则尽早测试、测试应贯穿在开发的各个阶段;测试工作应避免由开发者承担;设计测试方案的时候,不仅要确定输入数据,还要根据系统功能确定预期的输出结果;设计测试用例时,要输入不合理的数据或条件;测试程序中要检验程序是否做了该做的事、还要确认不要多做了事情;测试要有计划,测试计划、测试用例作为文档的一部分保存;测试用例精心设计 ,便于重复使用。(2)测试注意事项发现错误较多的模块,在纠正错误后,遗留的错误也比较多;测试的目的是为了发现错误,而不是验证程序没有错误;通过软件测试不可能完全发现错误;不可能保证程序100%没问题;测试工作由开发方负责,从需求阶段提出;开发时将质量也构建进产品;测试人员与开发人员要密切合作;软件测试的目的不仅要找出缺陷,还要随时提供质量相关信息。五、软件运行与维护可理解性可测试性可修改性软件维护类型:
正确性维护:更正程序错误。适应性维护:使用软件适应新技术变化或管理需求变化。预防性维护:为了改进应用软件的可靠性和可维护性,为了适应未来的软硬件的变化,主动增加预防性的功能。完善性维护:扩充功能和改善性能。六、程序员职业素养1. 软件工程基本原理用分阶段的生命周期计划严格管理,将复杂问题简化处理;坚持进行阶段评审;严格的版本管理;采用现代程序设计技术,但不追求最新技术;审查记录;开发小组人员少而精;知识管理。2. 软件工程的最终目标正确性可用性可靠性友好性可读性健壮性:不合理的数据操作可以检查、纠正、提示;效率可移值性3. 程序员的职业素养有团队精神和较强的沟通能力文档与知识管理版本管理编码规范测试体系