第一篇:软件工程考核知识点-第2章-软件可行性研究与项目开发计划
软件工程考核知识点-第2章-软件可行性研究与项目开发计
划
2.1可行性研究
目的就是用最小的代价在尽可能短的时间内确定该软件项目是否能够开发,是否值得去开发。2.1.1可行性研究的任务
1.技术可行性
对要开发的项目的功能、性能、限制条件进行分析,确定在现有的资源条件下,技术风险有多大,项目是否能实现。
2.经济可行性 3.社会可行性
要开发的项目是否存在任何侵犯、妨碍等责任问题,要开发项目的运行方式在用户组织内是否行得通,现有管理制度、人员素质、操作方式是否可行。2.1.2 可行性研究的具体步骤
典型性的可行性研究有下列步骤:
1.确定项目规模和目标
2.研究正在运行的系统
3.建立新系统的高层逻辑模型
根据对现有系统的分析研究,逐步明确了新系统的功能、处理流程以及所受的约束,然后使用建立逻辑模型的工具——数据流图和数据字典来描述数据在系统中的流动和处理情况。现在还不是软件需求分析阶段,不是完整、详细地描述,只是概括地描述高层的数据处理和流动。
4.导出和评价各种方案
5.推荐可行的方案
6.编写可行性研究报告
2.2 系统流程图
1.系统流程图的作用
系统流程图是描绘物理系统的传统工具,它用图形符号来表示系统中的各个元素,例如人工处理、数据处理、数据库、文件、设备等。它表达了系统中各个元素之间的信息流动的情况。
2.系统流程图的符号
系统流程图的符号如表2-1所示。
2.3成本——效益分析
成本——效益分析的目的是从经济角度评价开发一个新的软件项目是否可行。1.货币的时间价值
项目开发后,应取得相应得效益,有多少效益才合算?这就要考虑货币的时间价值。通常用利率表示货币的时间价值。
设年利率为i,现存入P元,n年后可得钱数为F,若不计复利则
F=P×(1+n×i)F就是P元在n年后得价值。反之,若n年能收入F元,那么这些钱现在得价值是: P =F/(1+n×i)第2章例题分析与解答
一、填空题
1.可行性研究实质上是进行一次简化、压缩了的________。2.可行性研究的三个方面是技术可行性、社会可行性和_________。
3.可行性研究的第一个具体步骤是__________。
4.若年利率为i,不计复利,P元在n年后的价值F是_________。5.可行性研究中描述系统高层物理模型的工具是_______。
二、选择题 1.可行性研究的目的是决定()。
A.开发项目 B.项目值得开发否 C.规划项目 D.维护项目 2.技术可行性要研究的问题之一是()。
A.存在侵权否 B.成本效益问题 C.运行方式可行否 D.技术风险问题
3.纯收入是累计效益现在值与投资之()。A.和 B.差 C.积 D.商 4.项目开发计划这类文档是一种()。
A.技术性文档 B.管理性文档 C.需求分析文档 D.设计文档
答案
一、填空题
1.[答案]需求分析和设计 2.[答案]经济可行性
3.[答案]确定项目的规模和目标 4.[答案]p×(1+n×i)5.[答案]系统流程图
二、选择题 1.B 2.D 3.B 4.B
第二篇:软件工程习题 第2章 软件可行性研究与项目开发计划
第2章 软件可行性研究与项目开发计划
在进行任何一项较大的工程时,首先都要进行可行性分析和研究。因为这些工程中的问题并不是都有明显的解决办法。这样就不可能在预定的时间、费用之内解决这些问题。如果这些问题没有行之有效的解决办法,贸然开发这些项目就会造成时间、人力、资源、经费的巨大浪费。同样,对软件的项目开发也存在这样的问题。
软件可行性研究的目的就是用最小的代价在尽可能最短的时间内确定该软件项目是否能够开发,是否值得去开发。
1、可行性研究的任务是什么?
(1)技术可行性
对要开发项目的功能、性能、限制条件进行分析,确定在现有的资源条件下,技术风险有多大,项目是否能够实现。
(2)经济可行性
进行开发成本的估算以及了解取得效益的评估,确定要开发的项目是否值投资开发。
(3)社会可行性
要开发的项目是否存在任何侵犯、妨碍等责任问题,要开发项目的运行方式在用户组织内是否行得通,现有管理制度、人员素质、操作方式是否可行。
百度知道:从技术、效益、社会因素等方面分析一个软件项目是否可以开发
2、可行性研究有哪些步骤?
(1)确定项目规模和目标
(2)研究正在运行的系统
(3)建立新系统的高层逻辑模型
(4)导出和评价各种方案
(5)推荐可行的方案
(6)编写可行性研究报告
3、可行性研究报告有哪些主要内容?
(1)引言
(2)可行性研究前提
(3)对现有系统的分析
(4)所建议系统的技术可行性分析
(5)所建议系统的经济可行性分析
(6)社会因素可行性分析
(7)其它可供选择方案
(8)结论意见
4、成本——效益分析可用哪些指标进行度量?
(1)货币的时间价值
(2)投资回收期
(3)纯收入
5、项目开发计划有哪些内容?
(1)项目概述
(2)实施计划
(3)人员组织及分工
(4)交付期限
第三篇:软件项目开发计划
1引言...............................1
1.1编写目的...............................1
1.2 背景...............................1
1.3定义.........................1
1.4参考资料...............................1
2项目概述..............................1
2.1工作内容...............................1
2.2主要参加人员.......................1
2.3产品.........................2
2.3.1程序.........................2
2.3.2文件.........................2
2.3.3服务.........................2
2.3.4非移交的产品.......................2
2.4验收标准...............................2
2.5完成项目的最迟期限.........................2
2.6本计划的批准者和批准日期....................2
3实施计划..............................2
3.1工作任务的分解与人员分工....................2
3.2接口人员...............................3
3.3进度.........................3
3.4预算.........................3
3.5关键问题...............................3
4支持条件..............................3
4.1计算机系统支持..........................3
4.2需由用户承担的工作.........................3
4.3由外单位提供的条件.........................4
5专题计划要点.............................4
项目开发计划(GB856T——88)1引言
1.1编写目的说明:编写这份软件项目开发计划的目的,并指出预期的读者。
1.2 背景
说明:
a.待开发的软件系统的名称;
b.本项目的任务提出者、开发者、用户及实现该软件的计算中心或计算机网络; c.该软件系统同其他系统或其他机构的基本的相互来往关系。
1.3定义
列出本文件中用到的专门术语的定义和外文的首字母组词的原词组。
1.4参考资料
列出用得着的参考资料,如:
a.本项目的经核准的计划任务书和合同、上级机关的批文;
b.属于本项目的其他已发表的文件;
c.本文件中各处引用的文件、资料,包括所要用到的软件开发标准。列出这些文件资料的标题、文件编号、发表日期和出版单位,说明能够得到这些文件资料的来源。2项目概述
2.1工作内容
简要地说明在本项目的开发中须进行的各项主要工作。
2.2主要参加人员
扼要说明参加本项目开发的主要人员的情况,包括他们的技术水平。
2.3产品
2.3.1程序
列出须移交给用户的程序的名称、所用地编程语言及存储程序的媒体形式,并通过引用相关文件,逐项说明其功能和能力。
2.3.2文件
列出须移交用户的每种文件的名称及内容要点。
2.3.3服务
列出需向用户提供的各项服务,如培训安装、维护和运行支持等,应逐项规定开始日期、所提供支持的级别和服务的期限。
2.3.4非移交的产品
说明开发集体应向本单位交出但不必向用户移交的产品(文件甚至某些程序)。
2.4验收标准
对于上述这些应交出的产品和服务,逐项说明或引用资料说明验收标准。
2.5完成项目的最迟期限
2.6本计划的批准者和批准日期
3实施计划
3.1工作任务的分解与人员分工
对于项目开发中需要完成的各项工作,从需求分析、设计、实现、测试直到维护,包括文件的编制、审批、打印、分发工作,用户培训工作,软件安装工作等,按层次进行分解,指明每项任务的负责人和参加人员。
3.2接口人员
说明负责接口工作的人员及他们的职责,包括:
a.负责本项目同用户的接口人员;
b.负责本项目同本单位各管理机构,如合同计划管理部门、财务部门、质量管理部门等的接口人员;
c.负责本项目同个份合同负责单位的接口人员等。
3.3进度
对于需求分析、设计、编码实现、测试、移交、培训和安装等工作,给出每项工作任务的预定开始日期、完成日期及所需资源,规定各项工作任务完成的先后顺序以及表征每项工作任务完成的标志性事件(即所谓“里程碑)。
3.4预算
逐项列出本开发项目所需要的劳务(包括人员的数量和时间)以及经费的预算(包括办公费、差旅费、机时费、资料费、通讯设备和专用设备的租金等)和来源。
3.5关键问题
逐项列出能够影响整个项目成败的关键问题、技术难点和风险,指出这些问题对项目的影响。
4支持条件
说明为支持本项目的开发所需要的各种条件和设施。
4.1计算机系统支持
逐项列出开发中和运行时所需的计算机系统支持,包括计算机、外围设备、通讯设备、模拟器、编译(或汇编)程序、操作系统、数据管理程序包、数据存储能力和测试支持能力等,逐项给出有关到货日期、使用时间的要求。
4.2需由用户承担的工作
逐项列出需要用户承担的工作和完成期限。包括需由用户提供的条件及提供时间。
4.3由外单位提供的条件
逐项列出需要外单位分合同承包者承担的工作和完成的时间,包括需要由外单位提供的条件和提供的时间。
5专题计划要点
说明本项目开发中需制定的各个专题计划(如分合同计划、开发人员培训计划、测试计划、安全保密计划、质量保证计划、配置管理计划、用户培训计划、系统安装计划等)的要点。
第四篇:软件工程考核知识点-第8章-软件维护
软件工程考核知识点-第8章-软件维护
第8章 软件维护
软件投入使用后就进入软件维护阶段。维护阶段是软件生存周期中时间最长的一个阶段,所花费的精力和费用也是最多的一个阶段。8.1软件维护的内容
软件维护内容有四种:校正性维护,适应性维护,完善性维护和预防性维护。
1.校正性维护
在软件交付使用后,由于在软件开发过程中产生的错误并没有完全彻底的在测试中发现,因此必然有一部分隐含的错误被带到维护阶段来。这些隐含的错误在某些特定的使用环境下会暴露出来。为了识别和纠正错误,修改软件性能上的缺陷,应进行确定和修改错误的过程,这个过程就称为校正性维护。校正性维护占整个维护工作的20%左右。
2.适应性维护
随着计算机的飞速发展,计算机硬件和软件环境也在不断发生变化,数据环境也在不断发生变化。为了使应用软件适应这种而修改软件的过程称为适应性维护。这种维护活动占整个维护活动的25%。
3.完善性维护
在软件漫长的运行时期中,用户往往会对软件提出新的功能要求与性能要求。这是因为用户的业务会发生变化,组织机构也会发生变化。为了适应这些变化,应用软件原来的功能和性能需要扩充和增强,为达到这个目的而进行的维护活动称为完善性维护,占整个维护活动的50%。
4.预防性维护
为了提高软件的可维护性和可靠性而对软件进行的修改称为预防性维护。这是为以后进一步的运行和维护打好基础,占整个维护工作的4%。8.2 维护的特点
8.2.1非结构化维护和结构化维护
软件的开发过程对软件的维护过程有较大的影响。若不采用软件过程的方法开发软件,则软件只有程序而无文档,维护工作非常难,这就是一种非结构化的维护。若采用软件工程的方法开发软件,则各阶段都有相应的文档,这容易进行维护工作,这是一种结构化的维护。1.非结构化维护
因为只有源程序,而文档很少或没有文档,维护活动只能从阅读、理解、分析源程序开始。这是软件工程时代以前进行维护的情况。2.结构化维护
用软件工程思想开发的软件具有各阶段的文档,这对于理解和掌握软件功能、性能、系统结构、数据结构、系统接口和设计约束有很大作用。这种维护对减少精力、减少花费、提高软件维护效率有很大的作用。8.2.2维护的困难性
软件维护的困难性是由于软件需求分析和开发方法的缺陷。软件生存周期中的开发阶段没有严格而又科学的管理和规划,就会引起软件运行时的维护困难。表现在以下几个方面: 1.读懂别人的程序是困难的。2.文档的不一致性。
由于开发过程中文档管理不严所造成的,在开发过程中经常会出现修改程序却遗忘了修改与其相关的文档,使得文档前后不一致。3.软件开发和软件维护在人员和时间上的差异
由于维护阶段持续时间很长,正在运行的软件可能是十几、二十年前开发的,开发工具、方法、技术与当前的工具、方法、技术差异很大,这又是维护困难的另一因素。4.软件维护不是一项吸引人的事
由于维护工作的困难性,维护工作经常遭受挫折,而且很难出成果,不像软件开发工作那样吸引人。
8.2.3软件维护的费用
软件维护的费用在总费用中的比重是不断增加的。七十年代占35%~40%,八十年代上升到40%~60%,九十年代上升到70%~80%。软件维护费用不断上升,这只是软件维护有形的代价,无形的代价是要占用更多的资源,并在维护时对软件的改动,引入了潜在的故障,从而降低了软件的质量。用于软件维护工作的活动可分为生产性活动和非生产性活动两种。生产性活动包括分析评价、修改设计和编写程序代码等。非生产性活动包括理解程序代码功能、解释数据结构接口特点和设计约束。
维护活动总的工作两由下式表示:M=P+K×exp(C-D)
其中:M表示维护工作的总工作量;
P表示生产性活动工作量;
K表示经验常数;
C表示复杂性程度;
D表示维护人员对软件的熟悉程度;
上式表明,若C越大,D越小,那么维护工作量将成指数增加;C增加表示软件因未用软件工程方法开发,从而使得软件为非结构化设计,文档缺少,程序复杂性高。D表示维护人员不是原来的开发人员,对软件熟悉程度低,重新理解软件花费很多时间。8.3维护任务的实施 8.3.1维护的组织
为了有效地进行软件维护,应事先开始组织工作,建立维护机构。这种维护机构通常以维护小组形式出现。维护小组分为临时维护小组和长期维护小组。8.3.2维护的流程
软件维护的流程如下:
(1)制定维护申请报告。
(2)审查申请报告并批准。
(3)进行维护并做详细记录。
(4)复审。1.制定维护申请报告
所有软件维护申请报告应按照规定的方式提出。该报告也称为软件问题报告。它是维护阶段的一种文档,由申请维护的用户填写。维护申请报告是一种由用户产生的文档,在软件维护组织内部还要制定一份软件修改报告,该报告是维护阶段的另一种文档。
提出维护申请报告之后,由维护机构来评审维护请求。评审工作很重要,通过评审回答要不要维护,从而可以避免盲目的维护。2.维护过程
一个维护申请提出之后,经评审需要维护则按下列过程实施维护:
(1)首先确定要进行维护的类型。
(2)对校正性维护从评价错误的严重性开始。
(3)对适应性维护和完善性维护。
(4)实施维护任务。不管维护类型如何,大体上要开展相同的技术工作。这些工作包括修改软件设计、必要的代码修改、单元测试、集成测试、确认测试以及复审。每种维护类型的侧重点不一样。
(5)“救火”维护。在发生重大问题时,需要立即解决的问题。
3.维护的复审
在维护任务完成后,要对维护任务进行复审。8.3.3维护技术
有两类维护技术,它们是面向维护的技术和维护支援技术。
1.面向维护的技术
面向维护的技术涉及软件开发的所有阶段。
2.维护支援技术
维护支援技术包括下列方面的技术:
.信息收集;
.错误原因分析;
.维护方案评价;
.软件分析与理解;
.代码与文档修改;
.修改后的确认;
.远距离的维护; 8.3.4维护的副作用 维护的目的是为了延长软件的寿命并让创造更多的价值,经过一段时间的维护,软件中的错误减少了,功能增强了。但修改软件会造成软件的错误,这种因修改软件而造成的错误或其他不希望出现的情况称为维护的副作用。
维护的副作用有编码副作用、数据副作用、文档副作用三种。
1.编码副作用
在使用程序设计语言修改源代码时可能引入错误。
2.数据副作用
在修改数据结构时,有可能造成软件设计与数据结构不匹配,因而导致软件错误。
3.文档副作用
对数据流、软件结构、模块逻辑或任何其他有关特性进行修改时,必须对相关技术文档进行相应修改,否则会导致文档与程序功能不匹配、缺省条件改变、新错误信息不正确等错误,使文档不能反映软件当前的状态。
【大 中
8.4 软件可维护性
软件的维护是十分困难的,为了使软件能易于维护,必须考虑使软件具有可维护性。8.4.1可维护性定义
软件可维护性的定义:软件能够被理解、校正、适应及增强功能的容易程度。
软件的可维护性、可使用性、可靠性是衡量软件质量的几个主要特性,也是用户十分关心的几个问题。
软件的可维护性是软件开发阶段的关键目标。影响软件可维护性的因素较多,设计、编码及测试中的疏忽和低劣的软件配置,缺少文档等都对软件的可维护性产生不良影响。软件可维护性可用下面七个质量特性来衡量,即可理解性、可测试性、可修改性、可靠性、可移植性、可使用性和效率。对于不同类型的维护,这七种特性的侧重点也是不相同。8.4.2可维护性的度量
目前有若干对软件可维护性进行综合度量的方法,但要对可维护性作出定量度量还是困难的。还没有一种方法能够使用计算机对软件的可维护性进行综合性的定量评价。
下面是度量一个可维护的软件的七种特性时常采用的方法,即质量检查表、质量测试、质量标准。
质量检查表是用于测试程序中某些质量特性是否存在的一个问题清单。
质量测试与质量标准则用于定量分析和评价程序的质量。由于许多质量特性是相互抵触的,要考虑几种不同的度量标准去度量不同的质量特性。8.4.3提高可维护性的方法
从下面五个方面来阐述如何提高软件的可维护性:
1.建立明确的软件质量目标
如果要程序满足可维护性七个特性的全部要求,那么要付出很大的代价,甚至是不现实的,但有些可维护性是相互促进的,因此要明确软件所追求的质量目标。
2.使用先进的软件开发技术和工具 利用先进的软件开发技术能大大提高软件质量和减少软件费用。面向对象的软件开发方法就是一个非常实用而强有力的软件开发方法,用面向对象方法开发出来的软件系统,稳定性好,比较容易修改,比较容易理解,易于测试和调试,因此,可维护性好。
3.建立明确的质量保证
质量保证是指为提高软件质量所做的各种检查工作。质量保证检查是非常有效的方法,不仅在软件开发的各阶段中得到了广泛应用,而且在软件维护中也是一个非常主要的工具。为了保证可维护性,以下四类检查是非常有用的:
(1)在检查点进行检查。
(2)验收检查。
(3)周期性的维护检查。(4)对软件包的检查。
4.选择可维护的语言
程序设计语言的选择对维护影响很大。低级语言很难掌握,很难理解,因而很难维护。一般来说,高级语言比低级语言更容易理解,第四代语言更容易理解,容易编程,程序容易修改,改进了可维护性。
5.改进程序的文档
程序文档是对程序功能、程序各组成部分之间的关系、程序设计策略、程序实现过程的历史数据等的说明和补充。程序文档对提高程序的可阅读性有重要作用。为了维护程序,人们必须阅读和理解程序文档。
一、名词解释
1.校正性维护
2.适应性维护 3.完善性维护
4.预防性维护
5.软件可维护性 6.软件维护的副作用
二、填空题
1.维护阶段是软件生存周期中时间最长的阶段,也是花费精力和费用________的阶段。2.在软件交付使用后,由于在软件开发过程中产生的错误没有完全彻底在开发阶段发现,必然有一部分隐含错误带到_________阶段。
3.采用手工方法开发软件只有程序而无文档,维护困难,这是一种___________维护。4.软件维护费用增加的主要原因是维护的_________非常低。5.软件维护工作的活动分为生产性活动和__________活动。
6.所有软件维护申请报告要按规定方式提出,该报告也称_________报告。
7.有两类维护技术:在开发阶段使用来减少错误,提高软件可维护性的面向维护技术;在维护阶段用来提高维护的效率和质量的_______技术。
三、选择题
1.在生存周期中,时间长、费用高、困难大的阶段是()。A.需求分析 B.编码 C.测试 D.维护 2.为适应软硬件环境变化而修改软件的过程是()。
A.校正性维护 B.适应性维护 C.完善性维护 D.预防性维护 3.软件维护困难的主要原因是()。
A.费用低 B.人员少 C.开发方法的缺陷 D.维护难 4.软件维护费用高的主要原因是()。
A.生产率高 B.生产率低 C.人员多 D.人员少 5.维护阶段的文档是()。
A.软件需求说明 B.操作手册 C.软件问题报告 D.测试分析报告 6.产生软件维护的副作用,是指()。
A.开发时的错误 B.隐含的错误 C.因修改软件而造成的错误 D.运行时误操作 7.维护中,因误删除一个标识符而引起的错误是()副作用。A.文档 B.数据 C.编码 D.设计 8.可维护性的特性中相互促进的是()。
A.可理解性和可测试性 B.效率和可移植性 C.效率和可修改性 D.效率和结构好 9.可维护性的特性中,相互矛盾的是()。
A.可修改性和可理解性
B.可测试性和可理解性 C.效率和可修改性 D.可理解性和可读性
四、简答题
1.软件维护有哪些类型? 2.软件维护的特点是什么? 3.软件维护的流程是什么? 4.软维护的副作用有哪些?
5.可维护性度量的质量特性有哪些? 6.提高可维护性有哪些方法? 参考答案
二、填空题
1.最多 2.维护 3.非结构化 4.生产率 5.非生产性 6.软件问题 7.维护支援
三、选择题
1.D 2.B 3.C 4.B 5.C 6.C 7.C 8.A 9.C
第五篇:软件工程与团队开发考核说明
《软件工程与团队开发》课程考核说明
本课程作为计算机应用专业的选修课程,考核以过程考核即软件开发过程为主,以实用、精简的项目题目作为团队开发的题目进行软件开发,并写出需求分析、总体设计和详细设计文档,以文档为依据进行考核。
题目:
• XXX班级通讯录
• XXX医院药房管理系统
• 小型图书馆图书管理系统
• 网上XXX(购物)系统**
• 在线考试系统**
• 火车车次查询及订票系统
• 学生成绩管理系统
• 高校教材购销系统
• XXX酒店预定系统
• XXX公司人事管理系统
要求:
1.对题目进行充分的分析,尽可能作需求调查。
2.按照软件工程的思想和方法进行工作。
3.对目标系统进行合理、正确地分析与设计,力求详细、全面,图表符合规范。
4.提交各阶段的文档,至少包括:需求分析说明书、概要设计说明书、详细设计说明书,作为文档上交。
5.可以分组进行,每小组一个题目,每组3-5人。
6.除上述题目外,小组可以自行提出题目及其内容,经老师审查后方可进行。
7.每个小组在每次作业上交时,确定小组内部分工,写入文档。
8.对于不认真做的,返回重做。
9.所有文档,按照规范来写。
10.所有文档必须在课程结束一周内上交。
11.18周交
考核:
由于本课程的理论和实践性都比较强,因此采用“考勤+开发文档”的方式。考勤占20%,3次项目开发报告(需求分析报告、总体设计报告、详细设计报告)占80%,其中需求分析报告占30%,总体设计报告25%,详细设计25%。
文档的考核主要检查文档内容的完整性、文档规范性、分析和设计的技术情况。