南农工学院《软件工程基础》第1-2次书面作业(正式版)
2022年中央电大《软件工程》平时作业1、2、3、4次及答案
软件工程第1次作业一、填空题(每空2分,共20分)二、单项选取题(将一种对的答案代码填入括号中,每小题3分,共15分) 1.( )是顾客和设计互换最频繁办法。
A. 原型化办法B.瀑布模型办法C. 螺旋模型办法D. 构件组装模型办法2.下列哪个阶段不是软件生存期三个阶段中内容( )。
A. 筹划阶段B.开发阶段C. 编码阶段D. 维护阶段3.下列( )操作产生副作用属于数据副作用。
A. 修改子程序B.局部变量再定义C. 删除标记符D.修改对编辑条件测试4.软件测试目( )。
A. 避免软件开发中浮现错误B.发现软件开发中浮现错误C.尽量发现并排除软件中潜藏错误,提高软件可靠性D.修改软件中浮现错误5.完毕详细设计工具不涉及( )。
A.PAD图B.数据流图C.HlP()图D.程序流程图三、多项选取题(将一种以上对的答案代码填入括号中,每小题3 分,共15分) 1.应从( )等方面研究可行性。
A. 经济可行性B.技术可行性C. 运营可行性D.法律可行性2.对于下列数据流图局部,关于描述中对的是( )。
A. 该图为第一层数据流图3.需求分析阶段结束后,交出文档中应当涉及( )。
A. 数据流图B.数据字典C. 简要算法描述D.项目经费预算4.软件管理工作涉及到直接对象涉及( )。
A. 软件开发人员B.硬件设备C. 项目经费D.软件项目5.在软件设计中,( )耦合应尽量避免。
A. 控制B.数据C.内容 D. 标记四、判断题(对的在括号内打上“√”,错误打上“X”。
每小题2分,共10分)1。
软件危机是指在软件开发和维护过程中遇到一系列严重问题。
( )2,构造化分析办法就是用抽象模型概念,按照软件内部数据传递、变换关系,自顶向下逐级分解,直到找到满足功能规定所有可实现软件为止。
( )3.UML只能应用于软件系统模型建立。
( )4.程序设计语言中应绝对禁止使用GOTO语句。
( ) 5.模块越小,模块长处越大。
( )五、问答题(每小题10分,共20分)1.什么是软件?什么是软件工程?2.什么是编码风格?为什么要强调编码风格?六、分析题(共20分)依照下列N—S图,写出其相应伪码。
软件工程第一次作业
1-2. 软件与其他工程学科所产生的制品有什么更本区别?1.软件是复杂的。
2.软件是不可见的。
3.软件是不断变化的。
1-3.软件工程包括那些基本要素,及作用?软件工程三要素,过程、方法、和工具。
软件工程的方法为软件开发提供了“如何做”的技术,通常包括某种语言或图形的模型表示方法、良好的设计实践以及质量保证标准等,其中使用最广泛的两种方法是传统的软件开发方法和当前流行的面向对象方法。
软件工程的过程是管理和控制产品质量的关键。
它定义了技术方法的采用,工程产品的产生。
里程碑的建立、质量的保证和变更的管理。
从而将人员,技术,组织,与管理有机的结合在一起,实现在规定的实践和预算内开发高质量软件的目标。
软件工具为软件工程方法提供了自动的或半自动的软件支持环境,辅助软件开发任务的完成,现有的软件工具覆盖了需求分析,系统建模,代码生成,程序调试,和软件测试,等多个方面形成了集成化的软件工程开发环境,CASE。
以便提高开发效率和软件质量,降低开发成本。
1-8.请简要描述SWEBOK所包含的10个知识域。
1.软件需求:需求时解决现实问题所必需展示的特性,具体分为需求工程过程,需求获取,需求分析,需求规格说明,需求验证,需求管理。
2.软件设计:分析软件需求,生成有关系统内部结构与组成的描述,并以此作为软件构造的基础。
3.软件构造:其任务是通过编码,验证,和单元测试,构造出有意义的可工作的软件。
4.软件测试:从无限执行域中挑选有限测试用集,对照预定行为验证程序实际行为的过程。
5.软件维护:纠正软件运行时出现的错误。
改进软件系统以便适应环境的变化,和满足用户新的要求。
6.软件配置管理:在明确的时间上确定系统的配置。
保证整个系统生命周期中系统地配置的变化并维护配置的完整性和跟踪行。
7.软件工程管理:包括组织管理,过程项目管理,软件工程度量。
8.软件工程过程:分为基本概念,过程基础设施,过程度量,过程定义,定性分析,以及过程实施与变更。
软件工程作业1
软件工程作业1软件工程作业1====================1-引言--------------------2-项目背景--------------------在此章节中,需要详细介绍软件工程作业1的项目背景和项目的目标。
描述项目的背景信息,包括相关的行业、应用领域和目标用户群体等。
明确项目的目标,即开发一个什么样的软件或系统,并说明该软件或系统的主要功能和优势。
3-需求分析--------------------在本章节中,将对项目的需求进行详细的分析和规格说明。
包括用户需求和系统需求的分析,将用户需求转化为可量化和可测量的系统需求。
在此章节中,需要明确项目的功能需求、性能需求、安全需求等各个方面的需求。
4-设计在此章节中,将进行系统的整体设计和详细设计的说明。
首先,进行系统的整体架构设计,包括模块划分、功能划分和模块间的关系等。
然后,对各个模块进行详细设计,并给出相应的设计文档,包括类图、时序图、状态图等。
最后,说明系统的界面设计和用户界面的交互。
5-开发--------------------在本章节中,将详细介绍项目的开发过程和开发环境的配置。
描述项目的开发过程中所采用的开发方法和开发工具。
对于项目的开发环境,包括开发语言、开发框架、集成开发环境等的配置和使用,都需要进行详细的说明。
6-测试--------------------在此章节中,将介绍软件工程作业1的测试策略和测试计划。
描述测试的范围、测试的方法和测试的步骤等。
针对不同的测试阶段,包括单元测试、集成测试、系统测试等,都需要给出相应的测试计划和测试用例。
7-附件本文档附带的附件包括项目的相关文档、设计图纸、测试样例等。
这些附件能够更加全面地展示软件工程作业1的开发过程和实现结果。
8-法律名词及注释--------------------在此章节中,列出本文档涉及的法律名词及其相应的注释解释。
这些法律名词的注释将有助于读者更好地理解和解释相关内容。
(完整word版)软件工程习题集+答案
《软件工程》习题集目录一软件与软件工程 (1)二软件项目管理 (4)三需求分析 (7)四面向对象的需求分析 (10)五软件设计 (15)六程序设计语言和编码 (18)七软件测试 (20)八软件维护 (23)综合试卷一 (25)综合试卷二 (29)综合试卷三 (33)附参考答案: (37)一软件与软件工程参考答案 (37)二软件工程管理参考答案 (40)三需求分析参考答案 (42)四面向对象的需求分析参考答案 (46)五软件设计参考答案 (55)六程序设计语言和编码参考答案 (58)七软件测试参考答案 (62)八软件维护参考答案 (65)综合试卷一参考答案及评分标准 (68)综合试卷二参考答案及评分标准 (71)综合试卷三参考答案及评分标准 (74)一软件与软件工程一、选择题1。
软件的主要特性是()A、无形性B、高成本C、包括程序和文档D、可独立构成计算机系统2.软件工程三要素是()A、技术、方法和工具B、方法、工具和过程C、方法、对象和类D、过程、模型、方法3。
包含风险分析的软件工程模型是()A、螺旋模型B、瀑布模型C、增量模型D、喷泉模型4。
软件工程的主要目标是()A、软件需求B、软件设计C、风险分析D、软件实现5。
下列属于面向对象开发方法的是()A、BoochB、UMLC、CoadD、OMT6.软件危机的主要表现是()A、软件成本太高B、软件产品的质量低劣C、软件开发人员明显不足D、软件生产率低下7。
软件开发方法的主要工作模型有()A、螺旋模型B、循环模型C、瀑布模型D、专家模型8。
软件工程的目标有()A、易于维护B、低的开发成本C、高性能D、短的开发期9.软件工程学的目的和意义是()A、应用科学的方法和工程化的规范管理来指导软件开发.B、克服软件危机。
C、作好软件开发的培训工作。
D、以较低的成本开发出高质量的软件。
二、判断题1.软件就是程序,编写软件就是编写程序。
2。
瀑布模型的最大优点是将软件开发的各个阶段划分得十分清晰。
《软件工程》作业及参考答案1,4
《软件工程》作业及参考答案——第一、二章中央电大理工部史红星(2004年09月15日)浏览人次4582一、填空题1. 软件工程学的内容可包括(理论)、结构、(方法)、(工具)、环境、管理、规范等。
2. 软件生存周期一般可分为问题定义、(可行性研究)、(需求分析)、设计、(编码)、测试、运行与维护阶段。
3. 可行性研究的目的是(用最小的代价在尽可能短的时间内确定问题是否能够解决)。
4. 系统流程图是(描绘物理系统)的传统工具。
5. 在可行性研究中,(技术可行性)是系统开发过程中难度最大,最重要的一个环节。
二、判断题1. 软件工程采用的生存周期方法就是从时间角度对软件的开发和维护这个复杂问题进行分解,将软件生存的时期分为若干阶段。
(√ )2. 螺旋模型是利用笛卡尔坐标的四个象限上分别代表四个方面的活动来表示。
(√ )3. 原型模型适用于嵌入式软件。
(╳ )4. 面向对象技术是构件组装模型的基础。
(√ )5. 在可行性研究中最难决断和最关键的问题是经济可行性。
(╳ )6. 系统流程图表达的是部件的信息流程,还表示对信息进行加工处理的控制过程。
(╳ )7. 自底向上成本估计不是从整体开始,而是从任务单元开始。
(√ )三、单项选择题1. 下列哪个阶段不是软件生存期三个阶段中的内容( C )。
A.计划阶段B.开发阶段C.编码阶段D.维护阶段2. 下列关于瀑布模型的描述正确的是( C )。
A. 瀑布模型的核心是按照软件开发的时间顺序将问题简化。
B. 瀑布模型具有良好的灵活性。
C. 瀑布模型采用结构化的分析与设计方法,将逻辑实现与物理实现分开。
D. 利用瀑布模型,如果发现问题修改的代价很低。
四、简答题1. 软件的定义与特点。
参考答案:软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据结构及其相关文档的完整集合。
它包括三个方面的内容:⑴程序:在运行时,能提供所希望的功能和性能的指令集。
⑵数据结构:使程序能够正确运行的数据结构。
软件工程作业含答案解析
软件工程第一章作业 (1)1.1什么是计算机软件?软件的特点是什么? (1)1.2简述软件的分类,并举例说明。
(1)1.4什么是软件工程? (1)1.5简述软件工程的基本原则。
(1)1.6软件生存周期分哪几个阶段?分别简述各个阶段的任务。
11.9简述各类软件过程模型的特点。
(2)1.10敏捷软件开发的特点是什么? (2)1.12简述敏捷软件开发的原则。
(2)第2、3章 (3)2.1简述系统工程的任务。
(3)2.2基于计算机的系统由哪些元素组成? (3)2.3简述可行性分析的任务。
(3)3.1需求工程的重要性是什么?举出身边由于需求分析失败而造成整个项目失败的例子。
(3)3.2需求工程具体包括哪些步骤?每个步骤的具体任务是什么?33.3 一个系统分析员应该具备哪些思想素质和基础知识?请说明理由。
43.4列出在制定需求获取策略时的3种主要考虑因素。
(5)3.6举例说明一个系统的3个不同类型的非功能需求 (5)3.8软件需求分析的操作性原则和需求工程的指导性原则是什么? (5)3.9软件需求规约主要包括哪些内容?自己寻找一个实例,亲自写一个需求规约。
.53.10需求验证应该有哪些人参加?画出一个过程模型,说明需求评审应该如何组织。
5第4章 (5)4.1简述软件设计阶段的基本任务 (5)4.2软件设计与质量的关系是怎么样的? (6)4.4简述模块、模块化及模块化设计的概念。
(6)4.6耦合和软件可移植性的概念有何关系?举例说明自己的结论。
(6)4.7用自己的话描述信息隐蔽概念,并讨论信息隐藏与模块独立两概念之间的关系。
64.8什么是模块独立性?设计中为什么模块要独立?如何度量独立性?模块功能独立有何优点? (6)4.9软件设计规约主要包括哪些内容? (7)第5章结构化分析与设计 (7)5.1简述数据流图的主要思想,概述使用数据流图进行需求分析的过程。
75.2分别采用数据流方法中得哪些技术来完成用户需求的精确化、一致化和完全化的任务。
软件工程学习资料(给南农2007.6)(排版)
软件工程学习资料(1)一、填空1、软件工程学的内容可包括理论、结构、方法、工具、环境、管理、规范等。
2、N-S图中的顺序结构:在PAD图中表示为:PAD图设置五种基本控制结构,并允许递归使用。
3、模块的独立程度可以由两个定性标准度量,这两个标准分别称为内聚和耦合。
耦合衡量不同模块彼此之间相互依赖的紧密程度。
内聚衡量一个模块内部各个元素彼此结合的紧密程度。
4、软件测试方法按测试过程是否在实际应用环境中分为静态分析和动态测试。
二、单项选择题1、模块在同一段时间内完成各种初始化工作,这属于。
A.偶然内聚B.逻辑内聚C.时间内聚D.过程内聚2、在编程安全方法方面,一般来说无法做到。
A. 避开错误B.完美无缺,绝无错误C. 冗余D.设计防错程序3、在衡量软件质量时,最重要的标准是。
A. 成本低B. 可维护性好C. 符合要求D. 界面友好4、下列工具中,不属于详细设计工具的是。
A. 测试工具B. 图形工具C. 表格工具D. 语言工具5、下列哪个做法会导致不利的语句结构?A.避免使用ELSE GOTO结构B.对递归定义的数据结构尽量不再使用递归过程C.模块功能尽可能单一化,模块间的耦合能够清晰可见D.利用信息隐蔽,确保每一个模块的独立性三、判断题1、Jackson系统开发方法是一种典型的面向对象的分析设计方法。
(×)2、HIPO图是由一组IPO图加一张HC图组成,是美国IBM公司在软件设计中使用的主要表达工具。
(√)3、在软件开发中采用原型系统策略的主要困难是成本问题。
(√)4、软件开发所需的资源可以画成一个金字塔,塔的高层最基本的资源是人。
(√)5、下图表示的是WHILE型循环。
(×6的顺序,而数据流图只反映数据的流向,不反映处理逻辑的先后。
(√)四、问答题1、什么是软件?答:软件是一种产品,包含下面三方面的含义。
(1)在运行中能提供所希望的功能和性能的指令集(即程序);(2)使程序能够正确运行的数据结构;(3)描述程序研制过程、方法所用的文档。
软件工程作业(答案参考)
软件工程作业(答案参考)软件工程第一次作业1)软件工程适用范围?答:软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。
它涉及到程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。
在现代社会中,软件应用于多个方面。
典型的软件比如有电子邮件、嵌入式系统、人机界面、办公套件、操作系统、编译器、数据库、游戏等。
同时,各个行业几乎都有计算机软件的应用,比如工业、农业、银行、航空、政府部门等。
这些应用促进了经济和社会的发展,使得人们的工作更加高效,同时提高了生活质量。
2)软件工程如何控制系统开发的复杂性的?答:可理解性(understandability)。
系统具有清晰的结构,能直接反映问题的需求。
可理解性有助于控制软件系统的复杂性,并支持软件的维护、移植或重用。
带来不必要的投入,软件是以人为本,方便用户工作,达到提高工作效率的目的。
若然日后此用户需要更多功能的时候,我们还是可以向其软件公司提供升级功能解决用户需求。
3)协同工作有什么重要性?答:日常工作中,80%的事项,都需要与同事协作完成、与其他部门协调资源、或者向领导进行请示汇报;80%的工作都处于开放的环境,如特殊请求、突发事件、临时汇报、项目协作、活动组织、意见征集、沟通协调等等,因此,通过柔性协作流程的使用,员工可以很便捷的实现与其他同事的头脑风暴、分工协作、资源整合,并且可以通过自建模板和自建流程的使用,使得很多处于随机和发散状态的工作实现有序化、可跟踪化、可追溯化,实现工作的敏捷性与有效性的统一,简单来说,就是实现员工的工作产生1+1>2的效果。
6 )只要是编程高手,即使是不懂软件工程,也能编出很好的软件。
答:不一定。
软件的开发是由需求调研分析、概要设计、详细设计、编码、测试及用户体验反馈等组成的。
所以只是懂得编码编程其中一部分不一定能编出很好的软件。
7 )只要拥有一套讲述如何开发软件的书籍,并了解了书中的标准与示例,就可以解决软件开发中遇到的任何问题。
软件工程习题附答案1
第10周实验试题一.(类图)【说明】某图书管理系统的主要功能如下:(1)图书管理系统的资源目录中记录着所有可供读者借阅的资源,每个资源都有唯一的索引号。
系统需登记每项资源的名称、出版时间和资源状态(在库或已借出)。
(2)资源可以分为两类:图书和唱片。
对于图书,系统还需登记作者和页数;对于唱片,还需登记演唱者和介质类型(CD或者磁带)。
(3)读者信息保存在图书管理系统的读者信息数据库中,记录的信息包括:读者的识别码和读者姓名。
系统为每个读者创建了一个借书记录文件,用来保存读者所借资源的相关信息。
上述说明中带下划线的名字表示找出的类,请用类图描述这些类之间的联系。
试题二. (类图)【说明】已知某唱片播放器不仅可以播放唱片,而且可以连接电脑并把电脑中的歌曲刻录到唱片上(同步歌曲)。
连接电脑的过程中还可自动完成充电。
关于唱片,有以下描述信息:(1)每首歌曲的描述信息包括:歌曲的名字、谱写这首歌曲的艺术家以及演奏这首歌曲的艺术家。
只有两首歌曲的这三部分信息完全相同时,才认为它们是同一首歌曲。
艺术家可能是一名歌手或一支由2名或2名以上的歌手所组成的乐队。
一名歌手可以不属于任何乐队,也可以属于一个或多个乐队。
(2)每张唱片由多条音轨构成;一条音轨中只包含一首歌曲或为空,一首歌曲可分布在多条音轨上;同一首歌曲在一张唱片中最多只能出现一次。
(3)每条音轨都有一个开始位置和持续时间。
一张唱片上音轨的次序是非常重要的,因此对于任意一条音轨,播放器需要准确地知道,它的下一条音轨和上一条音轨是什么(如果存在的话)。
上述说明中,根据OOA,找出的类为:唱片、歌曲、艺术家、歌手、乐队、音轨,类图如下图所示。
【问题1】根据图中的关系给出图中的A~F所对应的类(6分)。
~(6)处的多重度。
(3分)【问题2】根据说明中的描述,给出图中(1)二.计算机学院的毕业设计管理系统主要包括以下功能:(1)系统管理员通过登录进入系统的管理界面,导入学生基本信息和教师基本信息,维护研究室信息,维护用户信息,维护用户权限,查看系统日志;(2)教务管理员登陆系统,管理毕业设计项目(包括创建毕业设计项目、删除项目、修改项目、导入参与项目的学生名单、导出项目安排表)、管理毕设课题(包括审核教师发布的课题、查看课题报名情况、手工为学生分配课题)、发布项目通知(添加通知、发布通知、修改通知、删除通知、置顶通知)。
软件工程作业1
软件工程作业1软件工程作业11. 前言本文档旨在描述软件工程作业1的内容和要求,并提供相应的解决方案。
作业1主要涉及软件需求工程的一些基本概念和方法。
2. 背景软件需求工程是软件开发过程中的关键环节,它旨在识别和定义用户的需求,为软件开发团队提供指导,确保开发出符合用户期望的软件产品。
在软件工程作业1中,我们将通过一个简单的实例来了解需求工程的基本概念和方法。
3. 需求分析3.1 需求定义本作业要求开发一个简单的待办事项管理系统,主要功能包括:- 记录待办事项的标题和描述- 根据优先级对待办事项进行排序- 标记已完成的待办事项3.2 功能需求根据需求定义,我们可以确定系统的功能需求如下:- 用户能够添加新的待办事项,并提供相应的标题和描述信息。
- 用户能够查看已有的待办事项列表,并能够根据优先级进行排序。
- 用户能够标记已完成的待办事项,并将其从列表中移除。
3.3 非功能需求除了功能需求外,我们还需要考虑一些重要的非功能需求:- 界面友好:用户界面应该简洁明了,方便用户操作。
- 性能高效:系统应该能够迅速处理大量待办事项的增删改查操作。
- 可靠性:系统需要具备一定的容错能力,确保数据不会丢失,应对异常情况。
4. 系统设计4.1 架构设计本系统采用简单的三层架构设计,包括表示层、业务逻辑层和数据访问层。
- 表示层:负责与用户进行交互,接收用户的输入并显示相关信息。
- 业务逻辑层:负责处理用户的请求,进行待办事项的增删改查操作。
- 数据访问层:负责与数据库进行交互,存储和检索待办事项的信息。
4.2 数据库设计本系统采用关系型数据库来存储待办事项的信息,数据库中主要包含以下两个表格:- todos 表:用于存储待办事项的基本信息,包括标题、描述和优先级。
- completed 表:用于存储已完成的待办事项信息,包括标题、描述和完成时间。
4.3 用户界面设计用户界面应该简洁而直观。
主要包括下面几个界面:- 待办事项列表界面:显示用户添加的待办事项列表,并可根据优先级排序。
软件工程作业1[1]
软件工程作业1软件工程作业11. 引言软件工程是一门研究如何以系统性的、经济合理地开发、维护和运行软件的学科。
在软件工程的学习过程中,作业是非常重要的一环。
本文档主要阐述了软件工程作业1的相关内容。
2. 背景软件工程作业1是软件工程课程的第一个作业任务,旨在帮助学生初步了解软件工程的基本概念和方法。
通过完成作业1,学生应能独立思考问题、分析需求、设计解决方案,并按照规定的要求提交作业报告。
3. 作业要求软件工程作业1的要求如下:- 阅读并理解给定的需求文档- 思考并设计解决方案- 使用Markdown文本格式编写作业报告- 作业报告要求包含以下内容:- 对需求文档的理解- 解决方案的设计思路- 实现步骤的描述- 遇到的问题及解决方法- 作业的心得体会和反思4. 解决方案设计根据给定的需求文档,在设计解决方案时,可以参考以下步骤:1. 理解需求:仔细阅读并理解给定的需求文档,确保对需求有清晰的认识。
2. 分析需求:对需求进行系统性的分析,确定主要功能和模块,并将其进行合理划分。
3. 设计方案:根据需求的分析结果,设计合理的解决方案。
可以使用UML图表或其他适合的工具进行模块设计和流程图设计等。
4. 实施步骤:分阶段实施解决方案,按照设计的模块和流程进行编码和测试。
5. 问题解决:在实施过程中,可能会遇到一些问题,需要及时解决。
可以通过查阅相关资料、请教同学或老师等方式解决问题。
6. 作业报告:在完成作业后,按照要求使用Markdown文本格式编写作业报告。
将解决方案的设计思路、实现步骤和遇到的问题等内容详细描述,并总结体会和反思。
5. 遇到的问题与解决方法在完成软件工程作业1的过程中,可能会遇到一些问题,如:- 对需求的理解存在困难:可以通过多次阅读需求文档、请教同学或老师等方式解决。
- 编码和测试时遇到BUG:可以通过调试程序、打印日志等方式定位问题并解决。
- 缺乏有效的工具和资源:可以通过查阅相关资料、探索互联网等途径寻找合适的工具和资源。
软件工程作业1
软件工程作业1软件工程作业1:需求分析文档1. 引言本文档旨在详细阐述软件工程作业1的需求分析过程。
通过本文档,我们将明确作业的功能需求、非功能需求以及界面需求,为后续的软件设计和实现奠定基础。
2. 功能需求2.1 用户管理•用户注册:允许新用户创建账号,填写用户名、密码、邮箱等信息。
•用户登录:已注册用户输入用户名和密码登录系统。
•用户信息修改:用户可以修改自己的密码、邮箱等个人信息。
•用户注销:用户可以注销自己的账号。
2.2 作业管理•发布作业:教师可以发布新的作业,填写作业名称、描述、截止时间等信息。
•查询作业:学生可以查询已发布的作业列表,查看作业详情。
•提交作业:学生可以提交自己的作业。
•作业批改:教师可以批改学生的作业,并给出评分和反馈。
2.3 消息通知•系统通知:系统可以向用户发送有关作业发布、截止等重要消息。
3. 非功能需求3.1 性能需求•系统响应时间:在正常使用情况下,系统响应时间不应超过2秒。
•数据存储容量:系统应能存储至少一个学期的作业及用户信息。
3.2 安全需求•用户认证:采用加密算法(如MD5)对用户密码进行存储和验证。
•数据保护:对用户敏感信息进行加密存储,防止数据泄露。
3.3 可用性需求•界面设计:界面简洁明了,易于操作。
•系统帮助:提供在线帮助文档,方便用户了解和使用系统。
4. 界面需求4.1 用户登录界面•显示用户名、密码输入框及登录按钮。
•显示忘记密码、注册新用户链接。
4.2 用户管理界面•显示用户个人信息,如用户名、密码、邮箱等。
•显示修改个人信息、注销账号按钮。
4.3 作业管理界面•显示作业列表,包括作业名称、描述、截止时间等。
•显示发布新作业、查询作业、提交作业按钮。
4.4 消息通知界面•显示系统通知,包括作业发布、截止等消息。
5. 结论通过本需求分析文档,我们明确了软件工程作业1的功能需求、非功能需求和界面需求。
接下来,我们将根据这些需求进行软件设计和实现,确保系统能够满足用户需求,提高教学效果。
软工第一次作业
1.为每种类型的模块耦合举一个具体的例子。
数据耦合:比如图书管理系统的交欠款和处理逾期借书就是数据耦合,通过数据输入输出交流信息,为数据耦合。
非直接耦合:两个单独的没有直接关系的模块1和模块2,比如学校图书馆管理系统的学生信息登记模块和图书采购模块就没有明显直接的关系,为非直接耦合,耦合程度低。
特征耦合:比如交电费和交水费本身没有直接关系,但都与用户的交款模块产生相似特征.控制耦合:比如一个学生成绩查询系统,其查找模块就控制了查寻学生姓名、查询成绩等模块,为控制关系,是控制耦合。
外部耦合:比如作业打印模块和通知打印模块都访问了打印机这一模块,为外部耦合。
公共耦合:若一组模块都访问同一个公共数据环境,则它们之间的耦合就是公共耦合。
公共的数据环境可以是全局的数据结构,共享的通信区,内存的公共覆盖区等。
如几个模块对同一个数据库的查询就属于这种耦合。
公共耦合可以分为松散的公共耦合和紧密的公共耦合,其中松散的公共耦合是单向操作,如两个或多个模块对同一个文件的读操作;而紧密的公共耦合是双向的操作,如两个或多个模块对同一文件的读写操作。
下面用图表示松散的和紧密的公共耦合。
内容耦合。
即有下列情况时即出现内容耦合。
(1)一个模块访问另一个模块数据;(2)一个模块不通过正常入口而转到另一个模块的内部;(3)两个模块有一部分代码重叠;(4)一个模块有多个入口。
2、为每种类型的模块内聚举一个具体例子。
偶然内聚。
即模块内各部分之间没有联系,或者即使有联系也很松散,这种即为偶然内聚,它是内聚程度最低的模块。
如一些没有任何联系的语句可能在许多模块中重复多次,程序员为了节省存储,把它们抽出来组成一个新的模块,这个模块就是偶然内聚模块逻辑内聚(Logical Cohesion)即这种模块把几种功能组合在一起,每次调用时,由传送给模块的判定参数来确定该模块应执行哪一种功能。
如根据输入的控制信息,或从文件中读入一个记录,或向文件写出一个记录。
软件工程作业(答案参考)
软件工程第一次作业1)软件工程适用范围?答:软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。
它涉及到程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。
在现代社会中,软件应用于多个方面。
典型的软件比如有电子邮件、嵌入式系统、人机界面、办公套件、操作系统、编译器、数据库、游戏等。
同时,各个行业几乎都有计算机软件的应用,比如工业、农业、银行、航空、政府部门等。
这些应用促进了经济和社会的发展,使得人们的工作更加高效,同时提高了生活质量。
2)软件工程如何控制系统开发的复杂性的?答:可理解性(understandability)。
系统具有清晰的结构,能直接反映问题的需求。
可理解性有助于控制软件系统的复杂性,并支持软件的维护、移植或重用。
3)以你的经验,举例说明一个成熟的软件通常采用什么方法来适应现实世界的变化的?答:以猎豹游览器为例,开始软件投入市场公测,软件自带收集错误报告的程式,当遇到问题软件错误,会将相关信息反馈到接受错误信息的服务器,已方便程序员及时发现问题加以修复,修复完成后提供程序更新,循环此法提供软件运行稳定性,另外还有用户反馈的相关功能,对软件的建议也会收集到服务器,按实用性需求程序员可在原有程序上开发调整更适合用户使用的程序。
4)假设某软件公司,能为同一个用户开发两个不同层次的软件:一个层次的软件功能非常强大,在满足用户所有需求的基础上,还能提供大大超过用户需求的其他更多更强的功能;另一个层次的软件仅仅能满足用户需求,但没有提供其他额外的功能。
请问如果你是项目负责人,你会选择为客户开发那个层次的软件?答:我会选择仅仅满足用户需求的软件。
因为太多的功能,相对于非专业的人员,在用户体验上可能会造成困扰,太多的功能会导致难以操作。
而且功能强大的软件还会给用户费用上带来不必要的投入,软件是以人为本,方便用户工作,达到提高工作效率的目的。
若然日后此用户需要更多功能的时候,我们还是可以向其软件公司提供升级功能解决用户需求。
《软件工程》作业及答案
《软件工程》作业及答案软件工程作业及答案软件工程是以工程化的原则和方法来开发、维护和管理软件的学科。
在软件工程的学习过程中,作业是一种重要的学习方式,能够巩固所学的知识,提高实践能力。
以下是一道软件工程作业题目及答案的介绍。
作业题目:设计一个简单的学生成绩管理系统,具有添加学生信息、录入学生成绩、计算总分和平均分、查询学生信息和成绩等功能。
作业答案:一、需求分析根据题目要求,我们需要设计一个学生成绩管理系统。
系统需要包含以下功能:1. 添加学生信息:输入学生的姓名、学号和班级等信息,将学生信息保存到数据库中。
2. 录入学生成绩:输入学生的学号和各科成绩,将成绩保存到数据库中。
3. 计算总分和平均分:根据学生的各科成绩,计算出总分和平均分,并将结果保存到数据库中。
4. 查询学生信息和成绩:根据学生的学号,查询并显示学生的基本信息和各科成绩。
二、系统设计1. 数据库设计:设计一个学生信息表和学生成绩表,学生信息表包含学号、姓名和班级等字段,学生成绩表包含学号、科目和成绩等字段。
2. 用户界面设计:设计一个简洁美观的用户界面,包括添加学生信息、录入学生成绩和查询学生信息和成绩等功能按钮。
3. 系统功能设计:根据需求,设计相应的函数和方法来实现添加学生信息、录入学生成绩、计算总分和平均分以及查询学生信息和成绩等功能。
三、系统实现1. 使用编程语言:选择适合的编程语言来实现系统,比如Java、Python等。
2. 编写代码:根据系统设计,编写代码实现各个功能。
3. 运行测试:对系统进行测试,确保各功能正常运行。
四、系统运行和使用1. 安装和配置:将系统部署到服务器或本地环境中,并完成必要的安装和配置工作。
2. 运行系统:启动系统,进入用户界面。
3. 使用系统:根据需要,点击相应的功能按钮进行学生信息的添加、成绩的录入和查询等操作。
五、总结与展望通过完成这个学生成绩管理系统的设计和实现,我们不仅巩固了软件工程的相关知识,还提高了实践能力。
软件工程第1-2章课后习题参考答案
第一章课后参考答案1.什么是软件危机?它们有哪些典型表现?为什么会出现软件危机?“软件危机”是指计算机软件的“开发”和“维护”过程中所遇到的一系列“严重问题”。
这些问题决不仅仅是不能正常运行的软件才具有的,实际上,几乎“所有软件”都不同程度地存在这些问题。
“软件危机”包含两方面的问题:(1)如何开发软件,以满足对软件日益增长的需求;(2)如何维护数量不断膨胀的已有软件。
它们有以下表现:(1)对软件开发成本和进度的估计常常很不准确;(2)用户对“已完成的”软件系统不满意的现象经常发生;(3)软件产品的质量往往靠不住;(4)软件常常是不可维护的;(5)软件通常没有适当的文档资料;(6)软件成本在计算机系统总成本中所占的比例逐年上升;(7)软件开发生产率提高的速度,远远跟不上计算机应用普及深入的趋势。
出现软件危机的原因(1)开发人员与客户认识之间的矛盾(2)开发人员能力与开发目标之间的矛盾(3)预估与实际工作量之间的矛盾(4)客户认识的提高与软件维护之间的矛盾(5)遗产系统与实施软件之间的矛盾2.假设自己是一家软件公司的总工程师,当把图1.1给手下的软件工程师们观看,告诉他们及时发现并改正错误的重要性时,有人不同意这个观点,认为要求在错误进入软件之前就清楚它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么,一个人怎么能在设计阶段清除它呢?”应该怎么反驳他?答:在软件开发的不同阶段进行修改付出的代价是很不相同的,在早期引入变动,涉及的面较少,因而代价也比较低;在开发的中期,软件配置的许多成分已经完成,引入一个变动要对所有已完成的配置成分都做相应的修改,不仅工作量大,而且逻辑上也更复杂,因此付出的代价剧增;在软件“已经完成”是在引入变动,当然付出的代价更高。
一个故障是代码错误造成的,有时这种错误是不可避免的,但要修改的成本是很小的,因为这不是整体构架的错误。
3.什么是软件工程?它有哪些本质特征?怎么用软件工程消除软件危机?软件工程是知道计算机软件开发和维护的一门工程学科。
软工部分第1次作业
5
第1次作业(续)
第四题:某大学的期末考试管理流程如下所示,请按照UML规 范画出该流程的活动图(含泳道,此题30分)
1.学校教务处安排某课程的期末考试时间和地点,然后发布考试通知。 2.课程所在学院接到教务处通知后,通知任课老师出题,并同时安排监考。 3.任课教师出试卷和答案。 4.系主任审核试卷:如果不通过返回给任课教师修改;如果通过则送往教 务处制卷。 5. 学院在教务处制完卷以后领取试卷;当领到试卷并且已安排好监考后, 就组织考试。 6.任课教师阅卷并评定学生成绩。 7.系主任对任课教师批改的试卷进行复核,然后把试卷归档。
3
第1次作业(续)
第二题:某网上选课系统,功能包含:
参与者有系统管理员与学生,都需要登录(若参与者忘记,还 需要提供找回密码的功能)。
管理员或学生都可以查询课程信息(分为两种独立的方式:按 课程编号查询、按课程名查询,任中一种都能查询课程信息)。
学生选择课程。 学生删除已选课程。 系统管理员维护课程信息。 试画出该系统的用例图(此题20分)
看、添加、修改、删除的功能。 ③ 书籍信息管理功能,管理员对书籍信息进行添加、修改、删除的功能。 ④ 书籍借阅功能,读者在借书前需要先查询图书信息(依题意来,不要受到课
件中那个借还书用例图的影响)。 ⑤ 书籍归还功能,读者归还图书时如果超期,需找管理员通过系统缴纳罚
款。
2
第1次作业(续)
第一题的用例图框架,请补充完整:
6
第1次作业(续)
提交要求:
第一题画图工具不限(也可以直接截图);后面三题请用 StarUML画,不能用手画,也不能用别的软件。
软件工程基础第二次作业
软件⼯程基础第⼆次作业git地址git⽤户名Tracerlyh学号后五位61215博客地址作业链接熟悉使⽤⼯具part 1:环境配置过程1、Visual Studio 2017的安装本次作业使⽤的编译器是Visual Studio 2017。
Visual Studio 2017/64位压缩包下载百度⽹盘:提取密码:srpx由于之前电脑已经安装了该编译器,所以在这就跳过我⾃⼰的安装过程。
附上以前安装时参照的安装教程链接:2、⽤Visual Studio 2017编写c++程序步骤1:打开Visual Studio 2017后点击⽂件----点击新建----点击项⽬(也可以在打开Visual Studio 2017后按快捷键Ctrl+Shift+N)步骤2:选择Visual C++下的Windows 桌⾯,选择Windows 控制台应⽤程序,然后在项⽬名称⼀栏输⼊项⽬名称,在这⾥我选择的名称是C++测试2,然后选择的项⽬存储的路径,我选择的是F:\c++未整理\,最后点击确定。
出现如下界⾯:步骤3:右键点击源⽂件-----点击添加-----点击新建项(快捷键为:Ctrl+Shift+A)然后就。
开始你的C++编程之旅吧。
如果需要使⽤其他语⾔只需要安装相应的扩展包就⾏了。
3、git软件的安装与使⽤参考的git的下载及安装教程:教程中给出的适⽤于Windows系统的Git For Windows下载地址::Git for windows(也叫做 msysGit)的使⽤在将在Part 3详细讲解。
part 2:代码设计与实现题⽬简述:制作⼀个程序,能根据⽤户输⼊的数字⽣成等数量的四则运算题⽬,数字为100以下,不允许出现分数(⼩数)和负数,运算符为2或者3个,并将题⽬和答案写⼊到subject.txt中。
代码设计:⼤致结构将产⽣随机的运算符的操作封装成函数char Getachar()。
函数中利⽤了⼀个switch语句,将随机数翻译成设计的相对应的运算符并返回char Getachar()//返回⼀个运算符{int i = rand() % 4;switch (i){case 0:return '*'; break;case 1:return '/'; break;case 2:return '+'; break;case 3:return '-'; break;default:break;}}将⽣成四则运算并计算其值,将四则运算表达式和答案写⼊⽂件的操作封装成了⼀个函数void TheFourSpecies(int num),利⽤C++中的随机数函数产⽣伪随机数,将系统时间设置为产⽣伪随机数的种⼦,并将产⽣的随机数对100取余得到0-100范围内的随机数,赋值给在四则运算中的操作数。
软件技术基础第一次作业题及答案.doc
第1次作业一、单项选择题(本大题共100分,共40小题,每小题2.5分)1. 若执行以下程序段,其运行结果是()char c [[二{'a', ' b', ' \0', ' c', ' \0'} ; printf (,,%s\n ,/, c ); A. ab cB. 'a''b'C. abcD. ab2. 一个C 语言程序是由()组成A.主程序B.子程序C.函数D.过程3. 已知各变量定义如下:int i 二& a, b; double x=l. 42, y=5. 2;则以下符合C 语言语法的表达式是 ()A. a+二a -二(b 二4) * (a 二3)B. ei 二a*3二2C. x%(-3)D.(y+i )++ 4. 下列程序的输岀结果为()void main () { int &□二{1, 2, 3, 4, 5}, *p;P=a; * (p+4)+=5;printf %d\n\ *p, * (p+4)); } A. 4,10 B. 10,4 C. 1,4 D. 1, 105. 下列数据屮,属于“字符串常量”的是()A. Abcddd B. 〃3bcddd 〃 C. ,abcddd , D. <a ,6. 以下语句或语句组中,能正确进行字符串赋值的是()A. char*sp;*sp 二〃right!" B. char s[10];s 二〃right!〃 C. char s[10];*s 二〃right!〃 D. char *sp 二〃right!"7. 已知 long a=-2L ; printf (z ,%d\ n ,z , a );则有()A.赋值不合法 B. 输出值为-2 C.输出为不确定值D.输出值为2&在C 语言屮,类型名char 表示的数据类型是()A.实型B.字符型C. 整型D.双精度实型9. 判断char 型变量cl 是否小写字母的正确表达式为()A.,a<=cl<=z ,B. (cl>二'a')&&(cl 〈二'z') C. (cl>=a )&&(cl<=z ) D.(务‘〈二cl ) | | ('z'>二cl )10. 下列有关共同体说法正确的是()A.任一时刻,只有一个分量有效,其他 分量无意义B.共同体变量可以用作函数参数C.结构变量可以出现在共同体 类型中,而共同体变量不能出现在结构类型中D.在定义共同体变量时不能为 其初始化11・以下程序的输岀结果是()void main () {int x=020^ y=0x20^ z=20; 32, 16, 20 C. 16, 32, 20 D. 20, 32, 20printf 冷 * z) ; } A. 20, 20, 20 B.12.若有运算符:>、*二、==、%、sizeof,则它们按优先级(由低至高)的正确排列次序为()A. *二-> ==->>->% -> sizeof B. == -> *二->>->% -> sizeof C. *二-〉 > -〉二二-〉sizeof -> % D. *二-〉 > -〉二二 -〉% -> sizeof13.char s[]二” student”,*(s+2)的值是()A.,u,B. <d,C. “s' D. 't'14.用C语言编写的源程序,必须经过编译、连接和运行才能得到结果。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《软件工程基础》课程 第一次作业
班级: 学号: 姓名:
郑重声明:一定要实事求是,自己独立完成,不要抄袭他人作业。
作业只要上交,无论做对与否,平 时成绩就酌情记分。
若发现抄袭现象,抄袭者与被抄袭者均须从严惩处!
一、选择题(每小题只有一个正确选项)
1、模块在同一段时间内完成各种初始化工作,这属于 。
A.偶然内聚
B.逻辑内聚
C.时间内聚
D.过程内聚
2、在编程安全方法方面,一般来说无法做到 。
A. 避开错误
B.完美无缺,绝无错误
C. 冗余
D.设计防错程序
3、在衡量软件质量时,最重要的标准是 。
A. 成本低
B. 可维护性好
C. 符合要求
D. 界面友好
4、下列工具中,不属于详细设计工具的是 。
A. 测试工具
B. 图形工具
C. 表格工具
D. 语言工具
5、下列哪个做法会导致不利的语句结构?
A. 避免使用 ELSE GOTO结构
B.对递归定义的数据结构尽量不再使用递归过程
C.模块功能尽可能单一化,模块间的耦合能够清晰可见
D.利用信息隐蔽,确保每一个模块的独立性
选择题答题处 1 2 3 4 5
二、填空题
1、软件工程学的内容可包括 、 、 、 、环境、管理、规范等。
2、模块的独立程度可以由两个定性标准度量,这两个标准分别称为 和 。
耦合衡量 。
内聚衡量 。
3、软件测试方法按测试过程是否在实际应用环境中分为 和 。
三、判断题
1、Jackson 系统开发方法是一种典型的面向对象的分析设计方法。
( )
2、HIPO 图是由一组 IPO图加一张 HC图组成,是美国 IBM 公司在软件设计中使用的主
要表达工具。
( )
四、问答题
什么是软件?
《软件工程基础》课程 第二次作业
班级:
学号: 姓名:
一、单项选择题
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.确保所有变量在使用前都进行初始化
二、判断题
1、软件产品与其他任何产品不同,它是无形的,完全没有物理属性。
( )
2、使用好的开发工具可以降低开发成本。
( )
3、需求分析报告只有软件分析人员能看懂。
( )
4、无条件转移是程序的基本结构之一。
(
)
5、为了提高程序的易读性,尽可能使用高级语言编写程序。
( )
6、Jackson 图只能表示数据结构,不能表示程序结构。
(
)
三、填空
1、数据流图 4种基本图形元素为 和
、 、
、。
2、软件测试的步骤可分为 、
、 、 。
3、编码风格主要包括四个方面: 、
、
、。
4、结构化程序设计采用
的设计方法和 的控制结构。
四、问答题
简述程序设计语言的特点。
选择题答题处 1 2 3
4
5。