软件工程复习提纲(20160615)
- 格式:doc
- 大小:58.00 KB
- 文档页数:10
软件工程复习提纲1.软件危机、软件工程;比较瀑布模型、快速原形模型、螺旋模型、增量模型 2.软件周期各阶段主要任务3.黑盒测试方法、白盒测试包括那些测试?调试,软件维护内容、软件配置管理 4.ISO9000-3,CMM 等级特征、甘特图、工程网络图主题层类与对象层 结构层 属性层服务层5.类、封装、继承6.程序流程图、PAD图,PDL语言7.数据流图→软件结构图某培训中心要研制一个计算机管理系统。
它的业务是:将学员发来的信件收集分类后,按几种不同的情况处理。
1)如果是报名的,则将报名数据送给负责报名事务的职员,他们将查阅课程文件,检查该课程是否额满,然后在学生文件.课程文件上登记,并开出报告单交财务部门,财务人员开出发票给学生。
2)如果是想注销原来已选修的课程,则由注销人员在课程文件.学生文件和账目文件上做相应的修改,并给学生注销单。
3)如果是付款的,则由财务人员在账目文件上登记,也给学生一张收费收据。
要求:1. 对以上问题画出数据流程图。
2. 画出该培训管理的软件结构图的主图。
用SA方法画出下列问题的顶层和0层数据流图。
某运动会管理系统接受来自运动员的报名单.裁判的比赛项目及项目成绩,产生运动员号码单发送给运动员,项目参加者发送给裁判,单项名次.团体名次发送给发布台。
该系统有两部分功能:(1)登记报名单:接受报名单.比赛项目,产生运动员号码单.项目参加者,形成运动员名单及团体成绩表两种数据存储。
(2)统计成绩:接受项目成绩,查询运动员名单,产生单项名次,填写团体成绩,最后产生团体名次。
某图书馆借阅系统有以下功能:(1)借书:根据读者的借书证查询读者档案,若借书数目未超过规定数量,则办理借阅手续(修改库存记录及读者档案),超过规定数量者不予借阅。
对于第一次借阅者则直接办理借阅手续。
(2)还书:根据读者书中的条形码,修改库存记录及读者档案,若借阅时间超过规定期限则罚款。
请对以上问题,画出分层数据流图。
《软件工程》复习提纲一一、、 授授课课的的主主要要内内容容11.. 基基本本概概念念((11)) 有有关关““软软件件工工程程””的的基基本本概概念念11))软软件件工工程程的的诞诞生生那是1968……22))软软件件危危机机计计算算机机软软件件开开发发和和软软件件维维护护过过程程中中所所遇遇到到的的一一系系列列严严重重问问题题统统称称为为““软软件件危危机机””。
概括地说,软件危机包含两方面的问题:一是如何开发软件,怎样满足人们对软件日益增长的需求?二是如何维护软件,使它们持久地满足人们的要求。
33))软软件件包含与数据处理系统操作有关的程序、规程、规则以及相关文档的智力创作称为软件(计算机)。
文档是描述程序开发过程的,是智力创作的真实记录,是创作活动的历史档案和结晶。
软软件件由由计计算算机机程程序序,,数数据据结结构构和和文文档档组组成成。
计算机程序执行特定的功能;数据结构是程序运行所需的数据;文档是描述程序开发、使用和维护的资料。
44)) 软软件件工工程程的的概概念念采采用用工工程程学学的的原原理理来来管管理理和和从从事事软软件件的的开开发发和和软软件件维维护护,,称称为为软软件件工工程程。
(工程学:系统化、规范化、数量化)55))软软件件质质量量的的基基本本概概念念(a )软件质量的定义与软件产品满足规定的和隐含的需求能力有关的特征和特性的全体。
具体来说:1)软件产品中能满足给定需求的性质和特性的总体;2)软件具有所期望的各种属性的组合程度。
(b )软件质量特性(1)功能性:当软件在指定条件下使用时,软件产品提供满足明确和隐含要求的功能的能力。
(2)可靠性:在指定条件下使用时,软件产品维持规定的性能级别的能力。
(3)易用性:在指定条件下使用时,软件产品被理解、学习、使用和吸引用户的能力。
(4)效 率:在规定条件下,相对于所用资源的数量,软件产品可提供适当性能的能力。
(5)维护性:软件产品可被修改的能力。
《软件⼯程》复习提纲注:下⽂中的例题仅供复习⽤,请不要当成考题来背。
1.软件危机主要体现在哪些⽅⾯?(1.1)P2例题:软件⼯程的出现主要是由于( C )。
A.程序设计⽅法学的影响B.其它⼯程科学的影响C. 软件危机的出现 D.计算机的发展软件危机主要表现在那些⽅⾯?答:软件危机主要表现在:1)对软件开发成本和进度的估算很不准确2)⽤户很不满意3)质量很不可靠4)没有适当的⽂档5)软件成本⽐重上升6)供不应求:软件开发⽣产率跟不上计算机应⽤迅速深⼊的趋势2.什么是瀑布模型,RUP模型,快速原型模型,螺旋模型,喷泉模型?(2.2-2.6,)P14起软件开发中常采⽤的结构化⽣命周期⽅法,由于其特征⽽⼀般称其为( A )A、瀑布模型B、对象模型C、螺旋模型D、层次模型瀑布模型的存在问题是(B)A.⽤户容易参与开发 B.缺乏灵活性C.⽤户与开发者易沟通 D.适⽤可变需求名词解释瀑布模型将软件⽣存周期各个活动规定为依线性顺序连接的若⼲阶段的模型叫瀑布模型。
书P34/2 对⽐瀑布模型、原型模型、增量模型和螺旋模型答:瀑布模型:主要体现了分阶段、有控制的思想。
活动间强调按顺序,⽂档化;存在的问题过于理想化,每⼀步的⼯作必须完整准确,否则⽆法进⾏下⼀步⼯作。
原型模型:需求分析⼊⼿快速、表达直观、容易交流。
重点解决瀑布模型的需求分析⼊⼿难的问题。
增量模型:对于需求复杂的系统,采⽤分块开发、逐步集成的开发策略。
增量体现了演进迭代思想,每⼀块就是⼀个增量。
每个增量是⼀次迭代。
增量模型的新版本叫做“极限编程(XP)”螺旋模型:融合了上述3种模型,融进了循环往复、强化了演进迭代的思想,增加了风险控制环节。
但是,风险分析的正确性是左右软件演进的关键因素。
3.增量模型和ER模型有什么特点?2.4+3.4 P17+P42在E-R 模型中,包含以下基本成分( C )。
A、数据、对象、实体B、控制、联系、对象C、实体、联系、属性D、对象、属性、操作ER模型有什么特点?答:ER模型⽐较接近⼈的思维⽅式。
软件工程复习提纲(附答案)软件工程第一章软件工程介绍1、软件的特性:P3软件是设计开发的,而不是传统意义上的生产制造;软件不会磨损;大多数软件仍是根据实际的客户需求制定的。
2、计算机软件的七大分类:P5系统软件、应用软件、工程/科学软件、嵌入式软件、产品线软件、Web应用软件、人工智能软件。
3、遗留系统发生系统演化的原因:P6软件需要修改其适应性,从而可以满足新的计算环境或技术的需求软件必须根据新的业务需求进行升级软件必须扩展以具有与更多现代系统和数据库的协作能力软件架构必须进行改建以适应多样化的网络环境4、软件神话:管理者,用户,从业者P135、软件的定义:P3软件是:指令的集合,通过执行这些指令可以满足预期的特征,功能和性能需求;数据结构,它使得程序可以充分利用信息;描述程序操作和使用的文档。
第二章过程综述1、软件工程的三个要素:工具,过程,方法P8过程:软件过程将各个技术层次结合在一起,并实施合理地,及时地开发计算机软件方法:为建造软件提供技术上的解决方法。
工具:为过程和方法提供自动化或半自动化的支持。
2、通用软件过程框架:沟通,策划,建模,构建,部署P9沟通:这个框架活动包含了与客户之间大量的交流和协作,还包括需求获取以及其他相关活动策划:指为后续的软件工程工作制定计划。
建模:它包括创建模型和设计两方面。
创建模型有助于客户和开发人员更好得理解软件需求;设计可以实现它。
构建:它包括编码和测试。
部署:软件交付到用户,用户对其进行评测并给出意见3、能力成熟度模型:P22第0级:不完全级;第1级:已执行级;第2级:已管理级;第3级:已定义级;第4级:已定量管理级;第5级:优化级;第三章过程模型1、简述惯例框架包含的主要活动:P19沟通、策划、建模、构建、部署2、简述瀑布模型所包含的主要框架活动:P24沟通、策划、建模、构建、部署3、简述瀑布模型在实际运用中所面临的问题(缺点):P24实际的项目很少遵守瀑布模型提出的顺序客户通常难以清楚地描述所有的需求客户必须有耐心,因为只有在项目的后期,他们才能看到可执行的程序。
软件工程复习提纲第1章概述1、什么是软件危机?产生软件危机的主要原因?P3软件危机是指计算机软件的开发和维护过程中所遇见的一系列严重问题出现软件危机的主要原因是人们在开发软件时使用了错误的方法2、软件工程的定义?P5软件工程是指导计算机软件开发与维护的工程学料,它采用工程的概念,原理、技术和方法来开发与维护软件3、软件生命周期定义,八个阶段,及基本任务是什么?P10软件生命周期是指一个软件从定义、开发、使用和维护,直到最终被废弃,经历了一个漫长的时期。
八个阶段为问题定义(关键问题是:“要解决的问题是什么?”);可行性研究(用最小的代价在尽可能短的时间内确定问题是否解决);需求分析(仍然不是具体地解决客户的问题,而是准确地回答“目标系统必须做什么”这个问题);概要设计(概括地回答“怎么实现目标系统?”这个问题);详细设计(还不是编写程序,而是设计出程序的详细规格说明);编码和单元测试(写出正确的容易理解、容易维护的程序模块);综合测试(通过各种类型的测试(及相应的调试)使软件达到预定的要求);软件维护(通过各种必要的维护活动使系统持久地满足用户的需求)4、螺旋模型:综合了瀑布模型和快速原型的优点,并增加了风险分析5、5种模型的特点。
瀑布模型具有三个特点:1阶段间具有顺序性和依赖性2推迟实现的观点3质量保证的重点快速原型模型是不带反馈环的,软件产品的开发基本上是线性顺序进行的增量模型也称为渐增模型,使用增量模型开发软件时,把软件产品作为一系列的增量构件来设计、编码、集成和测试。
每一个构件由多个相互作用的模块构成,并且能够完成特定的功能螺旋模型综合了瀑布模型和快速原型的优点,并增加了风险分析喷泉模型第2章结构化分析1、可行性分析主要是进行哪三个方面的分析?P23技术可行性、经济可行性和操作可行性2、结构化分析主要建立什么模型?P32主要建立功能模型(数据流图)、数据模型(ER图)和行为模型(状态图)3、E-R关系图包含什么信息?P40包含着实体(客观世界中存在的且可相互区分的事物)、联系(客观世界中的事物彼此间往往是有联系的)和属性(实体或联系所具有的性质)4、什么是数据流图?P41数据流图(DFD )是一种形象直观的图形,它描绘数据在软件中从输入移动到输出的过程中所经受的变换(即加工处理)5、会画简单的实体联系图、系统流程图、数据流图?P426、什么是数据字典?P47数据字典是描述数据的信息的集合,是对目标系统中使用的所有数据的定义的集合7、结构化分析的策略是自顶向下逐步求精。
软件工程复习资料(提纲+答案)第一章软件工程的实质1、什么是软件?由什么组成?软件:是计算机系统中与硬件相互依存的另一部分,它是包括程序、数据及其相关文档组成的完整集合。
可以写作为:软件=程序+数据+文档。
2、什么是软件危机?为什么会产生?(原因)软件危机:指的是在计算机软件的开发和维护过程中所遇到的一系列严重的问题。
原因:用户需求不明确、缺乏正确的理论指导、软件规模越来越大、软件复杂度越来越高3、为什么要进行软件开发?4、软件工程的三段论?三段论:软件项目管理论、软件项目开发论、软件过程改进论5、软件工程生存期模型概念、类型、每种类型的特点?答:软件生存周期模型是描述软件开发过程中各种活动如何执行的模型。
软件生存周期模型确立了软件开发和演绎中各阶段的次序限制以及各阶段或机动的准则,确立开发过程所遵守的规定和限制,便于各种活动的协调,便于各种人员的有效通信,有利于活动重用,有利于活动管理。
常见的软件生存周期模型有瀑布模型、V模型、原型模型、增量式模型、螺旋式模型。
6、了解复用的原则第二章软件项目的需求分析1、需求分析的主要任务?(基本任务)答:需求分析阶段的基本任务是要准确的定义新系统的目标,满足用户需要,回答系统必须“做什么”的问题。
本阶段要主要有以下几方面工作:(1)问题识别,双方确定对问题的综合需求,包括:功能需求、性能需求、用户界面需求,以及可靠性、安全性、可维护性等方面的需求。
(2)建立模型,对获取的需求,进行分析细化,划分系统功能,确定系统构成,并建立系统的逻辑模型。
(3)编写文档,也就是完成“需求规格说明书”的编写工作。
2、需求分析分两大块(功能与非功能)功能需求描述系统所预期提供的功能或服务。
非功能需求是对系统提供的服务或功能给出的约束。
包括时间约束、开发过程的约束、标准等。
3、(P27)需求建模的基本方法?答:关联模型、行为模型(数据流模型和状态机模型)、数据模型、面向对象模型、结构化模型(技术:数据流图(DFD)、数据字典(DD)、系统流程图)以及其他方法(如原型法、功能列表等)4、结构化方法的代表?(P29)7状态图活动图8、理解好数据流图为什么要分层?9、UML中常用的9种图?(P32 把包图去掉)静态图:类图、对象图、构件图、实施图和包图。
软件工程的复习题纲第一章1、软件工程的生存周期:制定计划;需求分析;总体设计;详细设计;程序编写;软件测试;运行/维护。
2、软件工程的各个生存期模型的特点和适合项目。
(生存期模型有瀑布模型、V模型、原型模型、增量式模型和螺旋式模型)(部分是在网上找的,老师说考这些模型的特点,有什么情况下适合用什么来进行开发。
)瀑布模型的特点:(1)阶段间具有顺序性和依赖性。
(2)推迟实现的观点。
(3)每个阶段必须完成规定的文(每个阶段结束前完成文档审查, 及早改正错误。
)(4)下一个阶段可以回溯到前面的某个阶段适合于:1.开发阶段需求很少有变化2.分析设计人员对应用领域很熟悉3.低风险项目4.用户使用环境很稳定5.用户除提出需求外,很少参与开发工作类似的项目如:公司的财务系统;库存管理系统;短期项目V模型的特点:(1)简单易用(2)强调测试过程与开发过程的对应性和并行(3)没有反应实际的开发过程。
V模型适合的项目:❑在项目开始前,项目的需求很明确❑在项目开始前,解决方案也很明确❑对系统的性能安全很严格的项目❑类似的项目如:❑航天飞机等❑公司的财务系统原型模型的特点:(1)在需求定义之前,需要快速构建一个系统(2)根据构建系统的优缺点,用户给开发人员提出反馈意见(3)根据反馈意见修改软件需求规格,以便系统可以更正确的反映用户的需求(4)减少各种假设以及风险适合的项目:❑在项目开始前,项目的需求不明确❑需要减少项目需求的不确定性❑类似的项目如:❑确定显示界面❑第一次开发的产品,验证可行性增量式模型的特点:1.需求多变,可以分阶段提交产品。
2.分析设计人员对应用领域不熟悉,难以一步到位。
3.用户参与整个软件开发工程中,起到对客户起到镇静剂的作用,增量能够有计划地管理技术风险。
4.软件公司自己有较好的类库或构件库5.增量的内容写入合同,可能会引起客户的不满。
6.融合了瀑布模型的基本成分和原形实现的迭代特征,优点是人员分配灵活,刚开始不用投入大量人力资源,如果核心产品很受欢迎,则可增加人力实现下一下增量。
软件工程复习纲要第一章、概述1、软件危机的概念与主要原因(1)软件危机是指在计算机软件开发与维护时所遇到的一系列问题。
(2)软件危机产生的原因:软件规模、方法、技术、软件开发人员;客观:规模,环境,需求变化;主观:开发技术,管理。
✓软件产品规模庞大,开发与维护带来客观困难✓软件使用同期相对较长,期间可能出现开发没料到的问题,需要与时维护✓软件开发技术落后,生产方式与开发工具落后✓软件开发人员忽视软件需求分析的重要性,轻视软件维护2、软件、软件工程、软件工程学的概念(1)软件是指计算机程序与其有关的数据与文档。
(2)软件工程(software engineering)是计算机软件开发、运行、维护与隐退的系统方法;是指导计算机软件开发与维护的工程学科;软件工程的目标是在规定的时间、开发费用内,开发满足用户需求的高质量的软件。
(3)软件工程学的主要内容是软件开发技术(包含软件工程方法学、软件工具与软件开发环境)与软件工程管理(包含软件工程经济学与软件管理学)。
更多内容请见P.4;3、软件生命周期与生命周期各阶段的任务(1)软件生命周期指从设计软件产品开始到产品不能使用为止的时间周期。
包括:定义,开发,使用,维护,淘汰。
(2)软件生命周期各阶段的任务✧软件计划、软件开发与软件运行维护三个时期。
✧软件计划时期:问题定义、可行性研究、需求分析✧软件开发时期:软件概要设计、软件详细设计、软件实现、综合测试等阶段。
✧软件运行维护时期:需要不断地进行维护,使软件持久满足用户需要4、软件开发模型的几种模型与各模型的特征(1)瀑布模型(Waterfall Model) :(规范的、文档驱动方法。
开发阶段按顺序进行,适合需求分析较明确、开发技术较成熟的情况。
)特点:阶段间具有顺序性与依赖性;推迟实现编码;质量保证。
(2)快速原型模型:(快速原型系统让用户试用并收集用户意见。
获取用户真实需求。
)特点:软件产品的开发基本上是线性顺序进行的;能减少软件的总成本,缩短开发周期。
软件工程复习提纲I. 软件工程概述A. 定义与目标B. 发展历程C. 软件工程原则与方法论II. 软件开发过程A. 瀑布模型1. 阶段划分与任务2. 优点与缺点B. 增量模型1. 阶段划分与任务2. 优点与缺点C. 喷泉模型1. 阶段划分与任务2. 优点与缺点III. 需求工程A. 需求获取与分析1. 用户需求调研2. 需求规格化B. 需求验证与确认1. 需求评审2. 需求跟踪与控制IV. 软件设计A. 结构设计1. 模块化设计原则2. 模块间接口设计B. 数据设计1. 数据建模2. 数据库设计C. 用户界面设计1. 人机交互原则2. 界面布局与设计规范V. 软件构建A. 编码规范与标准1. 命名规范2. 代码注释B. 单元测试与集成测试1. 测试用例设计2. 测试工具与技术VI. 软件质量保证与控制A. 质量特性及度量1. 功能性2. 可靠性3. 可维护性4. 可测试性B. 缺陷管理1. 缺陷跟踪与报告2. 缺陷分析与修复VII. 软件项目管理A. 项目规划与组织1. 范围管理2. 人力资源管理B. 项目进度与成本控制1. 进度计划与跟踪2. 成本估算与控制VIII. 软件配置管理A. 版本管理1. 版本控制工具2. 分支与合并策略B. 变更管理1. 变更控制流程2. 变更影响分析IX. 软件工程伦理与职业责任A. 代码所有权与知识产权B. 软件开发道德标准X. 结语以上是软件工程复习提纲的架构,通过对各个主题的概要介绍和论述,有助于理解软件工程的基本概念、方法和流程,并为考试或复习提供了一个清晰的框架。
在准备复习时,可以根据这个提纲,进一步深入学习和了解各个主题中的具体知识点和案例。
软件工程是一门重要的学科,对于软件开发和项目管理都有着重要的指导意义,希望通过这个提纲的复习,能够帮助你更好地掌握软件工程领域的核心知识。
《软件工程》复习提纲第1章软件工程概论§1.1 引言主要是介绍软件发展的基本情况。
§1.2 软件概述1.什么是软件?它的特点是什么?软件是计算机系统中与硬件相互依存的另一部分,它是包括程序、数据及其相关文档组成的完整集合。
可以理解为:软件= 程序+ 数据+ 文档2. 软件的特点(1)软件具有抽象特征。
(2)软件具有无明显制造过程的特征。
(3)软件无备件的特征。
(4)手工制作特征。
(5)成本昂贵特征。
3. 软件的分类4. 软件的发展为了解决软件危机,人们在软件开发中也不断改进和发展,在几十年发展中计算机软件开发经历了四个重要的阶段:※☐(1)程序设计阶段:40年代中期至60年代中期☐(2)程序系统阶段:60年代中期至70年代年代中期☐(3)软件工程阶段:70年代中期到90年代☐(4)第四代技术阶段:90年代以后§1.3 软件危机1.什么是软件危机?为什么为产生软件危机?软件危机是指在软件开发和维护中所产生的一系列严重的问题。
一是如何开发软件,满足用户对软件的需求,二是如何维护数量众多的已有软件在软件开发和维护的过程中存在这么多严重问题,一方面与软件本身的特点有关,另一方面也和软件开发与维护的方法不正确有关。
(1)软件是计算机系统中的逻辑部件,缺乏“可见性”,且软件产品往往规模庞大,给软件的开发和维护带来客观的困难。
(2)软件一般要使用5~10年,在这段时间里,很可能出现开发时没有预料到的问题。
(3)软件开发技术落后,生产方式和开发工具落后。
(4)软件开发人员忽视软件需求分析的重要性,轻视软件维护。
2. 软件危机的表现形式其主要表现如下:(1)软件发展速度跟不上硬件的发展和用户的需求(2)对软件成本和进度估计不准确,用户不满意。
(3)软件产品质量差,可靠性不能保证。
(4)软件产品可维护性差。
(5)软件没有合适的文档资料。
3. 解决软件危机的途径(1)应该加强软件开发过程的管理(2)推广使用开发软件的成功技术与方法(3)开发和使用好的软件工具§1.4 软件工程1.什么是软件工程?它的目标是什么?软件工程是指导计算机软件开发和维护的工程学科。
《软件⼯程》复习⼤纲第⼀章1.软件:是能够完成预定功能和性能的可执⾏的计算机程序。
包括使程序正常执⾏所需的数据,以及有关描述程序操作和使⽤的⽂档。
即:软件= 程序+ ⽂档2.软件的特征:软件的开发不同于硬件设计、不同于硬件制造、不同于硬件维修。
3.软件危机出现的原因:软件维护费⽤的急剧上升,直接威胁计算机应⽤的扩⼤;4.软件⽣产技术进步缓慢,是家居软件危机的重要原因。
5.软件⼯程学的范畴:软件开发技术(软件开发⽅法学、软件⼯具、软件⼯程环境)、软件⼯程管理(软件管理学、软件经济学、度量学)。
6.软件⼯程:是指导计算机软件开发和维护的⼯程学科。
它采⽤⼯程的概念、原理、技术和⽅法来开发与维护软件,⽬的是为了实现按照预期的进度和经费完成软件⽣产计划,同时提⾼软件的⽣产率和可靠性。
7.软件的发展:⼤体经历了程序、软件、软件产品3个阶段。
8.⼯具和⽅法是软件开发技术的两⼤⽀柱。
9.三种编程范型:过程式编程范型、⾯向对象编程范型、基于构件技术的编程范型。
10.三代软件⼯程:①传统软件⼯程②⾯向对象软件⼯程③基于构件的软件⼯程。
第⼆章1.软件⽣存周期:计划、开发、运⾏3个时期。
2.软件⽣存周期的主要活动:需求分析—》软件分析—》软件设计—》编码测试—》软件测试—》运⾏维护注:需求分析(⽤户视⾓):功能需求、性能需求、环境约束、外部接⼝描述。
软件分析(开发⼈员视⾓):建⽴与需求模型⼀致的,与实现⽆关的软件分析模型。
软件设计:总体设计/概要设计、详细设计(确定软件的数据结构和操作)。
单元测试通常与编码同时进⾏。
软件测试:单元测试、集成测试、系统测试。
3.软件过程:围绕软件开发所进⾏的⼀系列活动。
4.瀑布模型是⼀种基于软件⽣存周期的线性开发模型。
5.瀑布模型特点:阶段间的顺序性和依赖性、推迟实现的观点、保证质量的观点。
6.瀑布模型存在的问题:只有在需求分析准确的前提下,才能得到预期的结果。
7.常见的演化模型(渐增式、迭代式):增量模型、螺旋模型。
《软件工程》复习提纲第一篇:《软件工程》复习提纲《软件工程》课程要点λ每章教学课件中的“本章小结”列出了需要掌握的内容λ教学过程中的例题和习题也是课程重点一、软件工程与软件过程概述1.概念:(1)软件的概念(组成成分、作用);答:计算机软件是程序、数据和相关文档的集合;用于实现计算机系统所需要的逻辑方法和控制过程(2)软件危机的含义、表现、产生原因(客观、主观)答:计算机软件开发和维护过程中遇到的一系列严重问题。
软件危机的表现:①对软件开发成本和进度的估计很不准确②已完成的软件不能满足用户需求③软件质量差④软件不可维护⑤软件没有开发文档⑥软件成本在计算机系统总成本中所占的比例逐年上升⑦软件生产率跟不上硬件的发展和计算机迅速普及的趋势与软件的特点有关(客观原因):①软件是计算机系统中的逻辑部件,缺乏“可见性”,管理和控制软件开发过程相当困难②软件在使用期间不存在机械磨损和老化问题,一旦发现错误,通常意味着修改原来的设计,因此软件难维护③软件规模庞大,程序复杂性增加,需多人分工合作(不能保证每个人完成的工作合在一起构成一个高质量的大型软件系统)与软件开发和维护的方法不正确有关(主观原因):① 开发无计划② 忽视软件需求分析的重要性③ 轻视软件维护④ 无过硬评测手段⑤ 缺乏有力的开发方法和工具⑥ 不重视开发文档等软件配置(3)软件工程学科包括的内容(三要素)、解决的主要问题答:(1)软件工程定义:1)软件工程是指导计算机软件开发和维护的工程学科2)采用工程化的概念、原理、技术和方法来开发和维护软件3)将经过时间考验而证明正确的管理技术和开发技术结合起来,以较经济的手段开发出高质量的软件并有效维护它2)软件工程方法学的三要素:①方法:完成软件开发各项任务的技术方法1 ②工具:为方法的高效运用,而提供的自动或半自动的软件支撑环境③过程:为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤(4)软件生命周期的含义、组成阶段及各阶段主要任务答:软件生命周期:一个软件从定义、开发、运行维护,直到最终被废弃要经历一个漫长的时期,这个时期称为软件生命周期。
软件工程复习提纲Chapter11.开发文档都有哪些?用图来表示它们之间的关系。
2.说明软件工程研究的内容.3.软件工程的7条基本原理有何现实意义。
4.怎样理解ISO9000的文档体系?质量手册、程序文件、质量记录三者有何联系和区别?5.怎样理解CMMI,如何用CMMI去管理软件企业?6.是否存在这一种现象:搞系统软件的公司不需要采用CMMI和ISO9000模式?CMMI和ISO9000模式只适用于搞应用软件的企业?如果是,为什么,如果不是,又为什么?7.软件工程与信息系统工程有何异同?8.怎样理解元数据?Chapter21.为什么要选择软件开发模型?软件开发模型与软件生存周期有什么关系?2.简述瀑布模型、增量模型、迭代模型、原型模型的优缺点。
3.软件公司的ISO9000或CMM管理体系与软件开发模型有关吗,为什么?4.你对“生存周期模型裁剪指南"有什么看法?5.“图书馆信息系统”的开发选用什么开发模型合适?Chapter31.立项的具体表现形式是什么?2.立项建议书的编制者为什么主要是软件公司的市场销售人员,而不是开发人员?3.什么叫风险分析,技能风险与技术风险有何区别?3.合同、任务书、立项建议书三者有何异同?有何关系?4.对软件项目和产品的“功能、性能、接口"三项指标如何理解?Chapter41.需求分析的目的是什么,需求分析的难点在哪里?2.需求分析的理论基础有哪几条?3.为什么说需求分析是面向流程的?4.解释术语:元数据、实体、中间数据.5.用户需求报告与需求规格书有何差异?6.需求描述有哪几种工具?你喜欢哪一种,为什么?1.简述软件策划的步骤.2.简述软件策划的方法。
3.简述对软件工作产品规模进行量化估计的方法。
4.软件工作产品和软件产品有何异同?5.名称解释:直接人工、直接费用、间接成本、制造费用、管理费用、不可预见费用。
6.怎样理解软件中的度量,它有何作用?Chapter61.概要设计说明书和详细设计说明书有何区别?2.怎么理解“软件概要设计是系统总体结构设计或系统架构设计”?3.模块实现设计包括哪些内容?4.为什么软件设计要遵守“抽象、分解与模块化、低耦合高内聚、封装、接口和实现分离”的设计原理?Chapter71.简述UML的优缺点。
2.信息系统的业务模型、功能模型、数据模型各是什么?3.请说明“三个模型”的定义以及三者之间的关系。
Chapter81.软件实现要做的工作包括哪几项?2.界面设计应遵从哪些原则?3.软件实现管理哪些内容?Chapter99.1 软件测试的目的和目标是什么?9。
4 试阐述软件测试V模型的思想及不足之处和改进办法。
9。
6 试说出黑盒测试和白盒的区别和联系。
9.9 软件测试工作中要验证哪些文档?试举例。
Chapter1010.3 软件项目与软件产品有什么不同?10.4 软件产品发布的方式有哪几种?10。
5 三类软件产品的发布策略有何差异?11.6 传统软件维护分哪几大类?11.8 什么叫结构化维护和非结构化维护?11。
10 软件维护的副作用表现在哪4个方面?11.13 两层结构和三层结构的软件维护方法有什么不同?11。
15 软件维护与软件产品版本升级有什么关系?Chapter1212.1 怎样理解“软件组织、工作产品、软件过程、软件过程源、软件过程财富”的概念?12.4 SW-CMM的5个级别各有哪些特征?12。
5 CMMI的实施步骤是什么?Chapter1313.1 人们为什么越来越重视软件配置管理?13。
4 软件配置管理的目的是什么?13.6 什么是配置项?什么是配置管理?13。
9 基线、里程碑与检查点各是什么含义?它们之间有什么关系?13。
13 软件配置管理员的职责有哪些?Chapter1414.2 针对软件质量保证问题,最有效的办法是什么?14。
5 对软件质量进行“全面综合治理"有哪5种方法,哪一种方法最好,为什么?Chapter1515。
2 为什么说“规范是对过程的约束,标准是对产品的约束,制度是对行为的约束”? 15。
3 培训与企业文化有什么关系?15.4 培训文档与培训管理文档有什么差别?Chapter1616。
6 “项目管理提供给人们一种解决问题的思路和方法”.请论述其中的思路和方法。
16.16 请说明软件企业的工作流。
第一部分软件工程内容与方法、生存周期及开发模型、立项与合同(参见补充资料)本章学习目标:1.对软件的定义及其特点有比较全面、客观的认识。
2.认真分析计算机软件发展的三个时期的演进过程,提高对软件工程化的认识。
3.简述软件危机产生的原因。
4.阐释软件生存期的六个步骤。
5.针对软件生存期的瀑布模型、演化模型、螺旋模型、喷泉模型、智能模型、线性顺序模型、原型模型、RAD模型、增量模型的改进过程,指出各个模型的特点与不足,并预测软件工程开发模型的发展趋势.6.用自己的语言叙述“螺旋模型”、“RAD模型”的实施过程。
7.比较“软件工程”的各种不同的定义,简述软件工程观念的变化。
8.论述软件工程项目的基本目标及其相互之间的关系。
9.阐释组成“基于计算机系统(Computer—based Systems)”的系统各元素及其相互之间的关系,能用这种组成原则来分析具体问题。
10.理解“计算机系统工程”的实质,认真分析其“分配方案”的评价准则,试在更广泛的学科范围应用这些准则。
11.比较用“事件流"方式描述的硬件工程过程与软件工程过程的异同,用自己的语言描述出这种异同。
12.人作为“基于计算机系统”的组成元素,其自己的构成涉及到哪些成分?通过人类工程过程的描述,加深对“用户友好性”的认识.13.可行性研究需要考虑的范围有哪些(即可行性研究的方法及可行性研究报告的主要内容),详细论述这些范围所涉及的情况.14.用自己的语言综合论述“系统分析”的任务、步骤和方法.15.通用软件产品开发和定制软件开发之间有什么不同?这在实际应用中对通用软件产品用户意味着什么?16.解释为什么软件工程的基本思想适用于所有的软件系统?一、基本概念软件,软件的特点,软件生存期,软件生存期模型,瀑布模型,增量模型,迭代模型,原型模型,软件工程的基本目标,基于计算机的系统的基本内容,可行性研究,软件立项,软件策划,二、简答和练习题⒈回答下列问题⑴什么是软件危机?为什么会产生软件危机?怎样消除软件危机?⑵软件开发与写程序有什么不同?为什么应该有所不同?⑶软件生存周期为什么要划分成阶段?应该怎样来划分阶段?2. 为方便储户,某银行拟开发计算机储蓄系统.储户填写的存款单或取款单由业务员键入系统,如果是存款,系统记录存款人姓名、住址、存款类型、存款日期、利率等信息,并印出存款单给储户;如果是取款,系统计算机利息并印出利息清单给储户。
请写出问题定义并分析此系统的可行性。
3。
为方便旅客,某航空公司拟开发一个机票预定系统.旅行社把预定机票的旅客信息(姓名、性别、工作单位、身份证号码、旅行时间、旅行目的地等)输入进该系统,系统为旅客安排航班,印出取票通知和帐单,旅客在飞机起飞的前一天凭取票通知和帐单交款取票,系统校对无误即印出机票给旅客.请写出问题定义并分析此系统的可行性。
三、基本术语翻译四、简述题1.谈谈你对软件工程化开发的认识。
2.软件工程过程有哪几种基本活动?试加以说明。
3。
试说明“软件生存周期”的概念。
4。
试论述瀑布模型、增量模型、迭代模型、原型模型等软件开发方法的基本过程及优缺点。
5.简述软件工程3种开发方法、4项研究内容以及5个面向理论。
6。
软件工程是开发、运行、维护和修复软件的系统化方法,它包括哪些要素?试加以说明。
7。
软件工程的基本原则有哪些?试加以说明。
8.有人认为软件开发时,一个错误发现得越晚,为改正它所付出的代价就越大。
请提出你的观点并解释。
9。
比较ISO 9000、CMM/CMMI以及微软管理体系的差异。
10。
信息系统工程的层次有哪些?阐述软件工程与信息系统工程之间的关系.11. 比较顾客、客户、用户之间的异同。
12。
一个系统分析员可以是三个来源之一;系统开发者;系统需求者;或某些外部机构。
讨论使用每一来源的正反两方面的特点。
描述一个“理想的”分析员(即分析员的职责及其应具备的条件)。
13. 人作为“基于计算机系统”的组成元素,其自己的构成涉及到哪些成分?通过人类工程过程的描述,加深对“用户友好性”的认识。
14.解释为什么增量式开发是开发商务软件系统的最有效技术?为什么这种模型不适用于实时系统工程?15。
说明为什么在需求工程过程中区分用户需求开发和系统需求开发是重要的。
16。
描述在软件设计过程中的主要活动以及这些活动的输出。
使用图来说明在这些活动输出之间可能存在的关系?17。
让一名用户紧密参与到软件开发团队中的一个问题是“本地化”,也就是,团队成员采纳开发团队的观点而忽视用户队员的需求。
请写出3个解决建议,并讨论每一个的优点和缺点.第二部分软件需求分析(参见补充资料)本章学习目标:1.简述需求分析的任务、过程以及常用的方法,并用自己的语言叙述图3。
3(P41)软件需求分析工作的流程。
2.掌握软件需求分析的原则.结合图3。
2和图3。
6阐述对用户、分析员、程序员的素质要求,他们彼此之间的关系以及各自对需求分析阶段工作的贡献。
3.理解不同需求分析方法的共性.结合图3。
9(P50)阐述快速原型方法的细化过程,并分析在软件开发周期不同阶段引入快速原型方法后的开发过程。
4.阐述软件复用的概念、范围以及复用技术。
5.掌握结构化分析方法及其所使用的工具以及这些工具的各自特点;并简述进行系统动态分析的几种方法。
6.理解不同方式的软件需求分析工具的特色,阐述自己对软件需求分析自动化的看法.7.了解需求规格说明和需求评审的主要内容,并用自己的语言综合论述“软件需求分析”的全部过程.一、基本概念原型化方法,软件复用及软件复用的范围,结构化分析方法,数据流图,数据词典,Warnier图,数据库的基本概念二、简述题1.在软件需求分析时,首先建立当前系统的物理模型,再根据物理模型建立当前系统的逻辑模型。
请问什么是当前系统?当前系统的物理模型与逻辑模型有什么差别?2。
软件需求分析是软件工程过程中交换意见最频繁的步骤.为什么交换意见的途径会经常阻塞?3。
你认为一个系统分析员的理想训练和基础知识是什么?请说明理由。
4. 信息和信息结构有什么区别?有没有不存在信息流的系统?有没有不存在信息结构的系统?5. 软件需求分析的操作性原则和需求工程的指导性原则是什么?6. 描述加工逻辑说明的工具有哪些?各自的特点,试分别举例说明之.7. 数据流图和数据字典的作用是什么?数据流图的基本成分有哪些?数据字典有哪些词条?8. 传统的软件开发模型的缺陷是什么?原型化方法的类型有哪些?原型开发模型的主要优点是什么?9。