东北大学软件工程期末复习资料考点:1.什么是软件,包括什么2.程序,文档,数据是什么3.软件类型(两种)4.*软件特点5.软件危机(定义)6.软件工程(定义),关注质量,成本7.什么是软件生命周期8.什么是软件过程模型9.用例是什么的缩写,是什么10.描述一个案例,用什么模型11.需求的重要性12.软件需求是什么13.需求工程是什么14.需求获取的目的15.需求获取的手段16.需求分析17.数据字典流图不考18.是什么19.给一个例子,说明缺陷20.需求验证和管理(了解)21.面向对象的历史22.对象,类,消息,继承是什么23.对象与类的关系24.软件建模25.是什么的缩写26.关联关系多重性27.视角28.面向对象分析是什么29.面向对象分析建模30.面向对象分析用例31.用例是什么,关系,特点32.用例描述33.分析类是什么34.画类图35.包是什么36.包中有什么37.包之间的关系38.动态建模39.状态图40.类图测试41.迭代是软件产品内部特点42.什么是面向对象设计43.设计的原则44.*模块,耦合,内聚45.软件复用46.什么是软件体系结构47.典型的体系结构风格48.*顺序图,协作图49.问某个方法是哪个对象的方法50.伪码51.数据库设计(了解)52.用户界面设计53.*实现与集成54.编程与编码的区别55.编程语言56.怎么选择合适的编程语言57.编码规范,包括哪些58.*维护的类型59.软件测试60.软件质量,软件质量保证61.软件测试类型一:一、1.软件定义⏹*软件的定义(牢记)●( ) 在运行中提供所希望的功能和性能的指令集(即程序)●●程序●编程语言描述的一系列语句序列●提供需要的功能和性能数据●使程序能方便的操纵信息文档●描述程序研制过程和方法,操作和使用方法的文档⏹软件的类型(两种)●一般软件直接提供给市场,或供多个用户使用●定制软件受某个客户委托,一个或多个软件开发机构为其开发的软件⏹*软件的特点(牢记)●, .逻辑产品,非物质的●“”.不会磨损●, 开发出来,而非制造●.大部分是定制的●’质量依赖于开发人员的素质●昂贵●.难以维护2.软件危机(定义)落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列严重问题的现象。
主要是三个个方面的问题:●软件的质量低,难以满足需求●对软件开发时间和成本的估计不足●如何维护软件──数量不断膨胀的已有软件,不断变化的用户需求二、1.定义1.软件工程(定义)是指导计算机软件开发和维护的工程学科。
采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,这就是软件工程。
2.软件工程的关注(质量,成本)●软件质量软件需要一些属性来反应他的质量⏹可维护性:适应用户的需求变化⏹可靠性:可依靠,安全的⏹效率:不浪费内存和⏹可接受性:方便适用●软件成本用于开发和维护2.主要元素①过程:软件工程的基础②方法:提供建造软件的技术③工具:提供自动化或半自动化手段来支持过程和方法3.目标满足用户的需求,同时提高性能,成本和质量二:一、软件生命周期1.*生命周期:一个软件从定义、开发、使用、和维护,直到最终被废弃要经历一个漫长的时期,这个时期称为生命周期。
2.生命周期涵盖一系列的阶段:●可行性研究●需求分析●概要设计●细节设计●实现●集成●维护●退休二、1.软件过程是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤2.典型软件过程模型◆瀑布模型瀑布模型特点:阶段间具有顺序性和依赖性每个阶段必须完成规定的文档;每个阶段结束前完成文档审查,及早改正错误,但: 开发过程一般不能逆转,否则代价太大。
实际的项目开发很难严格按该模型进行。
客户往往很难清楚地给出所有的需求,而该模型却要求如此。
应用范围:软件的实际情况必须到项目开发的后期客户才能看到,这要求客户有足够的耐心。
用户的需求非常清楚全面,且在开发过程中没有或很少变化开发人员对软件的应用领域很熟悉。
用户的使用环境非常稳定。
开发工作对用户参与的要求很低◆快速原型模型基本是首先建立一个能够反映用户主要需求的原型系统让用户在计算机上运行、试用这个原型系统,通过与原型交互及早发现需求的缺陷;设计人员也可检查设计的可行性。
原型可以利用第四代语言面向对象的应用程序框架,原型开发活动、用户反馈、开发者修改原型的重复迭代过程可提高用户满意程度,也可缩短软件开发周期,从而降低了开发和维护成本。
在该模型中,如何快速进行原型的开发是关键,快速开发原型的途径一般可以有三种: ①利用计算机模拟一个软件的人机界面与交互方式。
②开发一个能实现部分功能(如输入界面、输出格式等)的软件,这部分功能往往是重要的,但也可能是容易引起误解的。
③寻找一个或几个类似的正在运行的软件,利用这些软件向客户展示软件需求中的部分或全部功能。
为了快速地开发原型,要尽量采用软件重用技术,以争取时间,尽快地向客户提供原型。
()特点● 该模型是基于原型驱动的。
● 可以得到比较良好的需求定义,便于开发者与客户进行全面的沟通与交流。
而且原型系统也比较容易适应用户需求的变化。
● 原型系统既是开发的原型,又可以作为培训的环境,这样有利于开发与培训的同步。
● 原型系统的开发费用低、开发周期短、维护容易且对用户更友好。
尽管开发者和客户都喜欢使用原型模型,但原型模型也有其固有的缺点:①在对原型的理解上客户与开发者有很大的差异,客户以为原型就是软件的最终版本,而开发者只将原型当作一个漂亮美丽的软件外壳,在实际开发过程中要对原型进行不断修改完善,这就需要开发人员与客户相互沟通、相互理解。
②由于原型是开发者快速设计出来的,而开发者对所开发领域的陌生容易将次要部分当作主要的框架,做出不切题的原型。
③软件的整个开发都是围绕着原型来展开的,在一定程度上不利于开发人员的创新。
快速设计建造原型用户评估原型,提出新需求对原型进行加工 开发产品 初步需求分析 结束 开始◆增量模型把软件产品分解成增量构件。
原则:当把新构件集成到原有构件时,所形成的产品必须是可测试的。
它能在较短时间内向用户提交可完成部分工作的产品,尽早的得到回报。
要求开始实现各个构件前就全部完成的需求分析、规格说明、总体设计。
◆螺旋模型螺旋模型:沿螺线自内向外每旋转一圈便开发出一个更为完善的软件版本螺旋模型的基本思想:使用原形及其他方法来尽量降低风险。
可以看作每个阶段前都加了风险分析的快速原型模型。
螺旋模型是风险驱动型的。
总结◆面向对象模型●喷泉模型、喷泉模型的优点各阶段交叉、迭代,支持复用喷泉模型不像瀑布模型那样,需要分析活动结束后才开始设计活动,设计活动结束后才开始编码活动。
该模型的各个阶段没有明显的界限,开发人员可以同步进行开发。
其优点是可以提高软件项目开发效率,节省开发时间,适应于面向对象的软件开发过程。
、喷泉模型的缺点由于喷泉模型在各个开发阶段是重叠的,因此在开发过程中需要大量的开发人员,因此不利于项目的管理。
此外这种模型要求严格管理文档,使得审核的难度加大,尤其是面对可能随时加入各种信息、需求与资料的情况。
●统一过程模型✓用例驱动整个开发过程✓迭代增量式开发✓基于构件的软件体系结构为中心展开开发✓使用统一建模语言()三、( ) (计算机辅助软件工程)用来辅助软件开发、运行、维护、管理、支持等过程中活动的软件称为软件工具三:一、?什么是需求工程(一)(软件需求)用户对软件功能,性能,设计等方面的需求(需求工程)✓这个过程获取用户或最终使用者对软件的需求✓包括一系列的任务来理解软件的需求✓帮助软件工程师更好的理解他们需要解决的问题(二)✓( )需求获取✓需求分析✓需求说明✓需求认证✓需求管理二、需求获取技术⏹目的确定和收集与待开发的软件系统相关的信息获取需求,确定问题,定义问题范围,解决冲突⏹关键要与用户沟通,收集和理解需求⏹获取方法✓采访消费者✓研讨需求✓问卷调查✓建了原型三、1.需求分析模型重点是建立分析模型是对现实的简化,分析模型定义了系统的详细需求,但不限于一种技术✓传统方法:(), , (), ,…(数据流图,数据字典,状态转换图)✓面向对象方法:, , , , (用例,顺序图,协作图,类图,状态图)需求分析过程✓定义系统范围✓分析需求的可行性✓确定需求的优先级✓形成需求分析模型✓建立数据字典数据流图✓建立一个系统的输入输出模型✓用来描述系统的功能和行为优点✓易于理解✓方便开发者和用户间的交流符号(外部实体,处理,数据流,数据储存)1)外部实体(原点和汇点)外部项是指系统以外的事物或人,表达了该系统数据的外部来源或去处,用方框表示之。
2)处理(加工)处理表达了对数据的逻辑加工或变换功能:对数据的加工处理的结果,或者是变换了数据的结构,或者是在原有数据的基础上产生新的数据。
处理用圆表示。
3)数据流数据流指示数据的流动方向,用单箭头表示。
4)数据存储数据存储指明了保存数据的地方。
不代表具体的存储介质。
数据存储使用右端开口的矩形框表示。
: 分层数据流图为了表达数据处理过程的数据加工情况,用一个数据流图是不够的。
稍为复杂的实际问题,在数据流图上常常出现十几个甚至几十个加工。
这样的数据流图看起来很不清楚。
层次结构的数据流图能很好地解决这一问题。
按照系统的层次结构进行逐步分解,并以分层的数据流图反映这种结构关系,能清楚地表达和容易理解整个系统。
画数据流图的方法画数据流图的基本步骤概括地说,就是自外向内,自顶向下,逐层细化,完善求精。
检查和修改的原则为:1)由外及里画数据流图2)自顶向下分层画数据流图分解应遵循下列原则:●分解要自然,注意概念上的合理性;●以分层方式对处理编号;●注意父图与子图的平衡,即子图所有的输入和输出数据流应当是父图中相应处理的所有输入和输出数据流;●一个处理一般可分解成个子处理,不宜过多;●当进一步分解可能涉及具体的物理实现手段时,分解应终止。
3)检查和修改的原则为:①数据流图上所有图形符号只限于前述四种基本图形元素。
②顶层数据流图必须包括前述四种基本元素,缺一不可。
③顶层数据流图上的数据流必须封闭在外部实体之间。
④每个加工至少有一个输入数据流和一个输出数据流。
⑤在数据流图中,需按层给加工框编号。
编号表明该加工处在哪一层,以及上下层的父图与子图的对应关系。
⑥规定任何一个数据流子图必须与它上一层的一个加工对应,两者的输入数据流和输出数据流必须一致。
此即父图与子图的平衡。
⑦可以在数据流图中加入物质流,帮助用户理解数据流图。
⑧图上每个元素都必须有名字。
数据流和数据文件的名字应当是“名词”或“名词性短语”,表明流动的数据是什么。