软件工程第二章

合集下载

软件工程第二章至五章

软件工程第二章至五章
6.社会因素可行性分析 (1)法律因素:如合同责任、侵犯专利权、侵犯版权等。 (2)用户使用可行性:如用户单位的行政管理、工作制度、 人员素质等能否满足要求。 7.其他可供选择的方案 逐个阐明其他可供选择的方案,并重点说明未被推荐 的理由。 8.结论意见 (1)着手组织开发; (2)等待若干条件具备后才能开发; (3)需对开发目标进行某些修改; (4)不能进行或不必进行;(5)其他。
可行性研究
• 4.法律可行性

研究新系统的开发在社会上和政治上会不会引起侵权、 破坏以及会不会与法律相抵触等问题。 可行性研究最根本的任务是对以后的行动方向提出建 议。如果可行性研究的结果是问题没有可行的解,那么系 统分析员应该建议停止这项工程的开发;如果可行性研究的 结果是问题值得去解决,那么系统分析员应该推荐一个较 好的解决方案,并且为工程制定一个初步的开发计划。
①书写文档所引用的有关资料所参考的软件标准或规范; ②与项目有关的已发表的资料; ③项目经批准的计划任务书、合同或上级机关的批文。
可行性研究报告的主要内容 以及在软件开发中的作用
2.可行性研究的前提
(1)要求:列出对拟开发项目的各项基本要求,并加以 说明。包括:功能、性能、输入.输出、基本数据流图、安全 与保密要求等。 (2)目标:可包括人力与设备费用的节省、处理速度的 提高、控制精度或生产力的提高、管理信息服务的改进、 决策系统的改进、人员工作效率的提高。 (3)条件、假定和限制:可包括建议开发软件运行的最 短寿命,经费来源和使用限制,法律和政策方面的限制, 硬件、软件、运行环境和开发环境的条件和限制,可利用 的信息和资源,建议开发软件投入使用的最迟时间等。 (4)可行性研究方法。 (5)决定可行性的主要因素。

软件工程(第五版)--习题及答案--第二章

软件工程(第五版)--习题及答案--第二章

一、选择题1、系统流程图是一种传统工具,用于描绘(D)。

A、逻辑模型B、程序结构C、体系结构D、物理系统2、软件可行性研究的目的是(C)。

A、证明软件开发项目可行B、证明软件开发项目不可行C、阐述软件开发项目值得或不值得做D、为了确定软件开发项目要不要做3、技术可行性研究要解决的问题是(A)。

A、从技术方面说明项目是否可行B、从技术上定义项目要解决的问题C、给出项目开发可行的技术路线D、给出精简的项目需求设计报告4、可行性研究的步骤首先是(A)。

A、确定项目目标,即对要解决的问题进行定义B、研究项目要求C、对项目目标进行可行性分析D、给出可行的解决方案5、可行性研究的任务不包括(D)。

A、技术可行性B、经济可行性C、法律可行性D、政治可行性6、系统流程图是描述(A)的工具。

A、物理系统B、逻辑系统C、体系系统D、程序系统7、可行性研究实质上是要进行一次(A)需求分析,设计过程。

A、简化、压缩的B、详细的C、彻底的D、深入的8、系统流程图的符号不包括(D)。

A、B、C、D、二、简答题1、软件开发的早期,为什么要进行可行性研究?目标的可行性研究有几个方面?答:许多软件开发问题都不能在预期的时间范围内或资源限制下得到解决。

如果开发人员没有尽早停止没有可行解决方案的开发项目,就会造成时间、资金、人力、物力的浪费。

为了降低软件开发失败的可能性,需要进行软件可行性研究。

可行性研究要从经济可行性、技术可行性、运行可行性和法律可行性四方面进行。

2、简述可行性研究的步骤。

答:(1)审核系统的规模和目标;(2)分析研究现行系统;(3)设计新系统的高层逻辑模型;(4)获得并比较可行的方案;(5)撰写可行性研究报告。

3、某航空公司为了方便旅客,拟开发一个机票预订系统。

将旅客的信息(姓名、性别、工作单位、身份证号、旅行时间、旅行目的地等)输入该系统后,系统自动为旅客安排航班。

打印出取票通知和票务账单。

旅客可在航班的前一天凭取票通知和票务账单交款取票。

软件工程 第二-六章习题

软件工程 第二-六章习题

第二章练习题一、判断题1. 软件的模块数越少,其软件成本越低。

错2. 软件模块之间的耦合性越弱越好。

对3. 模块化,信息隐藏,抽象和逐步求精的软件设计原则有助于得到高内聚,低耦合度的软件产品。

对4. 耦合是指一个模块内各个元素彼此结合的紧密程度。

错5. 过大的模块可能是由于分解不充分造成的,即使降低模块独立性也必须继续分解。

错6. 在设计模块时,其宽度和深度要适当。

对7. 模块耦合的强弱取决于模块间接口的复杂程度。

对二、名字解释:1. 抽象:抽象是认识复杂现象过程中使用的思维工具,即抽象出事物本质的共同特性而暂时不考虑其他的细节,不考虑其他因素。

2. 模块化:模块化是指解决一个复杂问题自顶向下逐层把软件系统划分成为若干模块的过程。

每个模块完成一个特定的子功能,所有的模块按某种方法组装起来,成为一个整体,完成整个要求的功能。

3. 逐步求精:4. 耦合:耦合也成模块叫联系,指软件系统结构中各模块间相互联系紧密程序的一种度量。

5. 内聚:内聚又称块联系。

指模块功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量6. 模块独立:模块独立想指每个模块只完成系统要求的独立的子功能,并且与其他模块联系最少且接口最简单。

7. 信息隐蔽:信息隐蔽在设计和确定模块时,使得一个模块内包含信息,对于不需要这些信息的其他模块来说事不能访问的。

三、选择题10. 在面向对象的设计中,我们应遵循的设计准则除了模块化、抽象、低耦合、高内聚以外,还有( B)。

BA. 隐藏复杂性B. 信息隐蔽C. 经常类的复用D. 类的开发20、为了提高模块的独立性,模块内部最好是( C )CA、逻辑内聚B、时间内聚C、功能内聚D、通信内聚33、从心理学角度看,一次大模块分解为多少个子模块为宜。

(B )BA、3±1B、7±2C、15±1D、18±238、软件设计启发规则不包括( C )CA、在耦合方式上降低模块间接口的复杂性B、模块功能应该可以预测C、将模块的控制域保持在其作用域内D、设计单入口单出口的模块40、为了提高模块的独立性,模块之间的联系最好的是(D)。

软件工程第二章软件过程模型

软件工程第二章软件过程模型
9
P-CMM
软件过程模型
软件过程模型是软件开发全部过程、活动和 任务的结构框架。它能直观表达软件开发全过程, 明确规定要完成的主要活动、任务和开发策略。 软件过程模型也常称为:
软件开发模型 软件生存周期模型 软件工程范型
常用过程模型 瀑布模型 (经典的生命周期模型) 演化过程模型
原型模型 并行开发模型 基于原型间有所折中 2). 客户意识不到一些质量问题
并行开发模型
基于构件的模型
基于构件的模型的四个阶段
需求
与其它模型相同,这里不再赘述。
组件分析
根据需求规格搜索可满足该需求的组件。通常情况下, 没有完全匹配的情况,因而组件通常需要加以修改。
增量过程模型
增量模型 RAD 螺旋模型
其他过程模型
智能模型 敏捷过程模型
1.瀑布模型(Waterfall Model)
由Winston Royce 在1970年最早提出的软件开 发模型。
软件开发过程与软件生命周期是一致的,也称经 典的生命周期模型。
规定了各项软件工程活动,以及它们自上而下, 相互衔接的固定次序,如同瀑布流水,逐级下落。
瀑布模型适用于系统需求明确、技术成熟、工程
管理较严格的场合。
演化模型
演化过程模型
原型模型 并行开发模型 基于构建模型
原型模型
适用情况
客户定义一个总体目标集,但是他们并不清楚 系统的具体输入输出;或开发者不确定算法的 效率、软件与操作系统是否兼容以及客户与计 算机交互的方式。此时,原型法是很好的选择。
4 Managed. Detailed measures of the software process and product quality are collected.

第2章 软件工程方法学

第2章 软件工程方法学

2.1软件工程方法


面向对象方法
是一种把面向“对象”的思想应用于软件开发过程中,指 导开发活动的系统方法,是建立在“对象”概念基础上的 方法学。 该方法主张从客观世界固有的事物出发来构造系统,提倡 用人类在现实生活中常用的思维方法来认识、理解和描述 客观事物。而现实世界恰好就是由各种对象组成的,如建 筑物、人、汽车、动物、植物等。因此通过构建系统中对 象与对象之间的关系能够如实地反映问题域中固有事物及 其关系。
第2章 软件工程方技术和管理两方面的内容,是技术 和管理紧密结合所形成的工程学科。 通常将软件开发全过程中使用的一整套技术方法 的集合称为方法学(methedology),也称为范型 (paradigm)。 目前使用最广泛的软件工程方法学:传统方法 (结构化方法),面向对象方法。
2.2 常用软件工具介绍(设计)
• 有代表性的商品化工具有:

Rational Rose:由Rational开发,是基于UML的 设计工具,它支持体系结构设计中的所有方面。 Adalon:由Synthis公司开发,是用于设计和构建 专门基于Web构件体系结构的特定设计工具。 Objectif:由microTOOL GmbH开发,是一个基于 UML的设计工具,它可以导致服从基于构件的软件 工程的各种体系结构(如,Coldfusion、J2EE和 Fusebox等)。

对象具有自身的属性和行为,有些不同的对象会呈现相同或相似的属性和行 为,如轿车、卡车、面包车。通常将属性及行为相同或相似的对象归为一类。 类可以看成是对象的抽象,代表了此类对象所具有的共有属性和行为。
继承中子类自动共享父类之间数据和方法的机制。它由类的派生功能体现。 一个类直接继职其它类的全部描述,同时可修改和扩充。

软件工程第二章PPT第2章

软件工程第二章PPT第2章
模块详细设计,包括模块详细功能、算法、数据结构和接口 信息的设计,拟定模块测试方案;
编制模块的详细规格说明
9
编码
选择一种程序设计语言; 写出正确的容易理解、容易维护的源程序模块; 产生可执行的目标程序。
10
测试-----保证软件质量的重要手段
任务
保证输出与要求的一致; 发现错误。
快速适应变化的需求),导致返工甚至推倒重来 无法预测新引入模块的影响 最终的形式难以预料 不适合需求模糊的系统
19
2.2.2 快速原型模型
快速原型模型的第一步是快速建立一个能反映用户 主要需求的原型系统,让用户在计算机上试用它,通 过实践来了解目标系统的概貌。 用户试用原型系统之后会提出许多修改意见,开发 人员按照用户的意见快速地修改原型系统,然后再次 请用户试用……。 一旦用户认为这个原型系统确实能做他们所需要的 工作,开发人员便可据此书写规格说明文档,根据这 份文档开发出可以满足用户的真实需求的软件
划分阶段的意义:简化每一步的工作内容,使因软件规 模增大而大大增加的软件复杂性变得 易于控制和管理。
2
问题定义 (要解决的问题是什么)
软件定义 可行性研究
(系统分析)
(该问题是否有行得通的解决办法)
需求分析 (目标系统必须做什么)
概要设计 (怎样实现目标系统)
软件生 命周期
系统设计 软件开发
详细设计 (应该怎样具体地实现这个系统)
形式化开发模型
转换模型(transformational model) 净室模型(cleanroommodel)
1
2.1 软件生存周期
定义
一个软件从开始计划起,到废弃不用止,称为软 件的生存周期。
包括计划、开发与运行三个时期。 计划时期:问题定义、可行性研究 开发时期:需求分析、系统设计、编码和测试 运行时期:系统维护阶段

软件工程第二章可行性研究

软件工程第二章可行性研究

正确 订单
一批 订单 待处理订单文件
汇总 订单
出 版 社
顾客档案
订货存根文件
编号
加工名
编号
加工名
文件名
文件名
数据流与数据加工之间的关系
数据流图举例-订货系统
假设一家工厂的采购部每天需要一张定货报表, 报表按零件编号排序,表中列出所有需要再次 定货的零件。对于每个需要再次定货的零件应 该列出下述数据:零件编号,零件名称,定货 数量,目前价格,主要供应者,次要供应者。 零件入库或出库称为事务,通过放在仓库中的 CRT终端把事务报告给定货系统。当某种零件的 库存数量少于库存量临界值时就应该再次定货。
第一步:可以从问题描述中提取数据流图的4种成分。 首先考虑数据的源点和终点,从上面对系统的描述可 以知道“采购部每天需要一张定货报表”,“通过放 在仓库中的CRT终端把事务报告给定货系统”,所以采 购员是数据终点,而仓库管理员是数据源点。 第二步:考虑处理,再一次阅读问题描述,“采购部 需要报表”,显然他们还没有这种报表,因此必须有 一个用于产生报表的处理。事务的后果是改变零件库 存量,然而任何改变数据的操作都是处理,因此对事 务进行的加工是另一个处理。
指出: 可行性研究的主要任务是“了解客 户的要求及现实环境,从技术、经济和 社会因素等三方面研究并论证本软件项 目的可行性,编写可行性研究报告,制 定初步项目开发计划。”
可行性研究的内容
技术可行性 经济可行性 操作可行性 社会可行性 (法律可行性) 做出抉择
技术可行性
使用现有的技术能实现这个系统吗?
2.2可行性研究
可行性研究的目的:
“说明该软件开发项目的实现在技术上、经 济上和社会条件上的可行性;评述为合理地 达到开发目标可能选择的各种方案”。

软件工程课件 第二章

软件工程课件 第二章
2、任务分解估计技术
先把项目分解成若干相对独立的子任务,再估算每个单独 任务的成本,最后得出项目开发的总成本。
常用方法是按开发阶段划分任务,还可把阶段划分成更小 的任务。
3、自动成本估算技术
以大量的历史资料为依据------软件工具完成。
经济效益还应考虑的因素
1、货币的时间价值
货币的价值本身随时间的增加而产生增值: F=P(1+i)n P:现在的钱;i:年利率;n年 F:现在存入P元,n年后可获得的钱。 P=F/(1+i)n i为银行的利率。P大于投入的钱则赢利。
可行性研究的步骤
一、复查系统规模和目标 系统规模:系统究竟解决什么问题。(问题范围) 系统目标:开发该系统究竟要达到什么目标。
二、研究目前正在使用的系统 确定现有系统能做什么,新系统还要解决那些问题。
三、导出新系统的高层逻辑模型。 新系统应该解决什么问题(功能及处理流程)及其约束。
四、导出和评价可供选择的方案 对高层逻辑模型导出不同的高层物理系统并进行评价。
经济效益 =使用新系统增加的收入+节省的费用
总的经济效益与生存周期长度有关,一般估计5年为宜。
此外,作为软件开发商,应从开发一个产品的角度来考 虑开发、维护、营销成本,推广的市场前景等等。
谢谢
在可行性分析以及后面的需求分析、总体设计 中,对现行系统的描述和对未来物理系统的描述, 都可以用系统流程图作为描述工具。
描述系统逻辑模型使用数据流程图,将在第三数据加工部件,如程序、处理机
输入输出:广义的不指明具体设备的符号 文档:通常表示打印输出,也可表示打印终
五、推荐行动方针 作出关键性决定:是否继续进行该项开发工程。 若值得开发,最好的方案是什么,并说明其理由。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档