




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、软件工程学简答应用知识点第一部分:软件工程学概论1,什么是软件工程?软件工程的目标是什么?软件工程(学是研究软件生产方法和技术的学科。软件工程采用工程的概念、原理和方法来开发、维护软件,把经过时间检验的管理方法和先进的软件技术相结合,以提高软件开发的效率、质量和可用性,并有效控制成本和进度。软件工程的目标是解决或改善软件危机,即用更低成本、在更短时间内,开发出更高质量、更易使用和维护的软件产品。2,什么是软件危机?软件危机表现在哪几个方面?软件危机是1960年代以来广泛存在的软件生产力发展远远跟不上社会对软件需求的增长而表现出的一系列矛盾的统称。其主要表现有:(1需求分析不充分:即闭门造车,所
2、产软件的功能、用法与用户真实需要相去甚远。(2质量参差不齐且售后服务没保障。(3开发进度、成本失控。(4软件组成不完整,普遍缺失开发文档、源代码和质量评价。(5维护成本高。3,软件工程的基本原理有哪些?(1分阶段的实施与管理:按软件生命期理论划分软件开发、运行与维护的各项工作任务,对不同阶段安排不同的时间、人员和物力,每个阶段都有相应的管理方法和规范。(2各阶段的成果都应是确定的、具体的、可评价的,从而能被清楚地审查。(3严格的阶段评审:尤其是靠前的阶段,其工作质量对软件工程的整体质量极为关键。(4严格的产品控制:主要是功能、性能需求的基准配置管理。(5尽可能采用先进的技术:包括分析技术、设计
3、技术、实现技术、测试技术、维护技术等。(6开发人员应少而精。(7在软件工程的实践中不断发展软件工程学。4,什么是软件生存周期模型?软件生存周期模型即软件工程过程模型,它从时间角度将软件开发、运行与维护等工作划分成多个特色鲜明的阶段,对不同阶段安排不同的时间、人员和物力,每个阶段都有相应的管理方法和规范。它是指导软件开发与维护的方法论基础。从最初的三阶段论(软件计划、软件开发、运行与维护到比较成熟的七阶段论(可行性研究、需求分析、概要设计、详细设计、编码实现、测试、运行与维护,形成了多种经典的软件工程过程模型:(1瀑布模型:是较早体现七阶段理论的实际工程模型,主要体现了软件工程基本原理一、二、三
4、、四,使用此模型,软件开发效率高,但需求分析不充分的风险比较大。(2快速原型化模型:运用快速原型技术来降低需求分析不充分的风险。(3构件组装模型:在开发产品时有意识地先开发出遵循标准规范的、具有通用功能的、独立性较强的构件,从而在以后的产品开发中可以方便地重用这些代码。(4螺旋模型:强调风险分析与决策。(5V模型:侧重于质量保证。5,软件工程为什么要强调规范化和文档化?整个软件工程会有许多人参与其中,不规范会导致交流困难、组合失败;软件的规范化还有利于与其它软件的互动、协作;规范化的软件更容易使用和维护,从而可以降低运行、维护的成本。文档化是规范化的一个重要要求,其目的是使软件更可理解、更易维
5、护、更可管理,从而提高软件质量、提高二次开发效率。6,软件工程的发展经历了哪些阶段?(11970年代后,传统软件工程:软件工程学理论基本形成;广泛运用结构化分析、设计、编码方法。(21980年代后,对象化软件工程:形成了OOA、OOD、OOP、OOT等面向对象的方法和技术。(31990年代后,组件化软件工程:以对象化技术为基础,形成一系列规范标准,使软件中间件易于维护、易于互调,软件重用度大幅度提高,软件开发效率和质量都有质的提升。7,软件工程师的基本职业道德规范有哪些?ACM/IEEE-CS的软件工程师道德规范和实践要求(SEEPP指出:(1公众原则:以公众利益为目标。(2客户和雇主原则:在
6、公众原则的前提下,满足客户和雇主的最高利益。(3产品原则:确保产品和相关改进符合最高的专业标准。(4判断原则:维护职业判断的完整性和独立性。(5管理原则:赞成和促进对软件开发与维护的合乎道德规范的管理。(6专业原则:推进专业完整性和声誉。(7同行原则:对待同行应当平等、互助和支持。(8自身原则:参与终身职业实践学习,并促进合乎道德的职业实践方法。8,什么是软件工程师的职业化?职业化就是能胜任工作、让人放心。胜任工作意味着具备相应的专业技能、专业知识和专业经验;让人放心意味着建立在行业准则之上的自律精神、团队内外的良好沟通。职业工程师的基本素质包括:高质量完成任务,自觉遵守行业标准,积极融入团队
7、,重视知识产权,认真对待计划,公私分明,不断进取,重视沟通,遵重职场守则,诚信豁达。第二部分:可行性研究与项目管理1,什么是可行性研究?它有什么意义?如何进行可行性研究?可行性研究就是用最小代价在最短时间内确定问题能否解决、是否值得解决。它可以最大程度上避免投资浪费和无意义的人力投入。通过经济、技术、法律、环境的可行性研究,在可行性研究报告中描述技术可行性、项目成熟度、市场需求情况、成本估算、经济与社会效益分析结论,如果可行则还要给出项目计划建议。经济可行性:成本<<收益。2,开发一个软件产品和开发一个软件项目的可行性研究侧重点有何不同?产品软件是开发者根据市场典型需求自行投次开发
8、的、面向社会销售软件拷贝而盈利的开发模式,软件产品归开发者所有,用户只是购买了一份使用权,其可行性研究应侧重于市场需求、成熟度的分析。项目软件是由特定用户投资立项、针对该用户实际需求而研发的、目标相对模糊的、产权归该用户的开发模式,其可行性研究一般侧重于技术可行性、成本估算等。第三部分:结构化分析设计1,什么是需求分析?需求分析就是分析者通过各种调研途径和方式,力求准确把握客户的真实想法,在需求规格说明书中用合适的形式清楚、准确地描述出客户对软件功能、性能的真实需要,并经客户确认。此后,需求规格说明书将成为软件设计、实现和验收测试的基本依据。2,什么是结构化需求分析?结构化分析(SA有什么优缺
9、点?结构化需求分析是面向数据流的分析方法。该方法可以自顶向下、逐步细化,充分考虑全局业务逻辑,直接支持模块化设计与实现;数据与行为分离,相较于OO方法,软件独立性、灵活性、可重用性不高。SA方法一般从对软件用户的分析入手,概括出所要处理的信息、信息流经的业务环节以及信息的变化,即软件的数据基础和功能需求。并进一步论证用户对软件性能的要求。在结构化分析方法中,通常用系统流程图描述客户当前的基本工作原理。在此基础上,用数据流图和数据字典描述软件所要处理或生成的基本信息和软件的基本功能逻辑。进一步,运用ER(实体·关系图详细描述基本信息的组成、结构和相互关联;运用IPO 图等详细描述每个处
10、理环节的输入、输出信息和处理要点。3,飞机订票数据流图 5,什么是结构化设计?结构化设计以需求分析报告为依据,采用模块化、自顶向下、逐步求精的方法,经过概要设计和详细设计,形成软件方案文档。概要设计:首先,提出合理的技术实现模型,包括编码语种、数据库类型、服务器等。其次,根据ER图开展数据基础的设计,定义数据库结构或数据结构或文件结构。还有,根据数据流图开展程序结构设计,把整个系统划分成若干个模块,并用软件结构图描述模块关系;同时,详细定义各模块的接口。详细设计:运用FC图、NS图或PDL等详细描述每个模块的计算原理;绘制主要画面的信息布局示意图,定义主要画面上的控制输入和数据输入。6,什么是
11、模块?如何进行模块化设计?模块是完成一定功能的、能被按名调用的、可以独立编辑、存储和处理的程序单位。模块的外部特性反映为模块接口,包括模块名、输入参数、返回结果或功能结果;模块的内部特性就是它的内部数据结构和计算原理。模块定义的关键是独立性和通用性。增强独立性的措施是加强模块的内聚、弱化模块间的耦合,具体的,就是尽可能将信息隐藏在模块内部,使模块的接口变得简单。增强通用性主要依靠对事务的抽象。7,软件设计应遵循哪些原则?软件设计的基本原则有:需求决定设计;提高软件可复用性;高独立性结构化模块化设计高内聚、低耦合;规范化风格;容错设计等。8,变换型数据流和事务型数据流有何区别?变换型数据流主要反
12、映数据经过处理后的变换结果;事务型数据流主要反映不同业务环节之间的逻辑关系。9,衡量模块独立性的两个标准是什么?可以用模块的内聚性衡量其独立性,内聚越强,模块独立性越高,可复用性、可维护性等也越好。也可用模块间的耦合性衡量模块独立性,模块间耦合越松散,模块的独立性越高。10,模块内聚有哪些各类?独立性、可复用性较差的弱内聚:(1巧合内聚(偶然内聚:模块内各操作之间没有任何相关性,每个操作都可以分离为独立的子模块。这种模块一般没什么复用价值。(2逻辑内聚:就是把逻辑上比较相似的操作组合在一个模块中。这种做法可以节约代码或数据空间,但显著降低了模块的可复用性。(3时间内聚:某些完全没有逻辑关联的操
13、作被组合在一起只是因为它们都是在某种时刻被执行的。例如系统初始化模块。有一定独立性、复用性的中等内聚:(4过程内聚:某此操作被组合在一起是因为它们是某一任务过程的不同步骤,这些步骤有先后要求。(5顺序内聚:模块内各操作是前后数据关联的,即前一操作的输出是后一操作的输入。(6通信内聚:将各操作组合在一起是因为要共用某一输入数据,或是要产生同一种输出。独立性、复用性好的强内聚:(7功能内聚:模块内各操作都是为完成某个功能而必不可少的、紧密联系的步骤。11,模块间有哪几种耦合?现代软件设计中建议禁止的病态耦合:(1内容耦合:A模块内代码直接引用B模块内的代码或数据。一般只用于系统服务、总控平台或特殊
14、功能的紧密耦合:(2公共耦合:多个模块共享某一全局数据结构。(3外部耦合:多个模块共享某一全局简单数据。(4控制耦合:模块A向模块B传递一个控制信息,最典型的情况是以函数名为参数传递给一个模块。可以广泛使用的松散耦合或无耦合:(5数据结构耦合:模块间传递的参数包含数据结构构造类型(数组、结构体、类对象等。(6数据耦合:模块间传递的参数都是以标准数据类型定义的简单参数。(7非直接耦合:两个模块间没有直接关系。第四部分:对象化分析设计1,图书借阅活动图 2,学校领书活动图 第五部分:软件实现与测试1,计算机语言有哪些类型?各有什么特点和适用性?按照语法复杂性、历史发展水平可以将计算机语言划分为三代
15、:低级语言、(传统高级语言和现代(高级语言。低级语言:包括机器语言、汇编语言和宏汇编语言。与硬件相关性较强、指令集较小、语法简单、功能编程极其灵活,被称为万能语言。以此开发软件则质量难以提高、进度难以保证、成本较高,但运行速度相对较快、占用内存空间可以更少。高级语言:特点是可读性强、硬件无关性强,通常还配有高效易用多功能的语言处理软件和子程序、函数库,一般具有鲜明的应用领域针对性。以此开发软件则进度较快、质量较易提高、成本较低。早期高级语言是非结构化的(以BASIC为主要代表,后来的则都是结构化的(如PASCAL、LOGO、C等,再后来就发展到对象化的(如C+、Java 等。根据高级语言的应用
16、领域适用特征,可以有高级算法语言(如FORTRAN、PASCAL、C、C+、商用信息处理语言(如COBOL、工业控制语言(如ADA、人工智能模拟语言(如LISP、PROLOG、过程性数据库操作语言(如xBASE、结构化查询数据库语言(如SQL、网页脚本语言(如JScript、网页文档结构描述语言(如HTTP、XML等。现代语言:有一些语言特征逐渐被开发者普遍认为是有益的,具有这些特征的高级语言被称为现代高级语言(如C#、J+等:(1具有对象化编程核心;(2具有异常响应编程语法;(3支持数据库引擎接口;(4支持事件响应编程模式;(5支持典型网络协议和统一资源定位;(6拥有良好的可视化集成式开发工
17、具以进行高效率的编码、编译、调试和生成;(7拥有丰富的类库和公共计算资源;(8支持线程并发等最新计算模式。2,良好的编程风格是怎样的?良好的编程风格主要表现为良好的可读性、高度的独立性、通用性、可靠性和可移植性。(1运用比较流行的、成熟的结构化、对象化高级语言或现代语言,使程序结构简单、规模合适。(2采用结构层次缩进式编码格式,使程序语法清楚、流程清晰。(3尽量使用标准库和久经考验的扩展库。(4标识符应当简洁表义。(5要有适当的注释:任何程序单位的开头都应有序注,以说明功能和用法(传入参数含义、返回值含义等;某些关键表达式、优化过的表达式或特殊语句的右边添加旁注,以助日后理解;可以在程序单位的
18、最后添加尾注,介绍某些相关知识或补充信息。(5语义表达要明确唯一,不能有二义性。(6不可靠之处应有冗余容错处理。(7尽量避免四层以上的嵌套。(8对外部输入要进行严格的逻辑检查。(9要尽可能照顾到程序的可移植性。3,什么是软件测试?有哪些类型的软件测试?狭义的软件测试是指为了发现软件中可能存在的错误而执行软件的过程,一般根据一定的原则选择一些输入值(称作测试样例构成一个测试方案。软件测试的目标是用最小的样例集合暴露最多的软件错误。如果某个样例使得软件出错,则称这是一次成功的测试。 4,白盒测试有哪些标准?(1语句覆盖:所用测试样例使被测单位的每条语句至少执行一次。(2判定覆盖:又称分支覆盖、选择
19、覆盖,所用测试样例实现语句覆盖的同时,还使被测单位的每个选择分支都至少执行一次以上。(3条件覆盖:所用测试样例实现语句覆盖的同时,还使被测单位的每个判定中的每个条件都至少取真、取假各一次以上。(4条件组合覆盖:所用测试样例实现语覆盖的同时,还使被测单位的每个判定中的每种条件组合都至少出现一次以上。(5其它如点覆盖、边覆盖、路径覆盖等。5,如何设计黑盒测试?根据需求描述,将被测试软件单位的数据输入按某种规则划分成几个等价类(例如合理值与不合理值、合法值与非法值、正数与负数等,然后在每个等价类中任选一个代表值,还有两个相邻等价类之间的边界值,由代表值和边界值共同组成一个黑盒测试方案。第六部分:软件维护与项目管理1,软件维护有哪些类型?被动维护:(1纠错性维护:又称改正性维护,是由于软件发生了错误而需要改正它。(2适应性维护:为适应软件运行环境的变化而对软件进行修改。(3扩展性维护:又称完善性维护,是为了满足用户对软件的新需求而增加功能或改动设计。主动维护:(4改进性维护:又称优化性维护,一般是为了提高软件的性能。(5预防性维护:为防止某些可能出现的问题而针对性地加以防范。2,如何提高软
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 耳部肿瘤课堂
- 好奇产品培训体系构建
- 瞄准新质生产力
- 听了郝红英老师孩子心里发展敏感期与家庭教育的心得体会模版
- 奥康客户关系管理体系构建
- 办公室行政管理
- 技术岗位工作总结模版
- 大学生职业规划大赛《视觉传达设计专业》生涯发展展示
- 大学生职业规划大赛《人力资源管理专业》生涯发展展示
- 细胞治疗产品开发与应用
- 推销实战技巧与客户优秀服务技巧
- 福建新费用定额交底材料
- 器质性精神障碍患者的护理
- 趣味英语课件完整版
- 大学武术智慧树知到答案章节测试2023年浙江大学
- 前列腺增生症患者围手术期的护理
- 五防系统调试报告
- 日语综合教程第六册 单词表
- 市委政研室主任关于如何写稿子的讲话
- 在建项目雨季施工(防汛)安全隐患排查表
- 《广东省普通高中学生档案》模板
评论
0/150
提交评论