软件概论
软件工程(概论)习题与答案

一、单选题1、软件产品与物质产品有很大的区别,软件产品是一种()产品。
A.有形B.消耗C.逻辑D.文档正确答案:C2、在()年的NATO会议上,软件工程的术语被首次提出。
A.1966B.1968C.1970D.1972正确答案:B3、软件开发中实现映射的基本手段是()A.抽象B.分层C.隔离D.建模正确答案:D4、下列哪项不属于软件工程框架的三元组。
()A.目标B.范围C.原则D.活动正确答案:B5、下列哪个不是软件维护的类型。
()A.完善性维护B.纠错性维护C.适应性维护D.更新性维护正确答案:D6、只有高水平的(),才能生产出高质量的软件产品。
A.软件开发技术B.软件开发工具C.软件工程管理D.项目开发经验正确答案:C二、多选题1、下列关于软件的说法正确的是()A.软件是通过定制进而生产制造出来的B.软件没有磨损老化问题。
C.软件开发的成本很高D.软件开发和运行必须依赖计算机环境正确答案:B、C、D2、下列软件属于系统软件的是()A.操作系统B.编译器C.中间件D.浏览器正确答案:A、B3、下述软件属于支撑软件的是()A.财务管理软件B.编译器C.中间件D.数据库正确答案:C、D4、下述软件属于应用软件的是()A.财务管理软件B.数据库C.编译器D.浏览器正确答案:A、D5、软件工程是一门交叉性学科,下列哪些学科是软件工程涉及的?A.数学B.计算机科学C.管理科学D.工程科学正确答案:A、B、C、D6、下列属于软件模型的是()A.概念模型B.设计模型C.实现模型D.部署模型正确答案:B、C、D7、软件需求阶段所要完成的任务包括()A.需求获取B.需求完善C.需求定义D.需求规约正确答案:A、C、D三、填空题1、软件工程概念的提出是为了解决()。
正确答案:软件危机2、软件设计阶段包括()和()两个阶段。
正确答案:总体设计、详细设计3、软件开发是实现()的概念和处理逻辑到()的概念和处理逻辑的映射。
软件工程概论期末复习题

软件工程概论期末复习题Document number【980KGB-6898YT-769T8CB-246UT-18GG08】期末总复习1.选择、判断、简答2.判定树和判定表3.用例图、类图、对象模型、顺序图等4.McCabe环路复杂性度量;5.黑盒测试和白盒测试6.数据流图7.成本效益分析习题一、判定树和判定表1.请用判定表画出以下问题的行为逻辑。
人们往往根据天气情况决定出门时的行装;天气可能下雨,也可能不下雨;天气可能变冷,也可能不变冷。
如果天气要下雨,出门时带上雨伞;如果天气变冷,出门时要穿上大衣。
2. 某厂对部分职工重新分配工作的政策是:年龄在20岁以下者,初中文化程度脱产学习,高中文化程度当电工。
20岁至40岁之间,中学文化程度,男性当钳工,女性当车工,大学文化程度都当技术员。
年龄在40岁以上者,中学文化程度当材料员,大学文化程度当技术员。
请用结构化语言﹑判定表或判定树描述上述问题的加工逻辑。
二、McCabe环路复杂性度量某程序的描述如下:if (( a > b && i > 10)|| (a < b && i <= 5) ) k = a;else k = b;1)画出单个条件的嵌套的分支结构;(5分)2)计算该结构的McCabe环路复杂性度量;(5分)3)为完成基本路径测试,求它的一组独立的路径。
(5分)三、测试:变量的命名规则一般规定如下:变量名的长度不多于30个字符,第一个字符必须为英文字母,其他字母可以是英文字母、数字以及下划线的任意组合。
请用等价分类法设计测试用例。
四、数据流图某教务系统具备以下功能,输入用户ID号及口令后,经验证进入教务管理系统,根据请求进行分类处理,可进行如下功能的处理:1)查询成绩:查询成绩以及从名次表中得到名次信息。
2)学籍管理:根据学生总成绩确定名次信息。
3)成绩处理:处理单科成绩并输入成绩表中。
软件工程概论5 :需求分析-结构化方法-带习题

• 词条描述 :对于在数据流图中每一个 被命名的图形元素,均加以定义,其内 容有:名字,编号,描述,定义,其它 等
(1)数据流词条描述
• 数据流名: • 说明:简要介绍作用即它产生的原因和结
果 • 数据流来源:来自何方 • 数据流去向:去向何处 • 数据流组成:数据结构 • 数据量流通量:数据量,流通量
(2)数据元素词条描述
• 数据元素名: • 类型:数字(离散值,连续值),文字(编码
类型)
• 长度: • 取值范围: • 相关的数据元素及数据结构:
(3)数据文件词条描述
• 数据文件名: • 简述:存放的是什么数据 • 输入数据: • 输出数据: • 数据文件组成:数据结构 • 存储方式:顺序,直接 • 存取频率:
• 需求分析的任务就是借助于当前系统的 逻辑模型导出目标系统的逻辑模型,解 决目标系统的 “做什么” 的问题。
• 通常软件开发项目是要实现目标系统的 物理模型
• 目标系统的具体物理模型是由它的逻辑 模型经实例化,即具体到某个业务领域 而得到的
需求分析的过程
(1) 问题识别
从系统的角度来理解和确认软件软件范围 确定对目标系统的综合要求,即软件的需求 提出这些需求实现条件,以及需求应达到的标准
• IF_THEN_ELSE • CASE_OF • WHILE_DO • REPEAT_UNTIL等组成。
• 是一种介于自然语言和形式化语言之间 的语言
• 语言的正文用基本控制结构进行分割, 加工中的操作用自然语言短语来表示
• 其基本控制结构有三种:
– 简单陈述句结构:避免复合语句; – 重复结构:WHILE_DO 或
• 存折=户名+所号+帐号+开户日+性质+(印 密)+1{存取行}50
软件工程概论知识点

软件工程概论知识点软件工程是研究和应用计算机科学原理、方法和工具来开发和维护高质量的软件系统的工程学科。
它涉及到软件开发的整个生命周期,从需求分析到设计、编码、测试、部署和维护。
以下是软件工程概论的一些重要知识点。
1. 软件开发生命周期软件开发生命周期是软件工程中重要的概念,它包含了软件开发的各个阶段和活动。
常见的软件开发生命周期模型包括瀑布模型、迭代模型、螺旋模型等。
每个模型包括不同的阶段,如需求分析、设计、编码、测试、部署和维护等。
了解软件开发生命周期有助于理解软件开发过程中的活动和任务。
2. 软件需求工程软件需求工程是软件开发的第一步,它涉及到收集、分析、定义和记录软件系统的需求。
需求工程包括需求获取、需求分析、需求规格和需求验证等过程。
通过需求工程,软件开发团队可以确保对用户需求的准确理解,为软件系统的设计和开发提供清晰的目标和指导。
3. 软件设计原则软件设计是软件开发的关键环节,它决定了软件系统的结构、功能和性能。
软件设计原则是指导软件设计过程的一些基本原则,如单一职责原则、开闭原则、里氏替换原则、依赖倒置原则等。
遵循这些原则可以提高软件系统的可维护性、可扩展性和可重用性。
4. 软件开发方法和工具软件开发方法是根据软件开发生命周期的需求,结合特定的软件开发模型,选择合适的方法和工具来开发软件系统。
常见的软件开发方法包括敏捷开发、结构化开发和面向对象开发等。
软件开发工具包括集成开发环境、版本控制工具、测试工具等。
5. 软件质量保证软件质量保证是确保软件系统满足用户需求和规定标准的一系列活动。
软件质量保证包括软件测试、代码审查、性能优化和配置管理等。
通过软件质量保证,可以降低软件系统的缺陷率,提高软件的可靠性和可用性。
6. 软件项目管理软件项目管理是指对软件项目进行规划、组织、协调和控制的一系列活动。
软件项目管理包括项目计划、需求管理、进度管理、风险管理和团队管理等。
有效的软件项目管理可以提高软件项目的成功率和开发效率。
软件工程概论课后答案解析

第1章软件与软件工程的概念1、1 举出您所知道的应用软件的例子。
办公软件、游戏软件、财务软件、银行软件、人事管理软件、工资管理软件、学籍管理软件等。
1、2 认为“软件就就是程序,软件开发就就是编程序。
”这种观点就是否正确?为什么?认为“软件就就是程序,软件开发就就是编程序。
”这种观点就是错误的。
首先,软件就是计算机系统中与硬件相互依存的另一部分,它就是包括程序,数据及其相关文档的完整集合,程序只就是软件的组成部分之一;其次,在软件开发中,编程只就是软件开发过程的一个阶段。
1、3 如果将软件开发比作高楼大厦的建造,可以将软件的设计比作什么?可以将软件的设计比作建筑设计,软件设计的成果相当于建筑设计的设计图纸。
1、4 什么就是软件危机?它有哪些典型表现?为什么会出现软件危机?软件危机:软件危机就是指在计算机软件的开发与维护过程中所遇到的一系列严重问题。
典型表现:(1)对软件开发成本与进度的估计常常很不准确。
(2)用户对“已完成的”软件系统不满意的现象经常发生。
(3)软件产品的质量往往靠不住。
(4)软件常常就是不可维护的。
(5)软件通常没有适当的文档资料。
(6)软件成本在计算机系统总成本中所占的比例逐年上升。
(7)软件开发生产率提高的速度,既跟不上硬件的发展速度,也远远跟不上计算机应用迅速普及深入的趋势。
产生软件危机的原因:除了软件本身的特点,其原因主要有以下几个方面:(1) 缺乏软件开发的经验与有关软件开发数据的积累,使得开发工作计划很难制定。
(2) 软件人员与用户的交流存在障碍,使得获取的需求不充分或存在错误。
(3) 软件开发过程不规范。
如,没有真正了解用户的需求就开始编程序。
(4) 随着软件规模的增大,其复杂性往往会呈指数级升高。
需要很多人分工协作,不仅涉及技术问题,更重要的就是必须有科学严格的管理。
(5) 缺少有效的软件评测手段,提交给用户的软件的质量不能完全保证。
1、5 什么就是软件工程?软件工程就是指导计算机软件开发与维护的工程学科。
软件工程概论基础概念

软件的概念:软件是能够完成预定功能和性能,并对相应数据进行加工的程序和描述程序及其操作的文档。
(它是包括程序,数据及其相关文档的完整集合。
)软件= 程序+数据+文档程序= 算法+数据结构软件危机:指在计算机软件的开发和维护过程中,所遇到的一系列严重问题。
软件危机主要包括的问题(两方面):①如何开发软件,以满足对软件日益增长的需求。
②如何维护数量不断膨胀的已有软件。
软件工程:① 把系统的、规范的、可度量的方法应用于软件的开发、运行和维护的过程,即将工程应用于软件中。
②对① 中提到的各种方法的研究。
软件工程包括“管理”和“技术”两方面内容:管理——对人、财、物的合理使用和配置;技术——指软件开发中采用的方法、工具和过程。
软件工程方法学三要素:工具、方法和过程。
软件工程目标:在给定成本、进度的前提下,开发出具有可修改性、有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可追踪性、可移植性、可互操作性并满足用户需求的软件产品。
软件工程原则:在软件开发过程中,为了达到软件开发目标,必须遵循下列原则:1.抽象2.信息隐藏3.模块化4.局部化5.一致性6.完整性7.可验证性软件生命周期:软件产品从形成概念开始,经过开发、运行和维护直到退役的全过程称为软件生命(存)周期。
软件生命周期组成:包括软件定义、软件开发、软件运行与维护三部分。
软件过程:1.为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。
2.软件过程是软件工程三要素之一。
3.通常用软件生命周期模型来描述。
软件生命周期模型,又称软件开发模型/软件过程模型/软件工程范型。
指软件项目从需求定义直至软件经使用后废弃为止,跨越整个生存周期的系统开发、运作和维护所实施的全部过程、活动和任务的结构框架。
瀑布模型优点:可强迫开发人员采用规范的方法;严格地规定了每个阶段必须提交的文档;要求每个阶段的所有产品都必须经过质量保证小组的仔细验证。
软件工程概论知识点汇总

软件工程概论知识点汇总软件工程概论知识点汇总第一章软件工程概述1. 软件工程定义及概念2. 软件工程的历史发展3. 软件开发生命周期模型a. 瀑布模型b. 迭代模型c. 增量模型d. 螺旋模型e. 敏捷开发模型第二章需求分析与管理1. 需求工程的基本概念2. 需求获取与分析方法3. 需求规格说明书4. 需求变更与配置管理第三章软件设计与架构1. 结构化设计方法2. 面向对象设计方法3. 设计模式及应用4. 软件架构设计与选择第四章软件编码与测试1. 编码规范与风格2. 测试方法与策略3. 单元测试与集成测试4. 软件质量保证与评估第五章软件项目管理1. 软件项目组织与人力资源管理2. 软件项目计划与进度管理3. 风险管理与配置管理4. 软件项目质量管理第六章软件维护与演化1. 软件维护的类型与阶段2. 软件维护的过程与方法3. 软件重构与演化第七章软件工程的理论与方法1. 软件需求建模方法2. 软件设计原则与方法3. 软件度量与评估方法4. 软件工程的形式化方法第八章软件工程的伦理与职业道德1. 软件工程的伦理问题2. 软件工程师的职业道德要求3. 软件工程师的专业素养与发展本文档涉及附件:________本文所涉及的法律名词及注释:________1.著作权法:________保护软件的著作权,禁止未经授权的复制、修改、发布等行为。
2.商标法:________保护软件的商标权,禁止他人未经授权使用相同或相似的商标。
3.专利法:________保护软件的发明专利权,禁止他人未经授权使用相同或相似的发明。
4.合同法:________规定软件开发过程中的合同签订与履行等事项。
软件工程概论第一次作业

第一章《软件工程概述》作业一、名词解释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、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一章软件工程概论1. *软件:是计算机程序、方法、规则、相关的文档以及运行计算机系统时所必需的数据的总和(狭义定义:软件=程序+数据+文档)2. *软件的特性:软件是复杂的、软件是不可见的、软件是不断变化的和软件质量难以稳定。
3. *软件的质量特性:功能性、可靠性、易用性、效率、维护性、可移植性。
4. 软件危机:指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
5. 软件危机的主要表现:对软件开发成本和进度估计常常很不准确用户对"已完成"的系统不满意的现象经常发生软件产品的质量往往靠不住软件常常是不可维护的软件成本在计算机系统总成本所占的比例逐年上升6. 软件危机产生的主要原因:软件日益复杂和庞大软件开发管理困难和复杂软件开发技术落后生产方式落后开发工具落后软件开发费用不断增加7. 软件危机如何解决:既要有技术措施(方法和工具),又要有必要的组织管理措施。
8. 软件工程:是指导计算机软件开发和维护的一门工程学科。
采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它。
9. 软件工程以关注软件质量为目标,包括方法、过程、工具、范式四个要素。
10. 软件工程方法学:把软件生命周期全过程中使用的一整套技术方法的集合成为方法学(也称范型paradigm),包括三个要素:方法,工具和过程.目前使用最广泛的是传统方法学和面向对象方法学传统方法学(也称生命周期方法学或结构化范型):采用结构化技术(结构化分析,结构化技术,结构化实现)来完成软件开发的各项任务,并使用适当的软件工具或软件环境来支持结构化技术的运用...略太过了面向对象方法学:有4个要点;它是一个多次反复迭代的演化的过程;特有的继承性和多态性进一步提高了面向对象软件的可重用性11. 软件生命周期问题定义:确定要解决的问题是什么(通过客户的访问调查,系统分析员写出问题的性质,工程目标和工程规模的书面报告,并得到客户的确认)可行性研究:不是具体解决问题,而是研究问题的范围,探索问题是否值得去解,是否有可行的解决方法需求分析:准确确定"为了解决这个问题,目标系统必须做什么",主要是确定目标系统必须具备哪些功能总体设计:设计出目标系统的多种方案;设计程序的体系结构详细设计:详细的设计每个模块,确定要实现模块功能所需要的算法和数据结构编码和单元测试:写出正确的容易理解,容易维护的程序模块综合测试:通过各种类型的测试(及相应的的调试)使软件达到预定的要求软件维护:通过各种必要的维护活动使系统持久地满足用户的需要12. 软件过程:指为了获得高质量软件所需完成一系列任务框架,它规定了完成各项任务的工作步骤;通常使用生命周期模型简洁地描述软件过程13. 生命周期模型:也称过程模型规定了把生命周期划分成哪些阶段及各个阶段的执行顺序14. 瀑布模型①瀑布模型特点:阶段间具有顺序性和依赖性:必须等前一阶段的工作完成后之后,才能开始后一段的工作;前一段的输出文档就是后一阶段的输入文档推迟实现的观点:在编码之前设置了系统分析和系统设计的各个阶段,分析与设计阶段的基本任务规定,这两个阶段主要考虑目标系统的逻辑模型,不涉及物理实现质量保证的观点:每个阶段必须完成规定的文档;每个阶段结束前都要对完成的文档进行评审,以便尽早发现问题②瀑布模型适用:在开发的早期阶段软件需求被完整确定③瀑布模型的优点: 可强迫开发人员采用规范的方法;严格规定了每个阶段必须提交的文档;要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证④瀑布模型缺点:瀑布模型是由文档驱动;最终产品不能真正满足客户的需求15. 快速原型模型:首先建立一个反映用户主要需求的原型系统,让用户体验,之后提出意见,随之进行修改,再让用户体验...直至用户完全满意,据此写出规格说明文档16. 增量模型:也称渐增模型,融合了瀑布模型的基本成分(重复应用)和原型实现的迭代特征,该模型采用随着日程时间的进展而交错的线性序列,每一个线性序列产生软件的一个可发布的“增量”。
增量模型优点:人员分配灵活,刚开始不用投入大量人力资源;可先发布部分功能给客户,对客户起到镇静剂的作用;增量能够有计划地管理技术风险。
增量模型缺点:需要软件具备开放式的体系结构;容易退化为边做边改模型,从而使软件过程的控制失去整体性;增加系统内部的耦合复杂性。
17. 螺旋模型:把它看作在每个阶段之前增加了风险分析的快速原型模型。
18. *螺旋模型与增量模型的区别:(1)两者迭代层级不同:增量模型在活动级迭代;螺旋模型在过程级迭代;(2)两者需求分析的时间不同:增量模型常常是先做总体需求分析和设计,然后在编码和测试中逐个增量开发;螺旋模型在开发周期内采用简化瀑布模型或快速模型;(3)两者提交软件的方式不同:增量开发在上次增量的基础上提交新的一部分软件;螺旋模型每次迭代都提交一个新的完整的软件版本;(4)两者减少风险的方式不同:增量模型使用未成熟技术和经常的客户反馈等方法减少风险;螺旋模型中直接加进风险识别,风险分析、风险控制,计划性较强.19. 喷泉模型:典型的具有面向对象软件开发过程迭代和无缝的特性20. Rational 统一过程(Rational Unified Process Rational,RUP): RUP核心:RUP核心是解决可操作性问题,帮助开发人员尽可能少地依赖那些“不可描述的经验”。
RUP特点:用例驱动;以体系结构为中心(高内聚低耦合);增量和迭代开发。
21. RUP最佳实践迭代式开发:允许每次迭代过程中需求都可以有变化;采用可验证的方法来减少风险管理需求:RUP采用用例分析来捕获需求,并由它们驱动设计和实现使用基于构件的体系架构:使用现有的或新开发的构件定义体系结构的系统化方法,从而降低软件开发的复杂性,提高软件重用率可视化建模:建立软件系统的可视化模型,提高管理复杂软件的能力,如UML验证软件质量:软件质量评估贯穿整个开发过程,由全体成员参与控制软件的变更:RUP描述了如何控制,跟踪和监控修改,以确保迭代开发的成功22. RUP软件开发生命周期①核心工作流(纵轴代表核心工作流,横轴代表时间) 前6个为核心过程工作流, 后3个为核心支持工作流业务建模:深入了解使用目标系统的机构及商务运作评估目标系统对使用它的机构的影响需求:捕获客户的需求并且使开发人员和用户达成对需求描述的共识分析与设计:把需求分析的结果转化为分析模型和设计模型实现:把设计模型转化为实现结果测试:检查各子系统的交互与集成,验证所有需求是否都被正确实现,识别,确认缺陷并确保在软件部署之前消除缺陷部署:成功生成目标系统的可运行版本,并将软件移交给用户配置与变更管理:跟踪并维护在软件过程中产生的所有制品的完整性和一致性项目管理:提供项目管理框架,为软件开发制定计划,人员配备,执行和监控等方面的使用准则,并为风险管理提供框架环境:向软件开发机构提供软件开发环境,包括过程管理和工具支持②工作阶段初始阶段:建立业务模型,定义最终产品视图,并确定项目的范围精化阶段:设计并确定系统的体系结构,制定项目计划确定资源需求构建阶段:开发出所有构件和应用程序,把它们集成客户需要的产品,并且详细地测试所有功能移交阶段:把开发出的产品提交给用户使用③RUP迭代式开发第二章可行性研究23. 可行性研究的目的不是为了解决问题,而是确定问题是否值得去解决24. 可行性:技术可行性、经济可行性、操作可行性、运行可行性、法律可行性。
25. 可行性研究过程:复查系统规模和目标研究正在使用的系统导出新系统的高层逻辑模型进一步定义问题导出和评价供选择的解法推荐行动方针草拟开发计划书写文档提交审查26. *系统流程图:是概括地描绘物理系统的传统工具。
用图形符号以黑盒子形式描绘组成系统的每个部件(程序,文档,数据库,人工过程等)。
表达的是数据在系统各部件之间流动的情况27. *数据流图表示方法:实线表示数据流;虚线表示控制流;圆框代表处理数据的过程;矩形框表示产生与接收数据的对象;平行线表示数据存储区。
28. 数据字典定义组成:数据流;数据流分量(即数据元素);数据存储;处理30. 成本效益分析的方法及如何运算:第一步估计开发成本、运行费用和新系统将带来的经济效益。
需从货币时间价值,投资回收期,纯收入,投资回收率方法有三种:代码行技术:软件成本=每行代码的平均成本*估计的源代码总行数任务分解技术:单本任务成本=任务所需人力估计值*每人每月平均工资;软件开发项目总成本=每个单独任务成本估计总和自动估计成本技术:采用自动估计成本的软件第三章需求分析31. 需求分析的任务确定对系统的综合要求分析系统的数据要求导出系统的逻辑模型修正系统开发计划32. 分析建模与规格说明模型: 就是为了理解事物而对事物作出的一种抽象,是对事物的一种无歧义的书面描述。
通常,模型由一组图形符号和组织这些符号的规则组成需要建立的三种模型:数据模型、功能模型和行为模型实体-联系图:描绘数据对象、数据对象的属性及数据对象之间的关系,用于建立数据模型数据流图:描绘当数据在软件系统中流动和被处理的逻辑过程,是建立功能模型的基础状态转换图:描绘了系统的状态及引起状态转换的事件,是建立行为模型的基础34. 层次方框图:是用树形结构的一系列多层次的矩形框描绘数据的层次结构。
最顶层矩形框:代表完整的数据结构;下面各层的矩形框代表数据的子集;最底层的矩形框代表实际数据元素第四章形式化说明技术35. 按形式化程度分为三类:非形式化,如用自然语言描述规格说明半形式化,如用数据流图或实体-联系图建立模型形式化,如描述系统性质是基于数学的技术36. 非形式化的缺点矛盾性:在需求规格说明书中对同一问题前后存在不同的描述二义性:读者可以用不同的方式理解的陈述含糊性:需求规格说明书对某一问题描述不清晰,不可理解不完整性:需求规格说明书对某一问题只说明了局部,没说明整体抽象层次混乱:指在非常抽象的陈述中混入了关于低层次的细节陈述37. 形式化的优点:能够简洁准确的描述物理现象、对象或动作的结果在不同的软件工程活动之间平滑过渡提供了高层确认的手段38. 应用形式化准则选用适当的表示方法应该形式化,但不要过分形式化应该估算成本应该有形式化顾问随时提供咨询不应该放弃传统的开发方法应该建立详尽的文档不应该放弃质量标准应该测试,测试再测试应该重用第五章总体设计39. 设计过程:2个阶段(系统设计阶段:确定系统的具体实现方案和结构设计阶段:确定软件结构); 9个步骤:设想供选择的方案选取合理的方案推荐最佳方案功能分解设计软件结构设计数据库制定测试计划书写文档审查和复审40. 设计原理的相关概念模块化:就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求抽象:抽出事物本质特性而暂时不考虑细节逐步求精:为了能集中精力解决最主要问题而尽量推迟对问题细节的考虑。