武汉理工大学软件工程复习资料

合集下载

软件工程复习资料精选全文完整版

软件工程复习资料精选全文完整版

可编辑修改精选全文完整版一、单选题(共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、耦合是模块之间的相对独立性的度量。

2021武汉理工软件设计与体系结构复习(仅供参考)

2021武汉理工软件设计与体系结构复习(仅供参考)

2021武汉理工软件设计与体系结构复习(仅供参考) 2021武汉理工软件设计与体系结构复习(仅供参考) 软件1 简答题什么是防止变异模式?是如何设计对象,子系统和系统,使这些元素内部的变化或不稳定性不会对其他元素产生不良影响。

解决方案:识别预测的变化或不稳定之处,分配职责用以创建稳定接口。

2.什么是依赖反转原理?把你的类从具体的实现中隔离开,使它们依赖于抽象类或接口。

它促进了代码面向接口而不是实现,这通过保证对实现的低耦合来增加系统的灵活性。

3.仓库风格的组件和连接器是什么?组件:(1)一个能表示出系统的正确状态的数据结构(2)操作主要数据结构的独立组件的集合。

连接器:典型的过程调用或是直接内存访问。

什么是响应时间?measure of the latency an application exhibits in processing a request对一个应用程序在处理请求显示出的潜在因素的测量标准。

常用的中间件有那几种类型?CORBA (Common Object Request Broker Architecture)Message-oriented middlewareJ2EEMessage brokersBusiness process orchestrators(1)常见的对象请求代理架构(2)面向消息的中间件(3) Java2 Enterprise Edition(Java2的企业版)(4)消息代理(5)业务过程代理管道过滤器风格?在管道/过滤器风格的软件体系结构中,每个构件都有一组输入和输出,构件读输入的数据流,经过内部处理,然后产生输出数据流。

这个过程通常通过对输入流的变换及增量计算来完成,所以在输入被完全消费之前,输出便产生了。

因此,这里的构件被称为过滤器,这种风格的连接件就象是数据流传输的管道,将一个过滤器的输出传到另一过滤器的输入架构师需要的核心技能是什么?Many responsibilities:Liaison with stakeholdersTechnology knowledgeSoftware engineeringRisk managements(1)涉众之间的交流(2)技术知识。

武汉理工大学专升本软件工程题库

武汉理工大学专升本软件工程题库

一、材料( 每题参考分值5分)1、某校制定了教师的讲课课时津贴标准。

对于各种性质的讲座,无论教师是什么职称,每课时津贴费一律是50元;而对于一般的授课,则根据教师的职称来决定每课时津贴费:教授40元,副教授35元,讲师30元,助教25元。

请用结构化语言、判定表和判定树中的一种描述上述问题。

正确答案:程序语言可以用任意的语言如C、Basic、伪代码、自然语言等,也可以用判定表。

判定树表示如下:2、加工逻辑描述为,如果申请者的年龄在21岁以下,要额外收费;如果申请者是21岁以上并是26岁以下的女性,适用于A类保险;如果申请者是26岁以下的已婚男性,或者是26岁以上的男性,适用于B类保险;如果申请者是21岁以下的女性或是26岁以下的单身C类保险。

附此之外的其他申请者都适用于A类保险。

请用结构化语言、判定表和判定树中的一种描述上述问题。

正确答案:程序语言可以用任意的语言如C、Basic、伪代码、自然语言等,也可以用判定表和判定树,只要描述能正确表达题目的意思即可。

下面是用判定表来描述:3、某工厂对工人的超产奖励政策为:该厂生产两种产品A和B。

凡工人每月的实际生产量超过计划指标者均有奖励。

奖励政策为:对于产品A的生产者,超产数N小于或等于100件时,都按超产100件算每件奖励2元;N大于100件小于等于150件时,大于100件的部分每件奖励2.5元,其余的每件奖励金额不变;N大于150件时,超过150件的部分每件奖励3元,其余按超产150件以内的方案处理。

对于产品B的生产者,超产数N小于或等于50件时,都按超产50件算,每件奖励3元;N大于50件小于等于100件时,大于50件的部分每件奖励4元,其余的每件奖励金额不变;N大于100件时,超过100件的部分每件奖励5元,其余按超产100件以内的方案处理。

请用结构化语言、判定表和判定树中的一种描述上述问题。

正确答案:程序语言可以用任意的语言如C、Basic、伪代码、自然语言等,也可以用判定表和判定树,只要描述能正确表达题目的意思即可。

软件工程基础期末复习资料完整版

软件工程基础期末复习资料完整版

2.文档有何作用?程序代码属不属于文档?答:文档指的是在软件开发和维护过程中形成的文字记录。

从软件计划、分析、设计、实现(编码和测试)、维护等开发活动中形成的各种文件。

文档属于软件的一部分,是软件维护和升级的重要依据,并且文档内容要与代码同步更新。

没有文档的软件维护不但不能延长反而会缩短软件寿命。

文档包括需求规格说明书、设计说明书、用户使用说明书、在线帮助等,当然程序代码是必不可少的一种软件文档。

3.什么是软件危机?什么原因产生了软件危机?答:软件危机指的是在计算机软件的开发和维护过程中所遇到的一系列严重问题。

产生的原因是主客观不相适应。

见书图1-2。

●客观上:软件规模增大、功能要求越来越复杂,需求不断变化等;●主观上:传统的个体化开发观念和方法,无开发过程指导,无开发过程管理;由于主客观矛盾,必然产生软件质量差、开发超期、超预算、维护困难等现象。

5.软件工程三要素是什么?答:软件工程三要素是从计算机科学观点看软件工程,即从软件开发的技术层面应该有过程、方法和工具。

见图1-4。

(2)“过程”是软件产品加工所经历的一系列有组织的活动,保证能够合理、高质量和及时地开发出软件。

过程定义的活动集合及其序列见第2章。

(3)“方法”为软件开发提供“如何做”的技术,它涵盖了项目计划、需求分析、系统设计、程序实现、测试与维护等一系列活动的做法。

如经常说的面向结构、面向对象、面向组件等开发方法,项目管理中估算、度量、计划等管理方法。

软件工程以介绍方法为主,本书从第3章开始逐步介绍开发过程所用到的方法。

(4)“工具”为过程和方法提供自动的或半自动的支持。

这些工具既包括软件也有硬件。

软件工具包括编程、建模、管理等开发工具。

通过网络环境把这些软件工具集成起来搭建一个支持团队开发的平台,称之为计算机辅助软件工程 (Computer Aided Software Engineering,CASE)。

CASE集成了软件、硬件和一个存放开发过程信息的软件工程数据库,形成了一个软件工程环境。

武汉理工软件测试复习

武汉理工软件测试复习

212.3,Male,已婚,2 年龄无效
50,BOY,已婚,2 50,Male,未婚,2
50,Male,已婚,-1 50,Male,已婚,12
2017/5/13
性别无效 婚姻状态无效
抚养人数无效 抚养人数无效
数 据 挖 掘
15 16
17 18
17
6.已婚 7.单身 抚 养 人 8.0 数 9.1-6人 10.7-9人
2017/5/13
16.指定以外的字符
17.小于0 18.大于10
数 据 挖 掘 16
测试用例
测试用例 27,Female,单身,0 50,Male,已婚,2 70,F,单身,7 0,Male,已婚,2 100,F,单身,5 50,男,已婚,2 预计输出 费率0.6% 费率0.6% 费率0.1% 年龄无效 年龄无效 性别无效 覆盖等价类 1、5、7、8 2、4、6、9 3、5、7、10 11 12 13 14
程序图
1
2
3 4 5 6 7 10 11 14 15
2017/5/13 数 据 挖 掘 9
12 13
8 9
基路径集合
基路径编号 p1 p2 p3 p4 基路径节点序列 1-2-3-4-11-14-15 1-2-3-5-6-7-10-11-14-15 1-2-3-5-6-8-9-10-11-14-15 1-2-12-13-14-15
2017/5/13
数 据 挖 掘
3
具体内容

结构性测试: DD-路径图 基路径测试 定义/使用测试
2017/5/13
数 据 挖 掘
4
具体内容

测试层次: 单元测试 集成测试 系统测试
2017/5/13

《软件工程概论》课程知识 复习 学习材料 试题与参考答案

《软件工程概论》课程知识 复习 学习材料 试题与参考答案

《软件工程概论》课程知识复习学习材料试题与参考答案一、单选题1.原型化方法是一种(A)型的设计过程。

A.自外向内B.自顶向下C.自内向外D.自底向上2.下述任务中,不属于软件工程需求分析阶段的是(D)。

A.分析软件系统的数据要求B.确定软件系统的功能需求C.确定软件系统的性能要求D.确定软件系统的运行平台3.在软件生存周期中,用户主要是在(A)参与软件开发。

A.软件定义期B.软件开发期C.软件维护期D.整个软件生存周期过程中4.表示集成是指一个系统中的工具使用共同的风格以及采用共同的用户交互标准集。

表示集成有三种不同级别:窗口系统集成、命令集成和(D)。

A.数据集成B.平台集成C.界面集成D.交互集成5.软件开发环境支持一定的(C)或按照一定的软件开发模型组织而成。

A.软件生存周期B.软件过程C.软件开发方法D.软件开发模型6.技术可行性要解决(D)。

A.存在侵权否B.成本-效益问题C.运行方式可行D.技术风险问题7.瀑布模型是一种(D)。

A.软件开发方法B.软件生存周期C.程序设计方法学D.软件生存周期模型8.面向数据流的软件设计方法可将(C)映射成软件结构。

A.控制结构B.模块C.数据流D.事务流9.一个CASE工作台是一组(A),支持设计、实现或测试等特定的软件开发阶段。

A.工具集B.软件包C.平台集D.程序包10.软件工程学的目的应该是最终解决软件生产的(B)问题。

A.提高软件的开发效率B.使软件生产工程化C.消除软件的生产危机D.加强软件的质量保证11.目前有若干种软件生存周期模型。

例如瀑布模型、增量模型、螺旋模型等。

其中基于知识的模型也称为(B)。

A.演化模型B.智能模型C.变换模型D.喷泉模型12.可行性分析中,系统流程图用于描述(A)。

A.当前运行系统B.当前逻辑模型C.目标系统D.新系统13.软件生存周期模型有多种,下列选项中,(C)不是软件生存周期模型。

A.螺旋模型B.增量模型C.功能模型D.瀑布模型14.从结构化的瀑布模型看,在软件生命周期中的八个阶段中,下面的几个选项中,(C)出错,对软件的影响最大。

武汉理工软件工程经济学复习范围

武汉理工软件工程经济学复习范围

1、根据系统工程的理论,软件工程应包括哪三大类知识?根据系统工程的理论,任何一个工程学科,其方法均可划分为三大部分:工程技术学方法、工程经济学方法和工程管理学方法。

因此软件工程作为一种特殊的工程商品,其生产过程方法论同样可以划分为:软件工程技术学方法论、软件工程经济学方法论和软件工程管理学方法论等三部分。

2、什么是软件生存周期?软件生存周期一般可划分为哪几个阶段?将软件以概念的形成开始,经过开发、使用和维护,直到最后退役的全过程成为软件的生存周期。

可根据其所处的状态、特征以及软件开发活动的目的、任务划分为七阶段。

1.可行性分析2.计划与需求分析3.概要设计4.详细设计与编码5.集成与测试6.运行与维护7.退役4、简述成本的经济内容。

成本经济内容基本包括下面三个方面:1.劳动资料方面的损耗,主要指固定资产的折旧费,与此相关的损耗还有设备运转所需的动力费,为保持设备正常工作状态所需的修理费及设备购买与安装、运输等费用;2.劳动对象方面的损耗,主要是指各类损耗材料费及材料的仓储、运输费用等;3.人工方面的消费与消耗,主要是指工资及与此相关的福利费,为职工支付的保险费等。

5、什么是资金的时间价值?为什么资金的时间价值会直接影响软件项目的经济效果?在市场经济中,资金若锁住不用,会随着通货膨胀而产生贬值;相反,如存入银行或投资工程项目(如NIS项目),则该资金将进入一个循环和周转的过程,他的绝对金额将随着时间推移而转移,并将发生相应的增额或减额的变化,其增加或者减少的金额部分称为资金的时间价值。

对于软件构建者(经济主体),其资金的投入是按照经济活动的需求在生命周期的各阶段分批、分期投入,构成了一个现金(投入)流出量序列,其收益也构成一个收益(现金流入量)时间序列,所以客观评价软件项目方案的经济效果,不仅要考虑现金流入流出的总额,还必须考虑资金的时间价值。

此外,还应注意,企业对软件的投资绝大部分来自于对银行(或其他渠道)的借贷,由于借入与还贷之间有一个时间差距,因而必须考虑资金的时间价值。

软件工程复习资料-完整版

软件工程复习资料-完整版

软件工程复习资料-完整版一、概述软件工程是一门关于开发、维护和管理软件的综合学科。

它涵盖了软件开发的各个阶段,包括需求分析、设计、编码、测试和维护。

软件工程的目标是提供高质量的软件,满足用户的需求,同时将开发过程控制在预定的时间和预算范围内。

二、软件生命周期1. 需求分析阶段在需求分析阶段,开发团队与用户沟通,了解用户的需求和期望。

通过需求分析,确定软件的功能和性能要求,制定详细的需求规格说明。

2. 设计阶段在设计阶段,团队根据需求规格说明,设计软件的整体架构和模块。

设计阶段包括概要设计和详细设计,概要设计主要确定软件的整体结构,详细设计则更加具体,包括模块的功能和接口设计。

3. 编码阶段在编码阶段,根据详细设计,实现软件的各个模块。

编码时应遵循编程规范,确保代码的可读性和可维护性。

同时,要进行单元测试,确保每个模块的功能正确。

4. 测试阶段在测试阶段,对软件进行不同层次的测试,包括单元测试、集成测试和系统测试。

单元测试测试各个模块的功能,集成测试测试模块之间的接口,系统测试测试整个系统的功能和性能。

5. 部署和维护阶段在软件开发完成后,需要将软件部署到目标环境中,并进行用户培训。

同时,还需要对软件进行维护和升级,以解决出现的问题和满足用户的需求变化。

三、软件工程的原则1. 模块化将软件划分为多个模块,每个模块负责特定的功能。

模块化能够提高软件的可维护性和复用性,同时有利于团队的协作开发。

2. 可伸缩性软件应该具备可伸缩性,能够满足不同规模和需求的用户。

在设计和实现软件时,需要考虑未来的扩展和升级,保证软件的灵活性。

3. 可测试性软件应该具备可测试性,方便进行各个阶段的测试。

在设计和编码时,需要考虑如何进行自动化测试,提高测试的效率和覆盖率。

4. 可维护性软件应该具备可维护性,方便对软件进行改进、修复和升级。

在设计和编码时,需要遵循良好的编程规范,提高代码的可读性和可维护性。

5. 文档化软件开发过程需要进行详细的文档记录,包括需求文档、设计文档、测试文档等。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第一章概述1.软件(software)是计算机系统中与硬件(hardware)相互依存的另一部分,它是包括程序(program),相关数据(data)及其说明文档(document)(1)程序是按事先设计的功能和性能要求执行的指令序列(2)数据是使程序能正常操纵信息的数据结构(3)文档是与程序开发,维护和使用有关的图文材料2.软件的特点:(1)软件是一种逻辑实体,而不是具体的物理实体,具有抽象性(2)软件的生产与硬件不同,在它的开发过程中没有明显的制造过程(3)在软件的运行和使用期间,没有硬件那样的机械磨损、老化问题(4)依赖于计算机硬件系统(5)软件的开发至今尚未完全摆脱手工艺的开发方式(6)软件本身是复杂的(实际问题的复杂性,程序逻辑结构的复杂性)(7)软件成本相当昂贵(8)相当多的软件工作涉及到社会因素3.软件危机(software crisis)是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。

4.软件危机包含两方面的问题:其一是如何开发软件,以满足不断增长、日趋复杂的需求;其二是如何维护数量不断膨胀的软件产品。

5.软件危机的主要表现:质量:1. 软件产品的质量往往靠不住;2.软件常常是不可维护的;3.软件通常没有适当的文档资料;4.用户对“已完成的”软件系统不满意的现象时间:5.软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势;6.经常发生对软件开发成本和进度的估计常常很不准确预算:7.软件成本在计算机系统总成本中所占的比例逐年上升6.出现软件危机的主要原因一方面是与软件本身的特点有关,另一方面是与软件开发和维护的方法不正确有关。

解决的办法:软件工程7.(1)软件工程(software engineering)是将工程化的思想用于软件的开发和维护(2)软件工程(software engineering)就是为了经济地获得可靠的且能在实际机器上有效运行的软件,而建立和使用完善的工程原理。

(3)软件工程(software engineering)是:(1)将系统化的、严格约束的、可度量的方法应用于软件的开发、运行和维护,即将工程化应用于软件。

(2)在(1)中所述方法的研究软件工程是一门研究如何用系统化、规范化、数量化等工程原则和方法去进行软件的开发和维护的学科。

8.软件工程包括两方面内容:软件开发技术和软件项目管理。

其中,软件开发技术包括软件开发方法学、软件工具和软件工程环境。

软件项目管理包括软件度量、项目估算、进度控制、人员组织、配置管理、项目计划等。

9.软件工程包含四个关键元素:方法(methodologies)、语言(languages)、工具(tools)和过程(procedures)(1)软件的方法提供如何构造软件的技术。

内容:明确的工作步骤与技术、具体的文档格式、明确的评价标准(2)软件语言用于支持软件的分析、设计和实现(3)软件工具为方法和语言提供自动和半自动的支持(4)软件过程规定了完成各项任务的步骤从内容上说软件工程包括:软件开发理论和结构、软件开发技术、以及软件工程管理和规范10.软件工程的原理:(1)用分阶段的生命周期计划严格管理(2)坚持进行阶段评审(3)实行严格的产品控制(4)采纳现代程序设计技术(5)结果应能清楚地审查(6)开发小组的人员应少而精(7)承认不断改进软件工程实践的必要性11.软件的生存期:一个软件从计划开发到废弃不用的这段时期被称为软件的生命周期12.软件生存周期阶段:定义阶段:主要确定待开发软件系统要做什么(1)系统分析(问题定义):要解决的问题是什么。

同用户协商,达成共识。

(2)制定软件项目计划(含可行性研究):问题是否值得去解决。

若可行,则须指定软件项目计划包括确定工作域、风险分析、资源规定、成本核算、以及工作任务和进度安排等。

(3)需求分析:系统必须完成哪些功能。

开发人员与用户共同讨论决定哪些需求是可以满足的,并对其加以确切的描述。

开发阶段:确定待开发的软件怎么做(1)软件设计:总体上如何实现系统,将系统功能分割给几个子系统,子系统间的接口如何。

如何具体地实现系统,如何描述数据结构和算法。

(2)编码:选择编程语言并编写代码。

(投入最多,持续时间不长)(3)测试:包括不同的测试阶段,如测试功能的单元测试、测试性能的综合测试。

维护阶段(持续时间最长):进行各种修改,使系统能持久的满足用户的需要。

改正性维护、适应性维护、完善性维护和预防性维护13.常见的软件工程模型有:瀑布模型、原型法模型、演化模型、螺旋模型、喷泉模型、第四代技术过程模型(1)瀑布模型:具有顺序性和依赖性,便于分工合作,文档便于修改,并有复审质量保证,但与用户见面晚,纠错慢,工期延期的可能性大。

适合于软件需求比较明确、开发技术比较成熟、工程管理比较严格,无重大变化的系统。

优点:便于分工协作;文档驱动,有质量保证。

缺点:易阻塞;推迟实现;成功率较低。

适用范围:功能、性能需求明确,无重大变化的系统(2)原型法模型:针对瀑布模型提出来的一种改进方法。

它的基本思想是从用户需求出发,快速建立一个原型,使用户通过这个原型初步表达出自己的要求,并通过反复修改、完善,逐步靠近用户的全部需求,最终形成一个完全满足用户要求的新体系。

适用范围:(用户可见的功能和表示)对软件需求缺乏准确的认识的项目,采用新技术的项目(3)演化模型:适用范围:对软件需求缺乏准确的认识的项目,系统开发的时限十分严格的项目(4)螺旋模型:风险驱动:以降低风险为目的,极大地依赖风险评估技术适用范围:开发的大型项目面向对象软件的项目需求不准确的项目(5)喷泉模型:(面向对象)迭代与递增,重复,演进,无间隙,各阶段间无明显界限第二章可行性研究1.可行性研究的相关工作包括问题定义、可行性研究和需求定义(1)问题定义:是可行性研究和软件开发计划的制定的依据基本任务——了解问题的背景和用户的目标——提出关于问题的性质、工程的目标和规模的书面报告(2)可行性研究:可行性研究的前提:系统分析员与用户就项目的目标等取得了一致的认识可行性研究的结论:启动,或延期,或终止可行性研究的目的:用最小的代价在尽可能短的时间内确定问题是否能够解决。

2.可行性研究的目的:技术可行性、经济可行性、操作可行性、法律可行性技术可行性:(1)风险分析:在给定的约束条件下,判断能否设计并实现系统所需的功能和性能(2)资源分析:论证是否具备系统开发所需的各类管理人员和专业技术人员、软件、硬件资源和工作环境等(3)技术分析:当前的科学技术是否支持系统开发的全过程经济可行性:系统的经济效益是否能超过它的开发成本(系统效益包括经济效益和社会效益)操作可行性:确定在当前政治意识形态、法律法规、社会道德、民族意识以及系统运行的组织机构和人员等环境下,系统是否可行。

法律可行性:是否符合法律的规定3.可行性研究最根本的任务是对以后的行动方针提出建议。

4.可行性研究的步骤:(1)复查系统规模和目标(2)研究目前正在使用的系统(3)导出新系统的高层逻辑模型(4)导出和评价若干供选择的解法(5)草拟开发计划等文档并提交审查5.可行性研究最终得到可行性研究报告第三章需求分析1.需求分析是在可行性分析和需求定义的基础上,要求更加详细、准确的分析清楚系统必须做什么。

有时又称为软件系统分析,它处于软件工程的开始部分,提供了构建软件项目其余部分的根基,关系到软件开发的成败。

2.需求分析其任务是:对目标系统提出完整、准确、清晰、具体的要求3.需求分析与可行性研究的区别:(1)可行性研究是大大压缩简化了的系统分析和设计的过程(抽象层次较高)(2)可行性研究是在忽略许多细节的前提下,确定是否存在可行的解法4.需求分析的过程:(1)问题获取:解决要开发的软件做什么、做到什么程度(2)需求分析:包括提炼、分析和审查已收集的需求,以确保所有的风险承担者都明白它们的含义,并且找出其中的错误、遗漏或不足的地方(3)需求规格说明:描述需求的文档(4)需求评审:需求分析完成后对功能的正确性。

完整性和清晰性以及其他需求给于评审。

需求分析的原则:(1)必须能够表达和理解问题的数据域和功能域;(2)必须自顶向下、逐层分解和细化问题;(3)必须给出系统的逻辑视图和物理视图。

5.需求分析的方法:(1)结构化分析方法(SA):数据流建模,行为模型。

基本思想:自顶向下、逐步求精。

常用的工具有:数据流图(Data Flow Diagram,DFD)、数据字典(Data Dictionary,DD)等。

(2)面向对象分析方法(OOA):结构模型,对系统的建模结构化分析模型(数据字典三个子模型):数据模型、功能模型、行为模型。

数据模型包含3种信息:数据对象、属性、关系。

功能模型可以用数据流图描述;数据流图包含4种图形元素:数据流、加工处理、数据文件、源点和终点。

6.经过软件的需求分析建立起来的模型可以称之为分析模型或者需求模型。

核心是数据字典,围绕的是数据模型、功能模型和行为模型。

(1)数据模型包含数据对象、属性和关系。

数据对象只封装数据,没有引用对作用于数据对象的操作;关系:一对一,一对多,多对多。

常用实体关系图(ER图):实体、属性和关系(2)功能模型:数据流图(DFD)是以图形的方式表达数据处理系统中信息的变换和传递过程,包含数据流(含有固定成分的动态数据,包括输入数据和输出数据)、数据源(源点和终点表示数据的产生和最终抵达处,通常是系统边界)、数据的加工(又称变换或者功能模块,表示对数据进行的操作逻辑)和数据的存储(数据文件,文件表示处于静态的、需要存储的数据)。

(3)行为模型:状态转换图7.数据流图包含4种图形元素:数据流、数据流分量、数据存储、处理8.结构化方法适用于需求明确的应用领域。

面向对象软件开发包括面向对象分析(问题定义阶段)、面向对象设计和面向对象程序设计9.面向对象分析模型:对象模型、功能模型、行为模型10.产出软件规格说明书第四章系统设计1.1.系统设计的目标是确定系统的物理模型。

系统设计基本目的是用比较抽象概括的方式确定目标系统如何完成预定的任务。

系统设计包括:软件系统结构的总体设计、处理设计、数据结构设计。

2.结构图的形态特征:1)层次数——深度2)同一层最大模块数——宽度3)一个给定模块调用的模块个数——扇出4)调用一个给定模块的模块个数——扇入好的软件顶层扇出大,底层扇入大。

3.一般用两个准则度量模块的独立性,即模块间的耦合和模块的内聚性。

2.4. 耦合性是程序结构各个模块之间相互关联的度量,他取决与各个模块之间借口的复杂程度、调用模块的方式以及哪些信息通过接口。

按照耦合性从低到高的顺序排列如下:非直接耦合、数据耦合、标记耦合、控制耦合、外部耦合、公共耦合、内容耦合设计原则:尽量使用数据耦合,少用控制耦合和特征耦合,限制公共环境耦合的范围,完全不用内容耦合。

相关文档
最新文档