(建筑工程管理)软件工程导论(第五版)张海藩课后答案
软件工程导论张海藩课后习
软件工程导论张海藩课后习第一章软件工程概论1.什么是软件危机?软件危机是指在运算机软件的开发和爱护过程中所遇到的一系列严峻问题。
这些问题表现在以下几个方面:(1)用户对开发出的软件专门难中意。
(2)软件产品的质量往往靠不住。
(3)一样软件专门难爱护。
(4)软件生产效率专门低。
(5)软件开发成本越来越大。
(6)软件成本与开发进度难以估量。
(7)软件技术的进展远远满足不了运算机应用的普及与深入的需要。
2.什么缘故会产生软件危机?(1) 开发人员方面,对软件产品缺乏正确认识,没有真正明白得软件产品是一个完整的配置组成。
造成开发中制定打算盲目、编程草率,不考虑爱护工作的必要性。
(2) 软件本身方面,关于运算机系统来说,软件是逻辑部件,软件开发过程没有统一的、公认的方法论和规范指导,造成软件爱护困难。
(3) 专门是随着软件规模越来越大,复杂程度越来越高,原有软件开发方式效率不高、质量不能保证、成本过高、研制周期不易估量、爱护困难等一系列问题更为突出,技术的进展差不多远远不能适应社会需求。
3.如何样克服软件危机?(1) 充分吸取和借鉴人类长期以来从事各种工程项目中积存的行之有效的有效原理、概念、技术与方法,专门是吸取几十年来人类从事运算机硬件研究和开发的体会教训。
在开发软件的过程中努力作到良好的组织,严格的治理,相互友好的协作。
(2) 推广在实践中总结出来的开发软件的成功的技术和方法,并研究更好、更有效的技术和方法,尽快克服在运算机系统早期进展时期形成的一些错误概念和作法。
(3) 依照不同的应用领域,开发更好的软件工具并使用这些工具。
将软件开发各个时期使用的软件工具集合成一个整体,形成一个专门好的软件开发支环环境。
总之为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织治理措施。
4.构成软件项目的最终产品:应用程序、系统程序、面向用户的文档资料和面向开发者的文档资料。
5.什么是软件生存周期?软件生存周期是指从软件定义、开发、使用、爱护到剔除的全过程。
《软件工程导论》张海潘_第五版_清华_课后答案PPT课件
护士 护士
社会、政策允许的可行性
2-2 为方便储户,某银行拟开发计算机储蓄系统。储户填写的存款单或取款单由业务员键入系统,如果是存款,系
统记录存款人姓名、住址、存款类型、存款日期、利率等信息,并印出存款单给储户;如果是取款,系统计算利息
an.c 利息
2.3
打印利息
值
d清a单 ai
w. 某航空公司拟开发一个机票预定系统。旅行社把预订机票的旅客信息(姓名、性别…等)输入进该系统,系统 ww 为旅客安排航班,印出取票通知和账单,旅客在飞机起飞的前一天凭取票通知和账单交款取票,系统核对无误即印 网 出机票给旅客。
源
旅客
取票通知 账单/票款
网 检验信 源息
检验信 息过程
重试信息
资
SC 图
件 用户执行模块 课
案
答 读用户命令
命令处理
题
习
案系统设置
现用/非现用
密码处理
答 控制器
系统
控制器
爱
读系统 数据
建立配 置文件
读 密码
用文件 比较密码
密码输出 控制器
机票预订系统(参见习题 2 第 3 题)
显示信息 与状态
产生 无效信息
6
更新日志
日志
日志
7 产生病情 要求
报告
课件 事样务
数据 数据
案
D1 患者日志
答
6.数据定义 1、顺序 + 2、选择〔 | 〕3、重复
题 – 定货系统 P39 习 – 习题 2 第 5 题 P44 案 2-1 应该从哪些方面研究目标系统的可行性?
《软件工程导论》张海潘 第五版 清华 课后答案
WATCHING
THANKS FOR
实践应用:软件测试与质量保证
测试计划制定
根据软件需求和测试目标,制定详 细的测试计划,包括测试范围、测 试方法、测试资源以及测试进度等 方面的内容。
测试用例设计与执行
根据测试计划设计有效的测试用例, 并严格按照测试用例执行测试过程, 以确保软件的质量和稳定性。
缺陷管理与回归测试
建立缺陷管理机制,对测试过程中 发现的缺陷进行跟踪和管理,并进 行回归测试以确保缺陷得到修复并
软件工程的概念及基本原则
软件工程是一门研究计算机软件开发、维护和管理的科学。其基本原则包括强调需求分析、采用合 适的设计方法、实行严格的测试和维护等。
软件生命周期及各阶段任务
软件生命周期包括需求分析、设计、编码、测试和维护等阶段。各阶段的主要任务分别是明确用户 需求、设计系统结构、编写程序代码、测试软件功能和修复漏洞等。
案例分析三
某移动APP产品的敏捷开发实践。该案例以 敏捷开发方法为基础,介绍了产品迭代规划、 用户故事编写、任务分解以及站会等敏捷实 践活动的应用,对于理解敏捷开发方法的精 髓和实施具有很好的启示作用。
实践应用:软件开发项目管理
项目计划制定
根据项目需求和目标,制定详细的项目计划,包括任务分解、 资源分配、进度安排以及风险管理等方面的内容。
不再出现。
质量评估与改进
通过质量评估活动对软件的质量进 行全面评估,并根据评估结果制定 相应的质量改进措施,以提高软件
软件工程+张海藩+课后习题答案
软件工程+张海藩+课后习题答案《软件工程导论》课后习题答案第一章软件工程概论1.什么是软件危机?软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
这些问题表现在以下几个方面:(1)用户对开发出的软件很难满意。
(2)软件产品的质量往往靠不住。
(3)一般软件很难维护。
(4)软件生产效率很低。
(5)软件开发成本越来越大。
(6)软件成本与开发进度难以估计。
(7)软件技术的发展远远满足不了计算机应用的普及与深入的需要。
2.为什么会产生软件危机?(1) 开发人员方面,对软件产品缺乏正确认识,没有真正理解软件产品是一个完整的配置组成。
造成开发中制定计划盲目、编程草率,不考虑维护工作的必要性。
(2) 软件本身方面,对于计算机系统来说,软件是逻辑部件,软件开发过程没有统一的、公认的方法论和规范指导,造成软件维护困难。
(3) 尤其是随着软件规模越来越大,复杂程度越来越高,原有软件开发方式效率不高、质量不能保证、成本过高、研制周期不易估计、维护困难等一系列问题更为突出,技术的发展已经远远不能适应社会需求。
3.怎样克服软件危机?(1) 充分吸收和借鉴人类长期以来从事各种工程项目中积累的行之有效的有效原理、概念、技术与方法,特别是吸取几十年来人类从事计算机硬件研究和开发的经验教训。
在开发软件的过程中努力作到良好的组织,严格的管理,相互友好的协作。
(2) 推广在实践中总结出来的开发软件的成功的技术和方法,并研究更好、更有效的技术和方法,尽快克服在计算机系统早期发展阶段形成的一些错误概念和作法。
(3) 根据不同的应用领域,开发更好的软件工具并使用这些工具。
将软件开发各个阶段使用的软件工具集合成一个整体,形成一个很好的软件开发支环环境。
变换型开发方法及特点:(1)从软件需求的形式化规格说明出发,经过一系列的程序变换,得到最终的程序系统。
(2)该方法必须有严格的数学理论和形式化技术的支持。
9.什么是软件工程?软件工程是指导计算机软件开发和维护的工程学科。
软件工程学课后习题答案张海藩 第五版100页PPT
60、生活的道路一旦选定,就要勇敢地 走到底 ,决不 回头。 ——左
软件工程学课后习题答案张海藩 第五
•
26、我们像鹰一样,生来就是自由的 ,但是 为了生 存,我 们不得 不为自 己编织 一个笼 子,然 后把自 己关在 里面。 ——博 莱索
•
27、法律如果不讲道理,即使延续时 间再长 ,也还 是没有 制约力 的。— —爱·科 克
•
28、好法律是由坏风俗创造出来的。 ——马 克罗维 乌斯类 的状态 中,哪 里没有 法律, 那里就 没有自 由。— —洛克
•
30、风俗可以造就法律,也可以废除 法律。 ——塞·约翰逊
版
56、书不仅是生活,而且是现在、过 去和未 来文化 生活的 源泉。 ——库 法耶夫 57、生命不可能有两次,但许多人连一 次也不 善于度 过。— —吕凯 特 58、问渠哪得清如许,为有源头活水来 。—— 朱熹 59、我的努力求学没有得到别的好处, 只不过 是愈来 愈发觉 自己的 无知。 ——笛 卡儿
软件工程导论答案-张海潘(第五版)
第一章1-1 什么是软件危机? 是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
1-2 什么是软件工程?是指导计算机软件开发和维护的一门工程学科。
1-3 简述结构化范型和面向对象范型的要点,并分析它们的优缺点。
目前使用得最广泛的软件工程方法学(2种):1.传统方法学:也称为生命周期方法学或结构化范型。
优点:把软件生命周期划分成基干个阶段,每个阶段的任务相对独立,而且比较简单,便于不同人员分工协作,从而降低了整个软件开发过程的困难程度。
缺点:当软件规模庞大时,或者对软件的需求是模糊的或会承受时间而变化的时候,开发出的软件往往不成功;而且维护起来仍然很困难。
2.面向对象方法学:优点:降低了软件产品的复杂性;提高了软件的可理解性;简化了软件的开发和维护工作;促进了软件重用。
1-4 软件生命周期划分成哪些阶段●软件生命周期(各阶段)软件生命周期由软件定义、软件开发和运行维护三个时期组成。
1.软件定义时期划分为三个阶段:问题定义、可行性研究和需求分析2.开发时期:总体设计、详细设计、编码和单元测试、综合测试。
3.维护时期:主要任务是使软件持久地满足用户的需要。
1-5 什么是软件过程?它与软件工程方法学有何关系?●软件过程:是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤●软件工程方法学:通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称范型1-6 传统“瀑布模型”的主要缺陷是什么?试说明改进的方法。
传统的瀑布模型过于理想化了。
增加“反馈环”第二章●可行性研究的目的:就是用最小的代价在尽可能短的时间内确定问题是否能够解决。
●可行性研究的任务:1.进一步分析和澄清问题;2.导出系统的逻辑模型;3.从逻辑模型出发,提出若干种系统实现方案4.研究每种实现方案的可行性:●技术上的可行性——使用现有的技术能实现这个系统吗?●经济上的可行性——这个系统的经济效益能超过它的开发成本吗?(投资与效益)●操作可行性——系统的操作方式在这个用户组织内行得通吗?●社会、政策允许的可行性5.为每个可行的解决方案制定一个粗略的实现进度6.对以后的行动方针提出建议方法:1.系统流程图2.数据流图:(DFD)符号3.数据字典:数据流图与数据字典共同构成系统的逻辑模型。
软件工程导论-张海藩-第五版课后习题答案
多态
多态是指同一个操作作用于不 同的对象,可以产生不同的结 果。
UML建模语言简介
UML是一种用于对软件密集系统进行可视化建模 的统一建模语言。
UML通过统一的符号和工具,为软件开发人员提 供了一种通用的建模语言。
UML可以描述软件系统的静态结构和动态行为, 包括类图、时序图、用例图等。
面向对象分析、设计和实现过程
列表。
与用户确认需求列表,确保对用户需求有准确的理解。
03
需求规格说明书编写
01
编写详细的需求规格说明书,包括功能需求、性能需求、接 口需求等。
02
使用清晰、准确的语言描述需求,避免歧义和模糊性。
03
提供必要的图表、示例和数据,以便更好地理解和实现需求 。
需求变更管理
建立需求变更管理流 程,确保所有变更都 经过评估和批准。
及时通知相关干系人, 协商并处理变更请求, 确保项目顺利进行。
对变更进行影响分析, 评估变更对项目进度、 成本和质量的影响。
03 系统设计
总体设计原则与方法
模块化
将系统划分为若干个相对独立的模块, 每个模块具有特定的功能,模块之间 通过接口进行通信。
高内聚、低耦合
模块内部的功能应该高度相关,而模 块之间的依赖关系应该尽量减少。
要点二
软件评估技术
软件评估技术包括代码审查、走查、桌面检查等。代码审 查是一种正式的评估技术,由一组开发人员对源代码进行 详细检查以发现错误;走查是一种轻量级的评估技术,由 开发人员自行检查代码并记录下潜在的问题;桌面检查则 是一种非正式的评估技术,由评估人员通过查看文档和演 示来评价软件产品的质量。
THANKS FOR WATCHING
感谢您的观看
软件工程导论----张海藩(第五版)课后习题答案
《软件工程导论》课后习题答案第三章需求分析习题答案1.需求分析的描述工具有哪些?有数据流图、数据字典、判定表、判定树、结构化自然语言、层次方框图、Warnier 图、IPO图和需求描述语言等。
2.需求分析的基本任务是什么?准确定义未来系统的目标,确定为了满足用户的需要系统必须做什么。
3.怎样建立目标系统的逻辑模型?要经过哪些步骤?建立目标系统的逻辑模型的过程也就是数据流图的分解过程。
它的导出过程如图:10.某单位拟开发一个计算机房产管理系统,要求系统具有分房、调房、退房和查询统计等功能。
房产科将用户申请表输入系统后,系统首先检查申请表的合法性,对不合法的申请表,系统拒绝接收;对合法的申请表根据类型分别进行处理。
(1) 如果是分房申请,则根据申请者的情况(年龄、工龄、职称、职务、家庭人口等)计算其分数,当分数高于阀值分数时,按分数高低将申请单插到分房队列的适当位置。
在进行分房时,从空房文件中读出空房信息,如房号、面积、等级、单位面积房租等,把好房优先分给排在分房队列前面的符合该等级房条件的申请者;从空房文件中删掉这个房号的信息,并从分房队列中删掉该申请单,再把此房号的信息和住户信息一起写到住房文件中,输出住房分配单给住户,同时计算房租,并将算出的房租写到房租文件中。
(2) 如果是退房申请,则从住房文件和房租文件中删除有关信息,再把此房号的信息写到空房文件中。
(3) 如果是调房申请,则根据申请者的情况确定其住房等级,然后在空房文件中查找属于该等级的空房,退掉原住房,再进行与分房类似的处理。
(4) 住户可以向系统查询目前分房的阀值分数,居住某类房屋的条件,某房号的单位面积及房租等信息。
房产科可以要求系统打印住房情况的统计表,或更改某类房屋的居住条件、单位面积和房租等。
用数据流图描绘该系统的功能需求;在数据字典中给出主要的数据流、文件和加工说明。
第四章总体设计习题答案9. 比较层次方框图与结构图是的异同?(1) 层次方框图描绘数据的层次结构, 结构图描绘的是软件结构。
软件工程导论(第五版)_(张海藩_著)_清华大学出版社_课后习题答案
来; (3) 它强调使用生存周期方法学和结构分析和结构技术; (4) 经过人们长期的努力和探索,围绕着实现软件优质高产这个目标,从技术
的单位面积及房租等信息。房产科可以要求系统打印住房情况的统计表,或更改某 类房屋的居住条件、单位面积和房租等。
用数据流图描绘该系统的功能需求;在数据字典中给出主要的数据流、文件和 加工说明。
参考第四章 4.5 应用举例教案之二分析。
第四章 总体设计 习题答案
1. 系统设计包括哪两个阶段? 系统设计包括总体设计与详细设计两个阶段。
(2) 在渐增型开发下的软件是随软件开发的过程而逐渐形成的。 (3) 渐增型开发方法适合于知识型软件的开发,设计系统时对用户需求的认 识开始不是很清楚的,需要在开发过程中不断认识、不断获得新的知识去丰富和完 善系统。多数研究性质的试验软件,一般采用此方法。 变换型开发方法及特点: (1)从软件需求的形式化规格说明出发,经过一系列的程序变换,得到最终的 程序系统。 (2)该方法必须有严格的数学理论和形式化技术的支持。
算出的房租写到房租文件中。 (2) 如果是退房申请,则从住房文件和房租文件中删除有关信息,再把此房号
的信息写到空房文件中。 (3) 如果是调房申请,则根据申请者的情况确定其住房等级,然后在空房文件
中查找属于该等级的空房,退掉原住房,再进行与分房类似的处理。 (4) 住户可以向系统查询目前分房的阀值分数,居住某类房屋的条件,某房号
图:
4.什么是结构化分析?它的结构化体现在哪里? 结构化分析:使用数据流程图、数据字典、结构化英语、判定表和判定树等工具,
软件工程导论张海藩第五版课后习题答案
D2存款利率
13:07:42
重庆工学院计算机科学与工程学院 李梁(liliang@)
17
作业及解答(第3章)
E1 储户
F7密码
F2取款单
P3.1 输入取款信息
无效取款信息
F5存款信息 D1存款信息
P3.2 密码校验
F7密码
13:07:42
重庆工学院计算机科学与工程学院 李梁(liliang@)
13:07:42
重庆工学院计算机科学与工程学院 李梁(liliang@)
8
E2 病人
F2生理信号
F5安全范围 D2患者安全范围
P2 分析信号
危及病人信息
P3 产生警告信息
F2生理信号
F4警告信息
P1 接收信号
F2生理信号
E1 护士
E3 时钟
F3日前、时间
P4 定时取样 生理信号
2-4 目前住院病人主要由护士护理,这样做不仅需要大量护 士,而且由于不能随时观察危重病人的病情变化,还会延 误抢救时机。某医院打算开发一个以计算机为中心的患者 监护系统,请分层次地画出描述本系统功能的数据流图。
医院对患者6监护系统的基本要求是随时接收每个病人的 生理信号(脉搏、体温、血压、心电图等),定时记录病人 情况以形成患者日志,当某个病人的生理信号超出医生规 定的安全范围时向值班护士发出警告信息,此外,护士在 需要时还可以要求系统印出某个指定病人的病情报告。
10
E2 病人
P2
分析信号
危及病人信息
F2生理信号
F5安全范围
D2患者安全范围
F2生理信号
D3生理信息
P7制定安 全范围
F2生理信号
P1 接收信号
软件工程导论张海藩第五课后答案
答案:软件工程导论课后答案中模拟试题三的答案。
感谢观看
THANKS
继承是指子类继承父类的属性和方法,并且可以在子类中添加新的属性和方法,或者重写父类的方法。
多态是指同一个消息可以被不同的对象接收并执行不同的操作,从而实现不同的行为。
抽象是指定义抽象类或抽象方法,只提供接口而不实现具体实现,由子类来实现具体的功能。
面向对象方法概述
UML是Unified Modeling Language的缩写,是一种基于面向对象技术的建模语言,用于描述软件系统的静态结构和动态行为。
UML包含多种模型元素,如类、接口、继承、聚合、关联等,以及多种图,如类图、时序图、用例图等。
类图是UML中最基本的图之一,用于描述系统中类的结构关系,包括类的属性、方法和继承关系。
时序图用于描述系统中对象之间的交互关系和消息传递过程。
用例图用于描述系统的功能需求和用户与系统的交互关系。
UML基础
01
简答题3答案
面向对象技术是一种程序设计技术,它以对象为基础,将数据和处理数据的方法结合在一起,形成了对象。面向对象技术包括封装、继承、多态等基本特性,可以帮助程序员更好地理解和设计软件系统。
选择题1答案
选择题2答案
选择题3答案
选择题答案
VS
错。软件工程导论是一门软件工程的专业课程,它旨在帮助学生学习和理解软件工程的基本概念、原理和方法。该课程通常包括软件开发过程、需求分析、设计、编码、测试和维护等方面的内容。因此,该课程的学习对于提高学生的软件开发能力和职业发展具有重要意义。
03
第六章重点难点解析
面向对象方法是一种软件开发方法,它以对象为基础,将数据和操作封装在对象中,通过对象之间的交互来实现软件功能。
《软件工程导论》张海潘第五版 清华 课后答案
时间内聚 3 分
逻辑内聚 1 分 偶然内聚 0 分
z 面向数据流的设计方法 P95
– 变换流 z 数字仪表板系统 P96
旋转信号
读入
确定
旋转 信号
信号数/秒
加速/ 减速
(SPS)
收集 并求 平均
△SPS △SPS
箭头指示
产生 加速/减 速显示
下箭头
idaa 燃料流量 a 传感器信号
ww. 读入 网w 并核实
统记录存款人姓名、住址、存款类型、存款日期、利率等信息,并印出存款单给储户;如果是取款,系统计算利息
并印出利息清单给储户。请画出此系统的数据流图。
第2页
第3页
爱答案习题答案课件资源网
1.1
记录存款 信息
存款信息
1.2
打印存单
z 经济上的可行性 ——这个系统的经济效益能超过它的开发成本吗? (投资与效益)
z 操作可行性 ——系统的操作方式在这个用户组织内行得通吗?
z 社会、政策允许的可行性
5.为每个可行的解决方案制定一个粗略的实现进度
6.对以后的行动方针提出建议
方法:1.系统流程图
2.数据流图:(DFD)是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换。
出机票给旅客。
网
旅客
取票通知 账单/票款
源 2.1
2.2
资 交款
机票
打印机 票
课件 信息
订票信
答案息
交款信 息
题 习 案
D1 订票信息
旅客信 息
航班信 息
机票 取票通知
旅客
答
账单
爱 旅行社
旅客 1.11 旅客 信息 录处息入信理 信息
软件工程导论第五版课后答案
软件工程导论第五版课后答案【篇一:软件工程答案第五版答案】方法学(3个要素):通常把软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称范型。
三要素:方法、工具和过程。
? 软件生命周期模型–瀑布模型:优点:1.可强迫开发员采用规范的方法2.严格地规定了每个阶段必须提交的文件3.要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。
–缺点:传统的瀑布模型过于理想化,是由文档驱动的。
–快速原型模型:通过快速构建起一个可在计算机上运行的原型系统,让用户试用原型并收集用户反馈意见的方法,获取用户真正的需要。
–增量模型:优点:能在较短时间内向用户提交可完成部分工作的产品;逐步增加产品功能可以使用户有较充实的时间学习和适应新产品,从而减少一个全新的软件可能给客户组织带来的冲击。
–螺旋模型:优点:对可选方案和约束条件的强调有利于已有软件的重用;减少了过多测试;维护只是螺旋模型中另一个周期。
1-1 什么是软件危机? 是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
1-2 什么是软件工程? 是指导计算机软件开发和维护的一门工程学科。
1-3 简述结构化范型和面向对象范型的要点,并分析它们的优缺点。
目前使用得最广泛的软件工程方法学(2种):1. 传统方法学:也称为生命周期方法学或结构化范型。
优点:把软件生命周期划分成基干个阶段,每个阶段的任务相对独立,而且比较简单,便于不同人员分工协作,从而降低了整个软件开发过程的困难程度。
缺点:当软件规模庞大时,或者对软件的需求是模糊的或会承受时间而变化的时候,开发出的软件往往不成功;而且维护起来仍然很困难。
2. 面向对象方法学:优点:降低了软件产品的复杂性;提高了软件的可理解性;简化了软件的开发和维护工作;促进了软件重用。
1-4 软件生命周期划分成哪些阶段? 软件生命周期(各阶段)软件生命周期由软件定义、软件开发和运行维护三个时期组成。
1. 软件定义时期划分为三个阶段:问题定义、可行性研究和需求分析 2. 开发时期:总体设计、详细设计、编码和单元测试、综合测试。
软件工程导论张海藩答案
软件工程导论张海藩答案一、概述软件工程是一门综合性的学科,旨在通过系统化的方法来开发和维护高质量的软件系统。
在软件工程导论中,张海藩教授向我们介绍了软件工程的基本概念、原理和实践。
二、软件工程的定义和特征软件工程是一门应用学科,建立在计算机科学和工程学的基础上。
它涉及从软件需求分析到软件设计、实现、测试、部署和维护的全过程。
软件工程具有以下特征:1.复杂性:软件开发涉及多个环节和多个参与者,需要协同合作来完成。
2.可变性:软件需求和环境可能会不断变化,需要具备相应的灵活性和适应性。
3.不确定性:软件开发过程中存在很多难以预测和控制的因素,需要通过规范和管理来降低风险。
4.技术性:软件工程需要运用一系列专业的技术和工具来支持开发过程。
5.工程性:软件工程借鉴了传统工程学的方法和原则,力求提供可靠、高效和可维护的软件系统。
三、软件开发过程软件开发过程是软件工程的核心内容,它定义了如何从需求分析到最终交付软件的整个过程。
常用的软件开发过程模型包括瀑布模型、迭代模型和敏捷模型等。
瀑布模型是最传统的软件开发过程模型,它将软件开发划分为需求分析、设计、编码、测试和维护等阶段。
每个阶段都需要按照顺序进行,并且需要进行充分的文档和交流。
迭代模型是一种增量开发方法,它将软件开发划分为多个短期的迭代周期。
每个迭代周期都包含了需求分析、设计、实现和测试等阶段,但是每个阶段的时间和粒度都相对较小。
这种模型更加灵活和适应变化。
敏捷模型是一种高度灵活的软件开发方法,它强调快速响应变化和频繁交付可用的软件。
敏捷模型常用的方法包括Scrum、XP和Kanban等,它们都强调团队合作和持续改进。
四、软件需求分析软件需求分析是软件开发过程中的一个重要环节,它涉及明确软件系统的功能和性能要求。
软件需求分析包括需求获取、需求分析、需求规格和需求验证等阶段。
需求获取是指通过与用户、领域专家和其他相关人员进行沟通,获取到软件系统的需求信息。
软件工程导论(张海藩)习题解
2-4 分层次地画出描述本系统功能的数据流图●从问题陈述可知,本系统数据源点是“病人”和“护士”,他们分别提供生理信号和要求病情报告的信息。
进一步分析问题陈述,从系统应该“定时记录病人情况以形成患者日志”这项要求可以想到,还应该有一个提供日期和时间信息的“时钟”作为数88据源点。
●从问题陈述容易看出,本系统的数据终点是接收警告信息和病情报告的护士。
●系统对病人生理信号的处理功能主要是“接收信号”、“分析信号”和“产生警告信息”。
●此外,系统还应该具有“定时取样生理信号”、“更新日志”和“产生病情报告”的功能。
●为了分析病人生理信号是否超出了医生规定的安全范围,应该存储“患者安全范围”信息。
此外,定时记录病人生理信号所形成的“患者日志”,显然也是一个数据存储。
2-5●数据结构的描述符号含义举例=被定义为+与x = a+b[...,...] 或[...|...] 或x = [a , b],x = [a | b]{ ... }或m{...}n 重复x = {a},x = 3{a}8(...) 可选x = (a)“...” 基本数据元素x = “a”.. 连结符x = 1..9●电话号码=[校内电话号码|校外电话号码]●校内电话号码=非零数字+ 3 位数字//后面继续定义●校外电话号码=[本市号码|外地号码]●本市号码=数字零+8位数字●外地号码=数字零+3位数字+8位数字●非零数字=[1|2|3|4|5|6|7|8|9]●数字零=0●3位数字=3{数字}3 //3至3个数字●8位数字=非零数字+7位数字●7位数字=7{数字}7●数字=[0|1|2|3|4|5|6|7|8|9]3-3 银行计算机储蓄系统请用数据流图描绘本系统的功能,并用实体-联系图描绘系统中的数据对象。
●ER模型✓本问题中共有两类实体,分别是“储户”和“储蓄所”,在它们之间存在“存取款”关系。
因为一位储户可以在多家储蓄所存取款,一家储蓄所拥有多位储户,所以“存取款”是多对多(M:N)关系。
软件工程导论第五版答案
软件工程导论第五版答案【篇一:软件工程导论(第六版)部分课后习题答案】是软件危机?是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
1-3 什么是软件工程?是指导计算机软件开发和维护的一门工程学科。
1-4 简述结构化范型和面向对象范型的要点,并分析它们的优缺点。
目前使用得最广泛的软件工程方法学(2种):1. 传统方法学:也称为生命周期方法学或结构化范型。
优点:把软件生命周期划分成基干个阶段,每个阶段的任务相对独立,而且比较简单,便于不同人员分工协作,从而降低了整个软件开发过程的困难程度。
缺点:当软件规模庞大时,或者对软件的需求是模糊的或会承受时间而变化的时候,开发出的软件往往不成功;而且维护起来仍然很困难。
2. 面向对象方法学:优点:降低了软件产品的复杂性;提高了软件的可理解性;简化了软件的开发和维护工作;促进了软件重用。
1-6 什么是软件过程?它与软件工程方法学有何关系?z 软件过程:是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤 z 软件工程方法学:通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称范型1-7 什么是软件生命周期模型,试比较瀑布模型,快速原型模型,增量模型,和螺旋模型的优缺点,说明每种模型的适用范围。
软件生命周期由软件定义、软件开发和运行维护3个时期组成,每个时期又进一步划分成若干个阶段。
生命周期模型规定了把生命周期划分成哪些阶段及各个阶段的执行顺序,因此,也称为过程模型。
瀑布模型的优点:1.可强迫开发人员采用规范的方法;2.严格规定了每个阶段必须提交的文档;3.要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。
瀑布模型的缺点:1.在软件开发初期,指明用户全部需求是困难的;2.需求确定后,经过一段时间才得到软件最初版本;3.完全依赖规格说明,导致不能满足用户需求。
适用中小型项目。
快速原型模型的优点:1满足用户需求程度高;2用户的参与面广;3返工现象少快速原型模型的优点:不适用大型软件的开发适用于小型项目。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(建筑工程管理)软件工程导论(第五版)张海藩课后答案第一章软件工程概论1.什么是软件危机?软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
这些问题表现在以下几个方面:(1)用户对开发出的软件很难满意。
(2)软件产品的质量往往靠不住。
(3)一般软件很难维护。
(4)软件生产效率很低。
(5)软件开发成本越来越大。
(6)软件成本与开发进度难以估计。
(7)软件技术的发展远远满足不了计算机应用的普及与深入的需要。
2.为什么会产生软件危机?(1)开发人员方面,对软件产品缺乏正确认识,没有真正理解软件产品是一个完整的配置组成。
造成开发中制定计划盲目、编程草率,不考虑维护工作的必要性。
(2)软件本身方面,对于计算机系统来说,软件是逻辑部件,软件开发过程没有统一的、公认的方法论和规范指导,造成软件维护困难。
(3)尤其是随着软件规模越来越大,复杂程度越来越高,原有软件开发方式效率不高、质量不能保证、成本过高、研制周期不易估计、维护困难等一系列问题更为突出,技术的发展已经远远不能适应社会需求。
3.怎样克服软件危机?(1)充分吸收和借鉴人类长期以来从事各种工程项目中积累的行之有效的有效原理、概念、技术与方法,特别是吸取几十年来人类从事计算机硬件研究和开发的经验教训。
在开发软件的过程中努力作到良好的组织,严格的管理,相互友好的协作。
(2)推广在实践中总结出来的开发软件的成功的技术和方法,并研究更好、更有效的技术和方法,尽快克服在计算机系统早期发展阶段形成的一些错误概念和作法。
(3)根据不同的应用领域,开发更好的软件工具并使用这些工具。
将软件开发各个阶段使用的软件工具集合成一个整体,形成一个很好的软件开发支环环境。
总之为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。
4.构成软件项目的最终产品:应用程序、系统程序、面向用户的文档资料和面向开发者的文档资料。
5.什么是软件生存周期?软件生存周期是指从软件定义、开发、使用、维护到淘汰的全过程。
6.软件生存周期为什么划分成阶段?(1)任何一个阶段的具体任务不仅独立,而且简单,便于不同人员分工协作,从而降低整个软件开发工作的困难程度。
(2)可以降低每个阶段任务的复杂程度,简化不同阶段的联系,有利于工程的组织管理,也便于采用良好的技术方法。
(3)使软件开发的全过程以一种有条不紊的方式进行,保证软件的质量,特别是提高了软件的可维护性。
7.应该怎样来划分阶段?(1)每一个阶段的任务尽可能独立;(2)同一阶段内的任务性质尽可能相同;(3)每一个阶段任务的开始和结束有严格的标准。
8.软件开发模型有几种?它们的开发方法有可特点?软件开发模型有瀑布型、渐增型和变换型。
瀑布型开发方法是按照软件生存周期的划分依次实施,每一个阶段有明确规定的任务。
它的特点:(1)各个阶段的顺序性和依赖性;(2)划分逻辑设计与物理设计,尽可能推迟程序的物理实现;(3)每个阶段必须完成规定的文档,对其中问题通过复审及早发现,及早解决。
渐增型开发方法及特点:(1)从部分需求出发,先建立一个不完全的系统,通过测试运行该系统取得经验和信息反馈,加深对软件需求的理解,进一步使系统扩充和完善。
如此反复,直至软件人员和用户对所设计完成的软件系统满意为止。
(2)在渐增型开发下的软件是随软件开发的过程而逐渐形成的。
(3)渐增型开发方法适合于知识型软件的开发,设计系统时对用户需求的认识开始不是很清楚的,需要在开发过程中不断认识、不断获得新的知识去丰富和完善系统。
多数研究性质的试验软件,一般采用此方法。
变换型开发方法及特点:(1)从软件需求的形式化规格说明出发,经过一系列的程序变换,得到最终的程序系统。
(2)该方法必须有严格的数学理论和形式化技术的支持。
9.什么是软件工程?软件工程是指导计算机软件开发和维护的工程学科。
(1)它采用工程的概念、原理、技术和方法来开发和维护软件;(2)它将管理技术与当前经过时间考验的而证明是正确的技术方法结合起来;(3)它强调使用生存周期方法学和结构分析和结构技术;(4)经过人们长期的努力和探索,围绕着实现软件优质高产这个目标,从技术到管理两个方面做了大量的努力,逐渐形成了"软件工程学"这一新的学科。
10.什么是软件工程环境:方法与工具的结合,加上配套的软、硬件支持称为软件工程环境。
它能支持开发者按照软件工程的方法,全面完成生存周期中的各项任务。
第二章可行性研究习题答案1.问题定义的任务和主要工作?问题定义的任务:将用户提出的要求具体化、定量化;确定研制系统的范围,明确研制的边界。
问题定义阶段的工作:(1)通过调查研究,了解系统需求;(2)确定系统的功能需求、性能需求、可靠性需求、安全及保密性、资源、开发费用及开发进度等的需求;(3)问题定义阶段的产品--系统目标与范围说明书。
2.可行性研究目的?确定在问题定义中所提出的问题是否值得去解,在限制条件下,问题能否解决。
3.可行性研究的任务?(1)进一步分析和澄清问题的定义,在澄清问题的基础上,导出系统的逻辑模型;(2)从系统逻辑模型中,选择问题的若干种主要解法,研究每一种解法的可行性,为以后的行动提出建议;(3)如果问题没有可行的解,建议停止系统开发;如果问题有可行的解,应该推荐一个较好的解决方案,并为工程制定一个初步的计划。
4.可行性研究包括哪几方面的内容?(1)技术可行性:现有技术能否实现本系统,现有技术人员能否胜任,开发系统的资源能否满足;(2)经济可行性:经济效益是否超出开发成本;(3)操作可行性:系统操作在用户内部行得通吗?(4)法律可行性:新系统开发是否会侵犯他人、集体或国家利益,是否违反国家法律。
5.可行性研究的步骤?(1)复查系统的规模和目标;(2)研究目前正在使用的系统,总结现有系统的优劣,提出新系统的雏形;(3)导出新系统的高层逻辑模型;(4)推荐建议方案;(5)推荐行动方针;(6)书写计划任务书(可行性报告);(7)提交审查。
6.可行性研究报告的主要内容?可行性分析的结果是可行性研究报告,内容包括:(1)系统概述:说明开发的系统名称,提出单位和开发单位。
(2)可行性研究的前提:系统目标;要求;约束和限制;可行性研究的基本准则等。
(3)对现有系统的分析:处理流程,图示说明现有系统的处理流程和数据流程;现有系统存在的问题。
(4)系统需求:主要功能;主要性能及其要求;操作要求;信息要求;限制性要求。
(5)建议系统:系统目标;处理流程;系统结构,功能,性能;系统技术可行性;投资和效益分析;操作可行性;法律可行性。
(6)其它可选方案:与国内外同类型方案的比较;提出一两个可行性方案供论证和探讨。
(7)制定下一阶段的预算。
(8)结论性意见:由用户方、设计方和投资方共同签署意见。
第三章需求分析习题答案1.需求分析的描述工具有哪些?有数据流图、数据字典、判定表、判定树、结构化自然语言、层次方框图、Warnier 图、IPO图和需求描述语言等。
2.需求分析的基本任务是什么?准确定义未来系统的目标,确定为了满足用户的需要系统必须做什么。
3.怎样建立目标系统的逻辑模型?要经过哪些步骤?建立目标系统的逻辑模型的过程也就是数据流图的分解过程。
它的导出过程如图:4.什么是结构化分析?它的结构化体现在哪里?结构化分析:使用数据流程图、数据字典、结构化英语、判定表和判定树等工具,来建立一种新的、称为结构化说明书的目标文档-需求规格说明书。
结构化体现在将软件系统抽象为一系列的逻辑加工单元,各单元之间以数据流发生关联。
5.软件需求规格说明书由哪些部分组成?组成包括:(1)引言:编写目的、背景说明、术语定义及参考资料等。
(2)概述主要功能、约束条件或特殊需求。
(3)数据流图与数据字典。
(4)用户接口、硬件接口及软件接口。
(5)性能需求、属性等。
(6)其它需求,如数据库、操作及故障处理等。
6.为什么数据流图要分层?画分层的DFD要遵循哪些原则?分层的目的:便于逐步细化、结构清晰。
画分层的DFD要遵循哪些原则:(1)父图与子图之间数据要平衡。
(2)分解的深度和层次达到使加工足够简单、易于理解的基本加工为止。
(3)区分局部文件和局部外部项(局限于数据流中某一层或某几层的文件和外部项)。
(4)不要把控制流作为数据流。
(5)忽略琐碎的枝节。
(6)每个数据流要有一个合适的名字,尽量使用现实系统中有具体意义的名字。
7.系统流程图与数据流程图有什么区别?系统流程图描述系统物理模型的工具,数据流程图描述系统逻辑模型的工具。
系统流程图从系统功能的角度抽象的描述系统的各个部分及其相互之间信息流动的情况。
数据流程图从数据传送和加工的角度抽象的描述信息在系统中的流动和数据处理的工作状况。
8.数据字典包括哪些内容?它的作用是什么?数据字典是描述数据流图中数据的信息的集合。
它对数据流图上每一个成分:数据项、文件(数据结构)、数据流、数据存储、加工和外部项等给以定义和说明;它主要由数据流描述、加工描述和文件描述三部分组成。
对用户来讲,数据字典为他们提供了数据的明确定义;对系统分析员来讲,数据字典帮助他们比较容易修改已建立的系统逻辑模型。
9.描述加工逻辑的工具有哪些?有决策树(又称判定树)、决策表(又称判断表)和结构化语言等。
10.某单位拟开发一个计算机房产管理系统,要求系统具有分房、调房、退房和查询统计等功能。
房产科将用户申请表输入系统后,系统首先检查申请表的合法性,对不合法的申请表,系统拒绝接收;对合法的申请表根据类型分别进行处理。
(1)如果是分房申请,则根据申请者的情况(年龄、工龄、职称、职务、家庭人口等)计算其分数,当分数高于阀值分数时,按分数高低将申请单插到分房队列的适当位置。
在进行分房时,从空房文件中读出空房信息,如房号、面积、等级、单位面积房租等,把好房优先分给排在分房队列前面的符合该等级房条件的申请者;从空房文件中删掉这个房号的信息,并从分房队列中删掉该申请单,再把此房号的信息和住户信息一起写到住房文件中,输出住房分配单给住户,同时计算房租,并将算出的房租写到房租文件中。
(2)如果是退房申请,则从住房文件和房租文件中删除有关信息,再把此房号的信息写到空房文件中。
(3)如果是调房申请,则根据申请者的情况确定其住房等级,然后在空房文件中查找属于该等级的空房,退掉原住房,再进行与分房类似的处理。
(4)住户可以向系统查询目前分房的阀值分数,居住某类房屋的条件,某房号的单位面积及房租等信息。
房产科可以要求系统打印住房情况的统计表,或更改某类房屋的居住条件、单位面积和房租等。
用数据流图描绘该系统的功能需求;在数据字典中给出主要的数据流、文件和加工说明。
参考第四章4.5应用举例教案之二分析。
第四章总体设计习题答案1.系统设计包括哪两个阶段?系统设计包括总体设计与详细设计两个阶段。