软件工程 作业1
软件工程作业1

软件工程作业1一、选择题:1.开发软件所需高成本和产物的低质量之间有着锋利的矛盾,这种现象称做〔C〕。
2.瀑布模型本质上是一种〔A 〕模型。
3.瀑布模型存在的问题是〔B 〕。
A.用户容易参与开发 B.缺乏灵活性C.用户与开发者易沟通 D.适用可变需求4.螺旋模型是一种将瀑布模型和〔A〕结合起来的软件开发模型。
A.增量模型B.专家系统C.喷泉模型D.变换模型5.原型化方法是用户和设计者之间执行的一种交互构成,适用于〔A〕系统。
A.需求不确定性高的 B.需求确定的C.打点信息 D.实时6.以下有关软件工程的尺度,属于国际尺度的是(D )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)*nC、p×(1+i)nD、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.效率是一个性能要求,因此应当在以下哪个阶段规定?BA、可行性阐发B、需求阐发C、概要设计D、详细设计15.需求规格说明书的作用不包罗〔D〕A、软件验收的依据B、用户与开发人员对软件要做什么的共同理解C、软件可行性研究的依据D、软件设计的依据16.数据字典是用来定义〔D〕中的各个成份的具体含义的。
软件工程作业1

1.软件危机的概念:软件危机是计算机软件开发和维护过程中所遇到的一系列严重问题。
主要包括下列两个方面的问题:如何开发软件,以满足对软件的日益增长的需求;如何维护不断增多的已有软件。
典型表现:对软件开发成本和进度的估计常常很不准确;用户对交付的软件经常不满意;软件产品的质量往往达不到要求;开发出来的软件通常难以维护;软件产品文档资料不适用和不完善;软件成本在整个系统总成本中所占比例逐年上升;软件开发生产率的提高不能满足对软件需求的增长;出现软件危机的原因:与软件本身的特点有关成本高、风险大、难于维护、逻辑复杂。
软件是计算机系统中的逻辑实体而不是物理实体,软件生产与硬件不同,在它的开发过程中没有明显的制造过程。
软件是通过人们的智力活动,把知识与技术转化成信息的一种产品。
在软件的运行过程中,没有“用坏”的问题。
软件维护意味着修正原来的设计,较为困难。
与软件开发与维护的方法不正确有关软件专业人员对软件开发和维护存在糊涂观念,在实践过程中采用了错误的方法和技术。
如忽视软件需求分析的重要性;轻视软件维护。
3.软件工程的概念:软件工程是指导计算机软件开发与维护的一门工程学科。
采用工程的概念、原理、方法和技术来开发和维护软件。
将经过时间和实践考验而证明正确的管理方法和最好的技术手段结合起来,经济有效地开发和维护软件。
软件工程是一门不断发展的学科。
软件工程就是建立和使用一套合理的工程原理,从而经济地获得可靠的、可以在实际机器上高效运行的软件。
软件工程是应用计算机科学、数学及管理科学等原理开发软件的工程。
它采用经过实践验证的工程的原则、方法,以提高质量,降低成本为目的。
本质特征:关注于大型程序的构造控制软件复杂性适应软件的经常变化性提高软件开发的效率和谐合作开发软件使软件有效地支持它的用户需求软件是有一种文化背景的人为另一种文化背景的人开发的产品。
用软件工程来消除软件危机:(1) 对计算机软件有一个正确的认识(软件≠程序)(2) 必须充分认识到软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目(3) 推广使用在实践中总结出来的开发软件的成功技术和方法(4) 开发和使用更好的软件工具6.软件过程的概念:软件过程是为了获得高质量的软件需要完成的一系列任务的框架,规定了完成各项任务的工作步骤。
国开电大软件工程形考作业1

国开电大软件工程形考作业1软件工程是一门涉及软件开发、测试、维护和管理的学科,它在现代社会中扮演着重要的角色。
作为一名软件工程专业的学生,我对软件工程的学习和实践充满了热情。
在国开电大软件工程形考作业1中,我将分享我对软件工程的理解和经验。
首先,软件工程是一门需要系统性思维和方法的学科。
在软件开发过程中,我们需要遵循一系列的步骤和规范,以确保软件的质量和可靠性。
例如,我们需要进行需求分析,明确软件的功能和性能要求;然后进行系统设计,确定软件的架构和模块划分;接下来是编码和测试阶段,我们需要使用合适的编程语言和工具来实现软件功能,并进行充分的测试,以确保软件的正确性和稳定性。
最后,我们需要进行软件的部署和维护,及时修复软件中的bug和漏洞。
这些步骤和规范都需要我们具备系统性思维和方法,以确保软件工程的成功。
其次,软件工程是一门需要团队合作的学科。
在现实的软件开发项目中,很少有一个人独立完成整个软件的开发工作。
相反,通常需要一个团队的成员共同合作,分工合作,共同完成软件的开发任务。
在团队合作中,我们需要进行有效的沟通和协调,明确每个人的职责和任务,确保团队的工作高效和协调。
此外,团队合作还可以促进知识的共享和技能的提升,通过相互学习和交流,我们可以不断提高自己的软件开发能力和技术水平。
最后,软件工程是一门需要不断学习和更新的学科。
随着科技的不断发展和创新,软件工程领域也在不断变化和更新。
新的编程语言、开发工具和技术不断涌现,我们需要不断学习和掌握这些新的知识和技能,以适应快速变化的软件开发环境。
此外,我们还需要关注软件工程领域的最新研究和发展动态,了解行业的最新趋势和需求,以便在就业市场中保持竞争力。
总之,软件工程是一门需要系统性思维、团队合作和不断学习的学科。
通过国开电大软件工程形考作业1的学习和实践,我对软件工程有了更深入的理解和认识。
我相信,在未来的学习和工作中,我将继续努力学习和实践,不断提高自己的软件开发能力和技术水平,为社会的发展和进步做出自己的贡献。
软件工程作业1

软件工程作业1软件工程作业1====================1-引言--------------------2-项目背景--------------------在此章节中,需要详细介绍软件工程作业1的项目背景和项目的目标。
描述项目的背景信息,包括相关的行业、应用领域和目标用户群体等。
明确项目的目标,即开发一个什么样的软件或系统,并说明该软件或系统的主要功能和优势。
3-需求分析--------------------在本章节中,将对项目的需求进行详细的分析和规格说明。
包括用户需求和系统需求的分析,将用户需求转化为可量化和可测量的系统需求。
在此章节中,需要明确项目的功能需求、性能需求、安全需求等各个方面的需求。
4-设计在此章节中,将进行系统的整体设计和详细设计的说明。
首先,进行系统的整体架构设计,包括模块划分、功能划分和模块间的关系等。
然后,对各个模块进行详细设计,并给出相应的设计文档,包括类图、时序图、状态图等。
最后,说明系统的界面设计和用户界面的交互。
5-开发--------------------在本章节中,将详细介绍项目的开发过程和开发环境的配置。
描述项目的开发过程中所采用的开发方法和开发工具。
对于项目的开发环境,包括开发语言、开发框架、集成开发环境等的配置和使用,都需要进行详细的说明。
6-测试--------------------在此章节中,将介绍软件工程作业1的测试策略和测试计划。
描述测试的范围、测试的方法和测试的步骤等。
针对不同的测试阶段,包括单元测试、集成测试、系统测试等,都需要给出相应的测试计划和测试用例。
7-附件本文档附带的附件包括项目的相关文档、设计图纸、测试样例等。
这些附件能够更加全面地展示软件工程作业1的开发过程和实现结果。
8-法律名词及注释--------------------在此章节中,列出本文档涉及的法律名词及其相应的注释解释。
这些法律名词的注释将有助于读者更好地理解和解释相关内容。
国开电大软件工程形考作业1参考答案

题目1.()是职业软件工程师的必要条件。
A. 编程速度快
B. 语言天赋
C. 熟悉众多的软件环境
D. 自律、善于沟通、具有一定的软件技能
【答案】:自律、善于沟通、具有一定的软件技能
题目2.根据软件工程的7条基本原理判断下面正确的选项是()。
A. 需求阶段一般不会引入错误
B. 软件错误发现的时机不重要,重要的是错误的严重程度
C. 软件错误只能通过运行代码才能发现
D. 软件错误发现的越早改正的成本越低
【答案】:软件错误发现的越早改正的成本越低
题目3.美国著名软件工程专家B.W.Boehm于1983年提出了软件工程的()条基本原理。
A. 5
B. 3
C. 7
D. 12
【答案】:7
题目4.软件、程序和代码是()。
A. 计算机代码和数据
B. 相同的软件概念
C. 三个不同的概念
D. 程序语言写的代码
【答案】:三个不同的概念。
软件工程作业1

软件工程作业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分别采用数据流方法中得哪些技术来完成用户需求的精确化、一致化和完全化的任务。
《软件工程》在线作业一

《软件工程》在线作业一《软件工程》在线作业一-0002试卷总分:100 得分:0一、单选题 (共 20 道试题,共 100 分)1.判定表和判定树是数据流图中用以描述加工的工具,它常描述的对象是()A.逻辑判断B.层次分解C.操作条目D.组合条件2.结构图中,不是其主要成分的是()。
A.模块B.模块间传递的数据C.模块内部数据D.模块的控制关系3.确认测试中,作为测试依据的文档是()。
A.需求规格说明书B.设计说明书C.源程序D.开发计划4.瀑布模型把软件生命周期划分为八个阶段:问题的定义、可行性研究、软件需求分析、系统总体设计、详细设计、编码、测试和运行、维护。
八个阶段又可归纳为三个大的阶段:计划阶段、开发阶段和()。
A.详细计划B.可行性分析C.运行阶段D.测试与排错5.DFD中的每个加工至少有()。
A.一个输入流或一个输出流B.一个输入流和一个输出流C.一个输入流D.一个输出流6.详细设计与概要设计衔接的图形工具是()。
A.DFD图B.SC图C.PAD图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.从结构化的瀑布模型看,在它的生命周期中的八个阶段中,下面的几个选项中哪个环节出错,对软件的影响最大()。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1试说明“软件生存周期”的六个阶段。
答:软件生存周期(software life cycle)又称为软件生命期,生存期。
是指从形成开发软件概念起,所开发的软件使用以后,直到失去使用价值消亡为止的整个过程。
也就是说软件的产生直到报废的生命周期,周期内有问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级到废弃等阶段,这种按时间分程的思想方法是软件工程中的一种思想原则,即按部就班、逐步推进,每个阶段都要有定义、工作、审查、形成文档以供交流或备查,以提高软件的质量。
但随着新的面向对象的设计方法和技术的成熟,软件生命周期设计方法的指导意义正在逐步减少。
(1) 软件项目计划与可行性研究(问题定义、可行性研究):在这一步要确定软件工作范围,进行软件风险分析,预计软件开发所需要的资源,建立成本与进度的估算。
根据有关成本与进度的限制分析项目的可行性。
(2) 软件需求分析和定义:在这一步详细定义分配给软件的系统元素。
可以用以下两种方式中的一种对需求进行分析和定义。
一种是正式的信息域分析,可用于建立信息流和信息结构的模型,然后逐渐扩充这些模型成为软件的规格说明。
另一种是软件原型化方法,即建立软件原型,并由用户进行评价,从而确定软件需求。
(3) 软件设计(概要设计和详细设计):软件的设计过程分两步走。
第一步进行概要设计,以结构设计和数据设计开始,建立程序的模块结构,定义接口并建立数据结构。
此外,要使用一些设计准则来判断软件的质量。
第二步做详细设计,考虑设计每一个模块部件的过程描述。
经过评审后,把每一个加细的过程性描述加到设计规格说明中去。
(4) 程序编码:在设计完成之后,用一种适当的程序设计语言或CASE工具生成源程序。
应当就风格及清晰性对代码进行评审,而且反过来应能直接追溯到详细设计描述。
(5) 软件测试:单元测试检查每一单独的模块部件的功能和性能。
组装测试提供了构造软件模块结构的手段,同时测试其功能和接口。
确认测试检查所有的需求是否都得到满足。
在每一个测试步骤之后,要进行调试,以诊断和纠正软件的故障。
(6) 软件运行与维护:为改正错误,适应环境变化及功能增强而进行的一系列修改活动。
与软件维护相关联的那些任务依赖于所要实施的维护的类型。
2数据流图的作用是什么?它有哪些基本成份?
答:数据流图可以用来抽象地表示系统或软件。
它从信息传递和加工的角度,以图形的方式刻画数据流从输入到输出的移动变换过程,同时可以按自顶向下、逐步分解的方法表示内容不断增加的数据流和功能细节。
因此,数据流图既提供了功能建模的机制,也提供了信息流建模的机制,从而可以建立起系统或软件的功能模型。
数据流图的基本成份有4种:
数据流(箭头);处理(圆);存储文件(双横线或者左封口的工字形象);外部,方块
3、逐步求精、分层过程与抽象等概念之间的相互关系如何?
答:总的指导原则是自顶向下、逐步求精。
它的基本原则是功能的分解与抽象。
逐步求精,也称为自顶向下是指:不要求一步就编制成可执行的程序,而是分若干步进行。
第一步编出的程序抽象程度最高,第二步编出的程序抽象程度有所降低,最后一步编出的程序即为可执行的程序。
用这种方法编程,可使程序易读、易写、易调试、易维护,也易于保证程序的正确性及验证其正确性。
随着软件设计的逐步展开,程序结构中每一层模块就体现了过程抽象某一层次上的一次细化。
·“自顶向下,逐步求精”是Niklaus Wirth提出的设计策略:即将软件的体系结构按自顶向下方式,对各个层次的过程细节和数据细节逐层细化,直到用程序设计语言的语句能够实现为止,从而最后确立整个的体系结构。
这样的结构实际就是一个模块的分层结构,即分层的过程。
在实施时,采用抽象化的方法,自顶向下,给出不同的抽象层次。
在最高的抽象层次上,可以使用问题所处环境的语言概括地描述问题的解法。
而在较低的抽象层次上,则采用过程化的方法。
在描述问题的解法时,我们可以配合使用面向问题的术语和面向现实的术语。
但最后在最低的抽象层次上,我们应使用能够直接实现的方式来描述这个解法。
4如何理解模块独立性?模块独立性与信息隐藏(反映模块化有效程度的属性)有何关系?
答:所谓“模块独立性”是指软件系统中每个模块只涉及软件要求的具体的子功能,而和软件系统中其它的模块的接口是简单的。
所谓的“信息隐蔽”是指每个模块的实现细节对于其它模块来说是隐蔽的。
也就是说,模块中所包含的信息(包括数据和过程)不允许其它不需要这些信息的模块使用。
如果软件系统做到了信息隐蔽,即定义和实施了对模块的过程细节和局部数据结构的存取限制,那么这些模块相互间的接口就是简单的。
这组模块的独立性就比较强。
事实上,衡量模块独立性的一个准则就是模块内聚,达到信息隐蔽的模块是信息内聚模块,它是高内聚情形,模块独立性当然很强了。
一个对象的抽象数据类型,就是信息隐蔽的示例。
例如,对于栈stack,可以定义它的操作makenull(置空栈)、push(进栈)、pop(退栈)、gettop(取栈顶)和empty(判栈空)。
这些操作所依赖的数据结构是什么样的? 它们是如何实现的? 都被封装在其实现模块中。
软件的其它部分可以直接使用这些操作,不必关心它的实现细节。
一旦实现栈stack的模块里内部过程或局部数据结构发生改变,只要它相关操作的调用形式不变,则软件中其它所有使用这个栈stack的部分都可以不修改。
这样的模块结构具有很强的模块独立性。