软件工程第1章作业
- 格式:doc
- 大小:35.00 KB
- 文档页数:4
1.软件危机的概念:软件危机是计算机软件开发和维护过程中所遇到的一系列严重问题。
主要包括下列两个方面的问题:如何开发软件,以满足对软件的日益增长的需求;如何维护不断增多的已有软件。
典型表现:对软件开发成本和进度的估计常常很不准确;用户对交付的软件经常不满意;软件产品的质量往往达不到要求;开发出来的软件通常难以维护;软件产品文档资料不适用和不完善;软件成本在整个系统总成本中所占比例逐年上升;软件开发生产率的提高不能满足对软件需求的增长;出现软件危机的原因:与软件本身的特点有关成本高、风险大、难于维护、逻辑复杂。
软件是计算机系统中的逻辑实体而不是物理实体,软件生产与硬件不同,在它的开发过程中没有明显的制造过程。
软件是通过人们的智力活动,把知识与技术转化成信息的一种产品。
在软件的运行过程中,没有“用坏”的问题。
软件维护意味着修正原来的设计,较为困难。
与软件开发与维护的方法不正确有关软件专业人员对软件开发和维护存在糊涂观念,在实践过程中采用了错误的方法和技术。
如忽视软件需求分析的重要性;轻视软件维护。
3.软件工程的概念:软件工程是指导计算机软件开发与维护的一门工程学科。
采用工程的概念、原理、方法和技术来开发和维护软件。
将经过时间和实践考验而证明正确的管理方法和最好的技术手段结合起来,经济有效地开发和维护软件。
软件工程是一门不断发展的学科。
软件工程就是建立和使用一套合理的工程原理,从而经济地获得可靠的、可以在实际机器上高效运行的软件。
软件工程是应用计算机科学、数学及管理科学等原理开发软件的工程。
它采用经过实践验证的工程的原则、方法,以提高质量,降低成本为目的。
本质特征:关注于大型程序的构造控制软件复杂性适应软件的经常变化性提高软件开发的效率和谐合作开发软件使软件有效地支持它的用户需求软件是有一种文化背景的人为另一种文化背景的人开发的产品。
用软件工程来消除软件危机:(1) 对计算机软件有一个正确的认识(软件≠程序)(2) 必须充分认识到软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目(3) 推广使用在实践中总结出来的开发软件的成功技术和方法(4) 开发和使用更好的软件工具6.软件过程的概念:软件过程是为了获得高质量的软件需要完成的一系列任务的框架,规定了完成各项任务的工作步骤。
软件工程作业1在当今数字化的时代,软件工程已经成为了推动科技发展和社会进步的重要力量。
从我们日常使用的手机应用到复杂的企业级系统,软件工程都在其中发挥着关键作用。
软件工程是一门研究如何用系统化、规范化、可定量的方法来开发、运行和维护软件的学科。
它不仅仅是编写代码,还涵盖了从需求分析、设计、编码、测试到维护的整个软件生命周期。
在需求分析阶段,软件工程师需要与客户或用户进行深入的沟通,了解他们的期望和需求。
这就像是建筑师在设计大楼之前,要先明白住户的居住需求一样。
工程师们要仔细倾听,捕捉每一个细节,将模糊的想法转化为清晰的、可衡量的需求规格说明书。
这个过程中,可能会遇到用户需求不明确、需求变更频繁等问题。
这就需要工程师具备良好的沟通能力和应变能力,能够引导用户明确需求,并合理管理需求的变更。
设计阶段则是在需求明确的基础上,构建软件的架构和模块。
这就好比是为大楼搭建框架,确定每个房间的布局。
好的设计能够提高软件的可扩展性、可维护性和性能。
在这个阶段,工程师要考虑软件的整体结构、模块之间的关系、数据的存储和处理方式等。
同时,还要选择合适的设计模式和算法,以满足软件的功能和性能要求。
编码阶段就是将设计转化为实际的代码。
这就像是建筑工人根据设计图纸进行施工。
在编码过程中,工程师要遵循编程规范,确保代码的可读性、可维护性和可重用性。
同时,还要注意代码的效率和安全性,避免出现漏洞和错误。
测试是软件工程中不可或缺的环节。
就像大楼建成后需要进行各种质量检测一样,软件也要经过严格的测试,以确保其功能的正确性和稳定性。
测试包括单元测试、集成测试、系统测试和用户验收测试等。
通过测试,可以发现软件中的缺陷和问题,并及时进行修复。
维护阶段则是在软件交付使用后,对其进行持续的改进和优化。
随着用户需求的变化和技术的更新,软件需要不断地进行升级和维护。
这就要求工程师能够快速响应问题,有效地解决故障,并对软件进行持续的优化,以提高用户体验。
java常见异常整理(1)_爱琦13百度首页| 百度空间| 登录爱琦13朋友多遍天下主页博客相册|个人档案|好友查看文章java常见异常整理(1)2007年02月09日星期五23:18大中小异常javax.servlet.jsp.JspException: Cannot retrieve mapping for action/Login (/Login是你的action名字)可能原因action没有再struts-config.xml 中定义,或没有找到匹配的action,例如在JSP 文件中使用<html:formaction="Login.do".将表单提交给Login.do处理,如果出现上述异常,请查看struts-config.xml中的定义部分,有时可能是打错了字符或者是某些不符合规则,可以使用strutsconsole工具来检查。
----------------------------------------------------------------------------------------------------------------- 异常org.apache.jasper.JasperException: Cannot retrieve definition forform bean null可能原因这个异常是因为Struts根据struts-config.xml中的mapping没有找到action期望的formbean。
大部分的情况可能是因为在form-bean中设置的name属性和action中设置的name属性不匹配所致。
换句话说,action和form都应该各自有一个name属性,并且要精确匹配,包括大小写。
这个错误当没有name属性和action关联时也会发生,如果没有在action中指定name属性,那么就没有name属性和action相关联。
一、单选题
面向对象设计的启发规则包括()。
•
•
•
•
二、多选题
项目管理小组一般由公司管理人员组成,主要职责如下()。
软件产业发展中的关键技术包括()。
•
•
面向对象设计总体上讲需要建立3种模型,他们是()。
•
模块的基本属性包括()。
•
影响可维护性的因素包括()。
详细说明书主要包括()。
在整个软件配置中只提供程序代码,其他如()等内部文档缺乏,那么会对软件维护造成很大的困难。
再工程模型的活动包括()。
三、判断题
过程、函数、子程序和宏等都不能可作为模块。
•
人机界面设计过程是一个选代过程。
类的集成度越低,越适合大型应用程序的开发。
•
需求分析是对软件需求实现的各个功能进行详细分析。
•
瀑布模型要求开发过程的每个阶段结束时要进行复审,复审通过了才能进行下一个阶段。
•
软件测试要坚持要求修改所有程序错误。
•
一个数据处理不一定是一个程序。
•
在软件维护过程中,降低病毒危害的两个方法是延长数据备份周期和提高杀毒软件的升级频率。
•
产品度量用于对软件产品进行评价,并在此基础上推进产品设计、产品制造和产品服务优化。
数据流条目就是说明数据流是来自哪里。
•。
第一章《软件工程概述》作业一、名词解释1.软件2.软件危机3.软件工程4.软件生存周期5.软件过程模型二、填空题1、在信息处理和计算机领域内,一般认为软件是、和。
2、软件生产的发展经历了时代、时代和时代,各时代的生产方式分别是、和。
3、软件生存周期的8个阶段分别是、、、、、、、。
4、软件工程是利用工程化的原理和方法来进行、和软件的一门学科。
5、描述软件开发过程中各种活动如何执行的模型称为模型。
6、瀑布模型适应需求可变的软件开发,只有到才能见到整个软件系统。
7、软件产品的生产主要是研制,软件产品的成本主要体现在上。
8、软件工程面临的问题有、、、。
三、单项选择题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、由于软件生产的复杂性和高成本,使大型软件的生成出现危机,软件危机的主要表现包括了下述【】方面。
①生产成本过高②需求增长难以满足③进度难以控制④质量难以保证A.①② B.②③ C.④ D.全部8、软件的主要结构和功能是在【】阶段决定的。
A.分析设计B.编程C.测试D.维护9、有关计算机程序功能、设计、编制、使用的文字或图形资料称为【】。
A.软件B.文档C.程序D.数据10、软件生成周期模型有多种,下列选项中,【】不是软件生存周期模型。
1.计算机软件具有哪些共同特点?它们和硬件的主要区别有哪些?(1)软件是一种逻辑实体,而不是具体的物理实体。
因此,它具有抽象性。
(2)软件的生产与硬件不同,软件是由开发或工程化而形成的,它没有明显的制造过程。
对软件的质量控制,必须立足于软件开发方面。
软件成为产品之后,其制造只是简单的复制而已。
(3)任何机械、电子设备在运行和使用过程中,其失效率大致遵循如图1-6所示的U型曲线(即浴盆曲线)。
软件的情况与此不同,它不存在磨损和老化问题。
然而,它存在退化问题,设计人员必须多次修改(维护)软件。
图1-7给出了软件故障率的理想曲线,图1-8给出了实际的软件故障率曲线。
故障率时间0t图1-6 硬件的故障率曲线示意图图1-7 软件的理想故障曲线故障率0时间t理想曲线实际曲线由于负作用造成的故障率提高图1-8 软件的实际故障率曲线(4) 软件的开发和运行往往受到计算机系统的限制,对计算机系统有着不同程度的依赖性。
为了解除这种依赖性,在软件开发中提出了软件移植的问题。
(5) 迄今为止,虽然有许多软件工具能够帮助我们自动生成一些软件代码、结构和框架,但是总体来说,软件的开发尚未完全摆脱手工的方式。
(6) 软件本身是复杂的。
软件的复杂性可能来自它所反映的实际问题的复杂性,也可能来自程序逻辑结构的复杂性。
(7)软件的成本相当昂贵。
软件的研制工作需要投入大量的、复杂的、高强度的脑力劳动,它投入的成本是比较高的。
(8)相当多的软件工作涉及社会因素。
许多软件的开发和运行涉及机构设置、体制运作及管理方式等问题,甚至涉及人们的观念和心理,这些因素直接影响到项目的成败。
(9)从市场上买到的软件,它本身就是一个完整的软件,而不能作为构件再组装成新的程序。
但目前已有大量支持“软件复用”的软件和中间件作为相对独立的构件。
2.什么是软件生命周期?面向对象与传统软件工程有何相同之处?计算机软件,从决定进行开发到最终退役所经历的一系列步骤与过程称为软件生命周期。
1-1 什么是软件危机?它有哪些典型表现?为什么会出现软件危机?软件危机:是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
这些问题绝不仅仅是不能正常运行的软件才具有的,实际上,几乎所有软件都不同程度地存在这些问题。
概括地说,软件危机包含下述两方面的问题:如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。
软件危机的典型表现:1)质量与效率矛盾2)用户需求的误解3)过程控制不严格4)可维护性与可重用性差5)重程序而轻文档6)人力成本的提高7)用户需求的不断提高软件危机产生的原因:在软件开发和维护的过程中存在这么多严重问题,一方面与软件本身的特点有关,一方面和软件开发与维护的方法不正确有关。
管理和控制软件开发过程相当困难。
1)软件较难维护2)软件专业人员对软件开发和维护的错误的认识和作法。
3)软件不同于一般程序,其显著特点是规模庞大,而且,程序的复杂性随着程序规模的增加呈指数上升。
4)软件专业人员对软件开发和维护的错误的认识和作法。
5)对用户要求没有完整准确的认识就匆忙着手编写程序是许多软件开发工程失败的主要原因之一。
6)在软件开发的不同阶段进行修改需要付出的代价是很不相同的。
1-3 什么是软件工程?它有哪些本质特性?怎样用软件工程消除软件危机? 软件工程的定义:计算机程序、方法、规则、相关的文档资料以及在计算机上运行程序时所必需的数据。
是指导计算机软件开发和维护的一门工程学科。
采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它。
软件工程的本质:软件工程就是为了经济地获得可靠的且能在实际机器上有效地运行的软件,而建立和使用完善的工程原理。
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、其他工程学科的影响
C、软件危机的出现 D、程序设计方法学的影响
7、由于软件生产的复杂性和高成本性,使大型软件的生存出现危机,软件危机的主要表现
包括了下述( D )方面。
①生产成本过高 ②需求增长难以满足 ③进度难以控制 ④质量难以保证
A、①② B、②③ C、④ D、全部
8、有关计算机程序功能、设计、编制、使用的文字或图形资料称为( B )。
A、软件 B、文档 C、程序 D、数据
9、( A )是计算机程序及其说明程序的各种文档。
A、软件 B、文档 C、程序 D、数据
10、以文档作为驱动,适合于软件需求很明确的软件项目的生存周期模型是( C )
A、喷泉模型 B、增量模型 C、瀑布模型 D、螺旋模型
11、从结构化的瀑布模型看,在它的生命周期中的八个阶段中,下面的几个选项中哪个环节
出错,对软件的影响最大( C )。
A、详细设计阶段 B、概要设计阶段 C、 需求分析阶段 D、 测试和运行阶段
13、软件开发模型是指软件开发的全部过程、活动和任务的结构框架。主要的开发模型有瀑
布模型、演化模型、螺旋模型、喷泉模型和智能模型。螺旋模型将瀑布模型和演化模型相结
合,并增加了___(1)_B__,它建立在__(2)__D__的基础上,沿着螺线自内向外每旋转一圈,
就得到(2)的一个新版本。喷泉模型描述了__(3)__A__的开发模型,它体现了这种开发方法创
建软件的过程所固有的___(4)D_和___A_(5)__的特征。
(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、开发过程不分段
14、软件工程方法学的目的是:使软件生产规范化和工程化,而软件工程方法得以实施的主
要保证是( C ).
A、硬件环境 B、软件开发的环境
C、软件开发工具和软件开发的环境 D、开发人员的素质
15、( A )是软件生存期中的一系列相关软件工程活动的集合,它由软件规格说明、
软件设计与开发、软件确认、软件改进等活动组成。
A、软件过程 B、软件工具 C、质量保证 D、软件工程
三、名称解释(每个4分,共20分)
1、软件
软件是计算机程序以及开发、使用和维护程序所需要的所有文档。 软件是包括程序、
数据及其相关文档的完整集合。
2、软件工程过程
.
精选
一个软件过程是一组引发软件产品生产的活动。
3、软件工程
软件工程即用工程、科学和数学的原则和方法研制、维护计算机软件的有关技术及方法,
其优点是以最小的代价开发高质量的软件并有效地维护它
4、软件生存周期
软件生存周期:一个软件从提出开发要求开始直到该软件报废为止的整个时期
5、软件生存周期模型
软件生存周期模型:描述软件开发过程中各种活动如何执行的模型。对软件开发提供强
有力的支持,为开发过程中的活动提供统一的政策保证,为参与开发的人员提供帮助和指导,
是软件生存周期模型化技术的基础,也是建立软件开发环境的核心
四、简答题(每小题6分,共36分)
1、软件发展经历了哪几个阶段?各有何特征?
软件的生产经历了三个阶段。即程序设计时代(1946—1956年)、程序系统时
代(1956—1968年)、软件工程时代(1968年至今)。
程序设计时代的特征:这个阶段的生产方式是个体手工劳动,使用的工具是机器语言、汇编
语言。
程序系统时代的特征:这个阶段的生产方式是作坊式的小集团合作生产,生产工具是高级语
言,开发方法仍旧靠个人技巧,由于大的程序需要合作,开始提出结构化方法。
软件工程时代的特征:开发技术有很大进步,但是未能获得突破性进展,软件价格不断上升,
没有完全摆脱软件危机。
2、什么是软件危机?产生的原因是什么?
软件危机是指软件开发技术的进步未能满足发展的要求。在软件开发中遇到的问题找不
到解决的办法,问题积累起来,形态尖锐的矛盾,导致了软件危机。
产生原因:
⑵ 软件规模越来越大,结构越来越复杂。
⑵软件开发管理困难而复杂。
⑶ 软件包开发费用不断增加。
⑷ 软件开发技术落后。
⑸ 生产方式落后,仍采用手工方式。
⑹ 开发工具落后,生产率提高缓慢。
.
精选
3、软件工程的性质、目标和内容是什么?
性质:是一门综合性交叉学科,它涉及计算机科学,工程科学,管理科学,数学等领域.。
目的:是成功建造一个大型软件系统,所谓成功是要达到以下几个目标:①付出较底的开发成
本;②达到要求的软件功能;③取得较好的软件性能;④开发的软件易于移植;⑤需要较低的维
护费用;⑥能按时完成开发任务,及时交付使用;⑦开发的软件可靠性高;
内容:是软件开发技术和开发管理两个方面.主要研究软件开发方法,软件开发过程,软件开发
工具和环境.在软件开发管理中,主要研究软件管理学,软件经济学,软件心理学
4﹑什么是软件生存周期?它有哪几个活动?
软件生存周期:一个软件从提出开发要求开始直到该软件报废为止的整个时期。
包括:可行性分析和项目开发计划,需求分析,概要设计,详细设计,编码,测试,维护
5、软件生存周期模型有哪些主要模型?
主要有:瀑布模型,增量模型,螺旋模型,喷泉模型,基于知识的模型,变换模型
6、软件工程基本原理的主要内容是什么?
1)用分阶段的生命周期计划严格管理2)坚持进行阶段评审3)实行严格的产品控制4)采
用现代程序设计技术5)结果应能清楚地审查6)开发小组的人员应该少而精7)承认不断
改进软件工程实践的必要性
7、什么是范型?3种主要范型是哪些?
通常把软件生命周期全过程中使用的一整套技术方法的集合称为方法学,
也称范型。三要素:方法、工具和过程