快速原型法特点:
1,迭代。
2,自始至终强调用户参与。
3,在用户需求分析、系统功能描述及系统实现方法等方面有较大的灵活性。用户需求可以十分不明确,系统功能描述也可以不完整,对于界面的要求也可以逐步完善。
4,可以用来评价几种不同的设计方案。
5,可以用来建立系统的某个部分。
6,不排除传统生命周期发中大量采用的大量行之有效的方法和工具,是与传统方法互为补充的。
原型不适用:
1,缺乏适用的原型开发工具。
2,用户不参与、不积极配合开发过程。
3,用户的数据资源缺乏组织和管理。
4,用户的软件资源缺乏组织和管理。
集成测试(组装测试):增量集成测试(渐增式集成)、非增量集成测试(整天拼装)。
1,自顶向下。不需要驱动程序。
2,自底向上。不需要桩程序。
3,混合增殖。
增量测试优点:
1,容易定位错误。
2,测试强度大。
3,测试的工作量大。
4,测试过程长,进度慢。
5,...;非增量中间模块要写桩程序也驱动程序。
需求定义方法:严格定义、原型定义。
严格定义假设:
1,所有需求能够被严格定义。
2,开发人员和用户之间能够准确、清晰地交流。
3,采用图像文字可以重复体现最终系统。
严格定义缺点:
1,文档量大。
2,开发过程的可见性差,用户反馈太迟。
原型方法注意事项:
1,并非所有的需求都能在系统开发前被准确地说明。
2,项目参加者之间通常存在交流困难,原型提供了克服改困难的一个手段。
3,需要实际的、可供用户参与的系统模型。
4,有合适的系统开发环境。
5,需求一旦确定,就应遵从严格的方法。
软件的分层式体系结构:应用软件、业务构件、中间件、系统软件。
现有系统的分析过程:
1,现有系统的物理模型。2,现有系统的逻辑模型。3,新系统的逻辑模型。4,新系统的物理模型。
物理模型:怎么做
逻辑模型:做什么。
基于构件的开发模型(CBD):需求分析与定义、架构设计、构件库建立、应用软件构件。
需求分析的困难:1,问题空间的理解。 2,人与人之间的沟通。 3,环境的不断变化。
软件工程组织范式:1,封闭式。 2,随机式。 3,开放式。 4,同步式。
软件调试方法:蛮力法、回朔法、原因排除法、直觉。
界面原则:
1,用户控制。
2,信息最小化。
3,帮助和提示。
4,媒体最佳组合。
5,界面一致性。
6,界面容错性。
7,界面美观性。
8,界面可适应性。
面向功能的度量,数据域:
1,用户输入数。
2,用户输出数。
3,用户查询数。
4,文件数。
5,外部接口数。
需求:功能需求、性能需求、环境需求、用户界面需求。
统一软件开发过程(基于面向对象):起始阶段、细化阶段、构建阶段、移交阶段。
敏捷:
1,个体交互胜过过程与工具。
2,可以工作的软件胜过面面俱到的文档。
3,客户合作胜过合同谈判。
4,相应变化胜过遵从计划。
极限编程(敏捷编程的一种):规划、设计、编码、测试。
1,重构(设计技术的重构、构建技术的重构)
2,基本设计完成后,不应开始编码,而是开发一系列检测本次发布的所以故事的单元测试。
3,结对编程。
4,单元测试应该可以自动实施,支持代码修改后即时的回归测试策略。
质量功能部署三类需求:1,基本需求(常规需求)2,期望需求 3,惊喜需求。
软件开发模型:
1,完全确定软件需求为前提的瀑布模型。
2,软件开发阶段只能提供基本需求时采用的迭代式模型。
3,以形式化为基础的变换模型。
需求开发的过程:获取、分析、定义、验证。
需求管理:变更控制、版本控制、需求跟踪、需求状态跟踪。