当前位置:文档之家› 软件工程 (2)

软件工程 (2)

软件工程 (2)
软件工程 (2)

一问题的定义

1 问题定义

Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。目前,最新版本为Android4.0.3。目前安卓系统流行的原因:1。开源,只有你又编辑基础,就可以进出其中。2.系统精炼,这是开源的好处。3.个性发展,根据自己的使用习惯配置4.用的人多,可以找到相应的应用软件5.系统更安全些。6.操作界面华丽

安卓手机记账系统是一种记账服务系统,它向手机用户提供了一台计算器,用户可以在上面记录近期的支出收入情况。早期的记账方式都是笔记,大约是从1911年开始,就推出了手机记账系统。经过长时间的发展,安卓手机记账系统慢慢流行起来。2008年更是以惊人的速度发展起来。多数业余手机记账系统都很普通,基于一般模式,而安卓手机记账系统使用了数据库,这样系统更安全,实时。

2 系统要解决的问题

手机用户登录系统,记录当前的支出和收入情况。支出包括生活用品等,收入包括勤工俭学等。用户查看时可以根据日期看出,也可以详细查看。另外用户进入系统前,会有一个登录界面。用户查看信息时,鼠标长期按在一条信息上时,系统会提醒用户是否将删除该信息。而且用户查看记账信息时,系统会按入账时间先后顺序排列出来并标号。

二可行性研究报告

1 引言

1.1编写目的

本系统开发计划注重规范开发过程,保证系统质量,使用户对系统项目的理解,并对其开发工作提供意见;而且还作为系统项目通过评审的依据。并说明该系统开发项目的实现在技术上的可行性。

1.2背景

A、Android一词的本义指“机器人”

B、任务提出者是本次课程设计辅导老师:曾婕、郑剑;系统的开发主要由吴海林,余海刚负责。

2可行性研究的前提

2.1要求

A、功能:

手机用户登陆系统前用户可以看到登录界面,记录当前的支出和收入情况并查看相应的记录信息,用户还可以删除已记录的信息,或根据日期查看对应的记账情况。

B、性能:查询效率尽可能做到精准,信息维护做到简单易用;

C、输出:能够快速有条理的输出相关的信息、资料;

D、输入:记录当前的支出和收入情况;

E、完成期限:到本学期的第21周。

2.2目标

系统应该尽量做到以下的目标:

人力与设备费用的减少;

使用数据库;

数据的处理速度比较快;

应能查询和清除记录的信息。

2.3进行可行性研究的方法

根据课本里面的相关知识、图书馆所借的书以及平时所积累的一些经验,综合本系统所要达到的目标进行分析而得到。

3 处理流程和数据流程

3.1系统流程图

系统的处理流程图见图2-1所示,系统的流程图见图2.1所示:

图2.1系统的流程图3.2 系统数据流图

图2.2系统的数据流图

4技术可行性分析

采用JAVA和SQL Server 2005开发,即使遇到困难,也能从丰富的参考书中找到解决方案。开发出的系统的功能主要是实现信息查询,信息添加,信息修改,信息删除功能。信息查询是查看记账记录,可按月份查看。信息添加是添加收入和支出的记账信息,包括相应的事件和金额。信息修改是修改以前记录的信息,包括收入和支出。信息删除是删除某月的记账记录或某一次的记账记录。

5经济可行性分析

开发需求较低,主要是用于测试课程设计完成效果,加上成熟的软硬件环境、目标系统并不是十分复杂和开发周期较短,人员经济支出有限。开发完成运行后,为使用者带来便利,为系统的进一步推广创造了条件,经济收益将远超过投资。从经济角度考虑,此系统开发可行。

6法律可行性分析

由于整个系统是自行开发,自行使用,所以系统本身不存在版权争议,符合国家各种政策法规。

7存在的主要问题分析

7.1软件开发目的性的局限性

我们开发该系统的目的不是为了商业上的盈利,而是为了完成软件工程课程设计,开发软件的出发点很低,所以开发的积极性也大打折扣,对系统也没有进行很具体的需求分析和系统预测分析。

7.2软件开发经费的局限性

开发该系统完全是为了完成课程设计作业,根本就没有什么经费问题,所以没有在该系统上花费很多时间和精力。

7.3软件开发人员专业性水平的有限性

我们在课堂上主要是学了一些基本的软件开发技巧,在课外时间也是根据兴趣学了一些自己感兴趣的软件开发知识,没有经过专业的培训,以前更没有开发软件的经验,所以开发出来的系统很有局限性。

7.4软件开发时间的有限性

开发该系统之前并没有给时间去做详细的市场调查,对市场的需求不是很明确,只是根据自己的感觉和在网络上查找的一些基本资料确定了该系统的需求,所以该系统能不能很好的满足市场需求不是很有保证。

8 结论

本系统可以开始进行实施;从人力资源上面来看,可以充分利用各人的擅长来开发本系统;从开发成本上面来看,将支出成本降到最低;所以推荐此方案最佳。

三项目开发计划

1编写目的

程序设计不等于软件工程,这是本课程需要进一步让学生加深理解的地方。传统的程序设计在一定程度上偏重于计算机科学领域,属于较抽象的范畴;而软件工程则是要实实在在地做出一个满足用户要求的系统来,这是一个很具体的实践过程。作为一个软件开发者,必须具备从事工程实践的技能,包括软件项目的可行性研究、系统分析、设计、编写文档、源码设计、使用工具等基本技能,这就是课程设计要实现的一个目标。

2定义

本文档所用到的定义如下:

1)软件项目管理:对整个软件开发过程进行管理。是定义全部项目任务,识别

出关键任务,跟踪关键任务的进展状况,已保证能及时发现拖延进度的情况

2)软件生命周期(software life cycle):是人们在研究软件开发过程时所发

现的一种规律性的事实。主要包括计划、分析、设计、编程、测试和维护等阶段。

3)需求分析:软件需求说明书是需求分析阶段的最后成果,该说明把在软件计

划中确定的软件范围加以展开,制定出完整的信息描述、详细的功能说明、恰当的检验标准以及其他与要求相关的数据。

4)概要设计:经过需求分析阶段的工作,系统必须“做什么”已经清楚了,概

要设计的基本目的就是回答“概括地说,系统应该如何实现”这个问题。概要设计的重要任务就是设计软件的结构,也就是要确定系统是由哪些模块组成,以及这些模块相互间的关系。

5)详细设计:概要设计已经确定了每个模块的功能和接口,详细设计的任务就

是为每个模块设计其实现的细节。详细设计阶段的根本目标是确定应该怎样具体地实现所需求的系统,得出对目标系统的精确描述。

6)软件测试:软件测试就是在软件投入运行前,对软件需求、设计规格说明和

编码的最终复审,是软件质量保证的关键步骤。测试的目标是想以最少的时间和人力找出软件中潜在的各种错误和缺陷。

3项目概述

3.1工作内容

本项目的内容包括技术和非技术两大部分:技术上需要进行数据库开发,代码编写;android手机页面的设计和代码的编写;运用eclipse和android模拟器实现全部代码的编写和程序的调试。

1.问题定义(明确问题边界)

2.可行性研究(提交可行性研究报告)

3.项目开发计划(提交项目开发计划书)

4.需求分析(提交需求分析说明书)

5.概要设计(提交概要设计说明书)

6.数据库设计(提交数据库设计说明书)

7.详细设计(提交详细设计说明书)

8.系统测试(提交测试计划、测试用例和测试报告)

9.用户使用说明(提交用户手册)

3.2主要参加人员

吴海林,余海刚

3.3服务

A、用户方面:可以登录、查询,删除记录的记账信息。

B、系统方面:查看用户、管理系统的各种信息、查看系统的信息。

3.4假设和约束

假设:1.编码要规范,要易读,易维护。

2.编程语言采用开源的JAVA语言。

3. 文档必须按照国标的文档编写

约束:本项目计划能够顺利执行的条件是基于以下假设成立:

?系统能够满足计划中对各种操作需求;

?系统实施过程中能得到客户的有效支持与配合;

?系统开发过程中有老师的专业指导;

3.5完成项目的最迟期限

按计划,本项目最迟将于2012年7月5日完成。在此前提下,开发人员保留对开发时间进度进行局部调整的权利。

3.6风险评估和控制

描述预计项目中可能发生的风险,风险系数=严重等级X风险概率。风险等

级是指该风险对项目进度、质量和成本影响的严重程度,可分为四个等级,等级越高影响越严重。

1.客户风险,指由于客户成熟度不够而产生的风险

2.过程风险,指由于项目组成员对开发过程不熟悉而产生的风险

3.成本风险,指由于项目成本过高而产生的风险

4.技术风险,指由于采用项目组成员不熟悉的技术而产生的风险

5.质量风险,指由于用户要求的质量过高而产生的风险

6.时间风险,指由于开发时间过紧而产生的风险

7.需求风险,指由于需求调研不充分而产生的风险

4产品

41程序

移交给最终用户的内容包括完整的软件,数据库系统,用户手册及相关的代码、文档、说明及范例。

4.2文件

移交用户的每种文件的名称及内容要点:

A、定义:明确要解决的问题是什么?

B、可行性研究报告:要解决的关键问题是“对于上一个阶段所确定的问题有行得通的解决办法吗?”;

C、需求分析报告:准确地确定“为了解决这个问题,目标系统应该做什么?”,主要是确定目标系统必须具备哪些功能;

D、概要设计报告:概括的说就是“应该怎么实现目标系统”,主要任务是设计程序的体系结构;

E、详细设计报告:设计出程序的详细规格说明;

F、编码及单元测试文档:写出正确的容易理解、容易维护的程序模块;

G、综合测试文档:利用测试工具按照测试方案和流程对产品进行功能和性能测试,甚至根据需要编写不同的测试工具,设计和维护测试系统,对测试方案可能出现的问题进行分析和评估。执行测试用例后,需要跟踪故障,以确保开发的产

品适合需求;

H、软件维护文档:通过各种必要的维护活动使系统持久地满足用户的需要。

5实施计划

5.1工作任务的分解与人员分工

5.2接口人员

负责接口工作的人员及他们的职责:

吴海林: 需求分析、数据库设计,概要设计,详细设计,系统测试;

余海刚: 问题定义,可行性研究、项目开发计划,用户使用说明

5.3关键问题

由于没有相关的系统开发的经验,而且对Android 2.2开源框架的组合不够熟悉,以前也没有做过一个比较正规的软件项目,资料来源也有限,可能对本系统的实现多少有点影响。

6计算机系统支持

A、运行该软件系统所需要的硬设备包括服务器和客户机:

1G Hz以上处理器,内存不少于256M。

3G 以上空余硬盘空间。

客户机为普通电脑。

B、运行该软件系统所需要的软设备包括:

安装了JDK1.5版本以上

安装了android1.6版本以上

以及相关的jar包

C、开发这个系统运用到的软件

eclipse 3.7版本

Android 2.2 模拟器

四需求分析

1 引言

1.1 编写目的

通过对主流记账系统的研究,根据可行性分析的方案和项目成员的讨论,编制本需求说明书。本报告用于记账系统的需求规格,明确系统的功能需求,业务流程和性能要求以及与有关系统的接口关系,它将是系统最终实现和审评的根据之一,是进一步设计、开发的基础。本报告的阅读范围:项目组的项目管理、软件开发和系统测试人员、指导老师等。

1.2 系统说明

该系统基于android手机平台2.2版本,易于操作,界面美观,实现对账目的基本添加删除查询功能。

1.3术语定义

用例(use case):用例是系统单元提供的外部可感知的功能单元,表达成系统单元和与之间交互的一个或多个活动者的消息序列,用例的目的是定义清晰的行为块而不解释系统的内部结构。

用例视图(use case view):系统所有的参与者和所有的用例组成了用例模型。用例视图从外部用户的角度捕获系统、子系统或类的行为,它将系统功能划分为对参与者具有意义的事务。这些功能块称为用例。

用例图:用例图是由参与者、用例、关联和边界四个要素组成。

活动图:活动图是通过提供特定的场景内交流的图形化表示来补充用例。活动图可以描述存在的并且已经被定义为需求到处任务一部分的活动或功能。 领域模型:领域模型能捕获语境中最重要的对象模型,领域对象代表系统工作的环境中存在的事情或发生的事件。

行为建模:行为建模显示了软件如何对外部事件或激励做出相应。

2 需求规定

2.1 非功能性需求

信息社会的高科技,商品经济化的高效益,使计算机的应用已普及到经济和社会生活的各个领域。计算机虽然与人类的关系愈来愈密切,还有人由于计算机操作不方便继续用手工劳动。为了适应现代社会人们高度强烈的理财观念,个人记账系统为人们带来了极大的方便。该软件是以汉语编程语言为实现语言,其功能在系统内部有源代码直接完成。通过操作手册,使用者可以了解本软件的基本工作原理。操作人员只需输入一些简单的汉字、数字,即可达到记录消费的功能。同样为了美观,软件需要利用图片等加入界面设计中使软件更加的美观大方。软件需要简单易懂,易于操作,对系统要求低等

2.2 功能性需求

安卓手机个人记账软件主要实现用户的消费记录功能,便于用户查询。它需要具有以下几个功能需求:

1 登陆功能

作为个人理财记账软件,需要具有信息的隐蔽性,设置用户密码登陆能够实现信息的安全隐蔽。

2 添加记录

软件在添加账目的时候可以选择时间,具体金额和账目的属性,并将同一时间段记录保存在一起。

3 查询账目

软件可以根据时间段查询该时间段的消费记录。

4 删除记录

软件通过查询账目对某条记录进行删除。

2.3性能要求

2.3.1时间特性

本系统在正常的网络环境下,应能够保证系统的及时响应:

A、一般操作的响应时间应在3~5秒内。

B、登录系统的响应时间不定,可能在5~20秒内。

C、数据库检索超时不超过20秒。

2.3.2适应性

满足运行环境在操作系统之间的安全移植和与其它应用软件的独立运行要求。其他适应性建立在硬件和系统软件稳定的基础上。

3 运行环境要求

该手机记账系统是基于android 2.2系统的软件,所以必须是拥有android系统的手机才能运行。其他手机系统无法运行,在电脑上必须安装android模拟器才能运行该软件。

4其他需求

系统的安全性: 对于系统的重要数据都有密码保护,具有一定的安全性。 系统的封闭性: 用户的封闭性较好,用户基本上在提示信息下输数据。

系统的可移植性: 能在Windows、Linux和Unix操作系统上运行。

系统的可维护性: 采用基于JAVA技术系统应用平台,使系统具有良好的可维护性和可扩展性。

五概要设计

1编写目的

本文档描述系统在功能上的主要设计和思想,预先估计以后系统可能达到的目标。本阶段完成系统的大致设计并明确系统的数据结构与软件结构,将一个软件需求转化为软件表示的过程。

本文档的阅读对象是课程设计指导老师以及本软件的开发小组人员,此文档将作为本小组进行详细设计和软件开发的依据,并且可帮助以后进行系统扩展和维护的开发人员了解和维护此系统。

2总体设计

2.1需求规定

系统各个模块设计见表5-1所示:

表5-1 系统各个模块设计

2.2运行环境

硬件环境:手机CPU的内存最好在256MB以上,存储器容量大小不限。

软件环境:android1.6以上平台。

2.3基本设计概念和处理流程

此系统的功能层次图如图5.1所示:

图 5.1系统层次图

2.4结构

A、系统的框架结构图如图5.2所示:

图5.2 系统的框图

3接口设计

3.1用户接口

A、登录界面:由输入用户名、密码的文本框和登录、注册按钮等组成;

B、查询:查询某月的支出和收入记录情况;

C、添加界面:添加当前的支出和收入信息;

D、删除界面:删除记录的支出和收入情况;

3.2外部接口

A、硬件接口:

由于我们使用的通信接口是TCP/IP,因此这里的硬件接口问题主题就是TCP/IP层中的网络接口层,它负责数据帧的发送和接收,帧是独立的网络信息传输单元。

B、软件接口

这里的接口问题主要就是怎么样与Sqlite数据库进行通信,以便对数据库进行读取和写入操作。

3.3内部接口

一个具体的读取数据库内部需要的操作如图5.3所示:

图5.4 读取数据库内部需要的操作

4系统出错处理设计

4.1出错信息

系统与SQLite数据库进行数据的操作时,有时会出现各种的异常,主要的异常为添加数据外键参照的异常、数据为空异常、类型匹配异常,只有有上面的情况就会出现插入异常;更新异常与插入数据异常类似,这里不详细的介绍;删除异常主要是表表数据关联删除的异常(外键参照),数据不存在时也会出现异常。

4.2补救措施

A、所有的数据库数据备份到一个安全的地方,假如当前的数据库数据出现异常,可以用备份的数据库进行恢复;

B、根据用户的操作,系统记录了其相应的日志信息,可以根据日志信息恢复;

C、假如无法启用备份程序则需要关闭网站,进行抢修。

4.3系统维护设计

A、技术层面:

1) 使用较新的开发和维护技术;

2) 数据库管理员管理好数据库数据;

3) 专职维护人员维护硬件。

B、人员层面:

1) 维护协议;

2) 思想认识;

3) 工作流程及方式方法。

六数据库设计

1引言

1.1编写目的

通过对android手机记账系统的研究,根据可行性分析的方案和项目成员的讨论,以及需求说明书,编制数据库设计说明书。

本报告通过对android记账系统的需求分析,明确了系统中功能需求,业务流程和性能要求以及与有关系统的接口关系,从而确定了数据库的设计方向和基本信息的构建,数据库系统设计是软件系统设计中最重要的一部分之一,数据库系统主要是对系统中所涉及到的数据进行管理和操作。它是对系统的实现和审评的根据之一。这份数据库说明书是为了说明本小组项目的数据库的相关信息,以供本小组其他成员在使用到数据库时更顺利,以及为了更好的进行数据库设计。本报告的阅读范围:项目组的项目管理、软件开发和系统测试人员、指导老师等。

1.2 android数据库系统简介

SQLite 介绍

SQLite 一个非常流行的嵌入式数据库,它支持SQL 语言,并且只利用很少的内存就有很好的性能。此外它还是开源的,任何人都可以使用它。许多开源项

目((Mozilla, PHP, Python)都使用了SQLite.

SQLite 由以下几个组件组成:SQL 编译器、内核、后端以及附件。SQLite 通过利用虚拟机和虚拟数据库引擎(VDBE),使调试、修改和扩展SQLite 的内核变得更加方便。

图6.1 Sqlite内部结构

SQLite 基本上符合SQL-92 标准,和其他的主要SQL 数据库没什么区别。它的优点就是高效,Android 运行时环境包含了完整的SQLite。

SQLite 和其他数据库最大的不同就是对数据类型的支持,创建一个表时,可以在CREATE TABLE 语句中指定某列的数据类型,但是你可以把任何数据类型放入任何列中。当某个值插入数据库时,SQLite 将检查它的类型。如果该类型与关联的列不匹配,则SQLite 会尝试将该值转换成该列的类型。如果不能转换,则该值将作为其本身具有的类型存储。比如可以把一个字符串(String)放入INTEGER 列。SQLite 称这为“弱类型”(manifest typing.)。

此外,SQLite 不支持一些标准的SQL 功能,特别是外键约束(FOREIGN KEY constrains),嵌套transcaction 和RIGHT OUTER JOIN 和FULL OUTER JOIN, 还有一些ALTER TABLE 功能。

软件工程 (2)

一、选择题 1.软件生存周期中时间最早的是( )阶段。 A. 需求阶段 B. 概要设计 C. 测试 D. 维护 2.软件产品的开发主要是( ) A. 复制 B. 再生产 C. 拷贝 D. 研制 3.软件工程的出现主要是由于是( )。 A. 程序设计方法学的影响 B. 其它工程科学的影响 C. 软件危机的出现 D. 计算机的发展 4.需求分析阶段不适用于描述加工逻辑的工具是( ) A. 结构化语言 B. 判定表 C. 判定树 D. 流程图 5. 数据流图是常用的进行软件需求分析的图形分析工具其基本图形符号是( ) A. 输入、输出、外部实体和加工 B. 交换加工、数据流和存储 C. 加工、数据流、数据存储和外部实体 D. 变换数据存储、加工和数据流 6. 软件需求规格说明书的内容不应该包括是( ) A. 对重要功能的描述 B. 对算法的详细过程的描述 C. 对数据的需求 D. 软件的性能 7. JSP方法是一种面向( )设计法 A. 对象 B. 数据流 C. 控制结构 D. 数据结构 8.详细设计的任务是确定每个模块的( ) A.算法 B.功能 C.调用关系 D.输入输出数据 9.模块的独立性是由内聚性和耦合性来度量的,其中内聚性是( ) A.模块间的联系程度 B.模块的功能强度 C.信息隐蔽程度 D.接口的复杂程度 10.交换流的DFD由三部分组成,不属于其中一部分的是( ) A.事务中心 B.交换中心 C.输入流 D.输出流 11.划分模块时,一个模块的( ) A.作用范围在其控制范围之内 B.控制范围应在其作用范围之内 C.作用范围与控制范围互不包含 D.作用范围与控制范围不受任何限制 12.软件测试的目的是( ) A.实验性运行软件 B.发现软件错误 C.证明软件正确 D.找出软件中全部错误 13.软件测试中白盒法是通过分析程序的( )来设计测试用例的 A.应用范围 B.内部逻辑 C.功能 D.输入数据 14.成功的测试是指运行测试用例后( ) A.未发现程序错误 B.发现了程序错误 C.证明程序正确 D.改正了程序的错误 15.程序设计语言的心理特性在语言中表现不包括( ) A.歧义性 B.简洁性 C.保密性 D.传统性 16.软件测试是软件质量保证的主要手段之一,测试的费用已超过( )的30%以上,因此提高测试的有效性非常重要 A.软件开发费用 B.软件维护费用 C.软件开发和维护费用 D.软件研制费用 17.为增加软件功能和性能而进行的软件修改维护过程是( ) A.校正性维护 B.适应性维护 C.完善性维护 D.预防性维护 18.维护中因修改全局或公用数据而引起的错误是( ) A.文档副作用 B.数据副作用 C.编码副作用 D.设计副作用 19.通过( )可以完成数据流图的细化 A.结构分解 B.功能分解 C.数据分解 D.系统分解 20.快速原型模型的主要特点是( ) A.开发完毕才见到产品 B.及早提供工作软件 C.及早提供全部完整软件 D.开发完毕才见到工作软件 21.构造原型过程中需求分析时要( )

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

软件危机与软件工程 3. 软件工程方法学的研究内容包含软件开发技术和软件工程管理两部分, 其期望达到的最终目标是 ()。 A ?消除软件危机 B ?软件开发工程化 C ?程序设计自动化 D ?实现软件重用 4?软件工程学中除重视软件开发技术的研究外,另一重要组成内容是软件的( )。 A .工程管理 B .成本核算 C .人员培训 D .工具开发 5?软件计划是软件开发的早期和重要阶段,此阶段要求交互和配合的是( )。 A ?设计人员和用户 B ?分析人员和用户 C .分析人员和设计人员 D .编码人员和用户 6 .软件工程的结构化生命周期方法是将软件开发的全过程划分为相互独立而又相互依存的阶段,软件的 逻辑模型形成 于( )。 A .开发阶段 B .计划阶段 C .分析阶段 D .设计阶段 7 .在软件工程中,软件生存期可分为计划、开发以及维护三个阶段,每个时期又分为若干更小的阶段。 通常,计划时期包括问题定义、可行性研究和 ①,开发时期包括 ②、详细设计、编码以及 ③。 ① A . 需求分析 B . 可行性研究 C . 经费预算 D . 质量保证 ② A . 需求分析 B . 可行性研究 C 总体设计 D 模块化设计 ③ A . 文档编制 B . 运行维护 C . 测试 D . 验收 &软件开发中常采用的生命周期方法,由于其特征而一般称其为() A .层次模型 B .瀑布模型 C .螺旋模型 D .对象模型 9.描述软件生存周期的瀑布模型包括计划、 (A ) 、设计、编码、测试、维护等阶段。其中,设计阶段又可 以分成(B )和(C )两个步骤。 A :①需求分析 ②可行性研究 ③需求调查 ④问题定义 B, C :①方案设计 ②代码设计 ③概要(总体)设计 ④数据设计 ⑤详细设计 10.什么是软件危机?软件危机产生的原因? ".生命周期阶段的划分?每个阶段的任务? 可行性研究 软件工程 1软件危机是指在开发和( A .运行 B .设计 2 ?造成软件危机的原因是: A. 用户使用不当 C .硬件不可靠 )过程中所遇到的一系列严重问题。 B .对软件的错误认识 D ?缺乏好的开发方法和手段

第2章 软件工程 答案

第2章软件工程 一、选择题 1.在软件生产的程序系统时代由于软件规模扩大和软件复杂性提高等原因导致 了___A___ A .软件危机 B .软件工程 C .程序设计革命 D .结构化程序设计 2.“软件工程的概念是为解决软件危机而提出的”这句话的意思是___C______。 A 强调软件工程成功解决了软件危机的问题 B 说明软件危机的存在总是使软件开发不像传统工程项目那样容易管理 C 说明软件工程这门学科的形成是软件发展的需要 D 说明软件工程的概念,即:工程的原则、思想、方法可解决当时软件开发和维护 3.瀑布模型的存在问题是_____B______。 A.用户容易参与开发B.缺乏灵活性 C.用户与开发者易沟通 D.适用可变需求 4.下列关于瀑布模型不正确的是_____B______。 A 瀑布模型上一阶段的变换结果是下一阶段的输入 B 瀑布模型每个阶段都不需要反馈 C 瀑布模型提供了软件开发的基本框架 D 瀑布模型存在局限性 5.快速原型是利用原型辅助软件开发的一种新思想,它是在研究___A___的方法和技术中产生的。 A 需求阶段 B 设计阶段 C 测试阶段 D 软件开发的各个阶段 6.原型化方法是用户和设计者之间执行的一种交互构成,适用于__A____系统。A.需求不确定性高的B.需求确定的C.管理信息D.实时 7. 信息隐蔽概念与_____A_______这一概念直接的相关。

A 模块的独立性 B 模块类型的划分 C 软件结构定义 D 软件生命周期 8. 为高质量地开发软件项目,在软件结构设计时,必须遵循____A_____原则。 A 信息隐蔽 B 质量控制 C 程序优化 D 数据共享 9._____A_________的目标是确定软件开发工程的总目标,确定工程的可行性。 A 软件定义 B 软件开发 C 软件测试 D 软件维护 10.可行性分析是在系统开发的早期所做的一项重要的论证工作,它是决定该系统是否开发的决策依据,因必须给出___B____ 的回答。 A.确定 B.行或不行 C.正确 D.无二义 11.经济可行性研究的范围包括___C____。 A.资源有效性 B.管理制度 C.效益分析 D.开发风险 12.需求分析中开发人员要从用户那里了解____A____。 A.软件做什么 B.用户使用界面 C.输入的信息 D.软件的规模 13. 需求分析阶段的任务是确定____D_____。 A 软件开发方法 B 软件开发工具 C 软件开发费 D 软件系统的功能 14. 需求分析是分析员经了解用户的要求,认真细致地调研、分析,最终建立目标系统的逻辑模型并写出____B_____的过程。 A 模块说明书 B 软件规格说明 C 项目开发计划 D 合同文档 15. 需求规格说明书的作用不包括____C_______ A 软件验收的依据 B 用户与开发人员对软件要做什么的共同理解 C 软件可行性研究的依据 D 软件设计的依据

软件工程试题及答案

4. 面向对象的分析方法主要是建立三类模型,即( D )。 A) 系统模型、ER模型、应用模型 B) 对象模型、动态模型、应用模型 C) E-R模型、对象模型、功能模型D) 对象模型、动态模型、功能模型 5. 在E-R模型中,包含以下基本成分( )。 A) 数据、对象、实体B) 控制、联系、对象C) 实体、联系、属性 D) 实体、属性、操作 9.若有一个计算类型的程序,它的输入量只有一个X,其范围是[, ],现从输入的角度考虑一组测试用例:, , , . 设计这组测试用例的方法是( c ) A.条件覆盖法 B.等价分类法C.边界值分析法 D.错误推测法 10、详细设计的基本任务是确定每个模块的( d )A.功能B.调用关系C.输入输出数据 D.算法 11.设函数C(X)定义问题X的复杂程序,函数E(X)确定解决问题X需要的工作量(时间)。对于两个问题P1和P2,如果C(P1)>C(P2)显然E(P1)>E(P2),则得出结论E(P1+P2)>E(P1)+E(P2)就是:( a ) A.模块化的根据 B.逐步求精的根据 C.抽象的根据 D.信息隐藏和局部化的根据13.面向数据流的设计方法把( D )映射成软件结构。 A.数据流 B.系统结构 C.控制结构 D.信息流 14.内聚程度最低的是( A.偶然 )内聚A.偶然 B.过程 C.顺序 D.时间 15.确定测试计划是在( D )阶段制定的.A.总体设计 B.详细设计 C.编码 D.测试 16.需求分析的产品是( D ) A.数据流程图案 B.数据字典 C.判定表D.需求规格说明书 17.数据字典是软件需求分析阶段的最重要工具之一,其最基本的功能是( C ) A.数据库设计 B.数据通信 C.数据定义 D.数据维护 18.( D )引入了“风险驱动”的思想,适用于大规模的内部开发项目。 A.增量模型 B.喷泉模型 C.原型模型D.螺旋模型 (×)2、系统测试的主要方法是白盒法,主要进行功能测试、性能测试、安全性测试及可靠性等测试。 (×)4、软件需求分析的任务是建立软件模块结构图。 (√)5、尽可能使用高级语言编写程序(×)6、以结构化分析方法建立的系统模型就是数据流图。 (×)7、进行总体设计时加强模块间的联系。(×)8、编码时尽量多用全局变量. (√)9、用CASE环境或程序自动生成工具来自动生成一部分程序.(×)10、软件测试是要发现软件中的所有错误。 1. 软件生命期各阶段的任务是什么答:软件生命期分为7个阶段:1、问题定义:要解决的问题是什么 2、可行性研究:确定问题是否值得解,技术可行性、经济可行性、操作可行性 3、需求分析:系统必须做什么 4、总体设计:系统如何实现,包括系统设计和结构设计 5、详细设计:具体实现设计的系统 6、实现:编码和测试 7、运行维护:保证软件正常运行。 2、软件重用的效益是什么?

软件工程复习题及答案

一、画出实际的瀑布模型p16 三、画出增量模型p18 五、可行性研究的工作过程及内容p36 答:1).复查系统规模和目标; 2).研究目前正在使用的系统; 3).导出新系统的高层逻辑模型; 4).进一步定义问题; 5).导出和评价供选择的解法; 6).推荐行动方针;7).草拟开发计划;8.书写文档提交审查。 六、可行性研究的目的是什么?要如何进行?p35 答:目的:用最小的代价在尽可能短的时间内确定问题是否能够解决。 首先,需要进一步分析和澄清问题定义。之后,分析员应该导出系统的逻辑模型。从系统逻辑模型出发,探索若干可供选择的主要解决方法(即系统实现方案)。对每种解法都应该仔细研究它的可行性,一般来说,至少应该从下述三方面研究每种解法的可行性:(1)技术可行性;(2)经济可行性;(3)操作可行性。必要时还应该从法律、社会效益等更广泛的方面研究每种解法的可行性。 二、画出快速原型模型p17 四、画出简化的螺旋模型p20 软件工程考试复习题

七、需求分析的任务是什么?进行需求分析时要重点考虑哪些方面的问题?p56 答:1、确定对系统的综合要求:1).功能需求——指定系统必须提供的服务。通过需求分析应该划分出系统必须完成的所有功能。2).性能需求——性能需求指定系统必须满足的定时约束或容量约束,如速度(响应时间)、信息量速率、主存容量、磁盘容量、安全性等。3).可靠性和可用性需求——可靠性是指确保各应用及其相关的所有交易的完整性和一致性的能力;可用性是指一个系统应确保一项服务或者资源永远都可以被访问到。4).出错处理需求——说明系统对环境错误应该怎样响应。5).接口需求——描述应用系统与它的环境通信格式。6).约束——在设计或实现应用系统时应遵守的限制条件。常见的约束有:精度;工具和语言约束;设计约束;应该使用的标准;应该使用的硬件平台。7).逆向需求——说明软件系统不应该做什么。8).将来可能提出的要求——应该明确地列出那些虽然不属于当前系统开发范畴,但是据分析将来很可能会提出来的要求。 2、分析系统的数据要求。 3、导出系统的逻辑模型。 4、修正系统开发计划。 八、典型的总体设计过程包括哪些步骤?p92 答:典型的总体设计过程包括九个步骤: 1)、设想供选择的方案;2)、选取合理的方案;3)、推荐最佳方案;4)、功能分解;5)、设计软件结构;6)、设计数据库;7)、制定测试计划;8)、书写文档;9)审查和复查。 九、总体设计的主要任务是什么?总体设计的主要过程有哪些?p91 答:主要任务: 总体设计又称为概要设计或初步设计。通过这个阶段的工作将划分出组成系统的物理元素—程序、文件、数据库、人工过程和文档等等,但是每个物理元素仍然处于黑盒子级,这些黑盒子里的具体内容将在以后仔细设计。总体设计的另一项重要的任务是设计软件的结构,也就是要确定系统中每个程序是由哪个模块组成,以及这些模块相互间的关系。 主要过程: ①寻找实现目标系统的各种不同的方案。②从这些供选择的方案中选取若干个合理的方案,为每个合理的方案都准备一份系统流程图,列出组成系统的所有物理元素。③进行成本/效益分析,并且制定实现这个方案的进度计划。从中选出一个最佳方案。④进一步为这个最佳方案设计软件结构。⑤进行必要的数据库设计,确定测试要求并且制定测试计划。 十、何谓耦合?有哪些类型?软件设计应该取哪种类型?p97 答:耦合是对一个软件结构内不同模块之间互连程度的度量。 类型:数据藕合、控制藕合、公共环境藕合、内容耦合 设计原则:尽量使用数据耦合,少用控制耦合,限制公共环境耦合的范围,完全不用内容耦合。 十一、何谓内聚?有哪些类型?软件设计应该取哪种类型?p98 答:内聚标志一个模块内各个元素彼此结合的紧密程度,它是信息隐蔽和局部化概念的自然扩展。 低内聚有如下几类:偶然内聚、逻辑内聚、时间内聚。中内聚主要有两类:过程内聚、通信内聚。高内聚也有两类:顺序内聚、功能内聚。 设计时应该力求做到高内聚,通常中等程度的内聚也是可以采用的,而且效果和高内聚相差不多;但是,低内聚很坏,不要使用。

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

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

软件工程试题与答案-(2)

《软件工程》试卷及答案A卷 专业年级姓名得分 一、名词解释(每个2分,共10分) 1.软件危机 2.纯收入 3.模块 4.原型 5.BROOKS定律 二、填空题(每题2分,共20分) 1.____是计算机程序及其说明程序的各种文档。_____是有关计算机程序功能、设计、编制、使用的文字或图形资料。 2.软件生存周期是指一个软件从提出开发要求开始直到该软件报废不止的整个时期。通常,软件生存周期包括问题定义、____、____、总体设计、详细设计、____、____、软件维护活动,可以将这些活动以适当方式分配到不同阶段去完成。 3.软件详细设计阶段采用的工具有______。 4.____的目的就是用最小的代价在尽可能短的时间内确定该软件项目是否能够开发,是否值得去开发。 5.模块的耦合性分为四种类型:____、____、____、____。 6.内聚性有七种类型,最强的是____,最弱的是____。 7.结构图的深度指结构图______,结构图宽度指________。 8.集成测试采用的具体方法有--____、______ 9.对于变换型的数据流图,按照软件设计思想,要将一个大型复杂的软件进行分解,要确定数据流图的 ____、逻辑输入、逻辑输出。 10.软件编码阶段要善于积累编程的经验,使得编出的程序____,易于____,从而提高软件质量。 三、选择题(每题2分,共20分) 1.系统定义明确之后,应对系统的可行性进行研究。可行性研究应包括()。 A.软件环境可行性、技术可行性、经济可行性、社会可行性 B.经济可行性、技术可行性、操作可行性 C.经济可行性、社会可行性、系统可行性 D.经济可行性、实用性、社会可行性 2.通过()可以完成数据流图的细化。 A.结构分解 B、功能分解 C、数据分解 D、系统分解 3.模块(),则说明模块的独立性越强。 A.耦合越强 B、扇入数越高 C、耦合越弱 D、扇入数越低 4.模块()定义为受该模块内一个判断影响的所有模块集合。 A.控制域 B、作用域 C、宽度 D、接口 5.面向数据结构的设计方法(Jackson方法)是进行()的形式化的方法。 A.系统设计 B、详细设计 C、软件设计 D、编码

软件工程在线作业及答案

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

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

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

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

《软件工程》试题及参考答案(第6套)

第一部分选择题 一、单项选择题(本大题共20小题,每小题1分,共20分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 1、()是软件生存期中的一系列相关软件工程活动的集合,它由软件规格说明、软件设计与开发、软件确认、软件改进等活动组成。 A 软件过程 B 软件工具 C 质量保证 D 软件工程 2、在各种不同的软件需求中,功能需求描述了用户使用产品必须要完成的任务,可以在用例模型或方案脚本中予以说明,()是从各个角度对系统的约束和限制,反映了应用对软件系统质量和特性的额外要求。 A 业务需求 B 功能要求 C 非功能需求 D 用户需求 3、软件测试计划开始于需求分析阶段,完成于()阶段。 A 需求分析 B 软件设计 C 软件实现 D 软件测试 4.下面关于面向对象方法中消息的叙述,不正确的是( )。 A. 键盘、鼠标、通信端口、网络等设备一有变化,就会产生消息 B.操作系统不断向应用程序发送消息,但应用程序不能向操作系统发送消息 C. 应用程序之间可以相互发送消息 D.发送与接收消息的通信机制与传统的子程序调用机制不同 5.美国卡内基—梅隆大学SEI提出的CMM模型将软件过程的成熟度分为5个等级,以下选项中,属于可管理级的特征是( )。 A.工作无序,项目进行过程中经常放弃当初的计划 B.建立了项目级的管理制度 C.建立了企业级的管理制度 D.软件过程中活动的生产率和质量是可度量的 6.在McCall软件质量度量模型中,()属于面向软件产品修改。 A.可靠性B.可重用性C.适应性 D.可移植性 7.软件生命周期中所花费用最多的阶段是() A.详细设计 B.软件编码 C.软件测 试 D.软件维护 8.需求分析阶段的任务是确定() A.软件开发方法 B.软件开发工具 C.软件开发费 D.软件系统的功能

软件工程课后习题(含答案)

第一章练习题 一、填空题 1、软件工程三要素是:方法、工具、过程。 2、软件开发方法是指软件开发过程中所应遵循的方法和步骤。 二、名词(术语)解释: 1、可靠性---是指在给定的时间间隔内,程序成功运行的概率。可靠性是衡量软件质量的一个重要目标。 2、可理解性---指系统具有清晰的结构,能直接反映问题的需求。可理解性有助于控制软件系统的复杂性,并支持软件的维护、移植和重用。 三、问答题 1、面向对象方法的优点是什么? 答:(1)将现实世界问题向面向对象解空间直接映射,实现对现实世界的直接模拟。 (2)以数据为中心,而不是基于对功能的分解,使得软件结构相对稳定,软件的重用性、可靠性、可维护等特性都较好。 2、可视化开发方法的优点有哪些? 答:(1)简化了图形用户界面的设计和编码工作,将开发的注意力主要集中在程序的执行逻辑和工作流程上。 (2)软件开发简单,易学、易上手。 (3)专业或非专业人员都能参与软件开发活动。 第二章练习题 一、填空题: 1、软件工程过程是:为获得软件产品,在软件工具支持下由软件人员完成的一系列软件工 程活动。 2、一个软件从定义、开发、使用和维护,直到最终被废弃,所经历的生存过程经历的生存过程称为软件生存期或叫生命期。 3、软件生命周期的阶段划分为3个时期是:定义时期、开发时期、维护时期。 4、软件工程标准的5个层次是:国际标准、国家标准、行业标准、企业规范、项目规范。 二、简答题: 1、瀑布模型的优点有哪些? 答:1、强迫开发人员采用规范的技术方法; 2、严格地规定了每个阶段必须提交的文档; 3、每个阶段结束前必须正式进行严格的技术审查和管理复审。 2、瀑布模型的缺点是什么? 答:1、在软件开发的初期阶段就要求做出正确、全面、完整的需求分析对许多应用软件来说是极其困难的。 2、在需求分析阶段,当需求确定后,无法及时验证需求是否正确、完整。 3、作为整体开发的瀑布模型,由于不支持产品的演化,缺乏灵活性,对开发过程中很 难发现的错误,只有在最终产品运行时才能暴露出来,从而使软件产品难以维护。

软件工程-2

程序编码 习题 【4-1】从下列关于模块化程序设计的叙述中选出5条正确的叙述。 ①程序设计比较方便,但比较难以维护。 ②便于由多个人分工编制大型程序。 ③软件的功能便于扩充。 ④程序易于理解,也便于排错。 ⑤在主存储器能够容纳得下的前提下,应使模块尽可能大,以便减少模块的个数。 ⑥模块之间的接口叫做数据文件。 ⑦只要模块之间的接口关系不变,各模块内部实现细节的修改将不会影响别的模块。 ⑧模块间的单向调用关系叫做模块的层次结构。 ⑨模块越小,模块化的优点越明显。一般来说,模块的大小都在10行以下。 【4-2】结构化程序设计有时被错误地称为“无GOTO语句”的程序设计。请说明为什么会出现这样的说法,并讨论环绕着这个问题的一些争论。 【4-3】从下面关于程序编制的叙述中,选出三条正确的叙述。 ①在编制程序之前,首先必须仔细阅读给定的程序说明书。然后,必须如实地依照说明书编写程序。说明书中常会有含糊不清或难以理解的地方。程序员在作业时应该对这些地方作出适当的解释。 ②在着手编制程序时,重要的是采用既能使程序正确地按设计说明书进行处理,又易于出错的编写方法。 ③在编制程序时,首先应该对程序的结构充分考虑,不要急于开始编码,而要象写软件文档那样,很好地琢磨程序具有什么样的功能,这些功能如何安排等等。 ④考虑到以后的程序变更,为程序编写完整的说明书是一项很重要的工作。只要有了完整的程序说明书,即使程序的编写形式难以让他人看懂也没有什么关系。 ⑤编制程序时不可缺少的条件是,程序的输入和输出数据的格式都应确定。其他各项规定都是附带的,无足轻重。 ⑥作为一个好的程序,不仅处理速度要快,而且易读易修改等等也都是重要的条件。为了能得到这样的程序,不仅要熟悉程序设计语言的语法,还要注意采用适当的规程和单纯的表现方法,注意使整个程序的结构简洁。 【4-7】下面给出一个求实函数方程F(x)在自变量区间[a, b] 中的全部实根的算法。首先阅读此程序,然后 画出消去全部goto语句的结构化程序流程图。 在算法中,a与b是区间[a, b]的两端点值;eps1与eps2是用户要求的求解精度。如果区间中点的函数值的绝对值小于eps1或新的小区间的长度小于eps2,就认为这个中点为根。 float BinRoot ( float a,float b, float eps1, float eps2 ) { float low= a, high = b,mid,fmid; float flow = Func(low), fhigh := Func(high); label L1, L2, L3;//标号说明,给定某些程序地址

软件工程试题及答案

综合练习一答案 一.选择题: 1.软件危机出现于____,为了解决软件危机,人们提出了用____的原理来设计软件,这是软件工程诞生的基础。 A.50年代末 B.60年代初C.60年代末 D.70年代初 A.运筹学B.工程学 C.软件学 D.软件学 E.数字 2.开发软件需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称作____。 A.软件投机B.软件危机C.软件工程D.软件产生 3.产生软件危机的原因有如下几点,除了______。 A、软件开发过程未经审查 B、软件开发不分阶段,开发人员没有明确的分工 C、所开发的软件,除了程序清单外,没有其他文档 D、采用工程设计的方法开发软件,不符合软件本身的特点 4.软件工程学是应用科学理论和工程上的技术指导软件开发的学科,其目的是____。 A.引入新技术提高空间利用率B.用较少的投资获得高质量的软件 C.缩短研制周期扩大软件功能D.硬软件结合使系统面向应用 5.请按顺序写出软件生命期的几个阶段____,____ ,____,____,____,____。 A.维护 B.测试 C.详细设计 D.概要设计 E.编码 F.需求分析6.瀑布模型把软件生存周期划分为软件定义、软件开发和____三个阶段,而每一阶段又可细分为若干个更小的阶段。 A.详细设计B.可行性分析C.运行及维护D.测试与排错7.划分软件生存周期的阶段时所应遵循的基本原则是_____。 A、各阶段的任务尽可能相关性 B、各阶段的任务尽可能相对独立 C、各阶段的任务在时间上连续 D、各阶段的任务在时间上相对独立 8.一个软件项目是否进行开发的结论是在______文档中作出的。 A、软件开发计划 B、可行性报告 C、需求分析说明书 D、测试报告 9.分析员是____。 A.用户中系统的直接使用者B.用户和软件人员的中间人 C.软件的编程人员 D。用户和软件人员的领导 10.下列叙述中,_______不属于数据字典的作用。 A、作为编码阶段的描述工具 B、为用户与开发人员之间统一认识 C、作为概要设计的依据 D、为需求分析阶段定义各类条目 11.使用结构化分析方法时,采用的基本手段是____。 A.分解和抽象 B.分解和综合C.归纳与推导D.试探与回溯12.结构化系统分析主要是通过____进行分析的。 A.算法分解B.控制结构分解 C.数据结构分解D.处理功能分解13.分层数据流图是一种比较严格又易于理解的描述方式,它的顶层描述了系统的____。 总貌B.细节C.抽象D.软件的作者 13.变换型和事务型是程序结构的标准形式。从某处获得数据,再对这些数据作处理,然后将结果送出是属于____。 A.变换型 B 事务型 14.需求分析说明书不能作为______。

-软件工程习题答案参考

软件工程 绪论 1.什么是软件危机?为什么会产生软件危机? 答:软件危机是指在计算机软件的开发和维护过程中遇到的一系列严重问题。(1).软件维护费用急剧上升,直接威胁计算机应用的夸大。 (2).软件生产技术进步缓慢 2.什么是软件生产工程化?工程化生产方法与早期的程序设计方法 主要差别在哪里? 答:结构化程序设计地出现,使许多产业界认识认识到必须把软件生产从个人化方式改变为工程化。采用工程的概念、原理、技术和方法开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程,同时这也是工程化生产方法。 3.分别说明(1)软件开发方法与开发工具;(2)软件技术与软件管 理的相互关系。 答:(1)工具和方法,是软件开发技术的两大支柱,它们密切相关。当一种方法提出来并证明有效后,往往随之研制出相应的工具,来帮助实现和推行这种方法。新方法在推行初期,总有人不愿接受和采用。若将新方法融合于工具之中,使人们通过使用工具来了解新方法,就能更快促进新方法的推广。(2)在工业生产中,即使有先进的技术和设备,管理不善的企业也不能获得良好的效益。软件在生产中不能按质按时完成计划,管理混乱往往是其中的重要原因。所以对于一

个理想的软件工程环境,应该同时具备技术和管理两个方面。 4.试从你的亲身实践,谈谈软件工具在软件开发中的作用。 答:用C++开发一个软件,是校园一卡通的模块。首先,要在编辑程序支持下在计算机中输入源程序。然后编译程序,把源程序翻译成目标程序。如果发现错误,就重新调入编辑程序对源程序进行修改。编译通过后,再调用连接程序吧所有通过了编译目标程序连同与之有关的程序连接起来,构成一个能在计算机上运行的可执行软件。编译程序,编辑程序,连接程序以及支持他们的计算机操作系统,都属于软件工具。离开这些工具,软件开发就是去了支持,变得十分困难和低效,甚至不能运行。 5.什么是软件工程环境?谈谈你对环境重要性的认识。答:方法与工具相结合,再加上配套的软、硬件支持就形成环境。例如在批处理时代,用户开发的程序是分批送入计算机中心的计算机的,有了错误,就得下机修改。程序员对自己写的程序只能继续地跟踪,思路经常被迫中断,效率难于提高。分时系统的使用,使开发人员从此能在自己的终端上跟踪程序的开发,仅此一点,就明显提高了开发的效率。 6. 何谓面向对象软件工程?简述它与传统软件工程在各型软件开发中的作用。 答:以面向对象程序设计为基础。 7. 软件按规模大小可分成哪几类?简述软件工程中各型软件开发中的作用。 答:按规模分为极小、小、中、大、甚大、极大。(1)中小型软件:

软件工程作业答案

新版形考作业答案第一次!! 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、一个输入流或一个输出流

软件工程(第2版)_在线作业_5

软件工程(第2版)_在线作业_5 交卷时间:2016-03-26 13:49:45 一、单选题 1.(5分) 在面向对象方法中,信息隐蔽是通过对象的()来实现的。 ? A. 继承性 ? B. 共享性 ? C. 分类性 ? D. 封装性 纠错 得分:5 知识点:10.1 面向对象概述 展开解析 答案D 解析 2.(5分) 下列是关于系统开发方法JSP的说法,不正确的是()。 ? A. JSP方法适用于输入数据和输出数据之间有对应关系的问题求解? B. JSP方法不明确的划分软件概要设计和详细设计的两个阶段 ? C. JSP方法主要用于规模不大的数据处理系统 ? D. JSP方法根据输入、输出的数据结构,按一定的规则映射成软件的体系结构。因此它只适用于详细设计阶段

得分:5 知识点:5.2 Jackson方法 展开解析 答案D 解析 3.(5分) 下列是关于功能性注释的说法,()是不正确的。 ? A. 修改程序也应修改注释 ? B. 功能性注释嵌在源程序中,用于说明程序段或语句的功能以及数据的状态 ? C. 可使用空行或缩进,以便很容易区分注释和程序 ? D. 注释用来说明程序段,需要在每一行都要加注释 纠错 得分:5 知识点:6.2 程序设计风格 展开解析 答案D 解析 4.(5分) 对象实现了数据和操作的结合,使数据和操作()于对象的统一体中。 ? A. 封装 ? B. 结合 ? C. 抽象 ? D. 隐藏

得分:5 知识点:10.1 面向对象概述 展开解析 答案A 解析 5.(5分) 原型化方法是用户和软件开发人员之间进行的一种交互过程,它适用于()系统的开发。 ? A. 动态改变的 ? B. 需求不确定性的 ? C. 管理信息 ? D. 需求确定的 纠错 得分:5 知识点:9.3 快速原型模型 展开解析 答案B 解析 6.(5分) 以下叙述中,()是正确的。 ? A. 对象模型指出发生了什么 ? B. 动态模型确定什么时候发生 ? C. 功能模型描述了系统的所有计算,它考虑所计算的次序 ? D. 功能模型确定发生的客体

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

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))

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