河北工业大学软件工程期末复习
软件工程期末考试简答题归纳

1什么是软件工程?基本原理有哪些?32成本_效益分析可用哪些指标进行度量?(写出公式)33什么是数据流图?其中的基本符号各表示什么含义?画出定货系统基本数据流图。
34非渐增式测试与渐增式测试有什么区别?35试从基本符号和设计方法分析HC图与JACKSON图异同点36软件测试的目的是什么?37结构化程序设计的思想是什么?48请解释极限编程和自适应软件开发,并说明其异同?49需求工程的起始阶段,需求工程师的主要工作是?410请画出“在餐厅使用信用卡付费”这一活动的完整用例图?411分析说明结构化分析和面向对象分析的区别?412 请简要给出评价软件设计质量的标准?513 一个良好的设计类需要满足四个特点,请详细描述这四个特点?514软件项目估算容与步骤515面向对象设计的准则是什么?有哪5个层次和4个部分?516简述软件工程目标和面临的主要问题。
517简述软件工程过程。
618简述模块独立性的原则。
619简述结构化程序设计方法的基本要点620简述软件生命周期开发方法的基本过程及每个阶段的任务。
621复印机的工作流程大致如下:722简述文档在软件工程中的作用。
723简述软件项目管理过程。
824简述系统分析员应该具备的主要知识结构和基本素质。
825简述何谓软件开发方法?请列举四种主要方法。
826简述单元测试的基本容。
827什么是软件生存周期模型?请至少列举四种主要模型?928衡量模块独立的两个标准是什么?它们各表示什么含义?(网上)929简述白盒测试的思想,并列举两种典型的测试技术。
930简述CMM(软件能力成熟度模型)5个等级的含义931简述软件维护的定义1032简述软件测试的定义1033 UML建模中主要包括哪九种图?并说明类图的定义及其中常见的关系有哪些?1034什么是字据字典?其作用是什么?它有哪些条目?1035软件工程的两大型分别是什么?它们有什么不同?1036如何画分层数据流图?1137面向对象程序设计有哪些优点?1138在软件测试中,应注意哪些原则?1139程序设计风格是指一个人编制程序时所表现出来的特点、习惯、逻辑思路等。
《软件工程》期末考试试题

《软件工程》期末考试试题一、填空题(10分,每空1分)1.1实体联系(ER)图的基本要素为、和。
1.2一个软件模块完成的功能越单一,其越强,模块的独立性就越。
1.3软件测试技术主要包括白盒测试和黑盒测试技术。
其中,在白盒测试中,主要的方法有、和等。
在黑盒测试中,主要的方法有和。
二、选择题(20分,每题2分)2.1与计算机科学的理论研究不同,软件工程是一门学科。
A. 理论性B. 工程性C. 原理性D. 艺术性2.2 是软件生存期中的一系列相关软件工程活动的集合,它由软件规格说明、软件设计与开发、软件确认、软件改进等活动组成。
A. 软件过程B. 软件工具C. 软件产品D. 软件工程2.3 软件开发的螺旋模型是。
A. 适用于需求被清晰定义的情况B. 一种需要快速构造核心产品的好方法C. 可以很好的和客户沟通需求D. 可以很好的处理风险2.4 在各种不同的软件需求中,是从各个角度对系统的约束和限制,反映了应用对软件系统质量和特性的额外要求。
A. 业务需求B. 功能需求C. 非功能需求D. 用户需求2.5状态-迁移图。
A. 描述了数据对象之间的关系B. 描述了转换数据流的功能C. 描述了现实世界实体之间交换的事件序列D. 在单个模型中描述一组事件踪迹2.6开发人员使用可以将用例的行为分配到所识别的分析类中。
A. 用例图B. 顺序图C. 类图D. 状态图2.7 对每个模块内部采用的数据结构和算法进行设计。
A. 概要设计B. 数据库设计C. 详细设计设计D. 用户界面设计2.8 投资回报率(ROI) 用来度量。
A. 产品的质量B. 过程的质量C. 商业环境下的质量D. 以上均不对2.9 以下四种耦合中,程度最低的是。
A. 数据B. 标记C. 控制D. 公共2.10下列UML类图表示的是设计模式。
A. 备忘录B. 策略C. 状态D.观察者三、判断题(20分,每题2分)3.1 软件不能按时交付,软件质量低是软件危机的两个重要体现。
《软件工程》期末复习简答题.docx

软件工程期末复习简答题1、试从软件的特点出发分析软件危机产生的原因。
2、一个程序片段如下,请设计符合条件组合覆盖的测试用例。
if (a>=4) && (b<0) (c=a+b;elsec=a-b;if (03) || (c<l)printf(u c不在计算区域\n”)elseprintf("%d\n", c);3、面向对象的分析通常要建立三个模型,请问三个模型的作用?4、软件工程为什么要强调规范化和文档化?5、读懂下面的程序,调整格式,使其更容易理解,并添加注释。
int main(){int a[10];for (int i =0;i〈10;i++)scanf( "%d" , a[i]);int max=a[O], min=a[l];for (int j = 0;j<10;j++)(max=(max>a[j]?max:a[j]);min=(min<a[j]?min:a[j]);}printf(〃max二%d〃,max);printf(〃min= %d〃, min);printf(〃\n〃);return 0;}6、软件需求可以分为业务需求、用户需求、功能需求和非功能需求,请分析业务需求与用户需求的区别?7、一个程序片段如下,请设计符合判定覆盖的测试用例。
if (a>=5) && (b<0) (c=a+b;elsec=a-b;if(c>5) || (c<l)printf(u c 不在计算区域\n”)elseprintf("%d\n", c);8、请说明对象模型的作用是什么?9、 请说明IPO 图的作用,并给出一个IPO 图的模板。
10、 什么是耦合?什么是内聚?请画图说明软件工程的层次化结构,并详细分析中间两层的内容。
int main() int a,b,c,x,y,z;scanf("d%,d%,d%),&a,&b,&c);if a>5 x=10 else x=l;if b>10 y=20 else y=2;if 015 z=30 else z=3;prin 顷"d%,d%,d%\n",x,y,z)13、请说明快速原型化模型的基本思想。
2022年河北工业大学软件工程专业《计算机系统结构》科目期末试卷B(有答案)

2022年河北工业大学软件工程专业《计算机系统结构》科目期末试卷B(有答案)一、选择题1、Cache存贮器常用的地址映象方式是( )。
A.全相联映象B.页表法映象C.组相联映象D.段页表映象2、CRAY-I的流水线是( )A.多条单功能流水线B.一条单功能流水线C.多条多功能流水线D.一条多功能流水线3、最能确保提高虚拟存贮器访主存的命中率的改进途径是( )A.增大辅存容量B.采用FIFO替换算法并增大页面C.改用LRU替换算法并增大页面D.改用LRU替换算法并增大页面数4、若输入流水线的指令既无局部性相关,也不存在全局性相关,则()。
A.可获得高的吞吐率和效率B.流水线的效率和吞吐率恶化C.出现瓶颈D.可靠性提高5、从计算机系统结构上讲,机器语言程序员所看到的机器属性是( )。
A.计算机软件所要完成的功能B.计算机硬件的全部组成C.编程要用到的硬件组织D.计算机各部件的硬件实现6、属计算机系统结构考虑的是()A.主存采用MOS还是TTLB.主存采用多体交叉还是单体C.主存容量和编址方式D.主存频宽的确定7、输入输出系统硬件的功能对()是透明的。
A.操作系统程序员B.应用程序员C.系统结构设计人员D.机器语言程序设计员8、在操作系统机器级,一般用()程序()作业控制语句。
A.汇编程序,翻译B.汇编程序,解释C.机器语言,解释D.机器语言,翻译9、推出系列机的新机器,不能更改的是( )A.原有指令的寻址方式和操作码B.系统总线的组成C.数据通路宽度D.存贮芯片的集成度10、IBM360/91对指令中断的处理方法是()A.不精确断点法B.精确断点法C.指令复执法D.对流水线重新调度二、填空题11、段式存储管理是指________,为此每道程序在系统中都有一个________12、软件和硬件成本由________和________组成。
13、寻径的基本原则是:________或________14、Cache存贮器采用组相联的映象规则是组间________映象,组内各块间________映象。
软件工程概论期末复习题精修订

软件工程概论期末复习题集团标准化工作小组 #Q8QGGQT-GX8G08Q8-GNQGJ8-MHHGN#期末总复习1.选择、判断、简答2.判定树和判定表3.用例图、类图、对象模型、顺序图等4.McCabe环路复杂性度量;5.黑盒测试和白盒测试6.数据流图7.成本效益分析习题一、判定树和判定表1.请用判定表画出以下问题的行为逻辑。
人们往往根据天气情况决定出门时的行装;天气可能下雨,也可能不下雨;天气可能变冷,也可能不变冷。
如果天气要下雨,出门时带上雨伞;如果天气变冷,出门时要穿上大衣。
2. 某厂对部分职工重新分配工作的政策是:年龄在20岁以下者,初中文化程度脱产学习,高中文化程度当电工。
20岁至40岁之间,中学文化程度,男性当钳工,女性当车工,大学文化程度都当技术员。
年龄在40岁以上者,中学文化程度当材料员,大学文化程度当技术员。
请用结构化语言﹑判定表或判定树描述上述问题的加工逻辑。
二、McCabe环路复杂性度量某程序的描述如下:if (( a > b && i > 10)|| (a < b && i <= 5) ) k = a;else k = b;1)画出单个条件的嵌套的分支结构;(5分)2)计算该结构的McCabe环路复杂性度量;(5分)3)为完成基本路径测试,求它的一组独立的路径。
(5分)三、测试:变量的命名规则一般规定如下:变量名的长度不多于30个字符,第一个字符必须为英文字母,其他字母可以是英文字母、数字以及下划线的任意组合。
请用等价分类法设计测试用例。
四、数据流图某教务系统具备以下功能,输入用户ID号及口令后,经验证进入教务管理系统,根据请求进行分类处理,可进行如下功能的处理:1)查询成绩:查询成绩以及从名次表中得到名次信息。
2)学籍管理:根据学生总成绩确定名次信息。
3)成绩处理:处理单科成绩并输入成绩表中。
就以上系统功能画出0层,1层的DFD图。
软件工程期末复习重点

1.软件危机的介绍在计算机软件的开发和维护过程中所遇到的一系列严重问题。
2.产生软件危机的原因与软件本身特点有关:软件开发与维护的方法不正确有关:3.消除软件危机的途径4.软件生命周期由软件定义、软件开发和运行维护3个时期组成,每个时期又进一步划分成若干个阶段。
5.软件定义时期的任务是:确定软件开发工程必须完成的总目标;确定工程的可行性;导出实现工程目标应该采用的策略及系统必须完成的功能;估计完成该项工程需要的资源和成本,并且制定工程进度表。
这个时期的工作通常又称为系统分析,由系统分析员负责完成。
软件定义时期通常进一步划分成3个阶段,即问题定义、可行性研究和需求分析。
6.开发时期具体设计和实现在前一个时期定义的软件,它通常由下述4个阶段组成:总体设计,详细设计,编码和单元测试,综合测试。
其中前两个阶段又称为系统设计,后两个阶段又称为系统实现。
7.维护时期的主要任务是使软件持久地满足用户的需要。
8.软件生命周期每个阶段的基本任务:问题定义、可行性研究,需求分析,总体设计,详细设计,编码和单元测试,综合测试。
9.常用软件模型区别原理:(1)瀑布模型:按照传统的瀑布模型开发软件,有下述的几个特点。
a)阶段间具有顺序性和依赖性:两重含义:段的输出文档正确,后一阶段的工作才能获得正确的结果。
①必须等前一阶段的工作完成之后,才能开始后一阶段的工作;②前一阶段的输出文档就是后一阶段的输入文档,因此,只有前一阶b) 推迟实现的观点瀑布模型在编码之前设置了系统分析与系统设计的各个阶段,分析与设计阶段的基本任务规定,在这两个阶段主要考虑目标系统的逻辑模型,不涉及软件的物理实现。
c)质量保证的观点:软件工程的基本目标是优质、高产。
为了保证所开发的软件的质量,在瀑布模型的每个阶段都应坚持两个重要做法。
每个阶段都必须完成规定的文档,没有交出合格的文档就是没有完成该阶段的任务。
每个阶段结束前都要对所完成的文档进行评审,以便尽早发现问题,改正错误。
软件工程期末考试重点

《软件工程》期末复习重点第一章软件工程1.什么是软件工程。
A.把系统化的、规范的、可度量的途径应用于软件开发、运行和维护的过程,也就是把工程化应用于软件中;b.研究a中提到的途径。
2. 软件工程的三要素:方法、工具和过程。
第二章软件过程1.软件生命周期分为哪几个阶段?每个阶段的基本任务是什么?a.软件定义:确定软件开发工程必须完成的总目标问题定义:要解决的问题是什么可行性研究:上阶段所确定的问题是否有可行的解决办法?需求分析:目标系统必须做什么b.软件开发:具体设计和实现在前一个时期定义的软件。
概要设计:怎样宏观地解决问题详细设计:应如何具体地实现这个系统编码和单元测试:写出正确的、易理解、易维护的程序综合测试:通过各类型测试使达到预定要求。
c.运行维护:修正错误,使软件持久地满足用户需要。
改正性维护:诊断和改正使用中的错误适应性维护:修改以适应环境变化完善性维护:根据用户的要求改进和扩充以完善预防性维护:修改以为将来的维护作准备2.常用的过程模型有哪些?各自的特点及不足。
如:瀑布模型的不足是不能适应需求的动态变更。
A.瀑布模型特点:可强迫开发人员采用规范化的方法。
严格地规定了每个阶段必须提交的文档。
要求每个阶段交出的所有产品都必须是经过验证(评审)的。
缺点:太理想化,由于瀑布模型几乎完全依赖于书面的规格说明,很可能导致最终开发出的软件产品不能真正满足用户的需要。
如果需求规格与用户需求之间有差异,就会发生这种情况。
只适用于项目开始时需求已确定的情况。
B.快速原型模型特点:快速软件产品开发基本上是线性顺序进行。
降低了规格说明文档变化的可能性。
减少了后续阶段错误的可能性。
c.增量模型优点:人员分配灵活,刚开始不用投入大量人力资源。
当配备的人员不能在设定的期限内完成产品时,它提供了一种先推出核心产品的途径。
增量能够有计划地管理技术风险。
缺点:要求构件具备开放式的体系结构。
易退化为边做边改模型,从而使软件过程的控制失去整体性。
北方工业大学软件工程期末复习题(含答案)讲课教案

北方工业大学软件工程期末复习题(含答案)北方工业大学《软件工程》课程期末复习题A 卷 2014年春季学期开课学院:信息工程学院考试方式:闭卷 考试时间:120 分钟班级 姓名 学号 题 号 一二三四五六七八九十总 分得 分阅卷人一.简要回答下列各问题(共40分,每个小题5分) (1) 阐述软件工程的定义。
答:是指导计算机软件开发和维护的一门工程学科;采用工程的概念、原理、技术和方法来开发和维护软件;把证明正确的管理技术和最好技术综合运用到软件开发中;研究经济地开发出高质量的软件方法和技术; 研究有效维护软件的方法和技术。
(2) 简述软件危机的原因。
答:序号 订线装缺乏软件开发的经验和有关软件开发数据的积累,使得开发计划很难制定。
软件人员与用户的交流存在障碍,使得获取的需求不充分或存在错误。
软件开发过程不规范。
如,没有真正了解用户的需求就开始编程序。
随着软件规模的增大,其复杂性往往会呈指数级升高。
需要很多人分工协作,不仅涉及技术问题,更重要的是必须有科学严格的管理。
缺少有效的软件评测手段,提交用户的软件质量不能完全保证。
(3) 画出软件生存周期的瀑布模型的示意图,并简单评述其优缺点。
(4) 画出软件生存周期的增量模型的示意图,并简述其优点。
优点: 可强迫开发人员采用规范化的方法。
严格地规定了每个阶段必须提交的文档。
要求每个阶段交出的所有产品都必须是经过验证的。
1-2 瀑布模型示能在较短时间内向用户提交可完成一些有用的工作产品,即从第1个构件交付之日起,用户就能做一些有用的工作。
逐步增加产品的功能可以使用户有较充裕的时间学习和适应新产品,从而减少一个全新的软件可能给用户组织带来的冲(5) 画出D.Ross提出的软件工程结构化分析方法的框架示意图,并解释数据字典和数据流的含义。
答:(6) 举例说明变换型和事务型流图的特点。
答:变换型流图由输入、中心变换和输出3部分组成,而且逐层展开。
如:事务型流图通常接受一项事务,根据事务处理的特点和性质,选择分派一个适当的处理单元,然后给出结果。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件工程期末复习总结第一讲概述(选择U填空U简答)1.1 软件工程的研究内容软件工程要考虑专业软件开发所需要的理论、方法和工具----工程技术问题软件工程要考虑如何有效的在软件开发中利用有限的成本资源----工程管理的问题1.2 什么是软件?软件包括:---软件的内涵①能够提供客户所需功能与性能的计算机程序;②使程序能够适当的操作信息的数据结构;③用以描述程序开发过程及使用的文档。
软件产品可以为一个特定的用户设计开发,也可以为某一类通用的市场设计开发。
软件产品可以分成:一个新的软件并不一定是全新开发,可以由现有软件或可复用软件成分配置形成。
1.3 什么是软件工程?软件工程是涉及软件生产各个方面的一门工程学科软件工程涉及软件生命周期的各个方面,从软件需求的确定到软件退役。
软件工程:(1)将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护的过程,即将工程化应用于软件;(2)研究(1)中的方法.——IEEE[IEE93]1.4 什么是成功的软件项目一个成功软件项目的三个要素包括:按时交付不超预算满足用户要求。
1.5 软件过程与软件生命周期的相关概念软件过程是指开发或制作软件产品的一系列活动及其成果.所有的软件过程中都包括四个基本活动:(填空)1. 描述( Specification)- 系统应该提供的功能及其开发约束;2. 开发( Development)- 软件产品的生产过程;3. 有效性验证(Validation )- 检验软件产品是否满足了客户的需要;4. 进化( Evolution )- 按照用户的变更要求不断的改进软件。
软件生命周期是软件过程的另一种形象描述,通常包括需求定义、分析与描述、软件设计、实现、测试、维护与退役等活动。
1.6什么是优良软件的属性? P8 (填空U选择)优良的软件应能交付相应的功能与性能,而且应具有良好的可维护性、可依赖性、有效性和可用性:(选择题,考法内涵匹配)可维护性(Maintainability)Software must evolve to meet changing needs;可依赖性(Dependability)Software must be trustworthy;有效性(Efficiency)Software should not make wasteful use of system resources;可接受性(Acceptability)Software must be accepted by the users for which it was designed. This means it must be understandable, usable and compatible with other systems.第二讲软件过程(画法+特点+结构+缺点+适用场合)2.1 瀑布模型(顺序模型)(特点:变更少)(画法+特点+结构+缺点+适用场合)1.需求分析和定义2.系统和软件设计3.实现和单元测试4.集成和系统测试5.运行和维护(中文解释)瀑布模型的缺点和适用情况这种模型生硬的把一个软件过程划分成几个界限清晰的阶段,而且这些阶段前后有严格的顺序,这导致它很难对用户的需求变更做出及时的调整;因此,瀑布模型只适合需求非常清楚和需求变更被严格限制的情况下。
实际的软件开发过程中,几乎没有多少业务系统具有稳定的需求。
瀑布模型反映了工程设计的基本思想。
2.2 进化式开发模型(画法+特点+结构+缺点+适用场合)基本思想:通过开发系统原型和用户反复交互,以明确需求,使系统在不断调整与修改中得以进化成熟。
又叫做原型式开发方法。
两种基本类型:探索式开发;抛弃式原型法.2.2进化式开发模型问题缺乏过程可见性;系统结构通常会很差;需要一些特别的技术(如原型快速开发技术),通常与主流技术不兼容.适用情况适合中小规模的交互系统;可用于大型系统的局部开发(如系统界面),可以和瀑布模型混合使用;生命周期较短的系统2.3 基于过程反复的过程模型对于大型项目而言,系统需求的变更是无法避免的,因此开发过程的反复是软件开发的必要手段;过程反复可以和任何一种一般过程模型结合使用。
两种支持过程反复的过程模型:增量式开发;螺旋式开发。
2.3增量式开发增量式开发的特点在这种开发方式中,系统不是作为一个整体交付,而是被分解成若干个增量,每个增量交付系统的部分功能。
用户的需求按优先级排队,优先级最高的需求被放入最早交付的增量中。
这样,优先级最高的系统功能就得到最多的测试,系统的可靠性较高。
由于每个增量可以交付部分系统功能,因此软件可以较早的交付用户使用(部分功能);早期交付的增量可以作为后期增量的原型帮助后期需求的确定;项目总体的失败率较低;优先级最高的系统功能得到最多的测试。
螺旋式开发这种模型用螺旋线表示软件过程,而不是采用一系列活动及活动间的反馈;螺旋中的每个回路表示软件过程中的一个阶段;这种模型充分考虑了软件开发所面临的风险,并贯穿软件过程始终。
螺旋线划分成四部分目标设置、风险评估和规避、开发与有效性验证、规划2.4 基于构件的软件工程软件复用是指在两次或多次不同的软件开发过程中重复使用相同或相似软件元素(通常称为可复用构件、组件或软部件)的过程。
软构件是标准的、可以互换的、经过装配可随时使用的软件模块。
在UML中,软构件被定义为系统中某一定型化的、可配置的和可替换的部件,该部件封装了实现并暴露一系列的接口。
软件复用的意义软件复用的出发点是使软件系统的开发不再“一切从零开始”,能够充分利用已有的知识和经验。
软件复用能够在软件开发中避免重复劳动,充分利用已有的开发成果,,提高开发效率,降低开发成本。
软件复用还可以避免全新开发可能引入的错误,从而提高软件的开发质量。
构件的基本概念构件是为组装服务的!软件构件是指可以独立生产、获取和部署的、可以被组装到一个功能性系统中去的可执行单元。
软构件是标准的、可以互换的、经过装配可随时使用的软件模块。
基于构件的软件工程第三讲需求工程(概念+综合分析(面向对象建模UML+分析))3.1 需求工程过程需求工程过程并不具有唯一的模型,在所有的过程中都会涉及一些共同的活动,它们是:可行性研究(必不可少);需求导出与分析;需求描述;需求有效性验证;需求管理。
(填空U选择)3.2 可行性研究可行性研究要决定被提议的系统是否值得去做。
进行可行性研究包括信息评估、信息汇总和书写报告三部分工作。
3.3 需求的两个不同层次的描述用户需求从客户的角度,采用自然语言配合以图表对目标系统应提供的服务以及系统操作要受到的约束进行的声明。
系统需求系统需求是一种结构化文档,要运用一些专业的模型详细的描述系统的功能及其约束。
系统需求文档有时也称为功能描述,应该是精确的,它可以成为双方之间合同的重要内容,同时作为开发工作的依据3.4 功能需求与非功能需求功能需求对系统应提供的功能,系统在特定的输入下做出的反应及特定条件下的行为的描述。
某些情况下还要包括系统不应做什么。
非功能需求(全局的)对系统提供服务或功能时收到的约束进行描述。
如时间约束、开发过程约束和标准等。
领域需求这种需求来自于系统的应用领域,反映领域特征。
可能是功能需求也可能是非功能需求。
功能性需求与非功能性需求相比较,非功能需求往往更为关键,因为非功能需求表示的是系统的整体特征,而功能性需求描述的则是局部功能。
(参看课本例子加强理解)功能需求功能需求描述系统所应提供的功能或服务。
取决于待开发软件的类型、未来的用户以及开发的系统类型。
功能性的用户需求只需要对系统应提供的服务迚行高层一般描述,对于系统需求,则应该详细的描述系统功能、输入输出及异常。
非功能性需求非功能需求不直接和功能相关,但定义了实现系统功能受到的约束与系统特性。
如可靠性、响应时间、存储空间、I/O设备能力等。
非功能需求还常与系统的开发过程有关,表现为过程需求。
如设计必须实用的特定CASE工具集、设计语言和开发方法。
领域需求领域需求来自于应用领域,描述的是反映领域特点的系统特性与特征。
领域需求可能是新的功能需求,也可能是对现有需求的约束或定义一个特别的计算。
领域需求非常重要,如果领域需求不能满足,可能会使整个系统无法运转。
需求的全面性和一致性原则上,功能性需求描述应该具备全面性和一致性。
全面性:包括了所有用户要求的服务。
一致性:在系统服务的描述中没有冲突和矛盾需求的两个不同层次的描述用户需求:用户需求是从用户角度来描述的系统功能需求与非功能需求,这样的描述可以使不具备专业技术知识的用户能够看明白。
用户需求使用任何人都看得懂的自然语言、图表和直观的图形来描述。
系统需求:相对于用户需求,系统需求是对系统功能、服务及约束的更详尽的描述。
系统需求是系统实现的基本依据,会被写入合同中。
因此系统需求是一个完全的、一致的系统描述,是设计的起点。
系统需求可以用系统模型来定义与说明。
3.7 需求导出与分析这个阶段在可行性研究之后进行,通常与需求描述交叉进行。
需求导出的过程活动包括:需求发现、需求的分类与组织、优先排序和冲突解决、需求文档化。
需求的发现与识别是整个过程中最为关键的活动,负责收集目标系统级现存系统的相关信息并从这些信息中提炼出用户需求和系统需求。
信息的来源包括已有的文件,系统的信息持有者(stakeholders)以及相近系统的规约描述。
需求要从多个视点进行分析视点用来表述不同角度的需求来源(信息持有者、其它相关系统及领域)。
每一个视点代表系统需求的一个子集。
从多视点对系统迚行分析是十分重要的,因为没有那一种单一的途径能够诠释整个系统需求视点的类型:交互者视点、间接视点、领域视点3.8 结构化分析(SA)建模(概念)结构化分析方法是一种面向数据流的系统建模技术,它从数据加工的角度对系统进行规格描述;SA帮助分析者理解系统的功能,并采用模型与用户进行交流;不同的模型从不同的角度对系统进行描述。
结构化分析建模结构化分析方法建立的分析模型结构如下图:结构化分析模型的核心是数据词典,它描述了所有的在目标系统中使用的和生成的数据对象。
围绕着这个核心的有三种图:实体—关系图(ERD)描述数据对象及数据对象之间的关系;数据流图(DFD)描述数据在系统中如何被传送或变换,以及描述如何对数据流进行变换的功能(子功能);状态—迁移图(STD)描述系统对外部事件如何响应,如何动作。
因此,ERD用于数据建模,DFD用于功能建模,STD用于行为建模。
(考试用英文)3.9 UML与面向对象分析方法(分析+设计+面向对象建模)3.9.1 理解UMLUML是一种标准的图形化建模语言,它为不同领域的人们提供一种统一的交流标准,这种标准使得系统构造者能够用标准的、易于理解的方式建立能表达出他们想象力的系统蓝图,并使客户、分析员、设计人员、程序员和系统其它涉及者能够相互理解和达成一致,从而能够有效地共享和交流设计结果。