软件工程概论常用问答

来源:互联网 发布:手机淘宝查看交易快照 编辑:程序博客网 时间:2024/04/30 02:45

说实话,这是为了考试准备的。明天是是软件设计与体系结构的考试。。

虽然搞ACM,但是自己的专业本行还是不能丢掉啊。。况且自己的ACM实在是渣。

这个六月份把所有的考试都努力刷个高分,GPA刷上去,为未来做准备。。


事实上,我知道这些理论性的东西,比ACM,软件项目开发什么的更加重要,但是实在是太枯燥了。

知道自己太过于急功近利了。已经大二了,剩下的时间不多,这种心态还是要好好克服一下。

开始准备考试吧!



问:

1、什么是软件工程?软件工程的三要素是什么?

软件工程就是将系统的、规范的、可度量的方法应用于软件的开发、运行和维护过程,以及对上述方法的研究。软件工程是用工程,科学和数学的原则与方法,研究和维护计算机软件的有关技术以及管理方法。

一般认为软件工程由方法,工具和过程组成。

软件工程方法为软件开发提供了“如何做”的技术。它包括了多方面的任务,比如项目计划于估算、软件系统需求分析、数据结构、系统总体结构的设计、算法过程的设计、编码、测试以及维护等。

软件工具为软件工程方法提供了自动或者半自动的软件支撑环境。目前,已经退出了许多软件工具。将这些软件工具集成起来,建立起称之为计算机辅助软件工程的软件开发支撑系统。换句话说,也就是将各种软件工具,开发激起和一个存放开发过程信息的工程数据库组合起来形成一个软件工程环境。

软件工程的过程将软件工程的方法和工具综合起来,以达到合理、及时地进行计算机软件开发的目的。过程定义了使用的开发模型,保证了开发的质量。


2、软件设计应该包含哪些要素?

软件设计最终要提供一种解决方案,用于描述如何实现一个满足需要的软件。作为一个完整的软件设计方案,它应该包含以下一些组成要素。

(1)、目标描述。设计方案需要清楚地描述它要解决的问题和将要达到的目标。

(2)、设计约数。设计目标的获得通常要在某些约束的限制范围内,这些约束定义了要解决问题的解空间。

(3)、产品描述。设计活动的结果必须以一种对被设计的产品进行描述的方式呈现出来。

(4)、设计原理。工程化的设计活动必须以一定的科学原理和技术手段为基础、它们将表明问题可以通过该设计得到合理地解决。

(5)、开发规划。工程化的设计活动不仅需要让人知道该设计能解决问题,还需要让人们了解该设计在实际开发中是可行的,以及如何实现该设计。

(6)、使用描述。产品经常在某些特定条件下才能被可靠、高效地使用,并达到最初的设计目标。因此,描述产品如何使用非常重要。


3、软件体系结构与软件设计有何关系?软件体系结构的出现有何必然性和重要意义?

软件体系结构设计作为软件设计过程中的必要步骤之一,能够在抽象级别上描述整个软件系统的架构,成为大规模复杂软件系统设计中的必不可少的步骤。

软件体系结构将构件与构件之间的链接作为软件体系结构的基本组成部分,使软件从代码复用发展到设计复用,过程复用,为基于体系结构的软件开发提供了强有力的支持。


4、在软件设计过程中,人们需要重点考虑软件体系结构的哪些方面?

一、软件体系结构的描述:需要考虑的一个问题就是如何对体系结构进行描述和建模。软件体系结构描述可以从以下三个层次进行考虑:

(1)、软件体系结构中包含的基本概念,即软件体系结构模型由哪些元素组成,这些组成元素之间按照何种原则进行组织。

(2)、软件体系结构描述语言(ADL),在软件体系结构基本概念的基础上,适当地以形式化的方法对一个特定的体系结构进行描述和建模。

(3)、软件体系结构的多视图表示,即从不同的视角描述特定系统的体系结构,从而得到多个视图,并且将这些视图组织起来以描述软件体系结构的整体。

二、软件体系结构的设计方法

软件体系结构的设计方法是指通过一系列的设计活动,获得满足系统功能性需求和非功能性需求的软件体系结构模型。软件体系结构描述只是提供一种表达软件体系结构的方式,但如何获得对体系结构的表示则是软件体系结构设计方法需要考虑的。软件体系结构设计过程的本质在于将系统分解成相应的组成元素,并且将这些元素组装成一个系统。

三、软件体系结构的分析方法

软件体系结构的分析方法可以通过分析体系结构设计所产生的模型,预测系统的质量属性并界定存在的潜在风险。软件体系结构分析是设计过程中必不可少的,因为涉及得到的体系结构模型的质量将会直接影响后续设计和实现结果的质量,只有通过分析和评审并认为体系结构模型达到要求后,才能继续进行后续设计活动。

四、软件体系结构的复用

总结和记录软件经验是软件工程的重要目标之一,软件体系结构设计也强调对设计经验的总结和复用。随着软件规模和复杂度的提高,软件复用的力度越来越大,从代码进行复用发展到设计复用,模式复用,过程复用,如果软件体系结构能够得到复用,将极大地提高软件开发的效率和最终软件的质量。软件体系结构的复用既包括对解决共性问题的软件体系结构进行复用,也包括对特定领域中的软件体系结构进复用。



0 0