软件工程教材资料整理
- 格式:doc
- 大小:211.50 KB
- 文档页数:7
可编辑修改精选全文完整版一、单选题(共20题,40分)1、使用数据流图,并不断细化的需求获取方法是()。
(2.0)A、简易的应用规格说明B、面向数据流自顶向下逐步求精C、访谈D、快速原型法正确答案: B2、Z语言是以()为基础的形式化规格说明语言。
(2.0)A、微积分B、概率C、图形D、一阶谓词演算正确答案: D3、HIPO是指(2.0)A、层次输入处理输出图或表B、层次功能结构图C、功能结构图D、输入处理输出图或表正确答案: A4、高铁调用系统最适宜采用()方法。
(2.0)A、有穷状态机B、 Petri网C、 Z语言D、一阶线性时态逻辑正确答案: B5、假设学生年龄的成绩输入范围为18-25,则根据等价类划分技术,下列划分正确的是()。
(2.0)A、可划分为2个有效等价类,2个无效等价类B、可划分为1个有效等价类,2个无效等价类C、可划分为2个有效等价类,1个无效等价类D、可划分为1个有效等价类,1个无效等价类正确答案: B6、用于并发系统,解决定时问题的形式化方法是()。
(2.0)A、 VDMB、 Z语言C、 Petri网D、一阶线性时态逻辑正确答案: C7、软件生命周期中所花费费用最多的阶段是(2.0)A、需求分析B、软件总体设计C、软件维护D、软件实现正确答案: C8、软件质量保证措施SQA不包括:(2.0)A、复审或评审B、软件测试C、程序正确性证明D、软件代码编写正确答案: D9、希望确定软件实现的功能是否与需求规格说明书一致,需进行()。
(2.0)A、单元测试B、有效性测试C、确认测试D、集成测试正确答案: C10、总体设计不包括:(2.0)A、体系结构设计B、数据库设计C、模块内算法设计D、逻辑数据结构设计正确答案: C11、关于类和对象的说法,正确的是(2.0)A、一个类只能有一个角色B、类的命名必须用动词C、类的所有对象都具有相同的属性和操作D、类是对象的实例,对象是类的抽象正确答案: C12、数据字典的基本功能是(2.0)A、数据库设计B、数据通信C、数据定义D、数据维护正确答案: C13、软件需求规格说明的内容不应该包括(2.0)A、主要功能B、算法的描述C、用户界面及其运行环境D、软件性能正确答案: B14、增量模型在添加新的模块时,有一个要求是()(2.0)A、需要更多的测试B、有足够的开发人员C、软件体系结构开放D、各个模块都要进行评审正确答案: C15、在软件详细设计过程中不采用的工具是(2.0)A、判定表B、PDLC、程序流程图D、DFD正确答案: D16、软件测试方法中,黑盒测试方法和白盒测试方法是常用的方法,其中黑盒测试方法主要用于测试(2.0)A、结构合理性B、软件外部功能C、程序正确性D、程序内部逻辑正确答案: B17、耦合是模块之间的相对独立性的度量。
软件工程教材
软件工程教材
一、引言
随着计算机技术的发展和普及,软件在现代社会中的地位显得越来越重要。
软件工程作为一门独立的学科,旨在规范软件开发过程,以提高软件质量,降低开发成本,缩短开发周期。
本教材将介绍软件工程的基本概念、原理、方法和技术,帮助读者深入理解软件工程的本质和实践。
二、软件工程的基本概念
1.软件工程的定义和范畴
2.软件生命周期和软件过程模型
3.软件工程的发展历程
三、软件工程的基本原理
1.软件工程的基本原则
2.软件工程的基本目标
3.软件工程的基本方法
四、软件工程的基本方法和技术
1.软件需求分析
2.软件设计和架构
3.软件测试和调试
4.软件维护和升级
5.软件配置管理
6.软件工具和开发环境
五、软件工程的实践
1.软件开发过程中的各个环节
2.软件开发中的常见问题及解决方法
3.软件工程中的项目管理
4.软件工程中的质量保证和过程改进
5.软件工程中的团队协作和沟通
六、软件工程的发展趋势
1.软件工程的未来发展方向
2.软件工程应用不断拓展的新领域
3.软件工程带来的变革和挑战
七、结语
本教材以系统地介绍软件工程的基本概念、原理、方法和技术为主线,结合实践案例,注重理论与实践的结合,旨在为读者提供一份系统、全面、实用的软件工程学习资料。
同时,本教材也为软件工程初学者提供了一份参考,激励他们深入学习,掌握软件工程的核心知识,为软件开发领域的未来做出贡献。
1.造成大型软件开发困难的根本原因在于软件系统的复杂性2.扶持培养软件高手的学院不属于软件工程的内涵之一3.Ariane 5火箭发射失败的事例告诉我们(1)系统环境的变化可能影响软件采集数据的精度、范围和对系统的控制(3)软件重用必须重新进行系统论证和系统测试4.软件质量是在开发的过程中逐渐构建起来的5.瀑布模型是软件的基础模型6.大力扶持软件企业不属于解决软件危机的途径之一7.划分软件生存周期的阶段时所应遵循的基本原则是各阶段的任务尽可能相对独立8.软件会逐渐退化而不会磨损,其原因在于不断的变更使组件接口之间引起错误9.软件危机的主要原因是软件本身的特点及开发方法10.大多数软件系统是不容易修改的,除非它们在设计时考虑了变化11.把可行性研究各个步骤的工作结果写成清晰的文档,请用户、客户组织的负责人及评审组审查,以决定是否继续这项工程及是否接受分析员推荐的方案。
√12.在进行成本/效益分析的时候,需要考虑运行费用、开发成本、系统使用寿命、系统带来的经济效益13.可行性研究需要的时间长短和所研究系统的规模关系不大×14.数据流图和数据字典共同定义了新系统的逻辑模型√15.成本/效益分析的目的是帮助客户组织的负责人正确地作出是否投资于这项开发工程的决定16.可行性研究的主要包括技术可行性、经济可行性和操作可行性17.分层数据流图是一种比较严格又易于理解的描述公式,它的顶层描述了系统的总貌18.结构化分析方法以数据流图、数据字典和加工说明等描述工具,即用直观的图和简洁的语言来描述软件系统模型19.获取用户需求的时候,定义数据流图中包含的元素使用数据字典20.不适于作为数据流图处理(加工)框名称的是工资支票数据21.外部实体是“用来明确系统和环境的界限”的22.把可行性演技各个步骤的工作结果写成清晰的文档,请用户、客户组织的负责人及评审组审查,以决定是否继续这项工程及是否接受分析员推荐的方案√23.数据流图建立系统的功能模型,它由数据流、加工和数据存贮组成的。
第一章绪论什么是软件工程?软件=程序+数据+文档什么是软件危机?软件危机是指落后的软件生产方式无法满足迅速增长的计算机软件,从而导致软件开发与维护过程中出现一系列严重问题的现象。
什么是软件工程?采用工程化的原理和方法对软件进行计划开发和维护。
软件工程三范型:1.过程式编程范型2.面向对象编程范型3.基于构件技术的编程范型软件工程的发展时期:(1)传统软件工程或者经典软件工程:开发过程:结构化分析一>结构化设计一>面向过程的编码一>软件测试(2)面向对象软件工程开发过程:OO分析与对象抽取一》对象详细设计一》面向对象编码与测试(3)基于构件的软件工程:以软件复用为目标、领域工程为基础,其开发过程一般包括包括以下阶段:领域分析和测试计划定制一一》领域设计一一》建立可复用构件库一一》按“构件集成模型,,查找与集成构件第二章生存周期什么是软件生存周期?计划阶段:需求分析,软件分析开发阶段:软件设计,编码(测试)软件测试维护阶段:运行维护模型特点和使用场合可行性研究1.经济可行性2.技术可行性3.运行可行性4.法律可行性第三章结构化分析与设计结构化程序设计的特点以及论述(1)整个程序的模块化(2)每个模块只有一个入口和出口(3)每个模块都应能单独执行,且无死循环(4)采用自顶向下,逐步细化的方法SA结构化分析设计(结构化)从内容分:1.系统结构设计2.接口设计3.数据设计4.过程设计按照步骤分:1.概要设计2.详细设计第四章OO与面向对象+UML OO的特征1.抽象2.封装3.继承4.多态为什么用面向对象1.符合人类习惯的思维方式2.提高软件系统的可复用性3.提高软件系统的可扩展性4.提高软件系统的可维护性UML相关知识静态图1.用例图:描述系统功能2.类图:描述系统的静态结构3.对象图:描述系统在某个时期的静态结构4.构件图:描述实现系统的元素的组织5.部署图:描述系统环境元素的配置动态图1.状态图:描述系统元素的状态条件和相应2.时序图:按照时间顺序描述系统元素间的交互3.协作图:按照连接关系描述系统元素间的交互4.活动图:描述系统元素的活动流程第五章需求建模需求分析的步骤1.需求获取2.需求建模3.需求描述4.需求验证面向对象需求建模1.画用例图2.写用例规约3.描述补充规约4.编写术语表第六章需求分析面向对象的需求分析1.边界类:边界类提供了对参与者或外部系统交互协议的接口。
软件⼯程复习资料软件⼯程第⼀章⼀、什么是软件?软件(Software)是计算机系统中与硬件相互依存的另⼀部分,它是包括程序(Program),数据(Data)及其相关⽂档(Document)的完整集合。
程序是按事先设计的功能和性能要求执⾏的指令序列数据是使程序能正常操纵信息的数据结构⽂档是与程序开发,维护和使⽤有关的图⽂材料⼆、软件危机原因:与软件本⾝的特点有关(难于维护, 逻辑复杂)与软件开发与维护的⽅法不正确有关:软件≠程序急于求成=拔苗助长各⾃为阵⽆⽅法/学现象:1.成本⾼2.计算机软件和硬件费⽤⽐3.软件质量得不到保证4.由于软件质量问题导致失败的软件项⽬⾮常多5.进度难以控制6.维护⾮常困难办法:软件⼯程(学)三、软件⼯程软件⼯程是应⽤计算机科学、数学及管理科学等原理开发软件的⼯程。
它借鉴传统⼯程的原则、⽅法,以提⾼质量,降低成本为⽬的。
开发、运⾏和维护软件的系统⽅法四、软件⼯程三要素软件⼯程⽅法学包含3个要素:⽅法、⼯具和过程。
五、软件⽣命周期六、软件过程模型瀑布模型瀑布模型适合于⽤户需求明确、完整、⽆重⼤变化的软件项⽬开发。
瀑布模型的成功在很⼤程度上是由于它基本上是⼀种⽂档驱动的模型。
“瀑布模型是由⽂档驱动的”这个事实也是它的⼀个主要缺点。
在项⽬开始的时候,⽤户常常难以清楚地给出所有需求;⽤户与开发⼈员对需求理解存在差异。
实际的项⽬很少按照顺序模型进⾏。
⽤户必须有耐⼼,等到系统开发完成。
缺乏灵活性:因为瀑布模型确定了需求分析的绝对重要性,但是在实践中要想获得完善的需求说明是⾮常困难的,导致“阻塞状态”。
反馈信息慢,开发周期长。
虽然存在不少缺陷,瀑布模型经常被嘲笑为“旧式的”,但是在需求被很好地理解的情况下,仍然是⼀种合理的⽅法。
快速原型模型增量模型增量模型是迭代和演进的过程。
增量模型把软件产品分解成⼀系列的增量构件,在增量开发迭代中逐步加⼊。
每个构件由多个相互作⽤的模块构成,并且能够完成特定的功能。
第一章软件危机概念:指在计算机软件的开发和维护过程中,所遇到的一系列严重问题。
软件危机表现:1.对软件开发成本和进度的估计常常很不正确2.用户对“已完成的”软件系统不满意的现象经常发生3.软件产品的质量往往靠不住4.软件常常是不可维护的5.软件通常没有适当的文档资料6.软件成本在计算机系统总成本中所占的比例逐年上升7.软件开发生产率提高的速度远远跟不上计算机应用迅速普及深入的趋势软件危机原因:1.与软件本身的特点有关2.与软件开发与维护的方法不正确有关①软件开发尚未完全摆脱手工开发方式。
②软件成本相当昂贵,主要依靠大量复杂的、高强度的脑力劳动。
③软件的开发和运行常常受到计算机系统的限制,对计算机系统有着不同程度的依赖性。
怎样消除软件危机:1 、彻底消除“软件就是程序”的错误观念。
2 、充分认识到软件开发是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目,不是个人独立的劳动。
3 、推广和使用在实践中总结出来的软件开发的成功技术和方法。
4 、开发和使用更好的软件工具软件工程概念:概括地说,软件工程是指导计算机软件开发和维护的一门工程学科。
...p5软件工程方法学:通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学也称为范型。
结构化范型和面向对象范型的要点:1采用结构化技术(结构化分析、结构化设计和结构化实现)来完成软件开发的各项任务;2把软件生命周期划分为若干个阶段,按顺序完成每个阶段的任务;3每个阶段开始和结束都有严格的标准,对任何两个相邻的阶段而言,前一个阶段的结束标准就是后一阶段的开始标准;4每一个阶段结束之前都必须进行正式严格的技术审查和管理复审传统方法学的优点:分解任务,分工合作,降低整个软件开发工程的困难;采用科学的管理技术和良好的技术方法对每个阶段成果都进行严格的审查。
保证了软件的质量。
传统方法学的缺点:把数据和操作人为地分离成两个独立的部分,增加了软件开发与维护的难度。
软件工程总复习资料
软件工程概述
- 定义:软件工程是一门研究如何通过系统化、规范化、可度量化的方法开发和维护软件的学科
- 软件工程的目标
- 提高软件开发的质量
- 提高软件开发的效率
- 降低软件开发的成本
- 软件生命周期
- 概念阶段
- 需求分析阶段
- 设计阶段
- 编码实现阶段
- 测试阶段
- 运行和维护阶段
软件生命周期模型
- 瀑布模型
- 原型模型
- 增量模型
- 螺旋模型
软件需求
- 软件需求分类- 功能需求
- 非功能需求
- 软件需求获取- 需求文档
- 需求分析
- 软件需求验证- 合法性验证
- 一致性验证
- 可行性验证
软件设计
- 面向对象设计- 结构化设计
- 数据流图设计- 状态转换图设计
软件测试
- 测试分类
- 静态测试
- 动态测试
- 测试方法
- 黑盒测试
- 白盒测试
- 测试覆盖率- 代码覆盖率- 判定覆盖率- 条件覆盖率- 路径覆盖率
软件质量
- 软件质量模型- ISO 9126模型- McCall模型- 质量保证
- 质量控制
软件项目管理
- 项目计划
- 项目跟踪
- 项目评审
- 质量保证和配置管理
- 风险管理
以上是软件工程的主要知识点总结,希望对大家的复习有所帮助!。
《软件工程》试题参考答案(1)卷一、单向选择题(四选一、每小题3分,共18分)1、需求分析的任务不包括(B)。
A.问题分析B.系统设计C.需求描述D.需求评审。
2、当模块中包含复杂的条件组合,只有( A)能够清晰地表达出各种动作之间的对应关系。
0802A.判定表和判定树C.流程图3、以下不属于逻辑覆盖的是(D)。
1402A.语句覆盖C.条件覆盖B.盒图D 关系图B.判定覆盖D.基本路径4、为适应软件运行环境的变化而修改软件的活动称为( B)。
1501A.纠错性维护B.适应性维护C.改善性维护 D 预防性维护二、填空题(每空2分,共18分)1. 软件可靠性是指在给定的时间间隔内,程序成功运行的(概率)。
01012. 高级语言:独立于机器,面向过程或面向(对象)01013. 软件项目管理的范围主要集中于 3 个P 上,即:People 人员、Problem 问题和(过程)。
02014. 由于维护或在维护过程中其他一些不期望的行为引入的错误称为维护的(副作用)。
15045. 在公式V(G) = E – N + 2 中: E 为程序图G 中边的总数;N 为程序图中结点的总数。
V(G)又称为图 G 的环形(复杂度)0204。
6. 任何一个基于计算机系统都可以用输入-处理-输出(IPO)图来描述,它将该系统转换成一个信息变换模型。
03037. 为提高可交互性一般对所有可能造成损害的用户操作动作,应坚持要求用户(确认),例如,提问“你确实要删除…?”。
12048. 文档是一种数据媒体和其上所记录的(数据)。
0101三、判断题(每小题2分,共24分,错误打X、正确打√)1. 用户对软件需求的描述不准确,往往是产生软件危机的原因之一。
(√)01022. 一个好的开发人员应具备的素质和能力包括善于与周围人员团结协作,建立良好的人际关系,善于听取别人的意见。
(√)02063. 目前的绝大多数软件都不适合于快速原型技术。
一、选择题:1、用例图中,用来表示用例的符号为( B ) 。
2、协作图中包含的元素包括(A ) 。
A. 对象 B. 链 C. 激活 D. 消息3、在类图中,哪种关系表达整体与部分的关系( D ) 。
A .泛化 B. 实现 C. 依赖 D. 聚合4、下列各种图形符号中,用来表示组成关系的符号为 (B )。
A. B. C. D.5 、(A )工具在软件的详细设计中不能使用。
A . DFD B. N-S 图 C. 流程图 D. PDL6 、 “软件危机”是指 (C )。
A. 计算机病毒的出现B. 利用计算机进行经济犯罪活动C. 软件开发和维护中出现的一系列问题D. 人们过分迷恋计算机系统7 、 快速原型是利用原型辅助软件开发的一种新思想,它是在研究 (A )的方法和技术中产生 的。
A. 需求阶段B. 设计阶段C. 测试阶段D. 软件开发的各个阶段8、从严格意义上讲,下列 4 个选项中属于顺序图的元素是(ABCD ) 。
A.对象B. 参与者C. 消息D. 激活9、下列 UML 图形中, (ABCD )属于 UML 的动态视图。
A. 协作图B. 状态图C. 活动图D. 顺序图10、数据字典是软件需求分析阶段的最重要的工具之一,其最基本的功能是( D ) 。
A. 数据库设计B. 数据通信C. 数据关系描述D. 数据定义11、详细设计与概要设计衔接的图形工具是 (D )。
A. DFD 图B. 程序图C. PAD 图D. SC 图12 、UML 中,大多数建模者把节点分为(AC )A . 设备 B. 构件 C. 处理器 D. 显示器13 、(C)是一种特殊形式的状态机,用于对计算流程和工作流程建模。
A .时间图 B. 流程图 C. 活动图 D. 状态图14 、(A )描述从状态到状态的控制流程,常用来对系统的动态特征进行建模。
A. 状态图B. 序列图C. 协作图D. 活动图15、下列特点属于描述用例的特点的是( D ) 。
软件工程复习资料软件工程复习资料软件工程是现代社会中一门重要的学科,它涉及到软件开发、项目管理、质量保证等多个方面。
对于学习软件工程的同学来说,复习资料是必不可少的工具。
本文将为大家介绍一些软件工程复习资料,希望能够帮助大家更好地备考。
一、教材首先,教材是复习软件工程的基础。
常用的软件工程教材有《软件工程导论》、《软件工程》等。
这些教材系统地介绍了软件工程的基本概念、原理和方法,对于初学者来说是非常有帮助的。
在复习时,可以结合教材的章节内容进行有针对性的复习,加深对知识点的理解。
二、经典案例软件工程的学习离不开实践,而经典案例是理论与实践结合的重要途径。
比如,著名的软件项目管理案例——泰坦尼克号项目,可以帮助学生了解项目管理的流程、方法和技巧。
此外,还有一些软件开发的经典案例,如微软的Windows操作系统、谷歌的搜索引擎等,通过研究这些案例,可以更好地理解软件开发的过程和技术。
三、学术论文学术论文是了解软件工程最新研究进展的重要途径。
在复习软件工程时,可以阅读一些相关领域的学术论文,了解最新的研究成果和前沿技术。
同时,学术论文还可以帮助学生提升论文写作和研究能力。
可以通过学术搜索引擎或学术期刊网站获取相关的学术论文。
四、在线资源互联网是获取各种复习资料的重要渠道。
有很多网站提供软件工程的学习资源,如Coursera、edX等在线学习平台,可以免费或付费学习软件工程的相关课程。
此外,还有一些技术博客、论坛等社区,可以与其他学习软件工程的同学进行交流和讨论,共同进步。
五、考试题库考试题库是复习软件工程的重要辅助工具。
通过做题,可以检验自己对知识点的掌握程度,找出自己的不足之处,并加以改进。
可以通过搜索引擎或者考试题库网站获取相关的软件工程考试题目,进行练习和复习。
六、实践项目最后,实践项目是巩固软件工程知识的有效方法。
通过参与实践项目,可以将理论知识应用到实际中,提升自己的实践能力。
可以选择一些开源项目或者自己感兴趣的项目进行参与,通过实践来巩固和扩展学习的知识。
软件工程复习资料 第一章 1、软件的概念: 软件是计算机中与硬件相互依存的另一部分,它是包括程序、数据及其相关文档的完整集合。 2、软件具有下列特点: 1.软件是一种逻辑产品,它具有抽象性和无形性。 2.软件的生产与硬件不同。 3.软件在运行和使用中,不会磨损和老化,但它存在退化问题。 4.软件的开发和运行对计算机系统有一定的依赖性。 5.软件开发至今仍未完全摆脱手工开发方式,大多数软件是“定做”的。 6.软件开发成本高、风险高。 7.相对于计算机硬件技术的发展,计算机软件技术的发展十分缓慢。 3、计算机软件技术的发展经历了三个阶段: 程序设计时期(20世纪40年代中期至60年代中期),软件质量取决于个人编程水平。 程序系统时期(20世纪60年代中期至70年代中期),软件质量取决于开发小组的技术水平 软件工程时期(20世纪70年代以后)。 软件质量取决于软件工程管理水平。 软件技术的发展主线是由个体简单的开发方式向着复杂、大规模、标准化、工程化的方向发展,在最高阶段,把软件开发界定为两方面的内容:软件开发和软件维护。 4、软件开发引发的问题 : 1.社会对软件需求的不断发展 2.软件开发理念和手段与客观实际存在的差异 ① 对软件本身的认识存在差异 ② 对软件的服务对象认识不足 ③ 对软件开发缺乏科学管理 ④ 软件开发手段落后 5、软件危机 (1)发生时间:软件发展第二阶段(程序系统阶段)的末期 (2)软件危机是指在计算机软件开发和维护过程中遇到的一系列严重问题。 问题主要体现在两方面:①如何开发软件满足用户的需求,②如何维护已有的软件 (3)软件危机的主要表现有以下几方面: 1.软件开发经费超支、进度拖延 2.软件不能符合用户的要求 3.软件难以维护 4.软件可靠性差 5.软件开发生产率低 (4)主要原因: 1 社会对软件的需求急剧增加 2 软件本身的特点:软件本身存在着复杂性 3软件开发理念和手段与客观实际存在的差异 ① 对软件本身的认识存在差异 ② 对软件的服务对象认识不足 ③ 对软件开发缺乏科学管理 ④ 软件开发手段落后 寻找解决软件危机途径的过程就是软件工程形成的过程 6、软件工程 核心:以工程化的原理和方法对软件进行规划、定义、开发和维护; 宗旨:以较少的投入,最快的时间生产出高质量的软件。 定义:“软件工程是软件开发、运行、维护和引退的系统方法”。 软件工程的主要思想是强调软件开发过程中应用工程化原则的重要性。 软件工程的三要素是方法、工具和过程。 软件工程的基本目标:实现软件的优质高产,即在给定成本、进度的前提下,达到要求的软件功能,取得较好的软件性能,开发出具有可修改性、有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性,并满足用户需求的软件产品。 软件工程的内容:软件开发技术和软件工程管理。 7、软件生命周期: 一个软件从定义到开发、使用和维护,直到最终被废弃,要经历一个漫长的时期,这个时期称软件生命周期(或软件生存周期)。 生命周期的划分原则 : 各阶段的任务应尽可能相对独立; 同一阶段各项任务的性质尽可能相同 软件生命周期通常划分为3个时期、6个阶段。即: 软件定义、软件开发、软件维护 问题的定义和可行性研究;需求分析;软件设计;程序编码;软件测试;运行与维护 8、软件开发模型 软件开发模型是在软件生命周期基础上构造出的由软件开发全过程中的活动和任务组成的结构框架。它反映了软件开发中各种活动的组织衔接方式。它是软件项目开发工作的基础。 常见的软件开发模型: 1.瀑布模型2.渐增式模型 3.快速原型模型4.软件重用模型5.喷泉模型 6.螺旋模型 瀑布模型是一种理想化的、文档驱动的模型,通过文档连接软件开发过程的各个阶段(阶段间具有顺序性和依赖性),但它缺乏灵活性, 特别是无法解决软件需求不明确或不准确的问题。 螺旋模型将瀑布模型与增量模型结合起来,加入了两种模型均忽略了的风险分析。按照“制定计划,风险分析,实施工程,客户评价”四个步骤循环实施。在实施过程中加入了风险分析,提高了风险识别和规避的能力。 9、软件开发应遵守的方法和原则:(软件工程的原则) 抽象、局部化与信息隐蔽、模块化、一致性、完整性和可验证性。 10.软件开发方法:结构化方法 Jackson方法 面向对象(Object Oriented)方法 结构化方法可使用瀑布模型、增量模型和螺旋模型进行开发; Jackson方法可使用瀑布模型、增量模型进行开发; 面向对象的开发方法一般是采用喷泉模型,也可用瀑布模型、 增量模型进行开发。 第二章 软件的定义及可行性研究(软件定义时期) 1、主要任务:就是在对用户要求充分了解的前提下,分析未来新系统(即目标系统)的主要目标,分析开发系统的可行性。 2、可行性研究的任务(或目标系统的可行性研究有那几个方面?) 对已提出的任何一种解决方案,都从经济、技术、运行和法律诸方面来研究其可行性,做出明确的结论供用户参考。 可行性研究的目的是明确“问题是否能够解决”和“是否值得解决” 可行性研究的实质:在高层次上做一次大大简化了的需求分析和设计 3、名词解释: 系统成本 = 开发成本+运行操作费用 + 维护费用 纯收入 = 累计经济效益(折合成现在值)- 投资额 3、系统流程图的符号及应用 P20 4、投资回收期是累计的经济效益等于最初投资所需要的时间,也就是达到估计开发总成本加上运行维护费用所需要的时间。 5、简述可行性研究的步骤。 (1)审核系统的规模和目标。 (2)研究现行系统。 (3)导出新系统的高层逻辑模型。 (4)重新定义问题。 (5)提出和评价供选择的方案。 (6)推荐可行的方案。 (7)草拟项目开发计划 (8)书写文档,提交审查 6、经济可行性分析 从经济上衡量一个项目是否有开发价值,主要研究两个方面的内容:一是新系统成本的估计;二是新系统可能产生的效益。又称为成本/效益分析。 第三章 需求分析 :是软件生存周期的重要的一步,也是最关键的一步。 1、需求分析的基本任务:准确定义新系统的目标,为了满足用户需要,回答“回答系统必须做什么”的问题( 细化“系统必须做什么”,准确地回答“系统必须做什么”) 2、需求分析的具体任务: 1、确定系统的综合要求 2、分析系统的数据要求 3、导出新系统的逻辑模型 4、修正系统的开发计划 5、开发原型系统 6、整理完成需求规格说明书 需求获取的基本原则:1、点面结合,把握重点2、以流程为主线。 需求获取的途径和方法:1、用户访谈和会议2、把握用户的工作流程3.开发人员和委托人的交流和合作。 3、需求分析的基本过程 1、问题识别 2、分析与综合 3、编写文档 4、分析评审 需求分析常用的方法: 面向数据流的结构化分析方法(SA) 面向数据结构的Jackson方法(JSD) 面向数据结构的结构化数据系统开发方法(DSSD) 面向对象的分析方法(OOA) 结构化分析方法(SA)的基本思想是“分解”和“抽象”, 核心思想是:采用“自顶向下,逐步求精”的技术,对系统进行划分。 结构化分析常用的工具有:数据流图(DFD)、数据词典(DD)、实体-联系图(E-R图) 4、数据流图 数据流图的画法及细化原则P39。 数据流图的四种基本图形符号:
5、数据词典: 定义:对数据流图中包含的所有元素的定义和说明的数据集合。是数据流的补充工具 数据词典和数据流图共同构成系统的逻辑模型,二者缺一不可。 数据词典共六类条目:数据流、数据项、数据结构、数据存储、加工逻辑与外部实体 数据词典的常用符号。
数据存储 数据源点或终点
加 工 加工名 数据流 数据流文件名 实体名
箭 头 圆或椭圆 单或双杠 矩形框 6、数据词典中对基本加工逻辑说明有三种描述方式: 结构化语言,判定表,判定树。 三种描述方式的具体使用。P42-P44 数据词典的功能:数据词典最重要的功能就是它是分析阶段的工具 数据词典中对加工逻辑的描述很有价值 数据词典也是下一步设计的依据 数据词典的实现方法 三种途径:人工方法,自动方法,混合方法 7、快速原型法:软件原型的分类:废弃(throw away)型 追加(add on)型 原型是软件开发过程中,软件的一个早期可运行的版本,它反映了最终系统的部分重要特性。 原型化方法的基本思想是花费少量代价建立一个可运行的系统,使用户及早获得学习和了解目标系统的机会,强调软件开发人员与用户的不断交互,通过原型的演进不断深入了解、适应用户的需求,减少失误,从而使软件产品更加适用。 原型化开发过程:1、快速分析 2、构造原型 3、运行和评价原型4、修改和改进 5、判定原型完成 6、判断原型细部是否需要说明 7、原型细部的说明 8、判定原型效果 9、整理原型和提供文档 第四章 软件设计 :是将需求分析所得出的软件“要做什么”变换为“怎么做” 软件设计的基本目标是用比较抽象概括的方式确定目标系统如何完成任务,即确定系统的物理模型,解决软件“怎么做”的问题。 软件设计的重要性:(1)软件设计是软件开发阶段的关键步骤,通过“软件设计说明书”反映设计的结果。做出的决策将直接影响软件实现的成败。 (2)软件设计是软件开发中形成质量的关键环节,是软件维护的基础。 软件设计一般遵循以下原则:模块化、抽象、信息隐蔽与局部化、一致性、完整性、可验证性。 总体设计过程中应完成以下工作:确定最佳方案、功能分解、体系结构设计、模块设计 数据结构与数据库设计、用户界面设计、整理完成设计文档、评审 1、软件设计的划分: 从工程管理角度,软件设计分两步完成:总体设计(概要设计)、详细设计(过程设计) 从技术角度有任务:软件结构设计、数据设计、界面设计和过程设计 2、模块: 是能够单独命名并独立地完成一定功能的程序语句的集合。模块化就是将系统划分为若干个较小的、功能独立的模块来完成目标任务。 3、名词解释: 抽象是抽出事物的本质特性而暂时不考虑它们的细节。 4、在设计阶段应达到的目标是: 可靠性;可维护性;可理解性;高效率。 5、常见的体系结构有两大类:层次结构和客户机/服务器结构。 6、模块化:模块设计的主要任务就是设计具有独立功能而且和其他模块间没有过多的相互