软件工程章节总结

第一章 软件工程概述

1. 软件的特点:1)无形的2)逻辑思维、智能活动和技术水平是生产软件产品的关键3)不会老化4)依赖于特定的计算机系统环境5)可复用性

2. 按功能不同分为:系统软件、支撑软件、应用软件。按服务对象不同分为通用软件和定制软件

3. 软件危机:落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列严重问题的现象。表现:1)开发的软件不能完全满足用户的需求2)软件产品的质量难以得到保证3)软件的开发周期、经费难以估计4)随着技术更新和用户需求的扩大,以往的软件往往难以适应环境的变换5)软件文档不完备,并且存在软件的文档内容与软件产品不符的情况。

4. 软件危机原因:1)复杂的工程,要有科学的工程化思想2)没有完善的质量保证体系3)软件文档的重要性没有得到软件开发人员和用户的重视4)从事软件开发的专业人员对这个产业认识不充分,缺乏经验5)软件独有的特点也给软件的开发与维护带来困难

5. 软件工程:为了经济的获取可靠的和能在实际机器上高效运行的软件而建立和使用的健全的工程规则。

6. 软件工程的主要目标:1)使成本能够控制在预计的合理范围2)使功能和性能能满足用户需求3)提高软件产品的质量4)提高可靠性5)使易于移植、维护、升级和使用6)使开发周期能够控制在预计的合理时间内

7. 瀑布模型:1)线性的软件开发模型,回溯性差。只有一个阶段的活动完成后,才会进入下一个阶段2)基于里程碑的阶段过程模型,有益于发现产品缺陷3)强调开发过程的阶段性,每个阶段完成特定的任务

8. 增量模型:将待开发的软件系统模块化和组件化。优点:1)可以分批的提交软件产品,使用户及时了解软件项目的进展2)以组件为单位进行开发,降低软件开发的风险3)开发顺序灵活。缺点:如果待开发的系统很难被模块化,将给增量开发带来很多麻烦

9. 螺旋模型:适用于风险较大的大型软件项目的开发。优点:将风险分析扩散到各个阶段中,大幅度降低了软件开发的风险。缺点:控制和管理较为复杂,可操作性不强,对项目人员的要求高。

第二章 可行性研究及需求分析

1. 可行性研究的内容:1)技术可行性2)经济可行性3)社会可行性

2. 可行性研究的步骤:1)确定系统目标2)分析研究正在运行的系统3)设计新系统的高层逻辑模型4)提出可行的解决方案并对其进行评估和比较5)选择合适的解决方案6)撰写可行性研究报告

3. 需求分析的步骤:1)获取需求,识别问题2)分析需求,建立目标系统的逻辑模型3)将需求文档化4)需求验证

4. 结构化需求分析的工具:数据流图、数据字典、E-R图

5. 面向对象的基本概念:

1) 对象:可以是客观存在的事物,也可以是概念化的实体,它由一组属性和操作组成。

2) 类:对对象的抽像,是对具有相同属性和相同操作的一组想死对象的定义。

3) 封装:把对象的属性和操作结合在一起,组成一个独立的单元。

4) 继承:表示类之间的层次关系,它使得某类对象可以自动拥有另外一个或多个对象的全部属性和操作。

5) 多态:使父类中定义的属性或操作被子类继承后,可以有不同的实现的机制

6. UML概念及用途:UML,即统一建模语言,是一种标准的图形化建模语言。它主要用于软件的分析与设计,用定义完善的符号来图形化的展现一个软件系统。

第三章 软件设计

1.软件设计的原则:1)模块化2)抽象3)逐步求精4)信息隐藏

2.高内聚低耦合(一定记住最高最低):

3.系统结构图(P105)要看懂

4.Jackson方法把数据结构分为3种基本类型:顺序形结构、选择型结构、循环型结构

5.结构化软件设计工具:1)流程图2)N-S图3)PAD图4)HIPO图:H图:软件总的模块层次结构。IPO图:每个模块输入/输出数据处理功能及模块调用的详细情况

第四章 编码及实现

1编程语言分类及特点:

1)java:具有极好的跨平台性,拥有目前全球最大的开发者群

2)C语言:基友高级语言特点,又有汇编语言特点、C语言相比其他高级语言更接近底层,因此执行效率高。

3)C++:既具有接近C语言一样的执行效率,又有高级语言的面向对象特征。部署方便、执行效率高,更接近底层。

4)C#(上述语言的综合体):无聊。。。(记住3个就行了吧)

5)PHP:语法简单,容易上手,开发快捷,跨平台性强,效率高,面向对象

2.编程的优化(没找到,就随便写点。。):

第五章 软件测试

1.软件测试概念:发现软件中的错误和缺陷的主要手段。

2.软件测试的原则:1)完全测试是不可能的2)测试中存在风险3)软件测试智能表明缺陷的存在,而不能证明软件产品已经没有缺陷4)软件产品中潜在的错误数与已发现的错误数成正比5)让不同的测试人员参与到测试工作中6)让开发小组和测试小组分立,开发工作和测试工作不能由同一部分人来完成7)尽早并不断的进行测试,使测试工作贯穿于整个软件开发的过程8)在设计测试用例时,应包括输入数据和预期的输出结果两个部分。并且,输入数据不仅应该包括合法的情况,还应该包括非法的输入情况。9)要集中测试容易出错或错误较多的模块10)应该长期保存所有的测试用例

3.软件测试模型(应该是了解的吧):

4.黑盒测试:等价类划分、边界值分析、错误推测、因果图

5.白盒测试:代码检查法、静态结构分析法、逻辑覆盖法、域测试、符号测试

6.等价类划分:课本实例。

7.逻辑覆盖法:课本实例(分支覆盖、条件覆盖)。

8.系统测试是__________从开始的。

第六章 软件工程的其他相关内容

1.软件维护的过程:1)建立维护机构2)用户提出维护申请并提交维护的申请报告3)维护人员确认维护类型并实施相应的维护工作4)整理维护记录并对维护工作进行评审5)对维护工作进行评价

2.软件维护的分类:纠错性维护、适应性维护、完善性维护、预防性维护+

3.软件的可维护性:衡量对软件产品进行维护的难易程度的标准。

4.影响软件可维护的因素:可理解性、可测试性、可修改性等。

5.提高可维护性的措施:1)建立完整的文档2)采用先进的维护工具和技术3)注重可维护性的评审环节

6.软件项目的管理:为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对人员(People)、产品(Product)、过程(Process)和项目(Project)进行分析和管理的活动。

7.软件开发成本:资源计划编制、成本估算、项目预算、成本控制

8.软件进度安排:是软件产品能够如期的交付到用户手中。

9.软件风险:项目风险、技术风险、商业风险

10.文档:某种数据截止和其中所记录的数据。

11.软件文档具备的特性:1)及时性2)完整性3)实用性4)规范性5)结构化6)简洁性

猜你喜欢

转载自blog.csdn.net/lulubaby_/article/details/79690467