文档库 最新最全的文档下载
当前位置:文档库 › 1 实验一 软件工程标准文档

1 实验一 软件工程标准文档

1 实验一 软件工程标准文档
1 实验一 软件工程标准文档

2011~2012学年第二学期软件工程实验报告

实验题目:实验一软件工程标准文档专业:计算机科学与技术

班级: BU计算机091 学号: 0911503107 姓名:谭正

实验日期: 2012年3月6日

实验地点: 1J2D204 盐城工学院优集学院

一、软件生存周期阶段

实验内容:从GB-T8567-2006《计算机软件文档编制规范》中搜集整理出典型的软件生存周期的六个阶段,并说明各阶段主要的活动、任务及参与者。

实验要求:能够识别软件生成周期的六个阶段,能够列举出各阶段主要的活动、任务及参与者。

解:软件生存周期的六个阶段为:

a)可行性与计划研究阶段;

b)需求分析阶段;

c)设计阶段;

d)实现阶段;

e)测试阶段;

f)运行与维护阶段。

各阶段主要的活动、任务:

在可行性分析(研究)与计划阶段内,要确定该软件的开发目标和总的要求,要进行可行性分析、投资——收益分析、制订开发计划,并完成可行性分析报告、开发计划等文档。

在需求分析阶段内,由系统分析人员对被设计的系统进行系统分析,确定对该软件的各项功能、性能需求和设计约束,确定对文档编制的要求,作为本阶段工作的结果,一般地说软件需求规格说明(也称为:软件需求说明、软件规格说明)、数据要求说明和初步的用户手册应该编写出来。

在设计阶段内,系统设计人员和程序设计人员应该在反复理解软件需求的基础上,提出多个设计,分析每个设计能履行的功能并进行相互比较,最后确定一个设计,包括该软件的结构、模块(或CSCI)的划分、功能的分配,以及处理流程。在被设计系统比较复杂的情况下,设计阶段应分解成概要设计阶段和详细设计阶段两个步骤。在一般情况下,应完成的文档包括:结构设计说明、详细设计说明和测试计划初稿。

在实现阶段内,要完成源程序的编码、编译(或汇编)和排错调试得到无语法错的程序清单,要开始编写进度日报、周报和月报(是否要有日报或周报,取决于项目的重要性和规模),并且要完成用户手册、操作手册等面向用户的文档的编写工作,还要完成测试计划的编制。

在测试阶段:该程序将被全面地测试,已编制的文档将被检查审阅。一般要完成测试分析报告。作为开发工作的结束,所生产的程序、文档以及开发工作本身将逐项被评价,最后写出项目开发总结报告。

在整个开发过程中(即前五个阶段中),开发集体要按月编写开发进度月报。

在运行和维护阶段,软件将在运行使用中不断地被维护,根据新提出的需求进行必要而且可能的扩充和删改、更新和升级。

各活动的基本参与者:

a)可行性与计划研究阶段的参与者有用户、项目负责人和系统分析师。

b)需求分析阶段的参与者有用户、项目负责人和系统分析师。

c)设计阶段的参与者有系统分析师、软件设计师和程序员。

d)实现阶段的参与者有系统分析师、软件设计师和用户。

e)测试阶段的参与者有系统分析师和软件设计师。

f)运行与维护阶段的参与者有维护人员和用户。

二、用于软件生存周期各阶段的文档

实验内容:从GB-T8567-2006《计算机软件文档编制规范》中搜集整理出软件生存周期各阶段的标准文档,并说明各标准文档的用途。

实验要求:能够识别软件生成周期各阶段的文档,能够说明各文档的用途。

软件生存周期各阶段的标准文档为:

a)可行性与计划研究阶段;可行性分析(研究)报告、软件(或项目)开发计划;开发进度月报;软件配置管理计划;软件质量保证计划;

b)需求分析阶段;软件(或项目)开发计划;软件需求规格说明;接口需求规格说明;(软件)用户手册;开发进度月报;软件)用户手册;

c)设计阶段;系统/子系统设计(结构设计)说明;软件(结构)设计说明;接口设计说明;数据库(顶层)设计说明;测试计划;开发进度月报;软件)用户手册;

d)实现阶段;(软件)用户手册;操作手册;测试计划;开发进度月报;

e)测试阶段;测试报告;开发进度月报;项目开发总结报告;

f)运行与维护阶段。软件产品规格说明;软件版本说明等。项目开发总结报告;

各标准文档的用途:

a)可行性分析(研究)报告;

l.《可行性分析(研究)报告》(FAR)是项目初期策划的结果,它分析了项目的要求、目标和环境;提出了几种可供选择的方案;并从技术、经济和法律各方面进行了可行性分析。可作为项目决策的依据。

2.FAR也可以作为项目建议书、投标书等文件的基础。

b)软件(或项目)开发计划;

1.《软件开发计划》(SDP)描述开发者实施软件开发工作的计划,本文档中“软件开发”一词涵盖了新开发、修改、重用、再工程、维护和由软件产品引起的其他所有的活动。

2. SDP是向需求方提供了解和监督软件开发过程、所使用的方法、每项活动的途径、项目的安排、组织及资源的一种手段。

3.本计划的某些部分可视实际需要单独编制成册,例如,软件配置管理计划、软件质量保证计划和文档编制计划等。

c)软件需求规格说明;

1.《软件需求规格说明》(SRS)描述对计算机软件配置项CSCI的需求,及确保每个要求得以满足的所使用的方法。涉及该CSCI外部接口的需求可在本SRS中给出:或在本SRS 引用的一个或多个《接口需求规格说明》(IRS)中给出。

2.这个SRS,可能还要用IRS加以补充,是CSCI设计与合格性测试的基础。

d)接口需求规格说明;

1.《接口需求规格说明》(IRS)描述为实现一个或多个系统、子系统、硬件配置项HWCI,计算机软件配置项CSCI、手工操作、其他系统部件之间的一个或多个接口,而强加在这些实体上的需求。

2.这个IRS,还可以被用来补充《系统/子系统需求规格说明》(SSS)及《软件需求规格说明》(SRS),作为系统和CSCI设计与合格性测试的基础。

e)系统/子系统设计(结构设计)说明;

1.《系统/子系统设计(结构设计)说明》(SSDD)描述了系统或子系统的系统级或子系统级设计与体系结构设计。SSDD可能还要用《接口设计说明》(IDD)和《数据库(顶层)设计说明》(DBDD)加以补充。

2.SSDD连同相关的IDD和DBDD是构成进一步系统实现的基础。贯穿本文的术语“系统,,如果适用的话,也可解释为“子系统”。所形成的文档应冠名为“系统设计说明”或“子系统设计说明”。

f)软件(结构)设计说明;

1.《软件(结构)设计说明》(SDD)描述了计算机软件配置项(CSCI的设计。它描述了CSCI

级设计决策、CSCI体系结构设计(概要设计)和实现该软件所需的详细设计。SDD可用接口设计说明IDD和数据库(顶层)设计说明DBDD加以补充。

2.SDD连同相关的IDD和DBDD是实现该软件的基础。向需方提供了设计的可视性,为软件支持提供了所需要的信息。

3.IDD和DBDD是否单独成册抑或与SDD合为一份资料视情况繁简而定。

g)接口设计说明;

1.《接口设计说明》(IDD)描述了一个或多个系统或子系统、硬件配置项HWCI、计算机软件配置项CSCI、手工操作或其他系统部件的接口特性。一个IDD可以说明任何数量的接口。

2.IDD可用于补充《系统/子系统设计(结构设计)说明》(SSDD)、《软件(结构)设计说明》(SDD)和《数据库(顶层)设计说明》(DBDD)。IDD及其相伴的《接口需求规格说明》(IRS)用于沟通和控制接口的设计决策。

h)数据库(顶层)设计说明;

1.《数据库(顶层)设计说明)(DBDD)描述了数据库的设计。所谓数据库指存储在一个或多个计算机文件中的相关数据的集合,它们可由用户或计算机程序通过数据库管理系统(DBMS)加以访问。DBDD还描述了存取或操纵数据所使用的软件配置项。

2.DBDD是实现数据库及相关软件配置项的基础。它向需方提供了设计的可视性,为软件支持提供了所需要的信息。

3.DBDD是否单独成册或与SDD合为一份资料视情况繁简而定。

i)(软件)用户手册;

1.《软件用户手册》(SUM)描述手工操作该软件的用户应如何安装和使用一个计算机软件配置项(CSCI) ,一组CSCI,一个软件系统或子系统。它还包括软件操作的一些特别的方面,诸如,关于特定岗位或任务的指令等。

2.SUM是为由用户操作的软件而开发的,具有要求联机用户输入或解释输出显示的用户界面。如果该软件是被嵌人在一个硬件一软件系统中,由于已经有了系统的用户手册或操作规程,所以可能不需要单独的SUM.

j)操作手册;

1.《计算机操作手册}(COM)提供操作指定的计算机及其外部设备所需的信息。本手册侧重计算机自身,而不是运行在其上的特定的软件

https://www.wendangku.net/doc/b22232981.html,主要针对一些新开发的计算机、专用计算机、无现成的商用操作手册或其他操作手册可用的其他的计算机。

k)测试计划;

1.《软件测试计划》(STP)描述对计算机软件配置项CSCI,系统或子系统进行合格性测试的计划安排。内容包括进行测试的环境、测试工作的标识及测试工作的时间安排等。

2.通常每个项目只有一个STP,使得需方能够对合格性测试计划的充分性作出评估。

l)测试报告;

1.《软件测试报告》(STR)是对计算机软件配置项CSCl,软件系统或子系统,或与软件相关项目执行合格性测试的记录。

2.通过STR,需方能够评估所执行的合格性测试及其测试结果。

m)软件配置管理计划;

《软件配置管理计划》(SCMP)说明在项目中如何实现配置管理。

n)软件质量保证计划;

《软件质量保证计划》(SQAP)规定在项目中采用的软件质量保证的措施、方法和步骤。

o)开发进度月报;

开发进度月报的编制目的是及时向有关管理部门汇报项目开发的进展和情况,以便及时发现和处理开发过程中出现的问题。一般地,开发进度月报是以项目组为单位每月编写的,如果被开发的软件系统规模比较大,整个工程项目被划分给若干个分项目组承担,开发进度月报将以分项目组为单位按月编写。

p)项目开发总结报告;

项目开发总结报告的编制是为了总结本项目开发工作的经验,说明实际取得的开发结果以及对整个开发工作的各个方面的评价。

q)软件产品规格说明;

1.《软件产品规格说明》(SPS)包含有或引用了可执行软件、源文件以及软件支持的信息。包括一个计算机软件配置项(CSCI)“已建成”的设计信息和编辑、构造及修改的过程等。

2.SPS可被用于订购可执行软件和/或对应于该CSCI的源文件。它是针对该CSCI的基本的软件支持文档。注意,不同的组织对软件的订购和移交有着不同的策略。这种策略应在使用这个文档之前决定。

r)软件版本说明等。

1.《软件版本说明》(SVD)标识并描述了由一个或多个计算机软件配置项(CSCI)组成的一个软件的版本。它被用于发行、追踪以及控制软件的版本。

2.术语”版本”可用于软件的最初发行,用于其后续的发行,或用于在几乎同时发行的软件的多种形式之一(例如,用于不同的场所等)。

三、用于软件需求工程阶段与软件设计工程阶段的分析工具

实验内容:搜集资料并整理出用于软件生存周期各阶段的分析设计工具,并说明各个工具的主要用途。

实验要求:能够区分用于软件生存周期各阶段的分析设计工具,能够说明各个工具的主要用途。

解:a)软件环境开发:

1)软件工程CASE工具,软件开发环境是面向软件整个生存周期,为支持各个阶段的需要,在基本硬件和宿主软件的基础上使用的一组软件系统。

b) 软件需求工程阶段的分析设计工具

数据流图(DFD):软件系统逻辑模型的一种图形表示,描述总体要求

数据词典:描述数据细节

加工说明:描述详细数据处理要求

c)软件分析和建模工具:

1)PowerDesigner是面向数据分析、对象分析、对象设计和实现,集成UML和数据建模的CASE工具。

2)Microsoft Visio是软件开发绘图工具,软件分析与设计过程是要建立各种各样的模型,这些模型用来深入理解系统,使用图形的形式来表达对象系统的分析是一种行之有效的方法,且便于在软件人员和用户之间进行交流。

3)Rational Rose是IBM公司的面向对象建模工具,利用这个工具,我们可以建立用UML描述的软件系统的模型,而且可以自动生成和维护C++、Java、VB、Oracle等语言和系统的代码。

d)软件测试工具:

1)WinRunner界面测试工具可以学习应用程序的界面交互过程,并生成脚本,对界面进行自动化测试。

2)LoadRunner负载测试工具是一个功能非常强大的系统性能模拟工具,可以模拟不同层次和水平的负载量来测试系统的整体性能。

3)PurityPlus代码测试工具是一个百合测试工具,可以对源代码进行自动化测试,指出代码可能存在的缺陷。

e)软件项目管理工具:

1)Visual Safe Source用于软件项目的配置管理和变更控制,保证多人协同开发。

2)Microsoft Project是软件项目管理工具,Microsoft Project通过Microsoft Project Server为工作组协作提供有效的解决方案。二者结合可以为与项目成员、其他项目经理和风险承担者进行有效地通信提供巨大的灵活性和许多优点。

四、软件生存周期各阶段文档的评审标准

实验内容:搜集资料并整理出用于软件生存周期各阶段文档的评审标准。

实验要求:能够掌握软件生成周期各阶段文档的编制规范与评审要求。

系统分析与结构设计阶段应交付的文档有:

1)系统可行性研究报告

2)系统/子系统需求规格说明

3)系统/子系统设计说明

4)接口需求规格说明(可选项)

5)接口设计说明(可选项)

在系统分析与结构设计阶段,有关软件的主要评审内容包括:

1)软件功能描述的正确性

2)软硬件功能划分的合理性和可行性

3)接口要求及接口设备要求的合理性

4)质量要求的合理性

5)开发环境要求的合理性和可行性

6)开发进度要求的合理性和可行性

7)软件开发技术的合理性和可行性。

8)软件开发成本的合理性和可行性。

软件需求评审的主要内容:

1)用例

用例规格说明中是否包含了所有备选事件流和异常事件流?

用例规格说明是否清楚地、无歧义性和完整地记录了每个场景的交互?

用例规格说明中的每个动作和步骤是否都与执行的任务有关?

用例规格说明中定义的每个场景是否都可行并且都可验证?

2)功能

是否清楚、明确地描述了所有的功能?

所有已描述的功能是否是必须的?

是否能满足用户需要或系统目标的要求?

功能需求是否覆盖了所有非正常情况的处理?

3)性能

是否精确地描述了所有的性能需求?

是否指定了期望处理时间、数据传输速率、系统吞吐量?

在不同负载情况下系统的效率如何?

在不同的情况下系统的响应时间如何?

4)接口

是否清楚地定义了所有的外部接口?

是否清楚地定义了所有的内部接口?

所有接口是否必须?

各接口之间的关系是否一致、正确?

5)数据

是否定义了系统的所有输入∕输出并清楚地标明了输入的来源?

是否说明了系统输入∕输出的类型以及系统输入∕输出的值域、单位、格式和精度?是否说明了如何进行系统输入的合法性检查?

对异常数据产生的结果是否作了精确的描述?

6)硬件

是否指定了最小内存和最小存储空间需求?

是否指定了最大内存和最大存储空间需求?

7)软件

是否指定了需要的软件环境/操作系统?

是否指定了需要的所有软件设施?

8)通信

是否指定了目标网络和必须的网络协议?

是否指定了网络能力和网络吞吐量?

是否指定了网络连接数量和最小∕最大网络性能需求?

9)正确性

需求规格是否满足标准的要求?

算法和规则是否做过测试?

是否定义了针对各种故障模式和错误类型所必需的反应?

对设计和实现的限制是否都做了论证?

10)完整性

需求规格说明是否包含了有关功能、性能、限制、目标、质量等方面的所有需求?是否识别和定义了将来可能会变化的需求?

是否充分定义了关于人机界面的需求?

是否按完成时间、重要性对系统功能、外部接口、性能进行了优先排序?

是否包括了每个需求的实现优先级?

11)可行性

需求规格是否使软件的设计、实现、操作和维护都可行?

所有模式、算法是否适用于要解决的问题?

是否能够在相应的限制条件下实现?

是否对需求规格进行了可行性分析及相关资料是否已归档?

是否对影响需求实现的因素进行了调查,调查结果是否已归档?

是否评估了本项目对用户、其他系统、环境的影响特性?

12)一致性

各个需求间是否一致?是否有冲突和矛盾?

规定的模型、算法和数值方法是否相容?

是否使用了标准术语和定义形式?

需求是否与其软硬件操作环境相容?

是否说明了软件对其系统和环境的影响?

是否说明了环境对软件的影响?

所有对其他需求的内部交叉引用是否正确?

所有需求在细节上是否都一致或者合适?

13)兼容性

接口需求是否使软硬件系统具有兼容性?

需求规格说明是否满足项目文档编写标准?

在矛盾时是否有适当的标准?

14)清晰性/无歧义性

所有定义、实现方法是否清楚、准确地表达了用户的需求?

在功能实现过程、方法和技术要求的描述上是否背离了功能的实际要求?

是否有不能理解或造成误解的描述?

15)安全性

是否所有与需求相关的安全特性都包含了?

是否详细描述了有关硬件、软件、操作人员、操作过程等方面的安全性?

16)健壮性

是否有容错的需求?

是否已对各种操作模式(如正常、非正常、有干扰等)下的环境条件(硬件、软件、数据库、通信)都作了规定?

17)可理解性

产品的每个特性是否始终用同一术语描述?

是否每一个需求都只有一种解释?

是否使用了形式化或半形式化的语言?

语言是否有歧义性?

需求规格说明是否只包含了必要的实现规则而不包含不必要的实现细节?

需求规格说明是否足够清楚和明确使其已能够作为设计规格说明和功能测试数据设计的基础?

是否有术语定义一览表?

18)可修改性

需求规格说明的描述是否容易修改?例如是否采用良好的结构和交叉引用表等?

是否有冗余的信息?

是否一个需求被定义多次?

19)可测试性和可验证性

需求是否可以验证(即是否可以检验软件是否满足了需求)?

是否对每一个需求都指定了验证过程?

数学函数的定义是否精确?

20)可维护性

是否包含了所有与需求相关的维护特性?

需求规格说明中各个部分是否是松耦合的,即能否保证在对某部分修改后产生最小的连锁效

应?

是否包含了所有与需求相关的外部接口?

是否包含了所有与需求相关的安装特性?

21)可跟踪性

是否每个需求都具有唯一性并且可以正确地识别它?

是否可以从上一阶段的文档查找到需求规格说明中的相应内容?

需求规格说明是否明确地表明上一阶段提出的有关需求的设计限制都已被覆盖?

需求规格说明是否便于向后续开发阶段查找信息?

22)可靠性

是否为每个需求指定了软件失效的结果?

是否指定了特定失效的保护信息?

是否指定了特定的错误检测策略?

是否指定了错误纠正策略?

系统对软件、硬件或电源故障必须作什么样的反应?

23)其他

是否所有的需求都是名副其实的需求而不是设计或实现方案?

是否明确标识出了对时间要求很高的功能并且定义了它们的时间标准?

概要设计评审的检查内容:

需求规格概述是否与需求规格说明保持一致?是否每一部分的设计都可以追溯到需求规格、接口需求规格或其他产品文档?

是否对需求分析中不完整、易变动、潜在的需求进行了相应的设计分析?

模块的规格是否和软件需求文档中的功能需求和软件接口规格要求保持一致?

设计和算法是否能满足模块的所有需求?

是否阐述了设计中的风险和对风险的评估?

1)总体设计

设计目标是否明确清晰地进行了定义?

是否阐述了设计所依赖的运行环境?与需求中运行环境是否一致性?

是否全面准确地解释了设计中使用到的一些基本概念?

设计中的逻辑是否正确和完备?

是否全面考虑了各种设计约束?

是否有不同的设计方案的比较?是否有选择方案的结论?是否清楚阐述了方案选择的理由是否合理划分了模块并阐述了模块间的关系?

系统结构和处理流程能否正确地实现全部的功能需求?

2)接口设计

用户界面设计是否正确且全面?

是否有硬件接口设计?硬件接口设计是否正确且全面?

是否有软件接口设计?接口设计是否正确且全面?

是否有通信接口设计?通信接口设计是否正确且全面?

内部接口设计是否正确且全面?

是否描述了接口的功能特征?

接口是否便于查错?

接口相互之间、接口和其他模块、接口和需求规格说明及接口需求规格说明是否保持一致?是否所有的接口都需要类型、数量、质量的信息?

3)质量属性设计

是否有可靠性的设计,设计是否具体、合理、有效?

是否有安全性的设计,设计是否具体、合理、有效?

是否有可维护性的设计,设计是否具体、合理、有效?

是否有可移植性的设计,设计是否具体、合理、有效?

是否有可测试性的设计,设计是否具体、合理、有效?是否明确规定了测试信息的输出格式?4)数据结构

是否准确定义了主要的常量?

全局变量的定义是否准确?定义的全局变量的必要性是否充分?

主要的数据结构是否都有定义?

是否说明了数据结构存储要求及一致性约束条件?

是否对所有的数据成员、参数、对象进行了描述?

是否所有需要的数据结构都进行了定义,或者定义了不需要的数据结构?

是否所有的数据成员都进行了足够详细的描述?数据成员的有效值区间是否定义?共享和存储数据的使用是否描述清楚?

5)运行设计

对系统运行时的顺序、控制、过程及时间的说明是否全面、准确?

6)出错处理设计

是否列出了主要的错误类别?

每一错误类别是否都有对应的出错处理?

设计是否考虑了检错和恢复措施?

出错处理是否正确、合理?

7)运行环境

硬件平台、工具的选择是否合理?

软件平台、工具的选择是否合理?

8)清晰性

程序结构,包括数据流、控制流和接口的描述是否清楚?

9)一致性

程序、模块、函数、数据成员的名称是否保持一致?

设计是否反映了真正的操作环境、硬件环境、软件环境?

对系统设计的多种可能的描述之间是否保持一致?(例如:静态结构的描述和动态描述)10)可行性

设计在计划、预算、技术上是否可行?

11)详细程度

是否估计了每个子模块的规模(代码行数)?是否可信?

程序执行过程中的关键路径是否都被标名和经过分析?

是否考虑了足够数量及代表性的系统状态?

详细程度是否足够进行下一步的详细设计?

12)可维护性

是否模块化设计?模块是否为高内聚、低耦合?

是否进行了性能分析?

是否描述了所有的性能参数?(如实时性能约束、存储空间、速度要求、磁盘I/O空间)详细设计评审的检查内容:

1)清晰性

是否所有的程序单元和处理的设计目的都已文档化?

单元设计,包括数据流、控制流、接口描述是否清楚?

单元的整体功能是否描述清楚?

2)完整性

是否提供了所有程序单元的规格?

是否描述了所采用的设计标准?

是否确定了单元应用的算法?

是否列出了程序单元的所有调用?

是否记录了设计的历史和已知的风险?

3)规范性

文档是否遵从了公司的标准?

单元设计是否使用了要求的方法和工具?

4)一致性

在单元和单元的接口中数据成员的名称是否保持一致?

所有接口之间,接口和接口设计说明之间是否保持一致?

详细设计和概要设计文档是否能够完全描述“正在构建”的系统?

5)正确性

是否有逻辑错误?

需要使用常量名的地方是否有错误?

是否所有的条件都被处理?

分支所处的状态是否正确?

6)数据

是否所有声明的数据块都已经使用?

定位于单元的数据结构是否已经描述?

如果有对共享数据、文件的修改,对数据的访问,则访问是否按照正确的共享协议进行?是否所有的逻辑单元、事件标记、同步标记都已经定义和初始化?

是否所有的变量、指针、常量都已经定义并初始化?

7)功能性

设计是否使用了指定的算法?

设计是否能够满足需求和目标?

8)接口

参数表是否在数量、类型和顺序上保持一致?

是否所有的输入∕输出都已经正确定义并检查过?

所传递参数的顺序是否描述清楚?

参数传递的机制是否确定?

通过接口传递的常量和变量是否与单元设计的相同?

传入、传出函数的参数,控制标记是否都已经描述清楚?

是否以度量单位描述了参数的值区间、准确性和精度?

过程对共享数据的理解是否一致?

9)详细程度

代码和文档间的展开率是否小于10:1?

对模块的所有需求都已经定义?

详细程度是否足够开发和维护代码?

10)可维护性

单元是否是高内聚和低耦合?

是否这种设计是复杂度最小的设计?

开始部分的描述是否符合组织的要求?

11)性能

处理是否有时间窗?

是否所有的时间和空间的限制都已明确?

12)可靠性

初始化时是否使用了默认值,是否正确?

访问内存时是否进行了边界检查,以保证地址正确?

对输入、输出、接口和结果是否进行了错误检查?

对所有错误情况都安排了准确的消息反馈?

特殊情况下的返回码是否和文档中定义的全局返回码一致?

是否考虑了异常情况?

13)可测试性

是否每个单元都可以被测试、演示、分析或检查,以确认满足需求?设计中是否包括辅助测试的检查点(如条件编译代码、断言等)?是否所有的逻辑都是可测试的?

是否描述了本单元的测试驱动模块、测试用例集、测试结果?

14)可跟踪性

是否每一部分的设计都可以追溯到需求?

是否每一个设计决策都可以追溯到成本/效益分析?

是否所有的设计决策都可以追溯到成本/效益分析?

是否描述了每个单元的详细需求?

单元需求是否能够追溯到软件设计说明?

软件设计说明能够跟踪到单元需求?

软件工程实验报告最终版

合肥师范学院实验报告册 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.期刊内容查询

软件工程实验报告

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

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

重庆邮电大学-软件技术基础--实验报告(耿道渠)

《软件技术基础》实验报告 实验名称:顺序表的操作 班级学号姓名 第9 周星期 2 、5,6 节成绩 一、实验目的: 1、掌握顺序表结构的实现方式; 2、掌握顺序表常用算法的实现; 3、熟悉利用顺序表解决问题的一般思路; 4、参照给定的顺序表的程序样例,验证给出的顺序表的常见算法,领会顺序表结构的优点和不足。 二、实验内容: 1、设计一个静态数组存储结构的顺序表,要求编程实现如下任务:(1)建立一个顺序表,首先依次输人整数数据元素(个数根据需要键盘给定)。 (2)删除指定位置的数据元素(指定元素位置通过键盘输入),再依次显示删除后的顺序表中的数据元素。 (3)查找指定数据的数据元素(指定数据由键盘输入),若找到则显示位置,若没有找到则显示0。 2、使用顺序表实现一个电话本的管理程序,电话本中的每条记录包括学号、姓名、手机号码和固定电话四项。要求实现菜单、初始化、添加、删除和显示等功能。 三、实验结果:

四、实验中遇到的问题及解决方法: 第一次编写C++,感觉力不从心,回去多看看PPT。

五、实验心得体会: 对顺序表的一些常用语句不熟悉,对顺序表的整体思路理解不深刻以后要加强练习 附:源程序(自行编写或修改的程序。若为修改程序请注明修改部分的功能,若为书上实例则可不附。) #include #include #include #include #define MAXSIZE 20 using namespace std; int num; typedef struct { string student_number; string name; string tel; string home_phone; int id; } TEL; void shuaxin(TEL *); void delet(TEL *);

天津理工大学软件工程实验报告I

天津理工大学 计算机科学与工程学院 实验报告 2017 至2018 学年第一学期

添加操作者与用例之间的关系,完成用例图:

附录(可包括源程序清单或其它说明) 心得体会: 第一次上机,对软件的使用有明显的不熟,在老师的帮助和上网查找,逐渐对软件熟悉起来,通过两节课的努力,最后终于完成了实验。 描述系统中重要用例的基本事件流(正常情况)和备选事件流(异常情况)。一、查询图书信息用例 主要描述:顾客查询系统中的图书信息; 主要参与者:顾客; 前置条件:顾客登录系统 主事件流 1.顾客进入登录界面 2.系统提示输入用户名和密码 3.顾客输入用户名和密码 4.进入系统,开始查询图书 5.显示预订信息 6.顾客可预订图书 备选事件流和异常: 3.1系统验证用户名或密码失败 3.2系统显示失败原因,提示重新输入或取消输入 3.3根据顾客需求退出系统或返回事件2 二、维护订单信息用例 主要描述:顾客管理自己的订单; 主要参与者:顾客; 前置条件:顾客已登录; 主事件流: 1更新订单 1.1 顾客点击修改订单 1.2 系统显示可以更改的订单信息 1.3 顾客选择要修改的订单 1.4 系统显示订单信息 1.5 顾客可以修改当前订单的信息 1.6 顾客保存当前信息 1.7 系统保存当前状态 2 删除订单 2.1 顾客点击删除订单 2.2 系统显示可以操作的订单信息 2.3 顾客选择删除 2.4 系统要求确认 2.5 顾客确认 2.6 系统保存当前状态 3.增加订单 3.1顾客点击增加订单 3.2系统显示可以购买的图书信息

3.3顾客选择添加 3.4系统要求确认 3.5顾客确认 3.6系统保存当前状态; 备选事件流和异常: 1顾客保存订单 顾客可以选择保存订单而不提交订单,系统保存当前状态,让顾客随时提交. 2浏览订单 2.1工作人员点击浏览订单 2.2系统检索并显示当前订单 3增加一个订单需求系统检索订单的先决条件,若符合则将订单发送到仓库管理系统,否则提示工作人员错误信息.发送过的订单标记为”已发送” 4不满足先决条件或无库存 系统检索顾客的先决条件,如果不满足或者没有库存,则给出提示信息. 5.没有权限提示 当工作人员常看订单时,若先决条件不满足,则给出提示信息 6.没有发现订单 工作人员查看订单时,当前没有订单,给出提示信息. 7.仓库管理系统不可用和仓库管理系统无法对话时,给出提示信息 三、维护员工信息用例 主要描述:管理员对工作员工的信息的维护; 主要参与者:管理员; 前置条件:管理员已登录系统; 主事件流 1添加员工信息 1.1提供员工的信息,如姓名、地址、邮政编码和身份证号码等。 1.2系统存储员工信息 2删除员工 2.1提供员工的信息 2.2查询员工 2.3查询员工的借阅记录 2.4从系统中删除员工的信息,以及员工的预定记录 3更改员工 3.1提供员工的信息 3.2查询并显示员工信息,修改相应的信息 3.3更新系统中员工的信息 备选事件流和异常流 1若员工已存在,系统显示提示信息,用例终止 2若查询不到员工,系统显示提示信息,用例终止 3若存在借阅记录,系统显示提示信息,用例终止

软件工程测试实验

淮海工学院计算机科学系实验报告书 课程名:《软件工程》 题目:软件测试实验 班级:软件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 课题描述 (3) 2 可行性研究 (4) 2.1 编写目的 (4) 2.2 项目背景 (4) 2.3 定义(术语) (4) 2.4 数据流程和处理流程 (4) 2.5 可行性分析的前提 (5) 2.6 可行性分析 (5) 3 需求分析 (7) 3.1 学生成绩管理系统功能需求 (7) 3.2 学生成绩管理系统性能要求 (8) 3.3 数据流图 (8) 3.4 数据字典 (9) 3.5 学生信息管理系统逻辑结构图 (12) 3.6 用户信息实体关系图 (12) 4 概要设计 (13) 4.1 编写目的 (13) 4.2 项目背景 (13) 4.3 任务概述 (13) 4.4 总体设计 (13) 4.5接口设计 (17) 4.6数据结构设计 (17) 5 详细设计 (19) 5.1 系统程序流程图 (19) 5.2 界面设计 (21) 5.3 程序界面截图 (22) 5.4 程序源代码 (27) 6 软件测试 (58) 7 总结 (62)

1 课题描述 随着互联网的发展,利用INTERNET 技术来实现“无纸办公”这个概念已经深入人心,校园网作为学校信息化建设的一个平台在完成资源共享、互联网访问、教务管理、电子备课等方面发挥了重要作用。服务教学、提高教学水平和效果是校园网建设的核心目标和核心价值,本系统立足于校园实际,着眼于未来发展,建成符合标准化协议、通用性较强、实用的系统,以提高高校的现代化管理水平,实现信息资源的共享。该项目主要是服务于教学方面,进一步方便教师的工作和学生的学习,从而从侧面达到提高学校的教学方面‘软件’质量。可以说它适用于每一所高校,因此很有开发价值。我们不敢说该产品是所有该系列产品中最好的,但是我们这里要强调的是它具有使用范围广,实用性强,使用简单,所花经费少等优点。我们可以肯定的说它将在高校的使用过程中其优点将得到最充分的体现。 主要功能有三方面: 管理员,登陆,进入系统,可以进行管理员操作,进行学生信息、教师信息、课程信息的编辑、查询、删除、修改、添加、打印等操作。 学生,登陆,进入系统,可以进行查询、修改、打印等操作。 教师,登陆,进入系统,可以进行查询、学生成绩录入、修改、打印等操作。 软件系统目标: (1)本系统具有很强的可靠行,可以对录入的学生信息进行效验,对数据进行修改、删除,规定各种权限。 (2)本系统中的模块具有很强的可续性,可以方便管理人员的修改与维护。 (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银行的业务不断增长,传统的依靠手工的存取款业务办理方式已经不能满足不断增长的业务需求。其一,业务需求的增加需要消耗大量人力物力资源;其二,业务复杂化导致人工处理方式出错率增加,从而引起储户不满。一方面可以减轻银行业务员的工作量,另一方面可以减少工作的出错率,从而提高工作效率。现在计算机网络的告诉发现使越来越多的人更喜欢在网购物、在家存款取款。在这样的背景下,很明显现在的银行储蓄系统已经不能满足人们越益增长的需求,急切需要建立一个新的、高效的、方便的、互联的计算机储蓄系统。为解决此问题,拟为其开发计算机储蓄系统。 项目进度: 项目在项目经理的制度下,在整个开发过程中,树立“里程碑”,而且严格按照计划进行,各阶段任务必须完成,现把任务进度历程绘制如下:

软件工程实验报告

软 件 工 程 实 验 报 告 班级:计算机科学与技术1102班 学号:1108030209 姓名:蒙雨茹

实验一:使用Microsoft Visio 1.1实验目的: (1)熟悉Visio的工作环境及组成。 (2)掌握Visio软件绘制图表的基本操作。 (3)掌握基本流程图的设计方法。 1.2实验内容: 绘制基本流程图 1.3实验步骤: (1)打开一个模板,,在主菜单中依次选择【文件】->【新建】->【选 择绘图类型】,出现“选择绘图类型”窗口,在【类别】下,单击 【流程图】,在【模板】下,单击【基本流程图】。 (2)添加形状,将【形状】窗口中模具上的自己需要的形状拖到绘图页 面中合适的位置。并添加文本、连接不同形状,使流程图完整的显 现出来。 1.4实验结果:

实验二:数据流图 2.1 实验目的 (1)熟悉Visio的工作环境及组成。 ⑵掌握Visio软件绘制图表的基本操作。 ⑶掌握数据流图的设计方法。 2.2 实验内容 习题3-3,3-4,3-5 2.3 实验步骤 (1)打开模板 ①在主菜单中,依次选择【文件】——【新建】——【选择绘图类型】,出现“选择绘图类型”窗口。 ②在左侧【类别】下,单击【软件】。 ③在右侧【模板】下,单击【数据流模型图】。 (2)绘制顶层图 ①在顶层进程页面中添加、移动图形元素并调整其大小。将所需要元素用鼠标拖动到模板里,添加所需的元素符号。 接口:输入源点或输出终点,其中注明源点或终点的名称。 进程:即处理,输入数据在此进行变换产生输出数据,其中注明进程的名称。数据存储:用于代表系统中存储的信息,其中注明信息的名称。 数据流:被加工的数据及其流向。流线上注明数据名称,箭头代表数据流动方向。 ②向图形元素中添加文本,并修改数据流图中的文字和格式。 连接图形元素。 ③使用“数据流”连接线将“接口”、“进程”和“数据存储”等形状互相连接起来。 逻辑连接:将数据流起点、终点拖拽到进程或接口中央位置,进程或接口被红色框包围时松开鼠标,这时可看到数据流符号相应端点为红色方框。拖动进程或接口,可看到流据流的端点随着进程或接口的移动而移动。

软件工程实验答案

实验一 实验内容: 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

软件工程实验内容

实验指导(Experiments) 实验题目:在以下范围内任选一道题目或自定一个题目。

题目医院病房监护系统 在医院的病房里,将病症监视器安置在每个病床,对病人进行监护。监视器将病人的病症信号(组合)实时地传送到中央监护系统进行分析处理。在中心值班室里,值班护士使用中央监护系统对病员的情况进行监控,监护系统实时地将病人的病症信号与标准的病诊信号进行比较分析,当病症出现异常时,系统会立即自动报警,并打印病情报告和更新病历。系统根 据医生的要求随时打印病人的病情报告,系统还定期自动更新病历。

实验内容 实验一软件需求分析 1.实验目的: 1) 根据所选定题目进行需求分析工作; 2) 通过实例掌握结构化数据流分析技术; 3) 进行业务需求分析、用户需求、功能需求、非功能需求分析; 2.实验要求: 要求做到使用结构化数据流分析技术分析课题需求,写出详细的数据流图和数据字典,数据流图的基本处理的个数不得少与2 个。 3.实验内容: 用结构化数据流分析技术进行软件系统需求分析,得出系统得数据流图和数据字典。 4.实验步骤: 1) 通过相关途径进行需求分析。 2) 综合利用Internet 网和相关书籍整理并完善需求分析。 3) 画出系统数据流图。 4) 得出系统数据字典。 5.实验学时:3学时。 6.实验结果:上交实验报告。 实验二软件设计 1.实验目的: 1) 建立初始结构图; 2) 对初始结构构图进行改进、优化; 2.实验要求: 用面向数据流的软件设计技术,对上一实验的数据流图和数据字典,进行总体设计;要求做到对上一实验的软件需求进行软件结构设计。 3.实验内容: 主要解决实现该系统需求的程序模块设计问题。(包括如何把该系统划分成若干个模块、决定各个模块之间的接口、模块之间传递的信息,以及数据结构、模块结构的设计等。) 4.实验步骤: 1.首先确定系统总体设计方案。 2.完成系统的模块结构图及模块的功能说明 3.完成系统的接口设计 4.完成系统的数据结构设计 5.实验学时:2 学时。 6.实验结果:上交实验报告。

软件技术基础教学大纲资料

软件技术基础》教学大纲 课程编号: 23000840 适用专业:电子信息类(非计算机专业) 学时数: 40学分数: 2.5 开课学期:第4 学期 先修课程: 《C 语言》 考核方式:笔试(闭卷) 执笔者:沈晓峰编写日期:2015 年3月审核人(教学副院长): 一、课程性质和目标授课对象:电子信息工程专业大学二年级本科生课程类别:学科拓展课程教学目标: 本课程是针对工科电子信息类本科生开设的一门学科拓展课程。着重培养学生在软件设计领域的基本素质,基本方法和设计理念。授课对象为大学二年级学生,课程任务是通过本课程的学习和相关实验的练习,使学生掌握数据结构、操作系统等软件技术的基本理论知识,具有一定的软件开发能力。 二、教学内容和要求 1、课堂理论教学要求和学时安排(32 学时) 1) C 程序设计(4 学时) (1)C 语言回顾,指针的基本概念、运算方法和使用( 2 学时)。 (2)结构体的基本概念和使用方法(2 学时)。 2)数据结构(20 学时) (1)数据结构的基本概念(2 学时):理解数据结构的基本概念;理解线性和非线性结构的概念。 (2)线性数据结构(9 学时):理解表、栈、队列等线性数据结构的概念,存储方式及基于不同存储方式的相关操作的实现方法。 a. 理解表的概念及顺序表的存储特点,掌握其创建、插入、删除等实现方法(2 学时); b. 掌握单链表、双链表、循环链表的创建、插入、删除方法( 2 学时); c. 理解栈的概念及结构特点,掌握顺序栈及链栈的出栈、入栈操作的实现方法 (2 学时); d. 理解队列的概念及特点,掌握顺序、循环队列的创建、出队、入队、判空、判满等操作。掌握链 队列的创建及出队、入队(2 学时); e. 理解数组的概念及二维数组的存放方式,掌握对称矩阵及稀疏矩阵的压缩存储方法 (1 学时)。

软件工程实验报告

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

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

软件工程实验课题

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

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

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

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

计算机软件技术基础实验报告Word版

计算机软件基础实验报告 姓名学号实验目的 1. 掌握C语言程序设计方法,并学会上机调试。 2. 熟悉Huffman编码源程序,并构造Huffman树。 实验内容 1.试设计一算法,从包括n个元素的数组中,求最大和最小元素,并使得当n 个元素为有序排列时,元素之间的比较次数仅为n-1次。 2.在给出的Huffman编码源程序基础上,要求画出Huffman树,求出与等长编 码相比时的压缩比。 实验要求 1.根据实验内容编写算法,并用 C 语言进行程序设计。 2. 将所编程序在计算机上调试通过,并全面测试。 实验结果 1.以一个含有8个元素的一维数组{1,2,3,5,7,8,9,12}为例,设计程序如下: #include int maxArray(int x ,int y); int minArray(int x ,int y); int main(void) { int i = 0 ; int array[8]={ 1,2,3,5,7,8,9,12} ; printf; do { scanf("%d",&array[i]); i++; } while(i < 8); int maxTemp = array[0]; int minTemp = array[0]; int maxIndex = 0; int minIndex = 0; for(i=1;i<8;i++)

maxTemp = maxArray(array[i] , maxTemp); minTemp = minArray(array[i] , minTemp); } for(i=0;i<8;i++) { if (maxTemp == array[i]) { maxIndex = i; } if (minTemp == array[i]) { minIndex = i; } } printf; return 0; } 运行结果如下: 2.Huffman编码源程序 #include #include #include #include #include typedef struct {unsigned int weight; //结点权值 unsigned int parent,lchild,rchild; //结点的父指针,左右孩子指针 }HTNode,*HuffmanTree; //动态分配数组存储哈夫曼树 typedef char **HuffmanCode; //动态分配数组存储哈夫曼编码表 void CreateHuffmanTree(HuffmanTree &,unsigned int*,int ); //生成哈夫曼树 void HuffmanCoding(HuffmanTree,HuffmanCode &,int ); //对哈夫曼树

软件工程实验报告(国家标准)

可行性研究报告 1 引言 编写目的 编写本报告的目的是研究本系统的总体需求、实现方案,并分析开发系统的可行性,为决策者提供是否开发该系统的依据和建议。 背景 系统的名称:实验室设备管理系统项目开发者:用户单位:徐州工程学院2 可行性研究的前提 目前国内学校教学设备自动化管理水平不是很高。大多数学校设备管理办法是设备采购进来以后,将设备的基本情况和相关信息登记存档,然后将档案存档。以后档案基本就没人维护,如设备位置变迁、检修情况、设备当前运行状态等信息根本不会体现在设备台帐上,即设备跟踪信息不能及时体现在设备档案上。某些使用设备管理系统学校,对设备的跟踪信息即使能体现在设备档案上,但设备的缺陷处理及设备缺陷等功能没有实施,设备检修的备品备件情况和检修成本核算没有实现,整个学校设备管理信息化仍处于较低水平。 本信息系统合理的借鉴国际领先的设备管理思想并结合国内学校设备管理现状,可以完全能满足国内学校设备管理的需要。并通过对各行业设备管理情况的长期研究探索,以灵活、通用为主要设计思想,开发适合于各行业设备管理信息系统。实时报警功能对学校的安全生产更是不可忽视。 要求 (1)主要功能 每学年要对实验室设备使用情况进行统计、更新。其中: 1)对于已彻底损坏的做报废处理,同时详细记录有关信息。 2)对于由严重问题(故障)的要及时修理,并记录修理日期、设备名、编号、修理厂家、修理费用、责任人等。 3)对于急需修改但又缺少的设备,需以“申请表”的形式送交上级领导请求批准购买。新设备购入后要立即进行设备登记(包括类别、设备名、编号、型号、规格、单价、数量、购置日期、生产厂家、保质期和经办人等信息),同时更新申请表的内容。 4)随时对现有设备及其修理、报废情况进行统计、查询,要求能够按类别和时间段等查询。 (2)主要性能 可以方便快捷有效地完成查询,维修设备等各项操作,录入数据合法性校验程度高,查询快速(不超5秒)。保证信息的正确和及时更新,并降低信息访问的

(上课)软件工程实验一

实验指导书课程名称软件工程导论 学院信息工程学院 班级 学号 姓名 2018年 2 月 24 日

系统简介:某单位准备开发一个购买办公用品与设备的总务办公管理系统。办公用品的购买申请由各科室提出,由负责总务工作的办公室统一收集。其中,购买申请的金额低于500元(含500元)可以由总务办公室直接审批,而高于500元的购买申请由机构主管领导审批,批准的购买申请形成采购清单由采购员负责购买,同时应记录每次实际购买清单,进行入账。在提出购买申请时要包括下述数据:申请单位、物品名称、物品数量、预计价格、物品用途等。每次购买完成后应记录以下数据:物品名称、物品数量、价格、总金额、购买日期、经办人等。 案例二:火车票预订系统 系统简介:某高校后勤集团为了学生寒暑假返乡,办理代学生预订返乡火车票事务,订票必须提前三天办理,后勤订票处提前三天向火车站办理购票事务。订票处使用一台微机处理订票后购票事务,学生订票一次称为一个事务,由订票员将其输入在微机中,系统核实订单后,将订票信息记录放在订票库中。系统每天打印预订三天的购票单,并更新订票库。 请对以上系统进行业务流程分析后,绘制出该系统的系统流程图。 实验原理: 系统流程图就是描绘物理系统的传统工具。就是用图形符号以黑盒子形式描绘系统里面的每个部件(程序、文件、数据库、表格、人工过程等等)。表达的就是信息在系统各部件之间流动的情况,而不就是对信息进行加工处理的控制过程。 系统业务流程图的符号:

基本符号 系统符号实验过程与结果: 一、操作步骤: 1.运行Microsoft Office Visio 2010

2.选择流程图中的基本流程图模板 3.用鼠标选拉图标进行绘图 二、实验结果:

软件技术基础实验报告

《计算机软件技术基础》实验报告 专业_____________ 年级_____________ 学号_____________ 学生姓名_____________ 指导老师_____________ 南华大学计算机学院编

【实验报告】

I 实验要求 1.每次实验中有若干习题,每个学生至少应该完成其中的两道习题。 2.上机之前应作好充分的准备工作,预先编好程序,经过人工检查无误后,才能上机,以提高上机效率。 3.独立上机输入和调试自己所编的程序,切忌抄袭、拷贝他人程序。 4.上机结束后,应整理出实验报告。书写实验报告时,重点放在调试过程和小节部分,总结出本次实验中的得与失,以达到巩固课堂学习、提高动手能力的目的。 实验一线性表 【实验目的】 1.熟悉VC环境,学习如何使用C语言实现线性表的两种存储结构。 2.通过编程、上机调试,进一步理解线性表的基本概念,熟练运用C语言实现线性表基本操作。 3.熟练掌握线性表的综合应用问题。 【实验内容】 必做: 1.一个线性表有n个元素(n

软件工程实验

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

软件工程 实验报告

院系:计算机科学学院专业:计算机科学与技术年级: 2013级 课程名称:软件工程 组员:司少武(1135) 兰少雄(1136) 张宇(1133) 纳洪泽(1132) 指导教师:刘卫平 2015年 12月 26 日

聊天室 1 前言 即时消息系统的研究现状 即时消息系统[1](Instant Messenger,IM)是一种在后 PC 时代兴起的,以Internet 网络为基础的,允许交互双方即时地传送文字、语音、视频等信息,能够跟踪网络用户在线状态的网络应用软件。即时消息系统产生有着深刻的社会原因:人们都有渴望社交,获得社会尊重、实现自我的需求,这正是即时消息软件风行的原动力,而物质文明的日益发达所带来副作用,又使得人们习惯与周围的人保持距离,以致人们更愿意对陌生人敞开心扉,在网络中可以跨越年龄、身份、行业、地域的限制,达到人与人、人与信息之间的零距离交流。从这点上讲,即时消息系统的出现改变了人们的沟通方式和交友文化,大大拓展了个人生活交流的空间。 本工程的主要内容 随着互联网逐步普及,人们的生活和工作也越来越离不开信息网络的支持,而聊天室是人们最常见,最直接的网上交流的方式。本聊天系统以聊天交流为主,为广大用户提供一个借助网络进行人际交往的平台,也是网络与现实最贴近的实用型网站。本文所介绍的网络聊天系统是基于开放的JAVA应用程序开发设计的,其主要特性是能动态、实时的完成信息的传递,且具有高效的交互性,更有效的处理客户请求,且具有脱离数据库技术方法,易于维护和更新的特点。 2 需求分析 本系统所要实现的主要功能是当用户聊天时,将当前用户名、聊天对象、聊天内容、聊天语气和是否私聊进行封装,然后与服务器建立Socket连接,再用对象输出流包装Socket的输出流将聊天信息对象发送给服务器端当用户发送聊天信息时,服务端将会收到客户端用Socket传输过来的聊天信息对象,然后将其强制转换为Chat对象,并将本次用户的聊天信息对象添加到聊天对象集Message中,以供所有聊天用户访问。 接收用户的聊天信息是由多线程技术实现的,因为客户端必须时时关注更新服务器上是否有最新消息,在本程序中设定的是3秒刷新服务器一次,如果间隔时间太短将会增加客户端与服务器端的通信负担,而间隔时间长就会让人感觉没有时效性,所以经过权衡后认为3秒最佳,因为每个用户都不可能在3秒内连续发送信息。 当每次用户接收到聊天信息后将会开始分析聊天信息然后将适合自己的信息人性化地显示在聊天信息界面上。

相关文档