本关任务:掌握软件的基本概念与特征,并完成相应的选择题。
为了完成本关任务,你需要掌握:
1.什么是软件;
2.软件的特点;
3.常见的软件类型。
软件( Software )是一系列按照特定顺序组织的计算机数据和指令的集合。如图1所示,它通常包含以下特点:
无形性;软件是看不见、摸不着的东西,它没有物理形态,但是我们可以通过对软件的使用来了解它的功能、逻辑等等特性;
软件是一种智力成果;软件是由开发者通过运用计算机知识构建出来的,它是编程者智力和逻辑性的结果;
软件不会像硬件一样老化磨损,但存在缺陷维护和技术更新;
依赖性;软件的开发受限制于硬件的环境,因为在开发过程中应该尽量减少软件对硬件的依赖,从而有了可移植性的概念;
可复用性;在完成软件的开发以后,可以进行复制从而形成多个副本。
程序:按事先设计的功能和性能需求执行的指令序列。
数据:是程序能正常操纵信息的数据结构。
文档:与程序开发、维护和使用有关的图文资料。
按应用范围划分,一般来讲软件被划分为系统软件、应用软件和介于这两者之间的中间件。
按照软件的应用领域,可将计算机软件划分为以下几类:
根据相关知识,按照要求完成右侧选择题任务。作答完毕,通过点击“测评”,可以验证答案的正确性。
【1】 软件工程概论
【2】 软件的定义与分类
开始你的任务吧,祝你成功!
本关任务:理解清楚软件工程的基本概念,并完成相应的选择题。
为了完成本关任务,你需要掌握软件工程的基本概念,并理解内聚、耦合的具体含义。
软件工程是用工程、科学和数学的原则与方法研制、维护计算机软件的有关技术及管理方法。软件工程包括三个要素:方法、工具和过程。
软件工程的主要思想是强调软件开发过程中应用工程化原则的重要性。软件工程的目的是在经费的预算范围内,按期交付出用户满意的、质量合格的软件产品。
软件工程的目标是:在给定成本、进度的前提下,开发出具有适用性、有效性、可修改性、可靠性、可理解性、可维护性、可重用性、可移植性、可追踪性、可互操作性和满足用户需求的软件产品。追求这些目标有助于提高软件产品的质量和开发效率,减少维护的困难。
内聚标志一个模块内各个元素彼此结合的紧密程度,它是信息隐蔽和局部化概念的自然扩展。内聚是从功能角度来度量模块内的联系,一个好的内聚模块应当恰好做一件事。它描述的是模块内的功能联系。
耦合关系是指某两个事物之间如果存在一种相互作用、相互影响的关系。常见的耦合关系有:
①内容耦合( Content Coupling )
如果发生下列情形,两个模块之间就发生了内容耦合。
②公共耦合( Common Coupling )
若一组模块都访问同一个公共数据环境,则它们之间的耦合就称为公共耦合。公共的数据环境可以是全局数据结构、共享的通信区、内存的公共覆盖区等。
③外部耦合( External Coupling )
一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数表传递该全局变量的信息,则称之为外部耦合。
④控制耦合( Control Coupling )
如果一个模块通过传送开关、标志、名字等控制信息,明显地控制选择另一模块的功能,就是控制耦合。
⑤数据耦合( Data Coupling )
如果一个模块访问另一个模块时,彼此之间是通过数据参数(不是控制参数、公共数据结构或外部变量)来交换输入、输出信息的,则称这种耦合为数据耦合。
根据相关知识,按照要求完成右侧选择题任务。作答完毕,通过点击“测评”,可以验证答案的正确性。
【1】软件工程概论
【2】内聚、耦合
本关任务:通过对软件工程基本原理的学习,完成相应的选择题。
为了完成本关任务,你需要掌握:软件工程的基本原理,并理解软件生存周期各个阶段的具体任务。
美国著名的软件工程专家 B.W.Boehm 于1983年提出了软件工程的7条基本原理。 Boehm 认为这7条原理是确保软件产品质量和开发效率的原理的最小集合。
①用分阶段的生命周期计划严格管理
有统计表明,50% 以上的失败项目是由于计划不周造成的。这条原理表明应该把软件生命周期划分为若干阶段,并相应地制定切实可行的计划,然后严格按照计划对软件的开发与维护工作进行管理;
②坚持进行阶段评审
据统计,大部分错误是在编码之前造成的。在每个阶段都应进行严格的评审,以便尽早发现在软件开发过程中所犯的错误;
③实行严格的产品控制
一切有关修改软件的建议,特别是涉及基准配置的修改建议,都必须按照严格的规程进行评审,在获得批准以后才能实施修改;
④采用现代程序设计技术
采用先进的技术既可以提高软件开发的效率,又可以降低软件维护的成本;
⑤结果应能清楚地审查
为了更好地进行管理,应根据软件开发的总目标以及完成期限尽量明确地规定开发小组的责任和产品标准,从而使所得到的结果能够清楚地审查;
⑥开发小组的人员应该少而精
开发人员的素质和数量是影响软件质量和开发效率的重要因素,应该少而精。这一条基于两点原因:高素质开发人员的效率比低素质开发人员的效率要高几倍到几十倍,开发工作中犯的错误也要少的多;当开发小组为 N 人时,可能的通信信道为 N(N-1)/2, 可见随着人数 N 的增大,通讯开销将急剧增大;
⑦承认不断改进软件工程实践的必要性
遵从上述六条基本原理,就能够较好地实现软件的工程化生产。但是,它们只是对现有的经验的总结和归纳,并不能保证赶上技术不断前进发展的步伐。因此, Boehm 提出应把承认不断改进软件工程实践的必要性作为软件工程的第七条原理。
软件生命周期( Software Life Cycle )是从软件开发需求被提岀,启动可行性分析开始,经历软件开发过程,直到软件被开发出来、投入使用,最终被淘汰为止的整个时间。
如图1所示,一般来说,整个生存周期包括计划(定义)、开发、运行(维护)三个时期,每一个时期又划分为若干阶段。每个阶段有明确的任务,这样使规模大、结构复杂和管理复杂的软件开发变得容易控制和管理,生存周期包括:
根据相关知识,按照要求完成右侧选择题任务。作答完毕,通过点击“测评”,可以验证答案的正确性。
【1】软件工程基本原理
【2】软件工程概论