《软件工程》作业第一章1.什么就是软件危机,它有哪些典型表现?答: 软件危机就是指在计算机软件得开发与维护过程中所遇到得一系列严重问题。
概括地说,软件危机包含下述两方面得问题:如何开发软件,以满足对软件日益增长得需求;如何维护数量不断膨胀得已有软件。
软件危机典型表现:对软件开发成本与进度得估计常常很不准确。
用户对“已完成得”软件系统不满意得现象经常发生。
软件产品得质量往往靠不住。
软件常常就是不可维护得。
软件通常没有适当得文档资料。
软件成本在计算机系统总成本中所占得比例逐年上升。
软件开发生产率提高得速度,远远跟不上计算机应用迅速普及深入得趋势。
产生软件危机得原因:一方面与软件本身得特点有关,另一方面也与软件开发与维护得方法不正确有关。
软件不同于硬件,它就是计算机系统中得逻辑部件而不就是物理部件。
管理与控制软件开发过程相当困难。
软件就是规模庞大,而且程序复杂性将随着程序规模得增加而呈指数上升。
目前相当多得软件专业人员对软件开发与维护还有不省糊涂观念,在实践过程中或多或少地采用了错误得方法与技术,这就是使软件问题发展成软件危机得主要原因。
2.简述产生软件危机得原因与解决得思路。
答:软件危机产生得原因一方面与软件本身得特点有关,另一方面,就是与已有软件开发、维护得方法不正确有密切关系。
解决软件危机,既要有技术措施(方法与工具),又要有必要得组织管理措施。
即采用工程化得原则与方法组织软件开发就是摆脱软件危机得一个主要出路。
3.什么就是软件工程?它有哪些本质特性?答: 软件工程就是指导计算机软件开发与维护得一门工程学科。
采用工程得概念、原理、技术与方法来开发与维护软件,把经过时间考验而证明正确得管理技术与当前能够得到得最好得技术方法结合起来,以经济地开发出高质量得软件并有效地维护它。
软件工程本质特性:1、软件工程关注于大型程序得构造;2、软件工程得中心课题就是控制复杂性;3、软件经常变化;4、开发软件得效率非常重要;5、与谐地合作就是开发软件得关键;6、软件必须有效地支持它得用户;7、在软件工程领域中就是由具有一种文化背景得人替具有另一种文化背景得人创造产品。
4.软件工程就是如何用来消除软件危机得?软件工程就是从技术与管理两个方面来研究如何更好地开发与维护计算机软件,从源头上消除软件危机。
5.假设您就是某软件开发企业得CEO,当您把教材P、4得图1、1给手下得软件工程师们瞧,同时告诉她们应及早发现并改正错误得重要性时,有人不以为然,认为要求在错误进入软件前就发现并清除它们就是不现实得,并举例说:“如果一个故障就是编码错误造成得,那么又如何能够在设计阶段就发现并清除呢?”那您应该如何说服?首先要对错误造成工作得延误或一些问题表示歉意。
错误就是难免,关键就是要虚心接受,在以后工作中要更加认真,避免错误机率降到最低。
在编码过程中要,首先要在头脑清醒,要保持工作前有足够得睡眠。
这样错误机会也会降小。
在编程结束后,首先要验证,就是否能正常运行或工作。
再以后得工作更要虚心,认真,保证这种机会降到最低6.简述软件得定义。
软件=程序+ 数据+ 文档7.软件工程得目得就是什么?为高质量得软件开发提供一个科学得体系框架。
8.什么就是软件工程方法学?软件工程就是一种什么样得技术?包括哪三大要素?分为哪三个分支?软件工程方法学就就是指在软件生命周期全过程中使用得一整套管理与开发技术方法得集合。
目前,使用最广泛得软件工程方法学分别就是传统方法学与面向对象方法学。
软件工程作为一种层次化得技术,有方法、工具与过程三大要素,并由于其涉及学科内容得极为广泛,而分为三个分支:软件开发技术、软件项目管理技术、软件质量管理技术。
9.简述软件工程得基本原理。
软件工程有7条基本原理:1.严格按照软件生命周期计划进行管理2.坚持进行阶段评审3.实行严格得产品控制4.采用先进得程序设计技术5.结果应能清楚得审查6.开发小组成员应少而精7.承认不断改进软件工程实践得必要性10.软件工程得基本开发原则有哪些?软件工程得基本开发原则有:1.模块化2.抽象与信息隐蔽3.模块得高内聚与低耦合4.确定性5.一致性6.完备性11.构成软件工程得基本元素有哪些?除了前面给出得软件工程三大要素,还应该包括控制与质量保证。
这里得控制,即规模控制、成本控制、复杂性控制等。
12.什么就是软件过程?它与软件工程方法学有何关系?软件过程就是指为了获得高质量软件产品,在软件工具支持下,由软件人员完成得一系列软件工程活动。
软件过程规定了开发软件所需完成得各项任务步骤。
过程步骤得设定与软件生命周期、生命周期模型、软件开发工具,以及参与开发得人员等诸方面因素有关。
13.什么就是软件生命周期?什么就是软件生命周期模型?答: 软件如同自然界任何事物一样,都有其孕育、诞生、成长、成熟、衰亡得生存过程。
软件得这一过程,称为软件生命周期。
软件生命周期模型也称软件开发过程模型,就是为了解决产业环境中得实际问题,而提出得开发策略。
就是反映整个软件生命期中,系统开发、运行、维护等实施活动得一种结构框架。
14.简述软件生命周期方法学得途径,以及划分阶段步骤得目得与实质。
软件生命周期方法学就是软件工程得传统途径,划分阶段步骤得目得与实质就是:控制开发工作得复杂性,通过有限步骤,把抽象逻辑概念,转化为具体物力实现。
15.试比较瀑布模型、快速原型模型、增量模型与螺旋模型得优缺点,说明它们各自得适用范围。
1.瀑布模型。
瀑布模型广为人知与历史悠久,其优势就是规范及文档驱动得方法。
但问题就是,往往不能够真正满足用户得需求。
适用于传统软件工程领域得结构化开发。
2.原型模型。
就是为了克服瀑布模型得缺点而提出来得。
通过快速构建一个在机器上可运行得原型系统,让用户试用原型,并收集反馈意见得办法,来获取用户真实得需求。
3.螺旋模型。
螺旋模型适用于大型软件项目,比起之前得其它模型而言,有其一定得优越性,但这些优越性并不就是绝对得。
主要体现在对开发人员得风险评估经验与专门知识得要求较高。
如果项目风险较大,而开发人员得水平较低,不能准确得识别与分析风险,则势必造成重大损失。
4.增量模型。
具有在软件开发早期阶段使投资获得明显回报与交易维护得优点,但就是要求软件具有开放得结构。
第二章1.在软件开发得早期阶段,为什么要进行可行性研究?其目得与任务各就是什么?可行性研究得目得就是用最小得代价,在尽可能短得时间内确定问题就是否可解决,以及就是否值得解决。
可行性研究得任务不就是解决问题,而就是确定就是否可解/值得解。
2.应该从哪些方面研究目标系统得可行性?主要从以下几个方面进行可行性研究:1、技术可行性。
以现有技术,能否在预定时间内完成该系统开发。
2、经济可行性。
通过成本-效益分析,估算系统得整体经济效益就是否满足要求。
3、操作可行性。
分析系统得运行方式、操作规程就是否适应用户应用需要。
4、社会可行性。
分析系统在法律、社会、市场等方面得认可度。
3.可行性研究有哪些工作步骤?(1) 复查定义,确定系统规模与目标。
(2) 研究老系统(3) 导出高层逻辑模型(conceptual design)(4) 重新定义(5) 导出多种解法(6) 推荐行动方针(7) 开发计划(粗略)(8) 审查、存档4.简述系统流程图在可行性研究中得作用。
系统流程图就是概括得描述物理系统得传统工具。
系统流程图反映得就是信息在系统各部分间流动得情况。
系统流程图可以帮助了解与分析系统,以概括得方式表达对系统得认识,并可以描述未来物理系统得概貌。
5.简述数据流图在可行性研究中得作用与用途。
数据流图在可行性分析中可以帮助分析与描绘数据在软件中流动与被处理得逻辑过程,用图形得方式描述系统得逻辑功能,就是系统分析员与用户之间理想得通信工具。
6.简单描述数据字典但内容与定义数据得方法。
数据字典主要由下列4种元素定义组成:1.数据流2.数据流分量3.数据存储4.处理除了数据定义外,数据字典还应包含一些关于数据得其它信息。
定义数据得方法通常采用自顶向下分解得方式。
并由顺序、选择、重复三种基本数据元素类型组成数据。
7.说明软件计划得内容与目标。
软件计划得内容=项目任务范围+ 环境资源+ 工作量+ 进度软件计划得目标就是为了提供一个框架,以便于管理者对资源、成本与进度等进行合理得估算。
8.什么就是软件范围?定义软件范围需要哪些信息?软件范围就就是在技术与管理层面上都就是无二义性与可理解得项目范围,就是软件开发各阶段得工作依据。
定义软件范围需要以下信息:a、与用户、总体目标及利益相关得问题。
b、有利于系统分析员理解得问题。
c、集中于交流效果得问题。
9.简述软件开发环境资源得三个层次。
软件开发环境资源由三个层次构成:开发环境、软件构件以及最重要得资源——人。
10.软件环境资源得特征有哪些?它们对制定软件计划都有哪些意义?每一类资源都有四个特征:资源描述、可用性说明与资源提供得时间、资源使用得延续时间。
可以为制定软件计划估算软件开发所需得资源。
11.软件计划中,安排软件开发进度主要可以用哪些工具?都有哪些优缺点?编制进度计划得常用工具主要有甘特图与网络计划法。
甘特图得优点就是简单,能动态地反映开发进展;缺点就是难以反映多个任务间得逻辑关系。
网络计划法则恰好弥补了甘特图得缺点,最适合反映多个工作之间得逻辑关系。
12.主要得成本估计技术有哪些?其依据得主要就是什么?主要有,代码行技术。
就是一种基于规模得分解估算:D=åf(vi)以及基于问题得分解估算:EV=(Sopt+4Sm+Spess)/6还有功能点技术。
这种技术以功能点(FP)为单位,度量软件得规模。
由于项目本身得复杂性,因此,成本估计技术主要采用“分而治之”得分解技术对软件项目进行估算。
13.为什么说成本估计就是不可能精准得?那就是由于太多得变化因素——人员、技术、环境、策略、复杂性等等,使得成本估算永远不可能精确。
14.进行成本/效益分析得方法主要有哪些?常用成本/效益分析得方法主要有:(1) 货币得时间价值(2) 投资回收期(3) 纯收入(4) 投资回收率15.软件计划得主要内容有哪些?16.如何对制定完成得软件计划进行复审?为什么要复审?软件计划得复审通常涉及有关软件工作范围与软硬件资源问题等。
复审应该邀请用户参加,用户可提出建议,并与开发人员最终商定内容。
复审内容分为技术与管理两个方面:技术方面需要考虑得问题有:1、系统得任务就是否合理;2、系统得给您复杂性就是否与开发成本、进度以及风险一致;3、系统规格说明书就是否足够充分;4、系统性能要求就是否恰当管理方面需要考虑得问题有:1、计划中描述得工作范围就是否符合用户需求2、计划中对资源得描述就是否有效、合理?3、计划中系统得开发成本与进度要求就是否合理?4、计划中人员得安排就是否合理?5、系统开发存在哪些风险?复审可以尽早发现错误,复审就是软件质量保证得重要措施。