软件工程作业第一章
软件工程作业1

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

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

第一章习题1.1什么是计算机软件?软件的特点是什么?答:计算机软件(Computer Software,也称软件,软体)是指计算机系统中的程序及其文档,程序是计算任务的处理对象和处理规则的描述;文档是为了便于了解程序所需的阐明性资料。
程序必须装入机器内部才能工作,文档一般是给人看的,不一定装入机器。
软件的特点:1.软件是一种逻辑实体而不是有形的系统元件,其开发成本和进度难以准确的估算。
2.软件是被开发的或设计的,没有明显的制作工程,一旦开发成功,只需复制即可,但其维护的工作量大。
3.软件的使用没有硬件那样的机械磨损和老化问题。
1.2简述软件的分类,并举例说明。
答:软件分为系统软件,支撑软件和应用软件3类。
系统软件居于计算机系统中最靠近硬件的一层其他软件一般都通过系统软件发挥作用。
例如:编译程序,操作系统等。
支撑软件是支撑软件的开发和维护的软件。
例如:数据库管理系统,网络软件,软件工具,软件开发环境等。
应用软件是特定应用领域专用软件。
例如:工程/科学计算软件,嵌入式软件,产品线软件,Web应用软件,人工智能软件等。
1.3简述软件语言的分类,并举例说明。
答:软件语言是用于书写计算机软件的语言主要包括:需求定义语言,功能性语言,设计性语言,实现性语言和文档语言。
需求定义语言用以书写软件需求定义,软件需求定义是软件功能需求和非功能需求的定义性描述。
软件功能需求刻画“做什么”,软件非功能需求刻画诸如功能性限制、设计限制、环境描述、数据预通信规程以及项目管理等。
功能性语言用以书写软件功能规约,软件功能规约是软件功能的严格而完整的陈述。
软件功能规约通常只刻画软件系统“做什么”的外部功能,而不涉及系统“如何做”的内部算法,因此,功能性语言通常又称为功能规约语言。
设计性语言用以书写软件设计规约。
软件设计规约是软件设计的严格而完整的陈述。
一方面,它是软件功能规约的算法性细化,刻画了软件“如何做”的内部算法;另一方面,它又是软件实现的依据从。
11-软件工程第一章作业

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相关联。
软件工程概论第一次作业

第一章《软件工程概述》作业一、名词解释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章例题分析与解答一、填空题1.软件与物质产品有很大的区别,软件是一种____逻辑___产品。
2.软件工程是一门综合性交叉学科,计算机科学着重于理论和原理,软件工程着重于___建造一个软件系统____。
3.概要设计主要是把各项功能需求转换成系统的__体系结构______。
4.最基本、应用广泛、以文档为驱动、适用于开发功能明确的软件项目生存期模型是__瀑布模型_____。
5.简单实用、应用广泛、技术成熟的开发方法是__结构化方法______。
二、选择题1.同一软件的大量软件产品的生产主要是通过( B )而得到。
A.研究B.复制C.开发D.研制2.作坊式小团体合作生产方式的时代是( C )时代。
A.程序设计B.软件生产自动化C.程序系统D.软件工程3.软件工程与计算机科学性质不同,软件工程着重于( C )。
A.理论研究B.原理探讨C.建造软件系统D.原理的理论4.将每个模块的控制结构转换成计算机可接受的程序代码是( A )阶段的任务。
A.编码B.需求分析C.详细设计D.测试5.软件生存周期中时间最长的是( D )阶段。
A.需求分析B.概要设计C.测试D.维护一、填空题答案1.逻辑2.建造一个软件系统3.体系结构4.瀑布模型5.结构化方法二、选择题答案1.B2.C3.C4.A5.D第1章自测题及参考答案一、名称解释1.软件2.文档3.软件工程4.软件生存周期5.软件工程过程6.软件生存周期模型7.软件开发方法8.软件工具二、填空题1.构成一个完整计算机系统的两部分是硬件与_____软件___。
2.程序设计时代的生产方式是___个体手工劳动_____。
3.软件工程涉及到几个学科,它是一门__综合性交叉___学科。
4.软件开发划分的各阶段任务尽可能独立,同一阶段任务性质尽可能_____相同___。
5.将软件生存周期各个活动规定为依线性顺序联接的若干阶段的模型是_瀑布_______模型。
6.喷泉模型是一种以用户需求为动力,以____对象___为驱动的模型。
《软件工程》作业及答案

《软件工程》作业第一章1.什么是软件危机,它有哪些典型表现?答: 软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
概括地说,软件危机包含下述两方面的问题:如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。
软件危机典型表现:对软件开发成本和进度的估计常常很不准确。
用户对“已完成的”软件系统不满意的现象经常发生。
软件产品的质量往往靠不住。
软件常常是不可维护的。
软件通常没有适当的文档资料。
软件成本在计算机系统总成本中所占的比例逐年上升。
软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。
产生软件危机的原因:一方面与软件本身的特点有关,另一方面也和软件开发与维护的方法不正确有关。
软件不同于硬件,它是计算机系统中的逻辑部件而不是物理部件。
管理和控制软件开发过程相当困难。
软件是规模庞大,而且程序复杂性将随着程序规模的增加而呈指数上升。
目前相当多的软件专业人员对软件开发和维护还有不省糊涂观念,在实践过程中或多或少地采用了错误的方法和技术,这是使软件问题发展成软件危机的主要原因。
2.简述产生软件危机的原因和解决的思路。
答:软件危机产生的原因一方面与软件本身的特点有关,另一方面,是与已有软件开发、维护的方法不正确有密切关系。
解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。
即采用工程化的原则和方法组织软件开发是摆脱软件危机的一个主要出路。
3.什么是软件工程?它有哪些本质特性?答: 软件工程是指导计算机软件开发和维护的一门工程学科。
采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它。
软件工程本质特性:1、软件工程关注于大型程序的构造;2、软件工程的中心课题是控制复杂性;3、软件经常变化;4、开发软件的效率非常重要;5、和谐地合作是开发软件的关键;6、软件必须有效地支持它的用户;7、在软件工程领域中是由具有一种文化背景的人替具有另一种文化背景的人创造产品。
(完整word版)软件工程(第五版)--习题及答案--第一章

A、缺乏支持原型开发的工具
B、要严格控制原型构造的迭代
C、终端用户对原型不能理解
D、软件的测试和文档更新困难
12、螺旋模型是一种将瀑布模型和(A)结合起来的软件开发模型。
A、增量模型B、专家系统C、喷泉模型D、变换模型
13、在软件生产的程序系统时代由于软件规模扩大和和软件复杂性提高等原因导致了(A)。
4、软件生命周期概念对软件的开发有哪些指导作用。
答:软件生命周期是软件工程的一个重要的概念。把整个软件生命周期划分为若干个较小的阶段,每个阶段都有相对独立的任务和完成任务的步骤和方法,然后逐步完成各个阶段的任务,这有利于软件开发过程的组织和管理,从而降低了整个软件开发过程的困难程度,从而使规模庞大、结构复杂和管理复杂的软件开发变得容易控制和管理。
答:软件包括程序、数据及其相关文档的完整集合。其中,程序是按事先设计的功能和性能要求执行的指令序列;数据是使程序能够正确地处理信息的数据结构;文档是与程序开发、维护和使用有关的图文资料。软件包括程序,程序只是软件的一部分。
2、简述软件危机产生的原因以及避免的方法。
答:软件危机的产生有两方面因素,一方面与软件本身的抽象性和复杂性有关;另一方面则与软件开发和维护过程中使用的技术和方法有关,这是主观原因。
5、分析瀑布模型和螺旋模型的异同,比较它们的适用场合。
答:瀑布模型是线性模型,是整体开发模型,文档驱动的模型,每一阶段必须完成指定的文档,需求明确的中、小型软件开发,不适宜需求模糊或多变的应用软件开发;螺旋模型是典型迭代模型,是风险驱动模型,可用于面向对象开发,适宜风险较大的大型软件开发。
7、(√)软件开发过程中,一个错误发现得越晚,为改正它所付出的代价就越大。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1-1什么是软件危机?它有哪些典型表现?为什么会出现软件危机?
软件危机:在计算机软件的开发和维护过程中所遇到的一系列严重问题。
典型表现:软件总是超出预算、落后于进度表,而且产品质量不可靠、维护困难等。
危机原因:
1、软件受其自身特点的影响,生产过程不象硬件那样规范,受人的因素和外界影响很大,在软件生产的各阶段都会引入不同程度的错误,造成不能预期完成任务,致使成本上升,甚至导致软件失败。
2、主客观不相适应。
●客观上:软件规模增大、功能要求越来越复杂,需求不断变化等;
●主观上:传统的个体化开发观念和方法的影响,无开发过程指导,无开发过程管理;由于主客观矛盾,必然产生软件质量差、开发超期、超预算、维护困难等现象。
1-3 什么是软件工程?它有哪些本质特性?怎样用软件工程消除软件危机?
►基本思想:是强调在软件开发过程中应用工程化原则,解决软件的整体质量较低、最后期限和费用没有保证等问题。
►软件工程定义:是指导计算机软件开发和维护的一门工程学科。
采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它.
►软件工程的根本在于提高软件的质量与生产率,最终实现软件的工业化生产。
本质特性:P6
消除软件危机:软件工程基本原理7条。
1-6 什么是软件过程?它与软件工程方法学有何关系?
►软件过程:是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任
务的工作步骤。
►过程定义了运用方法的顺序、应该交付的文档资料、为保证软件质量和协调变化所需要采取的管理措施,以及标志软件开发各个阶段任务完成的里程碑。
关系:是软件工程方法学包含3个要素(方法、工具和过程)之一。
1-7 什么是软件生命周期模型?试比较瀑布模型、(快速)原型模型、增量模型和螺旋模型、喷泉模型的优缺点,说明每种模型的适用范围。
生命周期模型规定了把生命周期划分成哪些阶段及各个阶段的执行顺序,因此,也称为过程模型。
瀑布模型:它将软件生命周期划分为需求分析、软件设计、程序编写、软件测试和运行维护等基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。
优点:文档驱动。
强迫开发人员采用规范的方法;严格地规定了每个阶段必须提交的文档;要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。
遵守瀑布模型的文档约束,将使软件维护变得比较容易一些。
缺点:系统可能不满足需求,用户仅仅通过写在纸上的静态的规格说明,很难全面正确地认识动态的软件产品
适用范围:软件需求明确。
原型模型:在初步调查了解的基础上,提供快速的软件建造工具,开发出一个功能并不十分完善的可实际运行的系统,即原型。
需求分析入手快速、表达直观、容易交流。
重点解决瀑布模型需求分析入手难的问题。
优点:关注满足需求。
缺点:快速原型的引入主要是为了确立明确的功能需求而设。
它的主要构思是通过一个简单的原型,从系统的角度引出和明确客户的期盼和愿望。
适用范围:需求不确定,如交互式系统的设计,加速软件开发过程,节约软件开发成本。
增量模型:它主要强调的是每一步软件的开发都建立在前一步软件开发的基础之上。
优点:开发早期反馈及时,使用户有较充裕的时间学习和适应新产品;
易于维护,使用增量模型时开发软件和扩充软件功能(完善性维护)没有本质区别。
缺点:采用增量模型比采用瀑布模型和快速原型模型需要更精心的设计,需要开放式结构, 设计非常灵活而且足够开放,才能支持增量模型。
适用范围:对于需求复杂的系统,采用分块开发,逐步集成的开发策略。
交付日期很重要,会有多个版本,易扩展。
螺旋模型:将瀑布模型和快速原型模型结合起来,使用原型及其他方法来尽量降低风险,在每个阶段之前都增加了风险分析过程的快速原型。
优点:保留了瀑布模型按阶段逐步进行开发和阶段末评审的优点,吸收了原型模型的思想,增加并重视方案的风险分析与补救工作,对保证产品质量是十分有利的。
缺点:风险分析人员需要有经验且经过充分训练,能准确地分析风险,否则将会带来更大的风险。
适用范围:螺旋模型强调风险分析,但要求许多客户接受和相信这种分析是不容易的,因此,这种模型往往适应于内部的大规模软件开发。
喷泉模型:以面向对象的软件开发方法为基础,以用户需求为动力,以对象作为驱动的模型。
它适合于面向对象的开发方法。
模型的优点:
•喷泉模型不像瀑布模型那样,需要分析活动结束后才开始设计活动,设计活动结束后才开始编码活动。
•该模型的各个阶段没有明显的界限,开发人员可以同步进行开发。
其优点是可以提高软件项目开发效率,节省开发时间。
模型的缺点:
•由于喷泉模型在各个开发阶段是重叠的,因此在开发过程中需要大量的开发人员,因此不利于项目的管理。
适用范围:问题复杂,用户需求易变,随时加入各种信息。
1-8为什么说喷泉模型较好地体现了面向对象软件开发过程无缝和迭代的特性?
由于在整个开发过程中都使用统一的概念和表示符号“对象”,整个开发过程都是吻合一致的、“无缝”连接的,这自然就很容易实现各个开发步骤的多次反复迭代,达到认识的逐步深化。
补充:
什么是软件生命周期?与软件过程有何区别和联系?
答:
(1)软件生存周期:软件产品从定义到开发、经过使用和维护,直到最终被弃用;
软件过程:是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。
(2)两者指同一个事情,只是表达问题的角度不同:
软件过程:关注产品加工的活动集合、顺序和方法论;
生命周期:关注软件产品从诞生到消亡的生命历程,实质内容也就是软件过程;
因此软件过程=软件生存周期,“软件生存周期模型”也称为“软件过程模型”或“软件开发模型”。
[此文档可自行编辑修改,如有侵权请告知删除,感谢您的支持,我们会努力把内容做得更好]。