文档库 最新最全的文档下载
当前位置:文档库 › 软件工程简答

软件工程简答

软件工程简答
软件工程简答

1.软件生命周期各阶段的任务是什么?

软件生命周期(SDLD):是指从软件开始开发到报废的全过程,亦称软件生存期(life cycle)。一般用经典的瀑布模型来描述。

GB 8567中规定,软件生命周期分为7个阶段:

1. 可行性研究和项目开发计划

2. 需求分析

3. 概要设计

4. 详细设计

5. 编码

6. 测试

7. 维护

在可行性分析阶段,对开发新系统的基本思想和过程进行了分析和论证,对系统的基本功能、性能及开发时间的限制,人员安排、投资情况等作出了客观的分析,即对经济上的可行性、技术上的可行性进行了重点研究。

在需求分析阶段,要对经过可行性分析所确定的系统目标和功能做进一步的详细论述;只有通过软件的需求分析,才能够把软件系统的总体概念的描述转换为具体的软件需求规格说明,从而奠定软件开发的基础。

软件设计的任务将分析阶段获得的需求说明转换为计算机中可实现的系统,完成系统的结构设计,包括数据结构和程序结构最后得到软件设计说明书。

在设计步骤中,根据软件的功能和性能需求等,采用某种设计方法进行数据设计、系统结构设计和过程设计。

数据设计侧重于软件数据结构的定义。

系统结构设计定义软件系统的整体结构,是软件开发的核心步骤。在设计步骤中,建立软件主要成份之间的关系。

过程设计则是把结构成份转换成软件的过程性描述。

在编码步骤中,根据这种过程性描述,生成源程序代码,然后通过测试,最终得到完整有效的软件。

因为开发工作的前期不可避免地会引入错误,测试的根本目的是为了发现和改正错误

软件维护是指软件系统交付使用以后,为了改正错误或满足新的需求而修改软件的过程。

2.如何画分层数据流图?

画分层DFD图的方法

先全局后局部,先整体后细节,先抽象后具体.

通常可将这种分层的DFD图,分为顶层、中间层、底层。

具体步骤:

1、先确定系统范围,画出顶层的DFD图。

2、逐层分解顶层DFD图,获得若干中间层DFD图。

3、画出底层的DFD图。顶层图说明了系统的边界,即系统的输入和输出数据

流,顶层图只有一张。底层图由一些不能再分解的加工组成,这些加工都非常简单,称为基本加工。在顶层和底层之间的是中间层,中间层的数据流图描述了某个加工的分解,而它的组成部分又要进一步分解。画各层DFD图时,由外向内。

一、画分层DFD图原则

数据守恒与数据封闭原则

所谓数据守恒是指加工的输入输出数据流是否匹配,即每一个加工既有输入数据流又有输出数据流。或者说一个加工至少有一个输入数据流,一个输出数据流。

加工分解的原则

自然性:概念上合理、清晰;

均匀性:理想的分解是将一个问题分解成大小均匀的几个部分;

分解度:一般每一个加工每次分解最多不要超过7个子加工,应分解到基本加工为止。

子图与父图的“平衡”

父图中某个加工的输入输出数据流应该同相应的子图的输入输出相同(或相对应),分层数据流图的这种特点称为子图与父图“平衡”。

合理使用文件

当文件作为某些加工之间的交界面时,文件必须画出来,一旦文件作为数据流图中的一个独立成份画出来了,那么同其他成份之间的联系也应同时表达出来。

DFD图必须经过反复修改,才能获得最终的目标系统的逻辑(目标系统的DFD图)。可从以下方面考虑DFD图的改进。

1、检查数据流的正确性

①数据守恒;

②子图、父图的平衡;

③文件使用是否合理,特别注意输入/出文件的数据流。

2、改进DFD图的易理解性

①简化加工之间的联系(加工间的数据流越少,独立性越强,易理解性越好);

②改进分解的均匀性;

③适当命名(各成分名称无二义性,准确、具体)。

3.模块内联系和模块间联系有哪些种类?

模块化的主要优点是,模块化设计降低了软件系统的复杂性,使得系统容易修改,同时使得系统各个部分可以并行开发,从而提高了软件的生产率。

提高模块质量在于提高模块独立性。模块的独立性用耦合性和内聚性来衡量。

“模块”,又称“构件”,一般指用一个名字可调用的一段程序。它一般具有如下三个基本属性:

⑴功能即指该模块实现什么功能,做什么事情。必须注意,这里所说的模块功能,应是该模块本身的功能加上它所调用的所有子模块的功能。

⑵逻辑即描述模块内部怎么做。

⑶状态即该模块使用时的环境和条件。

所谓模块的独立性,是指软件系统中每个模块只涉及软件要求的具体的子功能,而和软件系统中其他模块的接口是简单的。即功能专一,模块之间无过多的相互作用的模块。

这种类型的模块可以并行开发,模块独立性越强,开发越容易。独立性强的模块,还能减少错误的影响,使模块容易组合、修改及测试。

模块独立性的度量标准是两个定性准则:

耦合性用于描述模块之间联系的紧密程度。

内聚性用于描述模块内部联系的紧密程度。

模块独立性比较强的模块应该是具有高内聚性和的低耦合度。

耦合性是指软件结构中模块相互连接的紧密程度,是模块间相互连接性的度量。模块分解的一个目标是使块间联系尽可能小,块间联系的大小可从三个方面衡量:

①方式—块间联系方式有“直接引用”或“用过程语句调用”。

②作用—块间传送的共用信息(参数)类型,可为“数据型”、“控制型”或“混合型”(数据/控制型)。

③数量—块间传送的共用信息的数量。

模块分解的一个目标是使块间联系尽可能小,达到这个目标可通过以下措施。

⑴每个模块用过程语句(或函数方式等)调用其他模块。

⑵模块间传送的参数为数据型。

⑶模块间公用的信息(如参数等)尽量少。

内容耦合公共耦合控制耦合复合耦合数据耦合(耦合性高到低)

一个模块直接访问另一模块的内部数据。一个模块不通过正常入口转到另一模块的内部。

一个模块有多个入口。两个模块有部分代码重迭。

公共耦合若干模块访问一个公共的数据环境,则它们之间的耦合称为公共耦合。公共环境可为全局数据结构、共享的通信区、内存的公共覆盖区等。显然,公共数据区的变化,将影响所有公共耦合模块,严重影响模块的可靠性和可适应性,降低软件的可读性。

3、控制耦合一个模块传递给另一模块的信息是用于控制该模块内部逻辑的控制信号。显然,对被控制模块的任何修改,都会影响控制模块。

4、复合耦合一个模块传送给另一个模块的参数是一个复合的数据结构。例如,包含几个数据单项的记录。

5、数据耦合一个模块传送给另一个模块的参数是一个单个的数据项或者单个数据项组成的数组。

内聚性表示一个模块内部各种数据和各种处理之间联系的紧密程度,它是从功能的角度来度量模块间的联系。显然,块内联系愈紧,即内聚性愈强,模块独立性愈好。

内聚性由强到弱功能型顺序型通信型瞬时型逻辑型偶然型

1、偶然型又称为巧合型,为了节约空间,将毫无关系(或者联系不多)的各成分放在一个模块中。这样的模块显然不易理解,不易修改。

2、逻辑型将几个逻辑上相似的功能放在一个模块中,调用时由调用模块传递的参数确定执行的功能。由于要进行控制参数的传递,必然要影响模块的内聚性。

3、瞬时型将需要同时执行的成分放在一个模块中,模块中的各功能与时间有关,因此又称为时间内聚或经典内聚。例如,初始化模块,中止模块等这类模块内部结构较简单,一般较少判定,因此比逻辑内聚强,但是由于将多个功能放在一起,给修改和维护造成困难。

4、通信型模块中的成分引用共同的输入数据,或者产生相同的输出数据,则称为是通信内聚模块。

通信型模块比瞬时型模块的内聚性强,因为模块中包含了许多独立的功能,但却引用相同数据。通信模块一般可以通过数据流图来定义。

5、顺序型模块中某个成分的输出是另一成分的输入。由于这类模块无论数据还是执行顺序,模块中的一部分依赖于另外一部分。因此具有较好的内聚性。

6、功能型一个模块包括而且仅包括完成某一具体功能所必须的所有成分。或者说,模块的所有成分都是为完成该功能而协同工作、紧密联系、不可分割的。

4.比较面向对象方法与结构化方法的特点。

主要特点:

1.自顶而下,逐步求精。这种逐步求精的思想符合人类解决复杂问题的普遍规律,从而可以显著提高软件开发的效率。而且这种思想还体现了先全局后局部、先抽象后具体的方法,使开发的程序层次结构清晰,易读、易理解、易验证,因而提高了程序的质量。

2.结构化的程序是由且仅由顺序、选择、循环三种基本控制结构组成,既保证了程序结构清晰,又提高了程序代码的可重用性。

结构化开发方法是现有的软件开发方法中最成熟,应用最广泛的方法,主要特点是快速、自然和方便。结构化方法总的指导思想自顶向下、逐步求精。它的基本原则是功能的分解与抽象。

结构化开发方法是面向数据流、数据封闭性的开发方法,JACKSON 系统开发方法则是面向数据结构的开发方法。其基本思想是先建立输入输出的数据结构,再将其转换为软件结构。

面向对象的开发方法OOSD(Object-Oriented Software Development)是一种新的软件工程方法,其基本思想就是尽可能按照人类认识世界的方法和思维方式来分析和解决问题,这种方法能够提供更加清晰的需求分析和设计。

面向对象=对象+类+继承+通信

1、按照人类习惯的思维方法,对软件开发过程所有阶段进行综合考虑。以对象为核心,强调模拟现实世界中的概念而不是算法,尽量用符合人类认识世界的思维方式来渐进地分析、解决问题。

2、软件生存期各阶段所使用的方法、技术具有高度的连续性。使用喷泉模型作为其工作模型,软件生存期各阶段没有明显的界限,开发过程回溯重叠,使用相同的描述方法和模型。

3、软件开发各个阶段有机集成,有利于系统的稳定性。将OOA(Object-Oriented Analysis)、OOD(Object-Oriented Design)、OOP(Object-Oriented Program)有机地集成在一起。

4、具有良好的重用性。由于对象所具有的封装性和信息隐蔽,使得对象的内部实现与外界隔离,具有较强的独立性,易于实现可重用性。

面向对象的方法是以对象作为最基本的元素,它是分析问题、解决问题的核心。

5.一般情况下,驱动模块比桩模块容易设计,为什么?

因为驱动模块是模拟主程序或者调用模块的功能,处于被测试模块的上层,所以驱动模块只需要模拟向被测模块传递数据,接收、打印从被测模块返回的数据的功能,较容易实现。

而桩模块用于模拟那些由被测模块所调用的下属模块的功能,由于下属模块往往不只一个,也不只一层,由于模块接口的复杂性,桩模块很难模拟各下层模块之间的调用关系,同时为了模拟下层模块的不同功能,需要编写多个桩模块,而这些桩模块所模拟的功能是否正确,也很难进行验证。

综上,驱动模块的设计显然比桩模块容易。

6.可行性分析的任务是什么?

在可行性分析阶段,对开发新系统的基本思想和过程进行了分析和论证,对系统的基本功能、性能及开发时间的限制,人员安排、投资情况等作出了客观的分析,即对经济上的可行性、技术上的可行性进行了重点研究。

7.可维护性的方法有哪些?

软件可维护性是指纠正软件系统出现的错误和缺陷,以及为满足新的要求进行修改、扩充或压缩的容易程度。

度量一个软件的可维护性常用的方法有:质量检查表、质量测试、质量标准。

质量检查表是用于测试程序中某些质量特性是否存在的一个问题清单。评测者针对检查表上的每一个问题,依据自己的定性判断,回答“Yes”或者“No”。

质量测试和质量标准用于定量分析和评价程序的质量。由于许多质量特性是相互抵触的,可用以下度量标准,去度量不同的质量特性。

⑴可理解性表明人们通过阅读源代码和相关文档,了解程序功能及其如何运行的容易程度。一个可理解的程序主要应具备以下一些特性:

模块化,风格一致性,不使用令人捉摸不定或含糊不清的代码,使用有意义的数据名和过程名,结构化,完整性等。

对于可理解性,Shneiderman提出一种叫做“90-10测试法” 来衡量。即让有经验的程序员阅读10分钟要测试的程序,然后如能凭记忆和理解写出90%的程序,则称该程序是可理解的。

⑵可靠性表明一个软件按照用户的要求和设计目标,在给定的一段时间内正确执行的概率。关于可靠性,度量的主要标准有:平均失效间隔时间、平均修复时间、有效性。

度量可靠性的方法,主要有两类:

根据程序错误统计数字,进行可靠性预测。

根据程序复杂性,预测软件可靠性。

⑶可测试性表明论证软件正确性的容易程度。对于程序模块,可用程序复杂性来度量可测试性。

⑷可修改性一个可修改的软件应当是可理解的、通用的、灵活的、简单的。其中:

通用性:指软件适用于各种功能变化而无需修改。

灵活性:是指能够容易的对软件进行修改。

测试可修改性的一种定量方法是修改练习,其基本思想是通过做几个简单的修改,来评价修改难度D:D=A* n /C

其中C是程序中各个模块的平均复杂性,A是要修改的n个模块的平均复杂性。对于简单的修改,若D>1,说明该程序修改困难。A和C可用任何一种度量程序复杂性的方法计算。

⑸可移植性表明软件转移到一个新的计算环境的可能性的大小。或者软件能有效地在各种环境中运行的容易程度。一个可移植性好的软件应具有良好、灵活、不依赖于某一具体计算机或操作系统的性能。

⑹效率包括时间和空间的效率。

⑺可使用性从用户的角度出发,将可使用性定义为程序方便、实用及易于使用的程度。

能提高软件的可维护性需从以下几个方面考虑:

建立明确的软件质量目标

使用提高软件质量的技术和工具

进行明确的质量保证审查

选择可维护的程序设计语言

改进程序的文档

8.什么是软件危机?其产生的原因是什么?

“软件危机”主要表现在两个方面:(1)软件产品质量低劣,甚至开发过程就夭折。(2)软件生产率低,不能满足需要。“软件危机”(Software crisis)的出现是由于软件的规模越来越大,复杂度不断增加,软件需求量增大。而软件开发过程是一种高密集度的脑力劳动,软件开发的模式及技术不能适应软件发展的需要。致使大量质量低劣的软件涌向市场,有的花费大量人力财力,而在开发过程中就夭折。

9.什么是需求分析?需求分析阶段的基本任务是什么?

软件需求是指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。

需求分析阶段的任务:

在可行性分析的基础上,进一步了解确定用户需求。准确地回答“系统必须做什么?”的问题。获得需求规格说明书。Boehm对软件需求的定义:研究一种无二义性的表达工具,它能为用户和软件人员双方都接受并能够把“需求”严格地、形式地表达出来。

1、确定系统的综合要求

系统功能要求—这是最主要的需求,确定系统必须完成的所有功能。

系统性能要求—应就具体系统而定,例如可靠性、联机系统的响应时

间、存储容量、安全性能等。

系统运行要求—主要是对系统运行时的环境要求,如系统软件、数据

库管理系统、外存和数据通信接口等。

将来可能提出的要求—对将来可能提出的扩充及修改作预准备。

2、分析系统的数据要求

软件系统本质上是信息处理系统,因此,必须考虑:

数据(需要哪些数据、数据间联系、数据性质、结构)

数据处理(处理的类型、处理的逻辑功能)

3、导出系统的逻辑模型—通常系统的逻辑模型用DFD图来描述。

4、修正系统的开发计划—通过需求对系统的成本及进度有了更精确的估算,可进一步修改开发计划。

需求分析阶段的工作,可以分为以下四步:

1、问题识别(获取需求)

双方(开发人员和用户)确定问题的综合需求。包括功能、性能需求、环境需求和用户界面需求,另外还有可靠性、安全性、保密性及可移植性和可维护性等方面的需求。

2、分析与综合,导出软件的逻辑模型(需求分析)

3、编写文档(编写规格说明书)

a) 编写“需求说明书”,把双方共同的理解与分析结果用规范的方式描述出来。

b) 编写初步用户使用手册,

c) 编写确认测试计划,

d) 修改与完善项目开发计划。

4、分析评审(需求评审)

作为需求分析阶段工作的复查手段,应该对功能的正确性、完整性和清晰性以及其他需求给予评价。10.怎样评价程序的执行效率?它与程序清晰性的关系是怎么样的?

逻辑结构清晰、高效的算法,是提高程序效率的关键。算法效率就反映为对程序的执行速度和存储容量的要求。

一、代码效率

关键是逻辑结构清晰、高效的算法。

二、存储效率

与开发环境提供的存储方式紧密相关。

与编译程序能否产生高效优化的目标程序有关。

三、I/O 效率

与人联系的I/O

与设备有关的I/O

11.与传统程序设计的模式过程调用相比,消息传递机制有何本质区别?

12.自顶而下增值与自底而上增值各有何优、缺点?

自顶而下增值

优点:能够尽早发现系统主控方面的问题。

缺点:无法验证桩模块是否完全模拟了下属模块的功能。

自底而上增值

优点:驱动模块较容易编写桩模块,能够尽早查出底层涉及较复杂的算法和实际的I/O模块中的错误。

缺点:最后才能发现系统主控方面的问题。

13.可行性分析的任务是什么?

14.软件可维护性是什么?可维护性度量的特性是什么?

软件可维护性是指纠正软件系统出现的错误和缺陷,以及为满足新的要求进行修改、扩充或压缩的容易程度。

度量一个软件的可维护性常用的方法有:质量检查表、质量测试、质量标准。

质量检查表是用于测试程序中某些质量特性是否存在的一个问题清单。评测者针对检查表上的每一个问题,依据自己的定性判断,回答“Yes”或者“No”。

质量测试和质量标准用于定量分析和评价程序的质量。由于许多质量特性是相互抵触的,可用以下度量标准,去度量不同的质量特性。

⑴可理解性

表明人们通过阅读源代码和相关文档,了解程序功能及其如何运行的容易程度。一个可理解的程序主要应具备以下一些特性:

模块化,风格一致性,不使用令人捉摸不定或含糊不清的代码,使用有意义的数据名和过程名,结构化,完整性等。

对于可理解性,Shneiderman提出一种叫做“90-10测试法” 来衡量。即让有经验的程序员阅读10分钟要测试的程序,然后如能凭记忆和理解写出90%的程序,则称该程序是可理解的。

⑵可靠性

表明一个软件按照用户的要求和设计目标,在给定的一段时间内正确执行的概率。关于可靠性,度量的主要标准有:平均失效间隔时间、平均修复时间、有效性。

度量可靠性的方法,主要有两类:

根据程序错误统计数字,进行可靠性预测。

根据程序复杂性,预测软件可靠性。

⑶可测试性

表明论证软件正确性的容易程度。对于程序模块,可用程序复杂性来度量可测试性。

⑷可修改性

一个可修改的软件应当是可理解的、通用的、灵活的、简单的。其中:

通用性:指软件适用于各种功能变化而无需修改。

灵活性:是指能够容易的对软件进行修改。

测试可修改性的一种定量方法是修改练习,其基本思想是通过做几个简单的修改,来评价修改难度D:D=A* n /C

其中C是程序中各个模块的平均复杂性,A是要修改的n个模块的平均复杂性。对于简单的修改,若D>1,说明该程序修改困难。A和C可用任何一种度量程序复杂性的方法计算。

⑸可移植性

表明软件转移到一个新的计算环境的可能性的大小。或者软件能有效地在各种环境中运行的容易程度。一个可移植性好的软件应具有良好、灵活、不依赖于某一具体计算机或操作系统的性能。

⑹效率

包括时间和空间的效率。

⑺可使用性

从用户的角度出发,将可使用性定义为程序方便、实用及易于使用的程度。

15.简述软件工程的过程、目的以及包含的子过程

一个软件过程是指人们开发和维护软件及其相关产品所采取的一系列活动。其中软件相关产品包括项目计划、设计文档、源代码、测试用例和用户手册等。软件产品的质量主要取决于产品开发和维护的软件过程的质量。一个有效的、可视的软件过程能够将人力资源、物理设备和实施方法结合成一个有机的整体,并为软件工程师和高级管理者提供实际项目的状态和性能,从而可以监督和控制软件过程的进行。

软件工程过程(Software engineering process):

是指在软件工具的支持下,所进行的一系列软件工程活动。

通常包括以下四类基本过程:

1. 软件规格说明:规定软件的功能及其运行环境。

2. 软件开发:产生满足规格说明的软件。

3. 软件确认:确认软件能够完成客户提出的要求。

4. 软件演进:为满足客户的变更要求,软件必须在使用的过程中演进。

软件工程过程的特性:

1. 可理解性

2. 可见性(过程的进展和结果可见)

3. 可靠性

4. 可支持性(易于使用CASE工具支持)

5. 可维护性

6. 可接受性(为软件工程师接受)

7. 开发效率8. 健壮性(抵御外部意外错误的能力)

16.数据字典的作用是什么?它有那些条目?

为了完整地描述这个系统,还需借助“数据词典”(data dictionary)和“小说明”对图中的每个数据和加工给出解释。

它有四类条目:数据流、数据项、文件及基本加工。

给出了DFD图中数据流的定义,通常列出该数据流的各组成数据项。

例如,数据流“乘客名单”由若干“乘客姓名”、“单位名”和“等级”组成,则词典中的“乘客名单”条目是:乘客名单={乘客姓名+单位名+等级}

又如,报名单=姓名+单位名+年龄+性别+课程名

文件条目

给出某个文件的定义,文件的定义通常是列出文件记录的组成数据流。例如,某销售系统的订单文件:

订单文件=订单编号+顾客名称+产品名称+订货数量+交货日期

数据项条目

给出某个数据单项的定义,通常是该数据项的值类型、允许值等。

例如:账号= 00000 ~ 99999 ;存款期=[ 1 | 3 | 5 ] (单位:年)

加工条目

加工条目就是“加工小说明”。一般应单独列出。

17.简述结构化程序设计方法的基本要点。

18.简述原型的开发步骤。

可行性研究。对系统开发的意义、费用、时间作出初步的计算,确定系统开发的必要性和可行性。

确定系统的基本要求。系统开发人员向用户了解用户对信息系统的基本需求,即应该具有的一些基本功能,人机界面的基本形式等。

建造系统初始原型。在对系统有了基本了解的基础上,系统开发人员应争取尽快地建造一个具有这些基本功能的系统。

用户和开发人员评审。用户和开发人员一起对刚完成的或经过若干次修改后的系统进行评审,提出完善意见。

修改系统原型。开发人员就要根据用户的意见对原始系统进行修改、扩充和完善。

开发人员在对原始系统进行修改后,又与用户一起就完成的系统进行评审,如果不满足要求,则要进行下一轮循环,如此反复地进行修改、评审,直到用户满意。

结束。如果经用户评审,系统符合要求,则可根据开发原始系统的目的,或者作为最终的信息系统投入正常运行,或者是把该系统作为初步设计的基础。

19.简述可行性研究的目的和任务。

行性研究又称为可行性分析,目的是避免盲目投资,减少不必要的损失。即以最小的代价在最短的时间内确定该项目是否可能开发、是否值得。

可行性分析的任务

技术上可行现有技术、资源及限制能否支持和实现系统的功能、性能,主要是技术风险问题。

经济上可行进行成本估算及效益评估,确定项目是否值得开发。

社会上可行主要指系统开发后能否运行,是否存在合同、责任、侵权、用户组织管理等方面的问题。

20.什么是模块化?软件结构设计的优化准则是什么?

“模块”,又称“构件”,一般指用一个名字可调用的一段程序。它一般具有如下三个基本属性:

⑴功能即指该模块实现什么功能,做什么事情。必须注意,这里所说的模块功能,应是该模块本身的功能加上它所调用的所有子模块的功能。

⑵逻辑即描述模块内部怎么做。

⑶状态即应根据软件系统的应用特点,语言的内在特点等选择程序设计语言。

该模块使用时的环境和条件。

一、语言选择的一般准则

(1)项目的应用领域:应尽量选取适合某个应用领域的语言。

(2)算法和计算复杂性:要根据不同语言的特点,选取能够适应软件项目算法和计算复杂性的语言。

(3)软件的执行环境:要选取机器上能运行且具有相应支持软件的语言。

(4)性能因素:应结合工程具体性能来考虑,例如实时系统要求速度,就应选择汇编语言。

(5)数据结构的复杂性:要根据不同语言构造数据结构类型的能力选取合适的语言。

(6)软件开发人员的知识水平以及心理因素。

知识水平包括: 专业知识,程序设计能力。

心理因素:如对某种语言或工具的熟悉程度。受外界的影响(盲目追求高、新)。

21.简述详细设计的基本任务。

详细设计阶段的任务是开发一个可以直接转换为程序的软件表示,即对系统中每个模块的内部过程进行设计和描述。

22.简述软件测试的任务、目的与类型。

因为开发工作的前期不可避免地会引入错误,测试的根本目的是为了发现和改正错误,这对于某些涉及人的生命安全或

重要的军事、经济目标的项目显得尤其重要。

软件工程实验报告最终版

合肥师范学院实验报告册 2012 / 2013 学年第一学期 系别计算机科学与技术系 实验课程软件工程 专业计算机科学与技术 班级2010级计算机应用 姓名马军福董国运李思贤 学号1010411024 1010411008 1010411076 指导教师范庆春

实验一:结构化方法建模的基本应用 1.实验目的 (1)了解Visio工具软件的功能特色、安装、工作环境和基本操作等基本知识; (2)掌握应用Visio工具的基本使用方法和基本绘图操作; (3)熟悉结构化分析建模的基本应用。 2.实验内容 (1)使用Visio 建立期刊管理系统的实体-关系图; (2)使用Visio 建立期刊管理系统的数据流图。 3. 实验要求 使用Visio 建立期刊管理系统的实体-关系图、数据流图。数据流图要绘 制三层。 4.实验结果和体会 (1)需求陈述 在图书管理系统中,管理员要为每个读者建立借阅账户,,账户内存储读者的个人信息和借阅记录信息。持有借阅卡的读者可以通过管理员借阅、归还期刊,读者可通过互联网或图书馆内查询终端查询期刊信息和个人借阅情况,以及续借期刊。 借阅期刊时,先输入读者的借阅卡号,系统验证借阅卡的有效性和读者是否可继续借阅图书,无效则提示其原因,有效则显示读者的基本信息。然后输入要借阅的书号,系统查阅图书信息数据库,显示图书的基本信息。最后提交借阅请求,若被系统接受则存储借阅纪录,并修改可借阅图书的数量。归还期刊时,输入读者借阅卡号和期刊号,系统显示读者和期刊的基本信息供管理员人工审核。如果有超期借阅或丢失情况,先转入过期罚款或期刊淘汰处理。然后提交还书请求,系统接受后删除借阅纪录,并登记修改可借阅期刊的数量。 期刊管理系统包括:1.读者信息管理a:借阅请求b归还请求c:查询请求d:修改自身信息2.期刊管理a:修改书目、出版日期、编辑b:增加书目数据、删除书目数据。3.期刊借阅a:增加所借读者信息b:删除所借读者信息4.期刊查询a:已借出图书列表b:未借出图书列表5.期刊的征订6.期刊内容登记题目、作者姓名、作者单位7.期刊内容查询

软件工程实验二66217

软件设计实验 一、实验目的 学会使用Case工具完成描述软件结构的软件结构图和软件层次图的设计,并熟练地掌握几种常用的软件详细设计的工具,如程序流程图、盒图、PAD图和判定表,并能把给定的软件问题描述转化为过程设计结果。 二、实验内容 1、软件结构设计: (1)采用visio绘制教材的图4.26中的软件结构图; (2)采用visio绘制教材的图4.41的软件层次图。 (3)分析如下所示的数据流图,并把它转换成软件结构图,然后 用visio把结果画出来。(注意,请用结构图) 图1 某系统的数据流图 2、软件的详细设计:某航空公司规定,乘客可以免费托运重量不超过20公斤的行李,当行李重量超过20公斤,对头等舱的国内乘客超重部分每公斤收费6元,对其他舱的国内乘客超重部分每公斤

收费

8元,对外国顾客超重部分每公斤收费比国内乘客多1.5倍,对残疾乘客超重部分每公斤收费比正常乘客少一半。 实验包含三部分的内容: a)用word设计描述其详细设计结果的PAD图、判定表。 b)用viso画出它的程序流程图,并计算它的Mccabe程序复杂度。 (要求把计算过程写到实验报告中) 三、实验结果 【本人用诚信保证,实验都是本人自己实践完成的,标准原创】 1.(1)教材的图4.26中的软件结构图

(2)教材的图4.41的软件层次图

2. a)PAD图

开 开 开开 开开 开开 开开 T F P1 P1开开开20kg T P2 F P2开开开开开 P3 开开开开开开开开6开/kg 开开开开开开开开9开/kg 开开开开开开开开3开/kg P3开开开开开开开开 T F P4 P5 开开开开开开开开 4.5开/kg P6 T F 开开开开开开开开8开/kg 开开开开开开开开4开/kg 开开开开开开开开12开/kg 开开开开开开开开6开/kg P4开P5开开开开开开开 P7 P8 P7开P8开开开开开开开 PAD 开 P6开开开开开开开开开 判定表【原创】

软件工程师职业分析

软件工程师职业分析 首先什么是软件工程师?软件工程师主要进行软件前期的项目需求的分析,然后对项目进行风险评估并试图解决这些风险,然后开始进行软件的开发,后期对软件的进度做相关的评估。软件工程师是从事软件开发相关工作的人员的统称。它是一个广义的概念,包括软件设计人员、软件架构人员、软件工程管理人员、程序员等一系列岗位。这些岗位的分工不同,职位和/或级别不同,但工作内容都是与软件开发生产相关的。 软件工程师是IT行业需求量最大的职位,稳居IT行业职位需求TOP10的第一位(第二位是高级软件工程师)。软件工程师的技术要求是比较全面的,除了最基础的编程语言(C语言/C++/JAVA等)、数据库技术(SQL/ORACLE/DB2等)、.NET平台技术、C#、C/S B/S程序开发,还有诸多如JAVA SCRIPT、AJAX、HIBERNATE、SPRING、J2EE、WEB SERVICE、STRUTS等前沿技术。 除此之外,关于网络工程和软件测试的其他技术也要有所涉猎,以利于操控全局。软件工程师可谓是软件项目开发的掌舵者。一名优秀的软件工程师应当具有较强的逻辑思维能力,对于技术的发展有敏锐的嗅觉。虽然要求技术全面,但无须偏执于门门技术都精通,任何软件工程师都有自己的技术特长和偏向,对于自己手中的技术,可有精通-掌握-熟悉-了解之分,根据工作需要和职业发展的具体情况来划分。 从最新的数据看出目前软件行业成为目前最热的行业之一,3G工程师、嵌入式工程师、Java软件工程师、. net软件工程师的开发前景怎么样,成为我们即将毕业的大学生们最关心的问题,下面笔者就从这四个方面分析软件开发工程师的就业前景,参考来源《2013-NIIT软件行业分析》; 3G工程师就业前景分析:中国被世界公认为全球最大的3G移动市场,但是,3G相关的人才却严重失调。专业从事3G应用软件开发从业人员不足千人,据工信部预测,仅2010年,中国3G人才市场缺口就在100万以上,其中3G软件工程师缺口就在50万左右。 3G人才短缺现状,使得3G行业已经成为新的高薪行业,基于3G软件开发人员变得格外抢手。人力资源专家表示,3G软件开发是未来几年最热门和最受

软件工程测试实验

淮海工学院计算机科学系实验报告书 课程名:《软件工程》 题目:软件测试实验 班级:软件121 学号:2012122722 姓名:朱德坤

软件测试验报告要求 1目的与要求: 1)系统学习和理解结构化软件工程实现阶段的基本概念、原理、技术和方法; 2)掌握软件测试的基本技术和方法,特别是白盒测试与黑盒测试技术和方法; 3)通过实验,要逐步提高白盒测试与黑盒测试技术的实际应用能力; 4)熟悉C++编程环境下编写、调试单元代码的基本操作技术和方法; 5)按照实验题目要求独立完成本次试验任务,严禁拷贝、抄袭他人设计成果; 6)认真书写实验报告(要求给出完整的测试信息,如测试程序、测试用例,测试结果分析等),并于5月5日以前提交。 2 实验内容或题目 1.选择结构化详细设计试验中自己设计的某一具有代表性控制结构模块(含有分支和循环结 构),并用C语言实现(提前准备好,每种测试用例分别写在作业本上,上机时带上检查),而后分别完成下述2、3、4各题测试用例设计和测试结果分析; 2.采用白盒测试技术中逻辑覆盖方法(至少包含语句覆盖、判定覆盖、条件覆盖、条件组合 覆盖)设计测试用例,完成测试(测试屏幕截图)和测试结果分析; 3.采用白盒控制结构测试技术的基本路径测试和边界测试方法设计相应测试用例,并完成测 试和测试结果分析; 4.采用黑盒测试技术中的等价类划分方法设计相应测试用例(可重选适合黑盒测试技术的模 块),并完成程序测试和测试结果分析; 3 实验步骤与源程序 程序流程图:

流图:

程序: //拥有超级用户superuser,密码zdk #include #include #include #include #include using namespace std; int PD; //全局判断执行码 void SetPos(int i,int j) //界面光标位置函数{ COORD pos= {i-1,j-1}; HANDLE Out=GetStdHandle(STD_OUTPUT_HANDLE);

软件工程试验

软件工程实验内容及要求 一、实验内容 软件工程实验是《软件工程》课程的一个重要的、不可或缺的实践环节。其目的是使学生能够针对具体软件工程项目,全面掌握软件工程管理、软件需求分析、软件总体设计、软件详细设计、软件测试等阶段的方法和技术。通过该课程设计使学生进一步理解和掌握软件开发模型、软件生命周期、软件过程等理论在软件项目开发过程中的意义和作用,培养学生按照软件工程的原理、方法、技术、标准和规范,进行软件开发的能力,培养学生的合作意识和团队精神,培养学生对技术文档的编写能力,从而使学生提高软件工程的综合能力,提高软件项目的管理能力。同时课程设计应充分体现“教师指导下的以学生为中心”的教学模式,以学生为认知主体,充分调动学生的积极性和能动性,重视学生自学能力的培养。 学生通过结组选择下面的题目,完成软件工程实验要求。 1、QQ实时聊天程序 2、期刊在线投稿审稿管理系统 3、出卷系统 4、列车时刻查询决策系统 5、员工培训管理系统 6、中小学智能排课系统 7、网上求职与招聘系统的设计与实现 8、城市公交查询系统的设计与实现 二、实验要求 本课程设计要求学生采用“项目小组”的形式,结合具体的开发项目进行设计。具体要求如下: 1. 每个班级按项目小组进行分组,每组5人,分别负责需求分析、设计、编码、测试和质量保证; 2. 每个项目小组选出项目负责人或项目经理,由项目经理召集项目组成员讨论、选定开发项目。项 目经理负责制定“项目开发计划”、管理项目并根据项目进展情况对项目开发计划进行调整; 3. 项目开发计划必须由粗到细通过GANT图给出,每项任务要落实到人且规定该任务的起止日期和时 间;明确每个阶段提交文档的日期和时间;每个项目小组必须明确指定文档的审查小组和审查人员以及审查结果的返回日期;审查小组和审查人员不得是完成被审查内容的完成者;审查结果至少包括:存在的问题、出现问题的所在文档的位置及页码、具体建议等; 4. 每个项目小组必须按照给定的文档规范标准提供下列文档,文档中必须注明执笔者、完成者(签 名)和完成日期,其中完成需求分析和设计工作的人员不能相同,完成编码和审查/测试的人员不能相同;文档包括:编码清单(部分或全部)、详细设计规格说明、概要设计规格说明、需求分析规格说明、项目开发计划(包括调整的项目开发计划)、测试报告等。 5. 每个项目小组可以选择完成编码、测试等阶段的部分任务。 6. 根据合理的进度安排,一步一步、踏踏实实地开展课程设计活动,按时完成每部分工作。课程设 计过程中,坚持独立完成,分成小组进行的要有明确的分工,并在报告中给以说明。 课程设计内容主要包括:

软件工程复习试题及答案

一、填空题(在下划线上填写正确的答案,每题2分,共20分) 1.等价划分是一种黑盒测试技术,这种技术把程序的输入域划分为若干个数。 2.数据流图和数据字典共同构成了系统的逻辑模型。 3.盒图也称为 N-S图。这种表达方式取消了流程线,它强迫程序员以结构化方式思考和解决问题。 4.软件有效性,指软件系统的时间和空间效率。 5.IPO 6.数据流图有四种基本成分:源、终点,处理,存储,数据流。 7. 其中数据项是组成数据流和数据存储的最小元素。 8.软件工程中的结构化分析SA是一种面向数据流的分析方法。 9.软件开发是一个自顶向下逐步细化和求精的过程,而软件测试是一个由下而上的过程。 10.耦合性与内聚性是模块独立性的两个定性标准,将软件系统划分模块时,尽量做到高内聚、低耦合,提高模块的独立性,为设计高质量的软件结构奠定基础。 1.常用的软件开发模型有瀑布模型、原型模型、增量模型、螺旋模型、喷泉模型。 2.软件生存周期一般可分为问题定义、可行性研究、需求分析、设计、编码、

单元测试、运行与维护阶段。 3.软件测试的步骤:单元、集成、系统、验收。 4.数据流图的基本符号包括加工、数据流、数据存储文件、汇点。5.IPO图由输入、处理和输出三个框组成。这个图的特点是能够直观的显示三者之间的关系。 6.面向对象方法是一种运用类、实例、属性、重载、消息传送、多态性等概念来构造系统的软件开发方法。 7.分析已有的程序,寻求比源代码更高级的抽象表现形式,这就是软件的逆向工程。 8.程序测试是对编码阶段的语法错、语义错和运行错进行查找的编码执行活动。 9.为了获得较高的模块独立性,尽量设计出具有高内聚和低藕合性能的模块。 10.常用的测试方法有黑盒测试和白盒测试。 1.可行性研究,应从技术可行性、经济可行性、运行可行性和法律和 社会效益可行性等方面研究。 2.构化程序设计中程序主要的3种基本控制结构是顺序结构、选择结构、循环 结构。 3.软件生存周期中时间最长、花费精力和费用最多的一个阶段是维护 阶段。 4.需求分析阶段,分析人员要确定对问题的综合需求,其中最主要的是功 能需求。

软件工程实验报告(总)

信息工程学院软件工程实验报告 专业: 班级: 学号: 姓名: 指导老师:

实验一:软件开发的过程计划 实验课时:2课时 一、实验目的 项目计划的目的是为项目的研发和管理工作制定合理的行动纲领,以便所有相关人员按照计划有条不紊地开展工作。 ⑴估计项目的总体规模、工作量和成本。 ⑵制定项目计划,重点放在产品生命周期中的主要关键任务。 ⑶制定项目时间表和预算。 二、实验环境 1.硬件环境 P4以上的个人计算机环境,要求内存不少于512MB,硬盘不小于20G.。 2.软件环境 操作系统:Windows XP 数据库:Sql Server 2000以上或Access 2003以上 3.通用工具软件 通用绘图工具:MicroSoft Visio 2003以上 文本编辑工具:MicroSoft Word 2003以上 4.CASE工具 UML建模工具:Rational Rose 2000 三、实验要求、实验内容 1、实验要求: 在进行实验之前,必须掌握软件开发过程的一些基础知识,准备参考资料和阅读相关的过程模型的文档。 2、实验内容 熟悉RUP(Rational Unified Process)软件开发统一过程的思想,RUP(Rational Unified Process)是由Rational公司(现已是IBM公司的一部分)提出的过程模型,它软件工程史上最完整、最成熟、最优秀的过程模型之一。 学习软件开发的组织和管理,将项目开发各阶段的任务明确,掌握各阶段的里程碑,并熟悉相应的工具。

四、思考题 1、项目开发首先要做的事是什么? 答:进行需求分析和定义,了解客户或用户的需求,然后再进行后续。 2、你认为该软件应具备的最重要的特性是什么。 答:安全性、实用性、灵活性。 3、你认为怎样分工是最合理的? 答:该项目已经采取项目经理制,但是在具体开发过程中,情况也许会比预计的复杂,因此,在了解了各组员的工作风格的情况下,根据性格类型进行工作分配,比如:外向而且善于交流的,可以给他安排和客户交流沟通,让客户随时了解我们 的工作情况,并且反应客户的需求改变;为了让项目更好的组织和管理,可以采取 主程序员负责制;这样,在项目经理的带领下,内部安排主程序员和副程序员,工 作员有问题的话,内部自己解决,只要按时汇报工作就可以了。 五、实验内容: 项目背景 项目名称:银行计算机储蓄系统 随着社会经济的发展,XX银行的业务不断增长,传统的依靠手工的存取款业务办理方式已经不能满足不断增长的业务需求。其一,业务需求的增加需要消耗大量人力物力资源;其二,业务复杂化导致人工处理方式出错率增加,从而引起储户不满。一方面可以减轻银行业务员的工作量,另一方面可以减少工作的出错率,从而提高工作效率。现在计算机网络的告诉发现使越来越多的人更喜欢在网购物、在家存款取款。在这样的背景下,很明显现在的银行储蓄系统已经不能满足人们越益增长的需求,急切需要建立一个新的、高效的、方便的、互联的计算机储蓄系统。为解决此问题,拟为其开发计算机储蓄系统。 项目进度: 项目在项目经理的制度下,在整个开发过程中,树立“里程碑”,而且严格按照计划进行,各阶段任务必须完成,现把任务进度历程绘制如下:

软件工程实验报告

软件工程实验报告 姓名:冯巧 学号 实验题目:实验室设备管理系统 1、系统简介: 每天对实验室设备使用情况进行统计,对于已彻底损坏的作报废处理,同时详细记录有关信息。对于有严重问题(故障)的要即时修理,并记录修理日期、设备名、修理厂家、修理费用、责任人等。对于急需但又缺少的设备需以“申请表”的形式送交上级领导请求批准购买。新设备购入后立即对新设备登记(包括类别、设备名、型号、规格、单价、数量、购置日期、生产厂家、购买人等),同时更新申请表的内容。 2、技术要求及限定条件: 采用C#语言设计桌面应用程序,同时与数据库MySql进行交互。系统对硬件的要求低,不需要网络支持,在单机环境下也能运行,在局域网环境下也能使用。方案实施相对容易,成本低,工期短。 一:可行性分析 1、技术可行性分析 计算机硬件设备,数据库,实验室设备管理软件与实验室设备管理系统的操作人员组成,能够实现实验室设备管理的信息化,提高工作效率,实现现代化的实验室设备管理。系统需要满足实验室设备管理(包括对实验设备的报废、维修和新设备的购买)、实验室设备信息查询(包括按类别进行查询和按时间进行查询)、实验室设备信息统计报表(包括对已报废设备的统计、申请新设备购买的统计和现有设备的统计)。这些功能框图如下图所示: 2、经济可行性分析 依据用户的现实需求、技术现状、经济条件、工期以及其他局限性因素等等因素,考虑到工期的长短、技术的成熟可靠、操作方便等因素,本方案具备经济可行性。

3、系统可选择的开发方案 ①方案A用C#开发系统的特点是:开发工具与数据库集成一体,可视化,开发速度较快,但数据库能够管理的数据规模相对较小。系统对硬件的要求低,不需要网络支持,在单机环境下也能运行,在局域网环境下也能使用。方案的实施相对容易,成本低,工期短。 ②方案B:以小型数据库管理系统为后台数据库,该前台操作与数据库分离,也能够实现多层应用系统。系统对硬件的要求居中,特别适合在网络环境下使用,操作方便。但系统得实现最复杂,成本最高,工期也较长。 二:软件需求分析 1.软件系统需求基本描述: 实验室设备管理系统是现代企业资源管理中的一个重要内容,也是资源开发利用的基础性工作。实验室设备在信息化之前,在用户系统管理、设备维修管理、设备的增删改查管理等方面存在诸多不利于管理的地方,不适应现代的企业管理形势和资源的开发利用。 2.软件系统数据流图(由加工、数据流、文件、源点和终点四种元素组成): 1)顶层数据流图 2)二层流程图 3)总数据流图

软件工程实验答案

实验一 实验内容: 1.上网了解查询软件工程网站和相关软件工程知识 2.了解软件工程环境概念、层次、组成和开发要求。 3.查询现有主流的软件工程工具及其功能、用途、特点及适用范围。 4.浏览CASE工具。通过互联网了解现有软件工程主流工具,完成表的内容。 表1-2软件工程工具分类

Firefly 开源奇葩: CVS 5、 1:自动化测试工具,其中有Web的,应用软件的,还有单兀测试的?以上具有代表]性常用的软件是: Sele nium, Watir, Winrunner, Loadr unner, Junit 等等 2:软件测试管理工具。代表性常用软件 有:Testdirector , ClearQuest 和bugzilla 等 6、版本控制工具;文档 分析工具;开发信 息库工具;逆向工 程工具;再工程工 具。 7、DbgView 调试信息查 看器 8、SFRE 9、gprof 上的存储目录以供客户端访问,这将带来 F /V 虫 定安全隐忠 Firefly服务器上的存储目录不用共享,对客户端不透明,客户端不可直接访问存储目录,使 系统更安全可靠 CVS采用C/S模式,不需要共享服务器上的存储目录,安全性较好 PVCS基于文件系统共享,而且需要以"可 写"的权限共享存储目录,存在较大的安全隐患VSS基于文件系统共享实现对服务器的访问,需要共享存储目录,这将带来一定安全隐患 5、提高测试人员的工作效率和质量 6、 7、bgView调试信息查看器不仅仅能作为调试信息输出,而且可以作为一个信息输出软件,监视您的软件运行,目前支持mfc和windows 下dos信息输出. &从整体上支持该分析阶段的再工程自动化工具 9、用gprof对程序进行分析主要分以下三个步 骤: l 用编译器对程序进行编译,加上-pg 参数。 l 运行编译后的程序。 l 用gprof命令查看程序的运行时信 息 1-3

软件工程实验二

实验二熟悉面向对象建模过程 一、实验目的与要求 1.掌握 UML 工具 Enterprise Architect(Visio 或 Rational Rose)的使用; 2.了解面向对象软件建模过程; 3.把握类图、对象图、顺序图之间的关系。 二、实验环境 1.PC,CPU:P4 2.0GHz 以上,内存:512M,硬盘:40GB 以上; 2.操作系统:Microsoft Windows 2000 /2003/XP; 3.软件:E.A.、Microsoft Visio 或 Rational Rose 三、实验要求: 1.绘制的图形清楚,排版美观 2.类图、对象图和顺序图之间的关系设定正确 3.代码与模型相互印证,能按模型实现代码。 四、实验内容与步骤 B.领养电子宠物游戏 电子宠物是多种人工玩伴的其中一种,一般作陪伴人类或娱乐用途。人们可以饲养电子宠物以取代真正的宠物,玩家从宠物商店领养一只电子宠物。玩家可以“喂养”宠物,与宠物玩耍。描述比较简单,可以发挥想象完善宠物游戏。 参照书本上的分析与设计过程,选择 A 或者 B,重新建立系统的用例模型(包括用例文本)、领域模型、对象交互的顺序图、类图等模型,并按照模型实现。 请注意模型的顺序与前后关系,以及代码与模型的关系。要求每个人独立完成,并演

示。

1. 定义用例: 用例图: uc pet 领养宠物 查看宠物资料玩家 与宠物互动 用例规约: 用例编号:UC01用 例名称:领养宠物 简要说明:该用例描述玩家是如何领养宠物的。 参与者:玩家前置条件:玩家通过身份认证 后置条件:玩家成功领养电子宠物,正确记录交易日志。触发事件:玩家在主菜单中选择领养宠物。 基本流: 1.玩家选择“领养宠物”操作。 2.系统提醒玩家选择所要领取的宠物的类别。 3.系统提醒玩家填写宠物姓名。 用例编号:UC02用例名 称:查看宠物资料 简要说明:该用例描述玩家是如何查看宠物资料的。 参与者:玩家前置条件:玩家通过身份认证 后置条件:玩家成功查看宠物资料。 触发事件:玩家在主菜单中选择查看宠物资料。 基本流:

软件工程就业前景

软件工程就业前景

我国软件出口规模达到215亿元软件从业人员达到72万人在中国十大it职场人气职位中软件工程师位列第一位,软件工程人才的就业前景十分乐观. 软件工程是计算机领域发展最快的学科分支之一,国家非常重视软件行业的发展,对软件工程师人才的培养给予了非常优惠的政策.在中国十大IT职场人气职位中,软件工程师位列第一位,软件工程人员的就业前景十分乐观.以下就是软件工程就业前景介绍;软件工程就业前景时间:2011-6-30 来源:中国药业人才网点击量:2919 编辑:末末我国软件出口规模达到215亿元,软件从业人员达到72万人,在中国十大it职场人气职位中,软件工程师位列第一位,软件工程人才的就业前景十分乐观. 软件工程是计算机领域发展最快的学科分支之一,国家非常重视软件行业的发展,对软件工程师人才的培养给予了非常优惠的政策.在中国十大IT职场人气职位中,软件工程师位列第一位,软件工程人员的就业前景十分乐观.以下就是软件工程就业前景介绍. 一、软件工程专业就业前景之可视化编程 掌握程序设计方法及可视化技术,精通一种可视

化平台及其软件开发技术.获取delphi程序员系列、java初级或vb开发能手认证. 二、软件工程专业就业前景数据库管理 能应用关系范式进行数据库设计,精通sql语言,胜任数据库服务器管理与应用工作.获取oracle数据库管理或sql server数据库应用或windows 三、 软件工程专业就业前景计算机办公应用精通办公自动化应用与管理,熟悉服务器的安装、管理和维护,基于应用服务器的相关服务和软件系统,具备对服务器的网络安全设置、邮件、网页发布、ftp、oa、bbs等系统的应用和维护能力. 就业方向:企业、政府、社区、各类学校等系统管理 三、软件工程专业就业前景之软件工程专业大学排名 1、南京大学 2、清华大学 3、复旦大学 4、武汉大学 5、浙江大学 6、上海交通大学7 、中国科学技术大学8、中山大学9、华中科技大学10、哈尔滨工业大学11、陕西师范大学12、吉林大学13、东北师范大学14、北京师范大学

《软件工程》DFD图与数据字典

一.数据流图

二,数据字典 名称:旅客 简述:用户,航班消费者 有关数据流:旅客信息,取票通知,账单 名称:旅行社 简述:零售代理机构,为旅客提供订票改签等服务 有关数据流:旅客信息,取票通知,账单 名称:航空公司 简述:为旅客提供航空服务,管理航班信息 有关数据流:航班信息 数据流名称:订票信息 描述:记录旅客的旅行时间和目的地,用于确定旅客航班 定义:订票信息=订单号+身份证号+航班号+订票日期+座位号+票价 数据流来源:修改航班信息、安排航班 数据流去向:输入到航班机票管理 数据流名称:旅客信息 描述:记录旅客的个人信息及旅客要求航班信息,用于对旅客的确认及安排航班

定义:旅客信息=身份证号码+姓名+性别+工作单位+旅行时间+始发地点+目的地+航班舱位要求 数据流来源:旅行社 数据流去向:输入到旅行社管理 数据流名称:航班信息 描述:记录旅客的航班信息,根据旅客的旅行时间和目的地确定航班 定义:航班信息=航班号+始发地+目的地+始发时间+抵达时间+载客量+头等舱票数+经济舱票数+头等舱价格+经济舱价格 经济舱价格:0{数字}4 数据流来源:航空公司 数据流去向:信息存储航班机票管理 数据流名称:取票通知 描述:记录旅客身份证号订单号验证旅客订票信息 定义:取票通知=身份证号+订单号+取票日期 数据流来源:订票信息 数据流去向:输出到打印机 数据流名称:账单 描述:记录旅客的交款信息,用于确认及取票验证 定义:账单=账单号+订单号+定金+折扣+机票余款 数据流来源:订票信息 数据流去向:航班机票管理输出到打印机 1.订票信息 订单号:4{数字}4 身份证号:18{数字}18 航班号:2{字母}2+4{数字}4 订票日期:4{数字}4+/+2{数字}2+/+2{数字}2 (例:2011/01/10) 座位号:0{数字}3 票价:0{数字}4 2.旅客信息 身份证号码:18{数字}18 姓名:4{字符}20 性别:2{字符}2 工作单位:4{字符}20 旅行时间:4{数字}4+/+2{数字}2+/+2{数字}2 始发地点:4{字符}20 目的地:4{字符}20 航班舱位要求:4{字符}20 3.航班信息 航班号:2{字母}2+4{数字}4

软件工程实验课题

图书管理系统 组长:杨晓华 组员:巴雅尔图、那日苏、张天、 牛莉、杨宇婷 作业提交日期:二О一五年十月3三十日

作者简介 组长:杨晓华学号:120714241 学院:经济管理学院 组员:巴雅尔图学号:110412185 学院:生态环境学院那日苏学号:111710874 学院:兽医学院 张天学号:120714242 学院:经济管理学院 牛莉学号:120714767 学院:经济管理学院 杨宇婷学号:120715553 学院:经济管理学院

图书管理系统 摘要 简单介绍了图书管理系统数据库的设计和系统功能的实现过程。该系统是运行在学校网络上的网络图书管理系统,由图书编目,图书管理,读者管理,资料管理,Web查询等几个子系统组成,,实现了图书资料的计算机网络管理和Web查询功能。计算机技术的迅猛发展,特别是随着网络技术的出现标志着信息时代已经来临。信息化浪潮、网络革命在给社会带来冲击的同时,也使图书馆业务受到了强烈的冲击,图书馆传统的管理和服务方式已不能适应读者对日益增长的文献信息的需求,建设图书馆信息网络系统,是图书馆现代化建设的客观要求。建设以计算机为核心的图书馆信息网络,实现图书馆管理和服务的自动化,更好地为科技工作服务,是图书馆发展的必由之路。目前,国内大部分高校图书馆都实现了网络管理,目前图书馆都在在朝着这个方向发展。 关键词:图书,网络,数据库,管理系统,VC

一、系统可行性分析 1.总体功能设计 根据高校图书馆的实际情况和校园网网的现状,我们确定了网络图书系统应该具备8个方面的功能,它们是图书编目,图书采购,图书管理,读者管理,标准管理,资料管理,系统维护,Web查询。其中Web查询是该系统突出的特点,它的实现是因为有学校校园网的支持。系统组成和功能框图见图1。 图2 业务流程图 图3 读者

软件工程师详细介绍

软件工程师 软件工程师 从事软件开发相关工作的人员的统称。它是一个广义的概念,包括软件设计人员、软件架构人员、软件工程管理人员、程序员等一系列岗位。这些岗位的分工不同,职位和/或级别不同,但工作内容都是与软件开发生产相关的。 职位定义 负责产品的软件研发,承担软件设计、代码编写、软件测试方案制订、代码调试和测试等。负责产品软件的客制化工作,按照客户需求定制软件用户界面,定制驱动程序,开发安装程序等。 职位分类 根据工作内容,软件工程师可有多种分类,如应用系统工程师、系统架构师分析师、系统集成和测试工程师、嵌入式软件工程师、数据库软件工程师等等。 工作内容 1、指导程序员的工作; 2、参与软件工程系统的设计、开发、测试等过程; 3、协助工程管理人保证项目的质量; 4、负责工程中主要功能的代码实现; 5、解决工程中的关键问题和技术难题; 6、协调各个程序员的工作,并能与其它软件工程师协作工作。 从业要求 1、计算机相关专业大学本科以上学历,具有扎实的计算机基础理论知识; 2、精通C/C++、Java语言,具有丰富的Unix/Linux系统下开发经验;

3、精通Perl、Python、PHP、Shell等其中一种语言; 4、有一定的算法基础,具有较强的独立解决问题能力; 5、两年以上业界工作经验,具有Web应用开发经验者优先; 6、有大容量、高性能、分布式系统的设计开发经验者优先; 7、具有很强的学习能力和对新技术的追求精神; 8、具有良好的中英文沟通能力,具有项目管理经验者优先; 9、认同客户第一、团队合作、拥抱变化、诚信、激情、敬业的企业价值观。 优秀者特质 精通Java SE和Java EE技术,包括Servlet/JSP、Applet、JDBC、EJB、Web Service等。掌握面向对象的分析和设计技术,包括设计模式。能够整合企业管理理念、业务流程、基础数据、人力物力、计算机硬件和软件等众多企业资源,并应用ERP系统针对企业资源进行管理。 职位背景、现状和前景 当今社会不论什么职业的都需要一个不断学习的环节,软件工程师也一样。虽然软件工程师的工作不同于程序员但是一个软件工程师其前身必定是一个优秀的程序员,软件的开发工具、开发技术在不断地发展。在校学生所能学到的东西很难跟得上发展的需要但是也不能说那些东西完全没有用,只有在完全理解了相应的基本技能之后你才能很轻松地掌握新的技能,软件技术都是一个循序渐进的过程。所以学好学校所能提供的专业课程是相当重要的。IT行业的平稳增长必然会带来软件工程师需求的增长,目前随着IT产品出现的技术融合,软件行业需要的也是复合型人才,软件工程师需要掌握更多的编程语言。 “做软件的人必须要随时充电,不然的话肯定会被淘汰。”智联招聘顾问郝健表示。 软件工程师理想的状态是走向软件架构师、项目经理、研发经理等职位。“薪酬水平肯定是

软件工程师行业

软件工程师综述/行业展望 ——北大青鸟昌平校区提供 引言:软件工程师是一类新兴的职业。与传统的行业相比较,这个行业是随着计算机的发展而逐步发展的,并且,随着信息产业化的飞速发展,软件工程师这个行业不仅让人们越来越熟悉,并且,也吸引着大量人才的涌入,很多人都会通过参加软件工程师培训,或是通过大学专业的选择,加入到这个队伍当中。 当今信息瞬息万变,软件工程师的需求量也逐步加大,从当初单一的编程工作,发展到软件测试工作、宏观管理工作等。人们对于软件工程师这个行业的兴趣越来越大。 软件工程师到底从事什么,软件工程师待遇如何,软件工程师发展前景怎样,人们有许多疑问。本篇文章,通过对软件工程师详细的介绍,让大家真正了解这个行业,并最终指明软件工程师的发展前景,旨在为那些选择的人做一个明确的发展方向。 目录 软件工程师概述 (2) 软件工程师分类 (2) 软件工程师工作内容 (3) 软件工程师待遇 (4) 软件工程师行业展望 (6) 软件工程师要求 (7) 软件工程师认证培训 (8) 软件工程师知识补充 (10)

第一部分:软件工程师概述 定义: 软件工程师主要进行软件前期的项目需求的分析,然后对项目进行风险评估并试图解决这些风险,然后开始进行软件的开发,后期对软件的进度做相关的评估。 现状: 目前国内软件测试工程师的来源主要有三方面:一是以前专业做软件开发的人员后来转行做软件测试,二是从大学招聘的本科或者研究生,三就是通过培训机构招聘的专业学员。 其实,无论通过何种形式,目的在于招聘到优秀的人选,招聘到优秀的工作者,因此,通过参加培训,如北大青鸟培训等,也是不错的选择。 第二部分:软件工程师分类 按级别分类 上面的梯形图明确的表示出软件工程师的四个步骤,如同金字塔

大数据时代下软件工程关键技术探讨

大数据时代下软件工程关键技术探讨 摘要:随着计算机网络技术的高速发展,大数据被广泛应用于社会各个行业的 工作当中,提升社会工作效率。基于大数据的时代背景之下,软件工程技术与大 数据技术相辅相成,共同组成了影响社会运行速率的重要技术内容。随着我国社 会经济的进一步发展,对软件工程技术的需求逐渐加大,相关科研人员要紧跟社 会发展步伐,致力于软件工程技术的开发与利用,提升数字化信息处理效率,推 动我国经济、政治、文化全方面进步。下面,就大数据时代下软件工程关键技术 展开论述。 关键词:大数据时代;软件工程;关键技术 引言 随着我国计算机技术的不断成熟和发展,软件应用日益广泛,无论是从计算 机存储或是整个IT环境,在硬件平台的搭设基础上,越来越多的软件功能丰富的 大数据时代的主体内容。作为人类发社会发展的必经道路,大数据时代在不断适 应和改造人类认知世界的过程中,不断丰富着人们的生产生活。因此,在软件工 程设计分析时,我们要结合大数据的整体时代背景,进一步缓和软件工程发展的 进程,并且不断优化传统的信息结构资源,强化软件工程的信息处理能力,提升 软件工程与网络的结合度。 1软件工程技术定义 在大数据时代,软件工程基础被应用于多个方面,涉及到工业、农业、航空、政府等各个行业领域,用于提升生活、工作的效率,促进社会经济发展。软件工 程技术主要包括软件工程原理、软件工程过程、软件工程方法等内容,是在计算 机网络技术的基础上,利用编程语言对相关软件的功能、操作进行优化和提升, 是在程序与程序设计发展到一定规模并且逐渐商品化的过程中形成的。 2大数据时代下软件工程关键技术 2.1软件服务工程技术 软件服务开发符合我国当下社会主流需求,也是社会发展的主流需要。其在 技术上主要应用在服务功能比较明显的软件开发之中,主要是指以工程化形式, 利用计算机系统编程语言、开发程式及步骤、数据系统等内容,实现具备服务功能、应用功能软件的开发。软件工程开发以服务能力为核心,以虚拟特征以及分 布样式为基础,对用户具体应用情况进行调试,保障用户应用软件工程系统科学性、稳定性、安全性。与此同时,服务软件工程技术可实现应用数据之间的整合,提高软件管理操作能力,对各项操作流程等进行明确。在大数据时代背景下,服 务软件工程开发技术更加倾向于局域网内部应用,可以保护局域网内部用户不会 受到木马病毒恶意袭击,极大程度保障软件工程应用安全性。例如,某企业应用 服务软件工程技术,致力于服务与应用效果软件系统开发,将其应用在企业整体 业务管理之中,为了提高软件服务工程应用效率,赋予了软件私人订制功能,强 化软件服务工程自定义效果。 2.2众包软件服务工程 在众多软件工程技术中,大多数均具备的功能为处理信息、数据的集中性, 可以生成大量数据信息,并呈现出集中性等特征。众包软件工程技术在世界各国 均得到了广泛普及,是各国的重点研究对象。该技术在应用过程中可以流式数据、

软件工程实验

软件工程实验 实验一结构化分析实验(2学时) 实验目的:通过此实验了解结构化分析的特点和步骤,以及结构化分析所采用的基本图形工具。 实验内容: 假设你在一所职业高中工作,负责该校信息系统的建设和维护。财务科长请你研究用学校拥有的pc机生成工资明细表和各种财务报表的可能性。 实验要求: 1.问题定义:请在这个阶段描述你需要解决的问题。包括用户面临的问题和预期的项目规模。最后生成一份问题定义报告书。 2.可行性研究:在这个阶段产生处理工资事务的大致过程,画出高层逻辑模型,并且画出相应的数据流图,建立数据字典。 3.对此系统进行成本效益分析。 实验二结构化设计实验(2学时) 实验目的:能够通过结构化分析的结构进行设计,了解设计过程中的模块化原理。 实验内容:在上一次实验已经用结构化分析方法详细地分析了这个工资支付系统,请从结构化分析所得到的结果(完整数据流图),判断为事务流或是变换流,采用模块化的方法,设计工资支付系统的结构。最终生成一个工资支付软件结构。 实验要求: 写出设计过程、画出工资支付软件结构,用层次图表现。 实验三软件测试实验(2学时) 实验目的:了解软件测试的基本概念,以及黑盒、白盒测试的基本过程。 实验内容: 设计测试下列函数的测试方案: 函数Search(somearray,size,value)的功能是,在一个整数数组somearray中搜索一个值为value的整数,如果数组中有这个数,则函数值等于该数的下标,否则函数值等于-1。数组的长度由参数size指定。假定数组第一个元素的下标为1。 实验要求: 1.采用黑盒测试的方法,写出相应的测试用例 2.用c语言实现此函数,并且由此设计白盒测试方案(选做)。 实验四面向对象分析(2学时) 实验目的:通过采用面向对象的方法对问题进行分析,建立系统的对象模型和功能模型。动

软件工程实验报告

1.1 实验一结构化需求分析 一.实验类型 图书馆管理系统 假定校图书馆需要你设计一个图书馆管理系统,要求包括以下功能: ●图书管理员可以管理馆藏图书,包括每本图书的藏书编号、书名、编著者、 ISBN号、出版社、出版时间、入馆时间、馆藏数量(如果馆藏数量为1,则标明为孤本图书)、在馆数量、学科类别等(或其它你认为有用的信息); ●管理员可以查询、统计所有图书、每一类图书或每一本书的借阅记录; ●图书管理员可以管理所有读者的信息,包括读者类型(学生、教师、社会人 士)、姓名、图书证编号、办证时间、证件状态(正常、挂失、冻结)等信息; ●图书管理员可以查询和统计所有读者、每一类读者或每一个读者的借阅记录; ●读者可以通过本系统查询馆藏图书; ●读者可以通过本系统借阅读书。但对于孤本图书或在馆数量为1的图书则不 准外借; ●管理员可以对超期未归还图书的读者发送电子邮件进行提醒,对于超期一年 不归还图书的读者冻结其图书证; ●读者可以通地本系统归还图书。如果图书超期,则自动计算罚款金额。二.实验目的 1.掌握数据流的分析技术 2.掌握软件需求分析的过程和方法。 3.熟悉项目开发计划和需求规格说明书的制定方法。 三.实验内容和要求 1.用结构化数据流分析技术进行软件系统需求分析,得出系统的数据流图和数据字典。 2.正确运用图表工具进行表示。 3.按规范正确编写软件文档。

四.实验步骤 1.理解所承担项目的业务流程和业务内容。 本软件项目是面向中小型学校、单位机构对于图书管理的基于服务的一款便捷式软件。能满足一系列常用图书管理的功能模块,提供简介、准确的操作性,可以很大程度减少人为因素带来的数据错误,统计错误,系统逻辑错误。并且规模小,很容易进行推广。 ●本项目的参与对象有图书管理员及读者。 ●对于读者,能通过该软件浏览馆藏的所有图书。读者在图书馆找到自己喜欢 的书后,能自行通过该软件操作完成借阅操作。若读者是第一次借书,必须通过图书管理员进行添加读者记录,登记读者信息。读者在登陆后方能完成借阅操作,对于孤本图书(即图书馆中馆藏只有一本的图书)则拒绝进行借阅操作。在规定期限内,读者可以通过该软件完成还书操作,对于超期的图书,应将扣除一定罚款金额,对于超期一年不归还图书的读者冻结其图书证。 并且读者能修改个人信息。 ●对于图书管理员,能管理自己和比自己低一级管理权限的管理员。一级管理 员能完成维护管理员的基本信息和二级管理员的一切操作。二级管理员则能维护自己的信息和添加读者、添加图书的功能。管理员可以对超期未归还图书的读者发送电子邮件进行提醒,对于超期一年不归还图书的读者冻结其图书证; 2.按照系统的功能及性能要求,系统的作业范围等,确定软件系统的开发环境(操作系统、开发工具、程序设计语言等)。 根据软件编程经验,本系统将采用面向对象的设计方法,使用Eclipse开发工具,java窗体应用程序,操作系统使用Win8。 3.绘制数据流图、功能分析图等。

软件工程就业前景

我国软件出口规模达到215亿元软件从业人员达到72万人在中国十大it职场人气职位中软件工程师位列第一位,软件工程人才的就业前景十分乐观. 软件工程是计算机领域发展最快的学科分支之一,国家非常重视软件行业的发展,对软件工程师人才的培养给予了非常优惠的政策.在中国十大IT职场人气职位中,软件工程师位列第一位,软件工程人员的就业前景十分乐观.以下就是软件工程就业前景介绍;软件工程就业前景时间:2011-6-30 来源:中国药业人才网点击量:2919 编辑:末末我国软件出口规模达到215亿元,软件从业人员达到72万人,在中国十大it职场人气职位中,软件工程师位列第一位,软件工程人才的就业前景十分乐观. 软件工程是计算机领域发展最快的学科分支之一,国家非常重视软件行业的发展,对软件工程师人才的培养给予了非常优惠的政策.在中国十大IT职场人气职位中,软件工程师位列第一位,软件工程人员的就业前景十分乐观.以下就是软件工程就业前景介绍. 一、软件工程专业就业前景之可视化编程 掌握程序设计方法及可视化技术,精通一种可视化平台及其软件开发技术.获取delphi程序员系列、java初级或vb开发能手认证. 二、软件工程专业就业前景数据库管理 能应用关系范式进行数据库设计,精通sql语言,胜任数据库服务器管理与应用工作.获取oracle数据库管理或sql server数据库应用或windows 三、 软件工程专业就业前景计算机办公应用精通办公自动化应用与管理,熟悉服务器的安装、管理和维护,基于应用服务器的相关服务和软件系统,具备对服务器的网络安全设置、邮件、网页发布、ftp、oa、bbs等系统的应用和维护能力. 就业方向:企业、政府、社区、各类学校等系统管理 三、软件工程专业就业前景之软件工程专业大学排名 1、南京大学 2、清华大学 3、复旦大学 4、武汉大学 5、浙江大学 6、上海交通大学7 、中国科学技术大学8、中山大学9、华中科技大学10、哈尔滨工业大学11、陕西师范大学12、吉林大学13、东北师范大学14、北京师范大学 软件工程就业前景作为“朝阳行业”软件行业的发展虽然受到全球金融危机的影响,但是从目前的形势来看,软件工程专业在未来多年内仍将是就业形势看好的专业.09年就业调查显示,软件工程就业率及就业工资水平均居高校各专业前.这主要源自于软件行业的快速发展和政府经济结构调整而对软件人才的迫切需求,据估计,我国目前存在着80万的软件人才缺口,而对软件人才的需求也以每年20%的速度递增. 未来几年,国内外高层次软件人才仍将供不应求.软件工程专业毕业生主要在各大软件公司、企事业单位、高等院校、各大研究所、国防等重要部门从事软件设计、开发、应用与研究工作.有数据表明,我国软件出口规模达215 亿元,软件从业人员达到72万人,时代的进步推动了经济的发展,经济的发展打造了网络的 飞跃,网络的飞跃成就了软件工程的瞩目,如此多的光环下面,相信有更多的软件工程专业的毕业生们受到越来越多企业的青睐. IT行业发展迅速,软件技术可以说是日新月异,无论从国内、国际来讲,软件的需求量在逐年增加。从国际上看,每年都有大量的国外企业在中国开办软件开发公司,如日本、韩国、新加坡等,这些外资企业在国内招聘大量的软件程序开发人员或软件设计师,在中国国内开发出软件产品后转移到本国或世界其他地方使用。还有一部分企业直接招聘大量的程序开发人员到国外开发程序,开发出软件产品后再发布到中国或全世界各地使用。所以,随着世界信息的融合,国际的信息化程度会越来越高,计算机、电脑的普及程度也随之越来越高。要想使电脑满足使用者的目的,就必须有不同的各种类型的软件出现,必须有不同版本的软件出现。另外,从国内来讲,2007年以前国家要求大型企业和政府部门必须实现信息化,今后的五年到十年中小企业也必须实现信息化,单从政府和企业的需求来讲就需要大量的软件和软件人才,再加上电子商务软件、企业ERP、CRM、娱乐、游戏等各个行

相关文档