软件工程资料
知识点:
1. 软件工程的概念,软件工程是指导计算机软件开发和维护的一门工程学科,采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济的开发出高质量的软件并有效地维护它。
2. 软件工程方法学,指在软件生命周期全过程中使用的一整套技术方法的集合,软件工程方法学包含3个要素:方法、工具、过程,目前使用的最广泛的软件工程方法学,分别是传统方法学和面向对象方法学。
3. 概括的说软件生命周期由软件定义、软件开发和运行维护3个时期组成,每个时期又进一步划分成若干个阶段:问题定义、可行性研究、需求分析、总体设计、详细设计、编码和单元测试、综合测试、软件维护。
4. 可行性研究的目的不是解决问题,而是确定问题是否值得去解决。技术可行性研究使用现有的技术能实现这个系统吗?经济可行性研究这个系统的经济效益能超过他的卡发成本吗?操作可行性研究系统的操作方式在这个用户组织内行的通吗?
5. 数据流图是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受得变换。
6. 数据字典是关于数据的信息的集合,也就是对数据流图中
包含的所有元素的定义的集合。
7. 需求分析是软件定义时期的最后一个阶段,他的基本任务是准确地回答“系统必须做什么”,虽然可行性研究阶段已经粗略了解了用户的需求,但它的基本目的是用小小的成本在较短的时间内确定是否存在可行的解法,所以可行性研究不能代替需求分析。
8. 需求分析工具:实体—联系图(数据对象、属性、联系)、状态转换图、层次方框图、Warnier图、IPO图
9. 总体设计可以站在全局高度上,花较少成本,从较抽象的层次上分析对比多种可能的系统实现方案和软件结构,从中选出最佳方案和最合理的软件结构,从而用较低成本开发出较高质量的软件系统。总体设计的原理是模块化。
10. 模块是由边界元素限定的相邻程序元素的序列,而且有一个总体标识符代表它。按照模块的定义,过程、函数、子
程序和宏等都可作为模块,模块是构成程序的基本构件。 模块化就是把程序化分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求。
11. 模块独立的概念是模块化、抽象、信息隐藏和局部化概念的直接结果。模块的独立程度可以由两个定性标准度量:耦合、内聚
12. 人们在开发计算机软件的长期实践中积累了丰富的经验,
总结这些经验得出了一些启发式规则:改进软件结构提高模块独立性、模块规模应该适中、深度、宽度、扇出和扇入都应适应、模块的作用域应该在控制域之内、力争降低模块接口的复杂程度、设计单入口单出口的模块、模块功能应该可以预测。
13. 详细设计阶段的根本目标是确定应该怎样具体的实现所要求的系统,也就是说,经过这个阶段的工作应该得出对目标系统的精确描述,从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序。
14. 结构程序设计的经典定义:如果一个程序的代码块仅仅通过顺序、选择和循环这3种基本控制结构进行连接,并且每个代码块只有一个入口和一个出口,这成这个程序是结构化的。
15. 过程设计的工具:程序流程图、盒图(N-s图)、PAD图、判定表、判定树
16. 编码风格包括程序内部的文档(包括恰当 的标识符、适当的注解和程序的视觉组织等等)、数据说明、语句构造、输入输出、效率。
17. 软件测试的目标:测试时为了发现程序中的错误而执行程序的过程、好的测试方案是极可能发现迄今为止尚未发现的错误的测试、成功的测试是发现了至今为止尚未发现的错误的测试。
18. 测试步骤: 模块测试- 子系统测试-系统测试-验收测试-平行运行
19. 黑盒测试着重测试软件功能,黑盒测试并不能取代白盒测试,它是与白盒测试互补的测试方法,它很可能发现白盒测试不易发现的其他类型的错误。白盒测试在测试过程的早期阶段进行,而黑盒测试主要用于测试过程的后期。
20. 软件可靠性,软件可用性的概念。
21. 软件维护的主要目标是使已部署的软件按照需求规格说明书的要求(或用户的新需求)运行,这要求软件不仅要满足用户所需要的各项功能需求,同时还要满足用户对软件的非功能需求。软件维护的基本内容则包含了实现这些目标所做的全部工作。
22. 按照维护的起因分类:纠错性维护、适应性维护、改善性维护、预防性维护四类。
23. 结构化维护和非结构化维护的不同。
24. 维护的副作用是指,由于维护或在维护过程中其他一些不期望的行为引入的错误。副作用可分三类: 代码副作用、数据副作用、文档副作用
25. 软件的可维护性是指软件被理解和被正确改动的难易程度。
考试题型及配分:
一、 单选题(每题2分,共10分)
二、名词解释 (每题4分,共20分)
三、填空题(每空1分,共20分)
四、简答题 (每题5分,共20分)
五、画图题 (每题10分,共30分)
例题:
1.某公司为本科以上学历的人重新分配工作,分配原则如下:
(1)如果年龄不满18岁,学历是本科,男性要求报考研究生,女性则担任行政工作;
(2)如果年龄满18岁不满50岁,学历本科,不分男女,任中层领导职务,学历是硕士不分男女,任课题组组长;
(3)如果年龄满50岁,学历本科,男性任科研人员,女性则担任资料员,学历是硕士不分男女,任课题组组长。 要求:用判定表或者判定树表示工作分配的过程。
2.使用程序流程图、盒图和PAD图表示此问题求解方法: 求10到100之间能够被3整除的所有数的和以及个数.
3.某电器集团公司下属的厂包括技术科、生产科等基层单位。现在想建立一个计算机辅助企业管理系统,其中生产科的任务是:
(1)根据销售公司转来的内部合同(产品型号、规格、数量、交获日期)制定车间月生产计划。
(2)根据车间实际生产日报表、周报表调整月生产计划
(3)以月生产计划为以及,制定产品设计(结构、工艺)及产品组装月计划。
(4)将产品的组装计划传达到各科,将组装月计划分解为周计划,下达给车间
技术科的任务是:
(1)根据生产科转来的组装计划进行产品结构设计,产生产品装配图给生产科,产生外购需求计划给供应科,并产生产品自制物料清单。
(2)根据组装计划进行产品工艺设计,根据产品自制物料清单产生工艺流程图给零件厂。
试写出以上系统中生产科和技术科处理的软件系统的模块层次结构图。