当前位置:文档之家› 《软件工程》实验指导书附件

《软件工程》实验指导书附件

《软件工程》实验指导书附件
《软件工程》实验指导书附件

张晓龙老师考虑到我们面向对象的分析与设计也在本学期开设,附件中第三个实验的内容可以不做要求,

只要求完成实验一,二,四这三个部分的内容。请大家相互转告。

武汉科技大学

计算机科学与技术学院

软件工程实验指导书

1 概述

软件工程实验是软件工程课程教学中一个不可缺少的重要环节。根据该课程的特点,应对实验内容以及软件开发的两大方法学(即结构化(SD)方法学和面向对象(OO)方法学)进行专题训练。通过一个简单项目,要求学生利用结构化软件开发技术或面向对象的软件开发技术完成对该项目的开发。为此设置四个软件项目,从项目的系统分析过程、系统设计过程、软件测试到系统实施,覆盖软件开发的主要过程。为了对学生进行软件开发方法和技术方面的规范化训练,引入了我国《计算机开发规范》,以提高实验教学质量和实际运用水平。

1.实验目的

进一步领会和贯通所学的软件工程方法学、软件开发的过程、文档资料的编写格式及规范的基本理论知识,培养学生综合运用所学课程知识,分析解决问题的能力,培养学生的组织能力和协调能力,为今后的工作打下坚实的基础。

2.实验方法

(1)班级按项目小组进行分组,每组不得超过4人,形成一个开发团队。

(2)每个项目小组选出项目负责人(项目经理),有项目负责人召集项目组成员进行讨论,选定开发项目、分配开发任务。

(3)项目中的每项任务要落实到人,且规定该任务的起止日期和时间。

(4)题目自定或采用本书中列出的题目,按照选定的题目和方法依次进行实验。

(5)软件文档的编写,可以选择使用MS Word(编写文档)和MS Visio(画图),程度好的可以使用Rational Rose 2003.

(6)每个实验完成后,每个项目小组必须按照文档规范标准提供项目文档。文档不合格着返工,不能进入下一阶段的实验。

(7)项目完成后,每人应参考本书中给出的范例,提交一份实验报告。

3.实验考核

实验成绩=软件文档的质量(50%)+实验报告的质量(30%)+出勤(20%)

4.实验环境

实验设备:计算机一台

运行环境:Windows XP,文档编辑器(MS Visio、Rational Rose 2003、OFFICE 2003),一个集成开发环境(如:VC++、C++ BUILDER、J BUILDER、VB、https://www.doczj.com/doc/f814882822.html,、Eclipse )

2 实验安排

2.1 实验一结构化需求分析

一.实验类型

设计性(需求分析)

二.实验目的

1.掌握数据流的分析技术

2.掌握软件需求分析的过程和方法。

3.熟悉项目开发计划和需求规格说明书的制定方法。三.实验内容和要求

1.用结构化数据流分析技术进行软件系统需求分析,得出系统的数据流图和数据字典。

一.数据流图

二,数据字典

名称:旅客

简述:用户,航班消费者

有关数据流:旅客信息,取票通知,账单

名称:旅行社

简述:零售代理机构,为旅客提供订票改签等服务

有关数据流:旅客信息,取票通知,账单

名称:航空公司

简述:为旅客提供航空服务,管理航班信息

有关数据流:航班信息

数据流名称:订票信息

描述:记录旅客的旅行时间和目的地,用于确定旅客航班

定义:订票信息=订单号+身份证号+航班号+订票日期+座位号+票价

数据流来源:修改航班信息、安排航班

数据流去向:输入到航班机票管理

数据流名称:旅客信息

描述:记录旅客的个人信息及旅客要求航班信息,用于对旅客的确认及安排航班定义:旅客信息=身份证号码+姓名+性别+工作单位+旅行时间+始发地点+目的地+航班舱位要求

数据流来源:旅行社

数据流去向:输入到旅行社管理

数据流名称:航班信息

描述:记录旅客的航班信息,根据旅客的旅行时间和目的地确定航班

定义:航班信息=航班号+始发地+目的地+始发时间+抵达时间+载客量+头等舱票数+经济舱票数+头等舱价格+经济舱价格

经济舱价格:0{数字}4

数据流来源:航空公司

数据流去向:信息存储航班机票管理

数据流名称:取票通知

描述:记录旅客身份证号订单号验证旅客订票信息

定义:取票通知=身份证号+订单号+取票日期

数据流来源:订票信息

数据流去向:输出到打印机

数据流名称:账单

描述:记录旅客的交款信息,用于确认及取票验证

定义:账单=账单号+订单号+定金+折扣+机票余款

数据流来源:订票信息

数据流去向:航班机票管理输出到打印机

2.正确运用图表工具进行表示。

3.按规范正确编写软件文档。

四.实验步骤

1.理解所承担项目的业务流程和业务内容。

2.按照系统的功能及性能要求,系统的作业范围等,确定软件系统的开发环境(操作系统、开发工具、程序设计语言等)。

3.绘制数据流图、功能分析图等。

4.编写数据字典、数据加工处理的描述等。

5.阅读相关的软件开发的标准文档。

6.编写需求规格说明书。

2.2 实验二结构化软件设计

一.实验类型

设计性(总体设计)

二.实验目的

1.掌握结构化软件设计的过程和方法。

2.掌握设计说明书的编写。

三.实验内容和要求

1.在需求分析的基础上,用结构化软件设计方法进行系统设计,给出系统合理的体系结构。

1.系统简介

航空公司为给旅客乘机提供方便,需要开发一个机票预定系统。各个旅行社把预定机票的旅客信息(姓名、性别、工作单位、身份证号码(护照号码)、旅行时间、旅行始发地和目的地,航班舱位要求等)输入到系统中,系统为旅客安排航班。当旅客交付了预订金后,系统打印出取票通知和帐单给旅客,旅客在飞机起飞前一天凭取票通知和帐单交款取票,系统核对无误即打印出机票给旅客。此外航空公司为随时掌握各个航班飞机的乘载情况,需要定期进行查询统计,以便适当调整。

2.技术要求和限制条件

(1)在分析系统功能时要考虑有关证件的合法性验证(如身份证、取票通知和交款发票)等。

(2)对于本系统还应补充一下功能:

1.旅客延误了取票时间的处理

2.航班取消后的处理

3.旅客临时更改航班的处理

(3)系统的外部输入项至少包括:旅客、旅行社和航空公司。

2.完成数据设计、软件结构设计、接口设计及过程设计。

3.3 功能分配

该系统目前所要具备的基本功能有:旅客信息的输入、安排航班、查询航班、打印通知、改签机票、领取机票。

总体结构和模块外部设计

下面以结构图来描述机票预定系统的软件总体结构。框内注明了模块的名字;

方框之间的直线表示模块的调用关系。

1.接口设计

4.1 外部接口

4.1.1 用户界面

在用户界面部分,根据需求分析的结果,用户需要一个用户友善界面。在界面设计上,应做到简单明了,易于操作,并且要注意到界面的布局,应突出的显示重要以及出错信息。外观上也要做到合理化,考虑到用户多对WINDOW 风格较熟悉,应尽量向这一方向靠拢。在设计语言上,已决定使用MS VISUAL C++ 进行编程,在界面上可使用VISUAL C++ 所提供的可视化组件,向WINDOWS 风格靠近。其中服务器程序界面要做到操作简单,易于管理。在设计上采用下拉式菜单方式,在出错显示上可调用VISUAL C++ 库中的错误提示函数。

总的来说,系统的用户界面应作到可靠性、简单性、易学习和使用

4.1.2 软件接口

服务器程序可使用VISUAL C++ 提供的对Microsoft Access 的接口,进行对数据库的所有访问。

服务器程序上可使用Microsoft Access的对数据库的备分命令,以做到对数据的保存。

4.1.3 硬件接口

在输入方面,对于键盘、鼠标的输入,可用VISUAL C++的标准输入/输出,对输入进行处理。

在输出方面,打印机的连接及使用,也可用VISUAL C++的标准输入/输出对其进行处理。在网络传输部分,在网络硬件部分,为了实现高速传输,将使用高速ATM。

4.2 内部接口

内部接口方面,各模块之间采用函数调用、参数传递、返回值的方式进行信息传递。具体参数的结构将在下面数据结构设计的内容中说明。接口传递的信息将是以数据结构封装了的数据,以参数传递或返回值的形式在各模块间传输。

数据库数据结构设计

DBMS 的使用上系统将采用SQL SERVER, 系统主要需要维护5张数据表:

1.订票信息表

记录旅客的旅行时间和目的地,用于确定旅客航班。主键为OrderNum,当修改航班信息、安排航班时,数据存到该表。

2.旅客信息表

记录旅客的个人信息及旅客要求航班信息,用于对旅客的确认及安排航

班。主键为ID,由旅行社输入旅客的信息,并存到该表。

3.航班信息表

记录旅客的航班信息,根据旅客的旅行时间和目的地确定航班。主键为FlightNum,由航空公司输入信息到该表。

4.取票通知

记录旅客身份证号、订单号、验证旅客订票信息。由订票信息得到该表的信息。

5.账单

记录旅客的交款信息,用于确认及取票验证。主键为BillNum,信息来源于订票信息表。

5.2 物理数据结构设计

物理数据结构设计主要是设计数据在模块中的表示形式。数据在模块中都是以结构的方式表示。

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

始发地:4{字符}20

目的地:4{字符}20

始发时间:1{数字}2+:+2{数字}2+:+2{数字}2(例:8:30:00)

抵达时间:1{数字}2+:+2{数字}2+:+2{数字}2

头等舱票数:0{数字}3

经济舱票数:0{数字}3

头等舱价格:0{数字}4

经济舱价格:0{数字}4

4.取票通知

身份证号:18{数字}18

订单号:4{数字}4

取票日期:4{数字}4+/+2{数字}2+/+2{数字}2

5.账单

账单号:4{数字}4

订单号:4{数字}4

定金:0{数字}4

折扣:0.+0{数字}2

机票余款:0{数字}4

数据类型可参照上面所述。

5.3 数据结构与程序的关系

服务器程序在对安排航班、改签机票、领取机票进行操作时需对数据库数据结构,也就是数据表进行查询和修改。

物理数据结构主要用于各模块之间函数的信息传递。接口传递的信息将是以数据结构封装了的数据,以参数传递或返回值的形式在各模块间传输。出错信息将送入显示模块中,机票结构,帐单结构,送入打印准备模块中准备打印格式。

3.正确运用图表工具进行表示,如层次图、HIPO图、结构图、N—S图、PAD图、判定表及伪码等描述方式。

4.按规范正确编写软件文档。

四.实验步骤

1.分析数据流特性,确定流类型(变换流/事务流),进行系统结构设计。

2.处理过程设计(Jackson方法)。

3.用户界面设计。

4.存储文件格式设计(数据库结构设计)。

5.阅读相关的软件开发标准文档。

6.编写设计说明书(概要设计说明书或详细设计说明书)。

2.3 实验三面向对象的软件分析

一.实验类型

设计性实验

二.实验目的

掌握面向对象的软件分析方法

三.实验内容和要求

1.用面向对象的分析方法进行软件系统需求分析,得出系统的分析模型(对象模型、动态模型、功能模型)。

2.正确运用图表工具进行表示。

3.按规范正确编写软件文档。

四.实验步骤

1.建立问题域的对象模型,确定类与对象、确定关联、确定属性等。(用对象图表示)

2.建立动态模型,定义行为、过程和事件。(用顺序图、协作图、状态图、活动图等表示)

3.建立功能模型,表明系统内的数据如何由输入值得到输出

值。(用数据流图表示)

4.编写分析文档。

2.4 实验四软件编码与测试

一.实验类型

设计性实验

二.实验目的

1.掌握软件测试的过程和方法。

2.掌握测试用例的设计方法。

3.熟悉测试计划说明书、测试记录与分析报告的编写。三.实验内容和要求

1.用程序设计所规定的编程语言,编写一段代码实现软件需求给出的一个功能。每个小组至少有两个功能模块。

对输入的航班信息进行修改。

void CInput::OnBtnShanchu()

{

// TODO: Add your control notification handler code here

UpdateData();

MyADO m_Ado;

m_Ado.OnInitADOConn();

CString SQL;

SQL="select * from TravellerInfo where ID='" + m_ID2 +

"'";

m_Ado.m_pRecordset=m_Ado.OpenRecordset(SQL);

int count=m_Ado.GetRecordCount(m_Ado.m_pRecordset);

if(!count)

{

MessageBox("查无该旅客!", "提示", MB_ICONASTERISK);

m_Ado.CloseRecordset();

m_Ado.CloseConn();

return;

}

m_Ado.CloseRecordset();

SQL="delete from TravellerInfo where ID='" + m_ID2 + "'";

m_Ado.m_pRecordset=m_Ado.OpenRecordset(SQL);

m_Ado.CloseRecordset();

m_Ado.CloseConn();

MessageBox("旅客信息删除成功!", "提示", MB_ICONASTERISK);

}

void CInput::OnBtnLuru()

{

// TODO: Add your control notification handler code here

UpdateData();

if(m_ID.IsEmpty ())

{

MessageBox("请填写身份证号!", "提示", MB_ICONASTERISK);

return;

}

if(m_name.IsEmpty ())

{

MessageBox("请填写姓名!", "提示", MB_ICONASTERISK);

return;

}

if(m_jobAdr.IsEmpty ())

{

MessageBox("请填写工作单位!", "提示", MB_ICONASTERISK);

return;

}

MyADO m_Ado;

m_Ado.OnInitADOConn();

CString sex,cang,trvTime,SQL;

if(m_sex==0)

sex="男";

else

sex="女";

if(m_cang==0)

cang="头等舱";

else

cang="经济舱";

trvTime=m_trvTime.Format("%Y-%m-%d");

SQL="insert into TravellerInfo values('" + m_ID + "','"

+ m_name + "','"

+ sex + "','"

+ m_jobAdr + "','"

+ trvTime + "','"

+ m_ss + m_sc + "','"

+ m_ms + m_mc + "','"

+ cang + "')";

m_Ado.OpenRecordset(SQL);

m_Ado.CloseRecordset();

m_Ado.CloseConn();

MessageBox("旅客信息录入成功!", "提示",

MB_ICONASTERISK);

m_bInput=true;

}

2.根据前面实验中完成的软件项目进行相应软件测试,制定测试计划、设计测试用例,特别是一些异常情况的处理。

测试用例0128

4 . 2 . 1 输入

●登录过程

首先对旅行社登录测试,输入帐号为旅行社帐号,还包括旅行社帐号对应的密码,结果为进入系统或出错信息。再对管理员登录测试,输入帐号为管理员帐

号和密码,结果为进入系统或出错信息。

在输入的测试数据中可分为有效输入类、无效输入类。

无效输入类:

1.帐号不存在;

2.密码错误

有效输入类:

1.,当帐号密码无误时,则进入系统;

●注册过程

首先对注册旅行社帐号测试,输入有帐号、密码、系统口令,结果为成功注册或出错信息。再对管理员注册测试,输入帐号、密码、系统口令,结果为成功

注册或出错信息

在输入的测试数据中可分为有效输入类、无效输入类。

无效输入类:

1.帐号已经存在;

2.密码两次输入不一致;

3.系统口令错误

有效输入类:

1.,当帐号、密码、系统口令正确时,则注册成功;

●旅客信息录入过程:

在旅客信息录入过程中,首先对用户的输入信息进行测试。系统的输入信息为旅客身份证号、姓名、工作单位、旅行时间、出发点、终点、性别,还包括一个

飞机票类型选项。输出为录入旅客信息,和确认或出错信息。

在输入的测试数据中可分为有效输入类.无效输入类。

其中的错误种类有:

无效输入类

1.数据已经存在;

身份证号已经存在

2.始发地和目的地重复

有效输入类

1.当用户的输入有效旅客信息和旅行信息时,则成功录入信息

●按排航班过程:

首先选择航班,并确定,输出为打印通知单或航班已满。选择打印通知单,如果交付定金,成功打印,否则提示交定金

在输入的测试数据中可分为有效输入类.无效输入类。

其中的错误种类有:

无效输入类:

1.航班已满。

有效输入类:

1.航班未满,安排成功,可以打印通知单。

●取票过程:

在取票过程中,对在取票信息界面中输入的各项信息进行初步检验。

无效输入类:

1.订单号不存在;

2.数据超出规定范围;

取票截止日期已过;

有效输入类:

1.账单号正确,并且没有延误,通知打印机票

●改签过程:

首先输入账单号、选择始发地和目的地以及航班、选择时间,输出提示账单号错误或提示打印或航班已满

无效输入类;

1.账单号错误;

2.航班已满

3.始发地不能和目的地一样;

有效输入类

1.账单号无误,航班未满,提示打印通知单;

●修改、删除航班过程:

无效输入类:

1.始发地和目的地一样;

有效输入类:

1.删除航班信息,并短信通知已经定了该航班的旅客。

2.始发地和目的地不一样,成功修改信息。

4 . 2 . 2 输出

●旅客信息录入过程:

对在旅客信息界面中输入的各项信息进行初步检验。若发现错误,令 PErrorAppear=T,判断错误类型,并将相应的错误类型PErrorType或PerrorRank 作为参数,转入IErrorHandle过程。若未发现错误,转入安排航班过程。

●安排航班过程:

对在帐单和取票通知的信息界面中输入的各项信息进行初步检验。若发现错

误,令CErrorAppear=T,判断错误类型,并将相应的错误类型CErrorType或

CErrorRank作为参数,转入IErrorHandle过程。若未发现错误,则打印通知单

CheckNoticeInput过程。

●ErrorHandle过程:

在PersInfoExam或CheckNoticeExam过程中若发现错误,就转入本过程,执行相应的处理,并输出相应的出错信息。

If (PErrorType==T)

输出“您的个人信息可能输错了位置。请重试。”

If (PErrorRank==T)

输出“您的个人信息不适应规定范围。请重试。”

再转入旅客信息输入的界面中。

If (CErrorType==T)

输出“您的帐单信息可能输错了位置。请重试。”

If (CErrorRank==T)

输出“您的帐单信息不适应规定范围。请重试。”

再转入帐单和取票通知信息的输入界面。

●取票过程:

将帐单和取票通知输出到界面1中。注意格式。

Long int cncode =帐单号;

CString name=姓名;

CString sex= 性别;

CString company= 工作单位;

Long int idcode= 身份证号码;

Date stime= 旅行时间;

( syear/smonth/stime=年/月/日)

C String denist= 始发地

C String denist= 目的地

C String FlightRequirement = 机票类型

Int seatcode = 座位号;

Money price= 票价;

●查询过程:

将所有信息航班信息显示在列表框中。

CString FlightNum=航班号

CString Origion = 始发地

CString Destination=目的地

Date stime= 旅行时间;

CString Budload=额定仓员

int FirstClassLeft 头等舱剩余位置

int FirstClassLeft 经济舱剩余位置

int FirstClassPrice 头等舱票价

int EconomyPrice 经济舱票价

4 . 2 . 3 步骤及操作

在测试过程中,首先需要对各子单元过程进行测试。各子单元过程的测试必须先在程序设计员调试并编译通过后才能进行。在各子单元过程测试完毕后,再对各模块(包括各子单元过程之间的接口)进行测试,处理好各模块之间的接口,最后对系统进行测试和维护。

其操作过程如下:

1.在系统接受信息模块过程中,先对各子单元过程分别进行测试,然后根据白盒法按照详细设计说明书中的流程图对其进行跟踪测试。

2.同样,在系统输出信息模块.先对各子单元过程分别进行测试,然后根据白盒法按照详细设计说明书中的流程图对其进行跟踪测试。,

3.然后,根据各模块之间的各种关系,对其接口进行测试。

4.在系统测试中,要注意对各种意外情况(列如断电.硬盘损坏等)加以处理,对数据库要注意其安全性.可靠性.健壮性.效率。网络传输更

要注意其安全性。

3.模块的动态测试以黑盒法为主,辅以白盒法。重要执行路径的测试使用白盒法。白盒法必须先列出所有判定,再选择覆盖标准,根据不同的覆盖标准所列出的情况,设计测试用例。2.1测试项目

系统登录/注册模块测试

系统接受用户输入的帐号密码,然后与数据库中数据核对。系统接受新用户注册帐号,核对无误注册成功

输入信息模块测试

系统接受用户输入的旅客信息,核对后存入数据库中

安排航班、取票,改签模块测试

软件工程实验教案网络

课程教案 课程名称:软件工程实验 任课教师:陈利平 所属院部:计算机与信息科学学院 教学班级:计科1301-02网络1301-03 教学时间:2015-2016 学年第2 学期 湖南工学院

课程基本信息

实验一Microsoft Visio软件的使用(选做) 一、实验目的 1.熟悉Visio的工作环境及组成; 2.掌握用Visio软件绘制图表的基本操作; 3.能熟练全用Visio软件绘制各种较复杂的专业图表; 4.掌握各种图表文档创建方法. 二、实验环境 1.安装有Microsoft Visio 2010软件的计算机系统; 2.准备将使用Microsoft Visio 2010绘制图。 三、实验内容 1.熟悉Microsoft Visio 2010的建模环境; 2.根据教材和实验老师的演示,从教材或实验指导书中找到一个数据流图,用Microsoft Visio将它画出。可以使用实验指导书的图1-5所示的数据流图. 3.根据教材和实验老师的演示,从教材或实验指导书中找到一个状态图,用Microsoft Visio将它画出。可以使用实验指导书的图1-9所示的状态图。 4.根据教材和实验老师的演示,从教材或实验指导书中找到一个E-R图,用Microsoft Visio将它画出。可以使用实验指导书的图1-19所示的实体关系图。 四、实验注意事项 在实验过程中,要注意观察Microsoft Visio相关操作的实现。 五、实验成果 完成实验后,每人提供一份实验报告,简述Microsoft Visio的使用、特点、组成及安装要点,重点说明其建模环境及使用,至少包含三个已绘制的Microsoft Visio文件。 六、实验思考 1.反复练习Microsoft Visio绘制各种图。 实验后记: 实验一Microsoft Visio软件的使用(选做) 一、实验目的 1.熟悉Visio的工作环境及组成;

软件工程作业(答案参考)

软件工程第一次作业 1)软件工程适用范围? 答:软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及到程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。在现代社会中,软件应用于多个方面。典型的软件比如有电子邮件、嵌入式系统、人机界面、办公套件、操作系统、编译器、数据库、游戏等。同时,各个行业几乎都有计算机软件的应用,比如工业、农业、银行、航空、政府部门等。这些应用促进了经济和社会的发展,使得人们的工作更加高效,同时提高了生活质量。 2)软件工程如何控制系统开发的复杂性的? 答:可理解性(understandability)。系统具有清晰的结构,能直接反映问题的需求。可理解性有助于控制软件系统的复杂性,并支持软件的维护、移植或重用。 3)以你的经验,举例说明一个成熟的软件通常采用什么方法来适应现实世界的变化的?答:以猎豹游览器为例,开始软件投入市场公测,软件自带收集错误报告的程式,当遇到问题软件错误,会将相关信息反馈到接受错误信息的服务器,已方便程序员及时发现问题加以修复,修复完成后提供程序更新,循环此法提供软件运行稳定性,另外还有用户反馈的相关功能,对软件的建议也会收集到服务器,按实用性需求程序员可在原有程序上开发调整更适合用户使用的程序。 4)假设某软件公司,能为同一个用户开发两个不同层次的软件:一个层次的软件功能非常强大,在满足用户所有需求的基础上,还能提供大大超过用户需求的其他更多更强的功能;另一个层次的软件仅仅能满足用户需求,但没有提供其他额外的功能。请问如果你是项目负责人,你会选择为客户开发那个层次的软件? 答:我会选择仅仅满足用户需求的软件。因为太多的功能,相对于非专业的人员,在用户体验上可能会造成困扰,太多的功能会导致难以操作。而且功能强大的软件还会给用户费用上带来不必要的投入,软件是以人为本,方便用户工作,达到提高工作效率的目的。若然日后此用户需要更多功能的时候,我们还是可以向其软件公司提供升级功能解决用户需求。

软件工程作业3

软件工程第六章作业 9、某公司为本科以上学历的人重新分配工作,分配原则如下:如果年龄不满18岁,学历是本科,男性要求报考研究生,女性则担任行政工作;如果年龄满18岁不满50岁,学历本科,不分男女,任中层领导职务,学历是硕士,不分男女,任课题组组长;如果年龄满50岁,学历本科,男性任科研人员,女性则担任资料员,学历是硕士,不分男女,任课题组组长。要求:画出分析过程,得出判定表,并进行化简。 条件分析表: 条件名称取值符号取值数性别男M M1=2 女 F 年龄不满18岁T M2=3 满18岁小于50岁Y 超过50岁O 文化程度硕士S M3=2 本科 B 判定表: 1 2 3 4 5 6 7 8 9 10 11 12 性别M M M M M M F F F F F F 文化程度S S S B B B S S S B B B 年龄O Y T O Y T O Y T O Y T 组长√√√√√√ 领导√√ 科研√ 行政√资料员√ 考研√ 简化表: 1,2,3,7,8,9 4 5,11 6 10 12 性别------ M ----- M F F 文化程度S B B B B B 年龄------ O Y T O T 组长√ 领导√ 科研√ 行政√ 资料员√ 考研√

10、研究下面的伪码程序,画出对应的程序流程图。 开始 Input X,N Dim A(N),F(N) I=1 Input F(i) I>N I++ K=0 否是 A(K)=0;J=1 A(K)=A(K)+F(J)*F(J+K)/(N-K+1) J++ K>N-K 否 Print K*X,A(K) K++ K

软件工程数据结构实验教案

实验教案实验一栈和队列 重点: 1.掌握如何使用STL中的栈 2.掌握如何自己编写栈的代码 难点: 用数组实现栈的原理,并能用c++描述 具体实验讲解如下: 本实验是要通过几段代码的编写,熟悉栈和队列的编写和应用 在实验指导书中有4个题目,其中题目1、2、3是关于栈的,题目4是关于队列的。其中题目1难度小,题目2和题目3是有联系的,经过努力可以做出,但是题目4难度大些,属于选作内容 1.题目一(STL中的栈) 读懂实验指导书中的Task1中的程序(使用栈进行序列的顺序反转),并编译运行,通过此了解如果要实现一个栈类,里面需要的基本的成员函数。这个程序在书上也有。 (1)由于程序是用了STL(标准模板库,可以简单的看成是一个函数库,在其中有各种有用的类、函数和算法),栈在其中有实现。栈在STL中的实现用到了类模板,也就是说其栈是独立于类型的,模板提供参数化类型,也就是能将类型名作为参数传递给接收方来建立类或函数。比如stack numbers;中就是声明了一个栈,这个栈中存放的数据类型为double。 (2)注意要使用c++的输入输出需要加上几行语句如下,因为cout和cin是在命名空间std中的: #include using namespace std; 2.题目二、题目三(自己编写栈) 这里可以把题目二和题目三合成一个题目,在一个程序中完成就可以了。 合并后的题目如下:自己编程程序实现一个简单的栈,并用于替换题目1中对标准模板库中的栈的使用,同时对自己实现的栈的功能进行扩充,添加实现如下几个函数 (a) clear (b) full (c) size。 使用新添加的栈函数,显示在进行数字序列反转时输入的十进制数的个数。 注意: (1)实验题目文档中已经把大部分的代码都给出来了。栈可以用链表或者数组实现,这里是 用数组实现。 (2)实验题目中给出的仅仅是部分的代码,自己还需要在看懂的前提下,进行修改补充,才 可以达到具体的要求,不明白的地方也可以参考书上这一部分。 一些补充代码如下:

最新版2016软件工程基础离线作业满分答案

浙江大学远程教育学院 《软件工程基础》课程作业 ————————————————————————————— 第一章概述 1.什么是软件危机,它有哪些典型表现? 答:所谓“软件危机”就是,在计算机软件的开发和维护过程中所遇到的一系列严重的问题,概括起来归纳为:如何开发软件,以满足日益增长、日趋复杂的需要;如何维护数量不断膨胀的已有软件。 软件危机的典型表现主要有: 1. 开发成本和进度不能准确估计 2. 开发出来的软件不能满足用户的要求 3. 软件的可维护性差 4. 软件质量不可靠 5. 软件成本在系统中的比重逐年上升 6. 软件开发生产率的提高速度不够 2.简述产生软件危机的原因和解决的思路。 答:软件危机产生的原因一方面与软件本身的特点有关,另一方面,是与已有软件开发、维护的方法不正确有密切关系。 解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。即采用工程化的原则和方法组织软件开发是摆脱软件危机的一个主要出路。

3.什么是软件工程?它有哪些本质特性? 答:软件工程是一门研究如何用系统化、规范化、数量化等工程原则和方法进行软件开发和维护的学科。 其实质就是用工程的概念、原理、技术和方法,结合有效的管理方法和先进的开发技术,开发与维护软件,以解决软件危机。 4.软件工程是如何用来消除软件危机的? 答:软件工程是从技术和管理两个方面来研究如何更好地开发和维护计算机软件,从源头上消除软件危机。 5.假设你是某软件开发企业的CEO,当你把教材P.4的图1.1给手下的软件工程师们看,同时告诉他们应及早发现并改正错误的重要性时,有人不以为然,认为要求在错误进入软件前就发现并清除它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么又如何能够在设计阶段就发现并清除呢?”那你应该如何说服? 答:首先要对错误造成工作的延误或一些问题表示歉意。错误是难免,关键是要虚心接受,在以后工作中要更加认真,避免错误机率降到最低。在编码过程中要,首先要在头脑清醒,要保持工作前有足够的睡眠。这样错误机会也会降小。在编程结束后,首先要验证,是否能正常运行或工作。再以后的工作更要虚心,认真,保证这种机会降到最低。

软件工程实验指导书(2016年修订)

数学与信息学院(软件学院) 《软件工程实验》指导书 编写:梁早清朱凯严尚维林毅申 完成人信息 学号姓名主要角色和任务比重 朱凯2016年修订 分组至少3人至多4人。 备注:此文档仅作为《软件工程》实验指导用,其他课程的文档模板请根据其他老师提供的模板撰写。

软件工程实验课实验说明 本实验指导书是数学与信息学院、软件学院《软件工程实验》课程的指导书,目的在于让同学们通过这些实验,体会软件开发的过程(从需求分析到设计和测试计划)。老师们试图通过一个较为简单的易实现的软件系统,让同学们分阶段完成需求分析、体系结构设计、部件级设计等设计和功能测试的工作,并完成相应的文档。同学们之间根据规范相互评审每一阶段的文档,过后老师再统一评讲。以此让同学们加深对结构化分析与设计、功能测试的方法的理解。(特别指出:因课时所限,软件工程中面向对象的设计与分析方法不在本实验课上讨论,学院另外开设有《面向对象的设计与分析》课程。) 题目如下: 一、软件系统需求的文本描述 《课程成绩管理系统》提供一个方便我校任课老师管理学生成绩的小型软件系统。该系统为教师提供方便的成绩管理功能,也为学生提供查询成绩的功能。系统描述如下:学生的成绩包含以下4个部分:课堂点名成绩、课堂考试成绩、课后作业成绩和期末考试成绩。各成绩评判标准和在总成绩中所占比例如下: 1.课堂点名3次,每次点名没有到的不得分(即记0分),到了的100分。第一次点 占总成绩的1%,第二次和第三次各占总成绩的2%,课堂点名占总成绩的5%; 2.课堂考试3次,每次满分100分,具体成绩由老师给出。其中,第一次和第二次占 总成绩的7%,第三次占总成绩的6%,共20%; 3.课后作业3次,每次满分100分,具体成绩由老师给出。其中,第一次和第二次占 总成绩的8%,第三次占总成绩的9%,共25%; 4.期末考试试卷满分100分,占总成绩的50%。 教师能通过成绩管理软件来管理学生的成绩,包含添加、删除、修改、查看、统计学生的成绩。各个功能具体描述如下: 1.添加学生成绩:填写学号,点击添加,然后在添加界面上录入对应学生的第一次点 名、第二次点名、第三次点名、第一次课堂考试、第二次课堂考试、第三次课堂考 试、第一次课后作业、第二次课后作业、第三次课后作业,期末考试卷面成绩。点

软件工程作业第一章

1-1什么是软件危机?它有哪些典型表现?为什么会出现软件危机? 软件危机:在计算机软件的开发和维护过程中所遇到的一系列严重问题。 典型表现:软件总是超出预算、落后于进度表,而且产品质量不可靠、维护困难等。 危机原因: 1、软件受其自身特点的影响,生产过程不象硬件那样规范,受人的因素和外界影响很大,在软件生产的各阶段都会引入不同程度的错误,造成不能预期完成任务,致使成本上升,甚至导致软件失败。 2、主客观不相适应。 ●客观上:软件规模增大、功能要求越来越复杂,需求不断变化等; ●主观上:传统的个体化开发观念和方法的影响,无开发过程指导,无开发过程管理;由于主客观矛盾,必然产生软件质量差、开发超期、超预算、维护困难等现象。 1-3 什么是软件工程?它有哪些本质特性?怎样用软件工程消除软件危机? ?基本思想:是强调在软件开发过程中应用工程化原则,解决软件的整体质量较低、最后期限和费用没有保证等问题。 ?软件工程定义:是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它. ?软件工程的根本在于提高软件的质量与生产率,最终实现软件的工业化生产。 本质特性:P6 消除软件危机:软件工程基本原理7条。 1-6 什么是软件过程?它与软件工程方法学有何关系? ?软件过程:是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。 ?过程定义了运用方法的顺序、应该交付的文档资料、为保证软件质量和协调变化所需要采取的管理措施,以及标志软件开发各个阶段任务完成的里程碑。 关系:是软件工程方法学包含3个要素(方法、工具和过程)之一。 1-7 什么是软件生命周期模型?试比较瀑布模型、(快速)原型模型、增量模型和螺旋模型、喷泉模型的优缺点,说明每种模型的适用范围。 生命周期模型规定了把生命周期划分成哪些阶段及各个阶段的执行顺序,因此,也称为过程模型。 瀑布模型:它将软件生命周期划分为需求分析、软件设计、程序编写、软件测试和运行维护等基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。优点:文档驱动。 强迫开发人员采用规范的方法;严格地规定了每个阶段必须提交的文档;要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。遵守瀑布模型的文档约束,将使软件维护变得比较容易一些。 缺点:系统可能不满足需求,用户仅仅通过写在纸上的静态的规格说明,很难全面正确地认识动态的软件产品 适用范围:软件需求明确。 原型模型:在初步调查了解的基础上,提供快速的软件建造工具,开发出一个功能并不十分完善的可实际运行的系统,即原型。需求分析入手快速、表达直观、容易交流。重点解决瀑

软件工程在线作业及答案

1.第1题 在软件可行性研究中,可以从不同的角度对软件进行研究,其中是从软件的成本/效益分析的是()。 A.经济可性性 B.技术可行性 C.操作可行性 D.法律可行性 您的答案:A 题目分数:2.5 此题得分:2.5 2.第2题 为了提高模块的独立性,模块内部最好是()。 A.逻辑内聚 B.时间内聚 C.功能内聚 D.通信内聚 您的答案:C 题目分数:2.5 此题得分:2.5 3.第3题 Jackson方法是一种面向()的方法。 A.对象 B.数据结构 C.数据流 D.控制流 您的答案:B 题目分数:2.5 此题得分:2.5 4.第4题 需求分析阶段研究的对象是软件项目的()。 A.用户需求 B.合理要求 C.模糊要求 D.工程要求 您的答案:A 题目分数:2.5 此题得分:2.5

5.第5题 面向数据结构的设计方法(Jackson方法)是进行()的形式化的方法。 A.系统设计 B.详细设计 C.软件设计 D.编码 您的答案:B 题目分数:2.5 此题得分:2.5 6.第6题 程序控制的三种基本结构中,()结构可提供多条路径选择。 A.反序 B.顺序 C.循环 D.分支 您的答案:D 题目分数:2.5 此题得分:2.5 7.第7题 下列属于黑盒测试的是()。 A.基本路径测试 B.条件测试 C.循环测试 D.等价划分 您的答案:D 题目分数:2.5 此题得分:2.5 8.第8题 软件设计一般分为总体设计和详细设计,它们之间的关系是()。 A.全局和局部 B.抽象和具体 C.总体和层次 D.功能和结构 您的答案:A 题目分数:2.5 此题得分:2.5

9.第9题 好的软件结构应该是()。 A.高耦合,高内聚 B.低耦合,高内聚 C.高耦合,低内聚 D.低耦合,低内聚 您的答案:B 题目分数:2.5 此题得分:2.5 10.第15题 面向对象软件技术的许多强有力的功能和突出的优点,都来源于把类组织成一个层次结构的系统,一个类的上层可以有父类,下层可以有子类,这种层次结构系统的一个重要性质是(),一个类获得其父类的全部描述(数据和操作)。 A.传递性 B.继承性 C.复用性 D.并行性 您的答案:B 题目分数:2.5 此题得分:2.5 11.第16题 软件项目管理是()一切活动的管理。 A.需求分析 B.软件设计过程 C.模块控制 D.软件生命周期 您的答案:D 题目分数:2.5 此题得分:2.5 12.第17题 一个模块把开关量作为参数传递给另一模型,这两个模块之间的耦合是()。 A.外部耦合 B.数据耦合 C.控制耦合 D.内容耦合 您的答案:C

软件工程实验指导书71436

软件工程实验指导书 南昌航空大学信工学院 2010年01月

目录 实验1 用PowerDesigner建模工具绘制数据流图 (3) 1 实验环境 (3) 2 实验目的 (3) 3 实验内容 (3) 4 实验要求 (3) 5 实验步骤 (3) 实验2 用PowerDesigner建模工具设计数据库 (5) 1 实验环境 (5) 3 实验内容 (5) 4 实验要求 (6) 5 实验步骤 (6) 实验3 用Microsoft Visio工具设计用户界面 (10) 1 实验环境 (10) 2 实验目的 (10) 3 实验内容 (10) 4 实验要求 (10) 5 实验步骤 (10) 实验4 用Rational Rose绘制用例图 (14) 1 实验环境 (14) 2 实验目的 (14) 3 实验内容 (14) 4 实验要求 (14) 5 实验步骤 (15) 实验5 用Rational Rose工具绘制类图 (18) 1 实验环境 (18) 2 实验目的 (18) 3 实验内容 (18) 4 实验要求 (18) 5 实验步骤 (18)

实验1 用PowerDesigner建模工具绘制数据 流图 1 实验环境 Windows 2000、Sybase公司的Power Designer应用软件 2 实验目的 1)了解Power Designer工具软件的组成及功能 2)掌握Power Designer中的Process Analyst(PA)模块的建 模方法及其工具的使用方法 3 实验内容 1)设计数据流图(DFD) 2)利用外部实体、过程处理、数据流及数据存储绘制数据流图。 4 实验要求 建立一个PAM(Process Analyst Model)的应用实例。 为方便旅客,某航空公司拟开发一个机票预定系统。旅行社把预定机票的旅客信息(姓名、性别、工作单位,身份证号码、旅行时间、施行目的地等)输入该系统,系统为旅客安排航班,印出取票通知和帐单,旅客在飞机起飞前一天凭取票通知单和帐单交款取票,系统校对无误即印出机票给旅客。 绘制该机票预定系统的数据流图。注意:功能分解的细化程度视具体情况而定。该实验中分解到第三层止。 5 实验步骤 数据流图是系统处理模型的主要组成部分。其中心问题是把功能逐层分解为多个子功能。 1)建立根处理模型 S1:在Windows桌面上双击Process Analyst程序图标,打开Process Analyst应用程序。 S2:建立一个处理过程P1。单击工具栏中的Process工具,在模型工作区内单击会出现一个处理过程的符号,它是建立的第一个处理过程。单击鼠标右键释放Process工具,再双击新建立的处理过程符号,出现特性对话框,对

软件工程测试实验

淮海工学院计算机科学系实验报告书 课程名:《软件工程》 题目:软件测试实验 班级:软件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);

软件工程作业答案

新版形考作业答案第一次!! 09软件工程作业1答案 一、选择题: 1. 开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做(C)。 A.软件工程 B.软件周期 C.软件危机 D.软件产生 2. 瀑布模型本质上是一种(A )模型。 A.线性顺序 B.顺序迭代 C.线性迭代 D.早期产品 3. 瀑布模型存在的问题是(B )。 A.用户容易参与开发B.缺乏灵活性C.用户与开发者易沟通D.适用可变需求 4. 螺旋模型是一种将瀑布模型和(A)结合起来的软件开发模型。 A.增量模型B.专家系统C.喷泉模型D.变换模型 5. 原型化方法是用户和设计者之间执行的一种交互构成,适用于(A)系统。 A.需求不确定性高的B.需求确定的C.管理信息D.实时 6. 下列有关软件工程的标准,属于国际标准的是(D) A.GB B.DIN C.ISO D.IEEE 7. 结构化方法是一种基于(D)的方法。 A.数据结构 B.程序结构 C.算法 D.数据流 8. 软件可行性研究实质上是要进行一次(A)需求分析、设计过程。 A、简化、压缩的 B、详细的 C、彻底的 D、深入的 9. 可行性研究的目的是(D) A、分析开发系统的必要性 B、确定系统建设的方案 C、分析系统风险 D、确定是否值得开发系统 10. 设年利率为i,现存入p元,不计复利,n年后可得钱数为(C)。 A、P×(1+i*n) B、P×(i+1)*n C、p×(1+i)n D、p×(i+n) 11. 可行性研究是在(A)之前 A、系统开发 B、测试 C、试运行 D、集成测试 12.可行性研究需要的时间长短取决于系统的规模,一般来说,可行性研究的成本只是预期总成本的(C)。 A、1% B、20% C、8% D、50% 13.我国正式颁布实施的(B)对计算机病毒的定义具有法律性、权威性。 A.《计算机软件保护条例》B.《中华人民共和国计算机信息系统安全保护条例》 C.《中华人民共和国著作权法》D.《计算机病毒防治管理办法》 14. 效率是一个性能要求,因此应当在以下(B)阶段规定 A、可行性分析 B、需求分析 C、概要设计 D、详细设计 15. 需求规格说明书的作用不包括(D) A、软件验收的依据 B、用户与开发人员对软件要做什么的共同理解 C、软件可行性研究的依据 D、软件设计的依据 16. 数据字典是用来定义(D)中的各个成份的具体含义的。 A、程序流程图 B、功能结构图 C、系统结构图 D、数据流程图 17. 数据流程图是(A)方法中用于表示系统逻辑模型的一种图形工具。 A、SA B、SD C、SP D、SC 18. DFD中的每个加工至少有(A)。 A、一个输入流或一个输出流

13级软件工程实验指导书最新版

《软件工程》 课程实验指导书 华北水利水电大学 信息工程学院计算机科学与技术专业 2016年5月

《软件工程》课程实验指导书 一、实验选题与要求 自由选择题目,但每个班级的选题按照学号尾数为0、5选第1题,尾数为1、6选第2题,尾数为2、7选第3题,尾数为3、8选第4题,尾数为4、9选第5题。 1、单科学生成绩管理系统 任务:对在校某班学生一门课程的平时成绩与考试成绩进行统一管理。每个学生记录包括学号、姓名、每次习题(按16次计)、测验(按3次计)、考试成绩和总评成绩等信息,以学号为序存放。 要求:(1)一个文件按以班为单位存储学生记录。 (2)将允许的操作分为四种,以A、B、C、D为标志(若设置菜单操作更佳): A:插入一个新的学生记录; B:登记某次成绩(可以是每次习题、测验、考试成绩); C:修改某次成绩(可以是每次习题、测验、考试成绩); D:删除一个学生记录。 (3)计算学生的最终成绩,各项成绩权重为:习题10%、测验20%、考试70%。 (4)按学号排序打印全班成绩表,表格内容包括习题、测验、考试、总评成绩,前三项为百分制,总评成绩为加权计算结果值。 设置教师和学生两种登录系统身份,每个用户应有自己的口令; 教师身份可以完成上述基本要求的功能,学生可以通过输入学号查询个人成绩。 2、飞机航班订票系统 任务:通过此系统可以实现如下功能: (1)录入:录入航班信息(数据可以存储在一个数据文件中) (2)查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓); 可以输入起飞抵达城市,查询飞机航班情况; (3)订票:(订票情况可以存在一个数据文件中) 可以订票,如果该航班已经无票,可以提供相关可选择航班; (4)退票:可退票,退票后修改相关数据文件; 订票的客户信息有姓名,证件号,订票数量及航班,订单要有编号。 (5)修改航班信息:当航班信息改变可以修改航班数据文件。 3、宾馆管理信息系统 任务:入住或预订客房时,用户要对客户管理模块或预订管理模块进行核对审查,并进行登记;客户换房时,要对换房信息进行查询和更新;客户退房时,要进行结算,并对更新客房信息。 主要功能模块: (1)登录模块:对用户身份进行验证,只有合法用户才能进入系统;

软件工程第1章作业

软件工程第1章作业 一、填空题(每小题1分,共15分) 1、软件与物质产品有很大的区别,软件是一种_____逻辑_______产品。 2、软件工程是一门综合性交叉学科,计算机科学着重于理论和原理,软件工程着重于建造一个软件系统____________________。 3、最基本、应用广泛、以文档为驱动、适用于开发功能明确的软件项目生存期模型是_瀑布模型。 4、一个软件从定义、开发、使用和维护,直到最终被废弃,要经历一个漫长的时期,通常把这个漫长的时期称为_生存周期。 5、软件工程是指导计算机软件开发和维护的一门工程学科。 6、软件工程包括___软件开发技术_________和____管理________两方面的内容,是技术与管理紧密结合所形成的工程学科。 7、通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称为_范型____________。 8、螺旋模型将瀑布模型和快速原型模型结合起来,加入了两种模型均忽略了的__风险分析_________,弥补了这两种模型的不足。 9、____瀑布_____模型不能适应需求可变的软件开发,只有到开发结束时才能见到整个软件系统。 10、将软件生存周期各个活动规定为依线性顺序联接的若干阶段的模型是__瀑布________模型。 11、喷泉模型是一种以用户需求为动力,以__对象________为驱动的模型。 12、一个软件项目的开发中,要采用一种生存周期模型,要按照某种_开发方法__________,使用相应的工具来进行。 13、软件工程的出现主要是由于_ ____软件危机__________的出现而产生的。 14、软件工程知识体系指南SWEBOK将软件工程知识体系划分为___10____个知识域。 15、Rational统一过程RUP是_用例_______驱动的、以体系结构为核心的、迭代的增量的过程,其迭代过程分为初始、细化、___构建________、移交4个阶段。 二、选择题(每小题2分,共30分) 1、作坊式小团体合作生产方式的时代属于( C )时代。 A.程序设计 B.软件生产自动化 C.程序系统 D.软件工程 2、软件工程与计算机科学性质不同,软件工程着重于( C )。 A.理论研究 B.原理探讨 C.建造软件系统 D.原理的理论 3、个体手工劳动生产方式的时代是( A )时代。 A.程序设计 B.软件生产自动化 C.程序系统 D.软件工程 4、软件是一种( B )产品。 A、有形B、逻辑C、物质D、消耗 5、与计算机科学的理论研究不同,软件工程是一门( C )学科。 A、理论性B、工程性C、原理性D、心理性 6、软件工程学科出现的主要原因是( C )。 A、计算机的发展B、其他工程学科的影响

(完整版)《软件工程》作业及答案

t h e i 《软件工程》作业及答案 1-1 什么是软件危机?它有哪些典型表现?为什么会出现软件危机?答: 软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。概括地说,软件危机包含下述两方面的问题:如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。软件危机典型表现:对软件开发成本和进度的估计常常很不准确。用户对“已完成的”软件系统不满意的现象经常发生。软件产品的质量往往靠不住。软件常常是不可维护的。软件通常没有适当的文档资料。软件成本在计算机系统总成本中所占的比例逐年上升。软件开发生产 率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。 产生软件危机的原因:一方面与软件本身的特点有关,另一方面也和软件开发与维护的方法不正确有关。软件不同于硬件,它是计算机系 统中的逻辑部件而不是物理部件。管理和控制软件开发过程相当困难。 软件是规模庞大,而且程序复杂性将随着程序规模的增加而呈指数上 升。目前相当多的软件专业人员对软件开发和维护还有不省糊涂观念, 在实践过程中或多或少地采用了错误的方法和技术,这是使软件问题发展成软件危机的主要原因。1-2 假设你是一家软件公司的总工程师,当你把图1.1给手下的软件 工程师们观看,告诉他们及早发现并改正错误的重要性时,有人不同意你的观点,认为要求在错误进入软件之前就清除它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么,一个人怎么能 在设计阶段清除它呢?”你怎么反驳他? 1-3 什么是软件工程?它有哪些本质特性?怎样用软件工程消除软件危机? 答: 软件工程是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它。 软件工程本质特性:1、软件工程关注于大型程序的构造;2、软件工程的中心课题是控制复杂性;3、软件经常变化;4、开发软件的效率非常重要;5、和谐地合作是开发软件的关键;6、软件必须有效地支持它的用户;7、在软件工程领域中是由具有一种文化背景的人替具 有另一种文化背景的人创造产品。 消除软件危机的途径:为了消除软件危机,首先应该对计算机软件有一个正确的认识。必须充分认识到软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。应该推广使用在实践中总结出来的开发软件的成功 的技术和方法,并且研究探索更好更有效的技术和方法,尽快消除在 计算机系统早期发展阶段形成的一些错误概念和做法。应该开发和使用更好的软件工具。为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。1-6 什么是软件过程?它与软件工程方法学有何关系? 答: 软件过程是为了获得高质量软件所需要完成的一系列任务的框架, 它规定了完成各项任务的工作步骤。软件工程方法学包含软件过程。1-7 什么是软件生命周期模型?试比较瀑布模型、快速原型模型、增 量模型和螺旋模型的优缺点,说明每种模型的适用范围。 答: 生命周期模型简洁地描述软件过程,规定了把生命周期划分成哪些阶段及各个阶段执行顺序。 瀑布模型历史悠久、广为人知,它的优势在于它是规范的、文档驱动的方法;这种模型的问题是,最终开发出的软件产品可能并不是用户 真正需要的。 快速原型模型正是为了克服瀑布模型的缺点而提出来的。它通过快速构建起一个可在计算机上运行的原型系统,让用户试用原型并收集用 户反馈意见的办法,获取用户的真实需求。 增量模型具有可在软件开发的早期阶段使投资获得明显回报和较易维护的优点,但是,要求软件具有开放的结构是使用这种模型时固有的困难。 风险驱动的螺旋模型适用于内部开发的大型软件项目,但是,只有在开发人员具有风 险分析和排除风险的经验及专门知识时,使用这种模型才会获得成功。 快速原型模型:适合小型软件; 螺旋模型:适合内部开发的大规模软件项目。2-1 在软件开发的早期阶段为什么要进行可行性研究?应该从哪些方面 研究目标系统的可行性? 答: 可行性研究的目的,就是用最小的代价在尽可能短的时间内确定 问题是否能够解决。至少应该从下述三方面研究每种解法的可行性:(1)技术可行性;(2)经济可行性;(3)操作可行性。 2-5 北京某高校可用的电话号码有以下几类:校内电话号码由4位数字组成,第1位数字不是0;校外电话又分为本市电话和外地电话两类,拨校外电话需先拨0,若是本市电话则再接着拨8位数字(第1位不是0),若是外地电话则拨3位区码再拨8位电话号码(第1位不是0)。请用2.5.2小节讲述的定义数据的方法,定义上述的电话号码。答: 电话号码=[校内电话|本市电话|外地电话] 非零数字字符=[1|2|3|4|5|6|7|8|9] 校内电话=非零数字字符+3{数字}3本市电话=0+非零数字字符+7{数字}7外地电话=0+区码+非零数字字符+7{数字}73-1 为什么要进行需求分析?通常对软件系统有哪些需求?答: 为了开发出真正满足用户需求的软件产品,首先必须知道用户的需求。对软件需求的深入理解是软件开发工作获得成功的前提条件,不论我们把设计和编码工作做得如何出色,不能真正满足用户需求的程序只会令用户失望,给开发者带来烦恼。确定对系统的综合要求:1、功能需求;2、性能需求;3、可靠性和可用性需求;4、出错处理需求;5、接口需求;6、约束;7、逆向需求;8、将来可以提出的要求,分析系统的数据要求。3-2 怎样与用户有效地沟通以获取用户的真实需求? 答: 与用户沟通获取需求的方法:访谈;面向数据流自顶向下求精;简易的应用规格说明技术;快速建立软件原型 4-2 在什么情况下应该使用形式化说明技术?使用形式化说明技术时应 遵守哪些准则? 答: 在开发大型软件系统的过程中应该使用形式化说明技术。应用形式化方法的准则:(1)应该选用适当的表示方法。(2)应该形 式化,但不要过分形式化。 (3)应该估算成本。(4)应该有形式化方法顾问随时提供咨询。 (5)不应该放弃传统的开发方法。(6)应该建立详尽的文档。(7)不应该放弃质量标准。(8)不应该盲目依赖形式化方法。(9)应该测试、测试再测试。(10)应该重用 7-8 对一个包含10000条机器指令的程序进行一个月集成测试后,总 共改正了15个错误,此时MTTF=10h;经过两个月测试后,总共改正了 25个错误(第二个月改正了10个错误),MTTF=15h 。要求:(1) 根据上述数据确定MTTF 与测试时间之间的函数关系,画出 MTTF 与测试时间τ的关系曲线。在画这条曲线时做了什么假设?(2) 为做到MTTF=100h ,必须进行多长时间的集成测试?当集成测试结束时总共改正了多少个错误,还有多少个错误潜伏在程序中? 答: (1)所做假设:1)单位长度里的错误数近似为常数;2)失效率正比于软件中剩余的错误数,而平均无故障时间与剩余的错误数成反比. 3)发现的每一个错误都立即正确地改正了.(2)由Shooman 公式:MTTF=I T /(K*(E T -E C (T))) 其中,I T =104,MTTF 1=10,n 1=15,MTTF 2=15,n 2=25。得:MTTF 1=I T /(K*(E T -E C (T 1)))10=10000/(K*(E T -15))MTTF 2=I T /(K*(E T -E C (T 2)))15=10000/(K*(E T -25)) (1)解得程序中固有的错误总数E T =45,此外K=100/3。(2)设MTTF=100,有 100=10000/((100/3)*(45-x))

软件工程实验教学大纲

《软件工程》实验教学大纲 课程代码:0668036 课程名称:软件工程/Software Engineering 开课院(系)实验室:计算机科学系;软件实验室、信息安全实验室 适用专业:计算机科学与技术、信息与计算科学、信息安全 实验指导书名称:《软件工程实验指导书》 一、学时、学分 总学时:64 总学分:4 讲课学时:48 实验学时:16 实验成绩占总成绩20 % 二、课程简介 软件工程是计算机科学与技术等专业开设的一门必修课,是软件开发类的综合性和实践性很强的核心课程。本课程从系统工程的角度介绍软件工程方法,使学生掌握软件工程的基本理论、方法和技术,以及软件开发的完整过程和步骤,掌握软件生命周期中各阶段的知识,并能够使用UML进行软件分析和设计。培养学生初步具有中小型软件项目的需求分析、设计、编码、测试、维护和管理的工程化能力,以及软件开发和项目管理能力,为今后更深入地学习和从事软件开发工作打下良好的基础。 三、实验的地位、作用和目的及学生能力标准 本实验课程是《软件工程》课程教学的重要组成部分。通过本实验课程的教学,使学生加深对面向对象分析与设计的理解,从而掌握如何把统一建模语言UML应用到基本的面向对象分析和设计乃至整个软件开发过程中。 软件工程课程实验的目的是让学生掌握求解软件的基本思想、途径和方法,为从事计算机软件开发、维护和应用奠定良好的基础。学生通过软件工程课程实验,掌握软件分析、设计、实现和测试的基本技术,以及面向对象分析和设计的基本方法。通过该课程实践,实际运用软件工程的技术和方法,掌握软件项目管理和团队开发的工作方法。 经过软件工程课程的实验环节,使学生进一步掌握面向对象的系统设计与开发的方法和技术,树立团队合作精神,培养自主学习能力和创造性的工程设计能力,提高综合分析和解决问题的能力,以及软件项目的管理能力。此外,在实验环节中,还应深入了解面向对象分析和设计的基本概念,UML 在面向对象分析和设计中的作用,UML 的基础知识和应用技术,学会如何使用UML 对系统建模,掌握软件建模工具Rational Rose 的使用。 四、实验方式与基本要求 本实验课程要求学生在教师的指导与帮助下,学习了解UML的基本概念,实践UML对系统进行分析和设计的开发过程。以“网上图书销售系统”为案例,使学生经历软件项目的可行性研究、需求分析,软件设计、实现、测试到维护等各阶段的软件生命过程。 基本要求是:在实验初期,学生要在教师指导下自学Rational Rose软件的安装、使用和操作方法,并能运用Rational Rose完成课程全部实验内容;在每个实验开始之前,要求学生预先针对课堂相关知识进行深入思考、分析、讨论,按实验题目要求给出初步的软件需求分析模型和设计模型;在实验过程中按照实验步骤积极动手进行实验操作,按各个实验的具体要求完成和提交实验成果。 “网上图书销售系统”功能需求: (1)查询图书信息:顾客登录该系统后,可根据书名对所需的图书信息进行查询。

软件工程作业答案

软件工程网上作业题 第1章软件工程学概述 一、选择题 1、软件危机具有下列表现( ) I、对软件开发成本估计不准确 II、软件产品的质量往往不可靠 III、软件常常不可维护 IV、软件成本逐年上升 A.I、II与III B.I、III与IV C.II、III与IV D.以上都正确 答案:D 2、产生软件危机的原因可能有( ) I、用户需求描述不精确、不准确 II、对大型软件项目的开发缺乏有力的组织与管理 III、缺乏有力的方法学与工具的支持 IV、软件产品的特殊性与人类智力的局限性 A.I与II B.I、II与IV C.II、III与IV D.以上都正确 答案:D 3、( )分批地逐步向用户提交产品,每次提交一个满足用户需求子集的可运行的产品。 A、增量模型 B.喷泉模型 C.原型模型D、螺旋模型 答案:A 4、为了克服软件危机,人们提出了用( ) 的原理来设计软件,这就就是软件工程诞生的基础。 A、数学 B、软件学 C、运筹学 D、工程学 答案:D 4、TURBO PASCAL就是()软件。 A、系统软件 B、人工智能 C、事务软件 D、应用软件 答案:D 6.具有风险分析的软件生存周期模型就是( ) A、瀑布模型 B、喷泉模型 C、螺旋模型 D、增量模型 答案:C 7、瀑布模型的关键不足在于( ) A、过于简单B、不能适应需求的动态变更 C、过于灵活D、各个阶段需要进行评审 答案:B

8.软件危机就是指( )。 A、软件遭到破坏 B、软件开发与维护过程中遇到的问题 C、软件维护出现困难 D、软件不能正常运行系列问题 答案:B 9、软件的复杂性就是( ),它引起人员通信困难、开发费用超支、开发时间超时等问题。 A、固有的 B、人为的 C、可消除的 D、不可降低的 答案:A 10、( )就是将系统化的、规范的、可定量的方法应用于软件的开发、运行与维护的过程,它包括方法、工具与过程三个要素。 A、软件过程 B、软件测试C 、软件生存周期D 、软件工程 答案:D 11.软件的主要特性就是( )。 A、高性能 B、高成本 C、包括程序与文档 D、可独立构成计算机系统 答案:B 12.软件开发方法的主要工作模型有( ) A、螺旋模型 B、循环模型 C、瀑布模型 D、专家模型 13.软件工程三要素就是( )。 A、高技术人员、方法与工具 B、方法、工具与过程 C、方法、对象与类 D、过程、模型、方法 答案:B 14.软件工程的目标有( )。 A、易于维护 B、低的开发成本 C、高性能 D、短的开发期 答案:B 15.软件工程学的目的与意义就是( )。 A、应用科学的方法与工程化的规范管理来指导软件开发 B、克服软件危机 C、做好软件开发的培训工作 D、以较低的成本开发出高质量的软件 答案:D 16、开发软件所需高成本与产品的低质量之间有着尖锐的矛盾,这种现象称做( ) A、软件工程 B、软件周期 C、软件危机 D、软件产生 答案:C 17、快速原型模型的主要特点之一就是( ) A、开发完毕才见到产品 B、及早提供全部完整的软件产品 C、开发完毕后才见到工作软件 D、及早提供工作软件 答案:D 18.瀑布模型的存在问题就是( ) A.用户容易参与开发 B.缺乏灵活性 C.用户与开发者易沟通 D.适用可变需求 答案:B 19、软件生存周期模型不包括:() A、瀑布模型 B、对象模型 C、增量模型 D、喷泉模型 答案:B

相关主题
文本预览
相关文档 最新文档