惠州学院软件工程作业SE1
惠州学院 软件工程导论 第二章__可行性研究 刘宇芳

第二章可行性研究一、可行性研究的任务可行性研究就是确定问题是否值得去解。
可行性研究工作是在初步的需求定义(澄清问题的定义)之后进行的,其的目的是用最小的代价在尽量短的时间内(总成本的5%~10%)确定该项目是否值得去解决,是否存在可行的解决方案。
对每一种可能的解决方案,就以下几个方面研究其可行性:(1)经济可行性:这个系统的经济效益能超过它的开发成本吗?估算项目的开发成本和系统投入使用后可能带来的利润,进行成本/效益分析,从经济角度判断系统开发是否“合算”。
(2)技术可行性:使用现有的技术能实现这个系统吗?根据客户提出的系统功能、性能要求,从开发者的技术实力、以往工作基础、问题的复杂性等出发,判断系统开发在时间、费用及其他各项约束条件限制下成功的可能性。
(3)运行、操作可行性:系统的操作方式在这个用户组织内行得通吗?主要研究系统的运行方式在用户单位是否可以被有效地实施,是否与原有其他系统相矛盾;系统的操作规程在用户单位内是否可行,它包括人事、科技政策、管理方法等等。
(4)法律可行性:系统的开发使用,在当国当地当时合法吗?研究系统的开发和使用是否会侵犯他人的权益,是否触犯了国家和地方的法律法规。
另外,可行性研究还要有开发方案的选择结论:如果问题没有可行的解,分析人员应建议停止该项目,以避免造成进一步的浪费;如果问题值得解决,则提出并评价实现系统的各种可行的开发方案,从中选择一种较好方案,并为系统制定一个初步的开发计划。
二、可行性研究的步骤1、复查初步分析结果,确定系统目标与规模,清晰地描述对系统的所有约束条件;P72、研究现有的系统,找出其基本功能和信息,指出其缺点或局限性(功能性能上的、经济上的);P93、借助某种图形工具导出新系统的高层(比较粗略的)逻辑模型,并与现有系统进行比较。
以后可以从这个逻辑模型出发设计新系统;P104、进一步定义问题。
可行性研究的前3个步骤实质上构成一个循环,目的是逐步改善逻辑模型。
2022年中央电大《软件工程》平时作业1、2、3、4次及答案

软件工程第1次作业一、填空题(每空2分,共20分)二、单项选取题(将一种对的答案代码填入括号中,每小题3分,共15分) 1.( )是顾客和设计互换最频繁办法。
A. 原型化办法B.瀑布模型办法C. 螺旋模型办法D. 构件组装模型办法2.下列哪个阶段不是软件生存期三个阶段中内容( )。
A. 筹划阶段B.开发阶段C. 编码阶段D. 维护阶段3.下列( )操作产生副作用属于数据副作用。
A. 修改子程序B.局部变量再定义C. 删除标记符D.修改对编辑条件测试4.软件测试目( )。
A. 避免软件开发中浮现错误B.发现软件开发中浮现错误C.尽量发现并排除软件中潜藏错误,提高软件可靠性D.修改软件中浮现错误5.完毕详细设计工具不涉及( )。
A.PAD图B.数据流图C.HlP()图D.程序流程图三、多项选取题(将一种以上对的答案代码填入括号中,每小题3 分,共15分) 1.应从( )等方面研究可行性。
A. 经济可行性B.技术可行性C. 运营可行性D.法律可行性2.对于下列数据流图局部,关于描述中对的是( )。
A. 该图为第一层数据流图3.需求分析阶段结束后,交出文档中应当涉及( )。
A. 数据流图B.数据字典C. 简要算法描述D.项目经费预算4.软件管理工作涉及到直接对象涉及( )。
A. 软件开发人员B.硬件设备C. 项目经费D.软件项目5.在软件设计中,( )耦合应尽量避免。
A. 控制B.数据C.内容 D. 标记四、判断题(对的在括号内打上“√”,错误打上“X”。
每小题2分,共10分)1。
软件危机是指在软件开发和维护过程中遇到一系列严重问题。
( )2,构造化分析办法就是用抽象模型概念,按照软件内部数据传递、变换关系,自顶向下逐级分解,直到找到满足功能规定所有可实现软件为止。
( )3.UML只能应用于软件系统模型建立。
( )4.程序设计语言中应绝对禁止使用GOTO语句。
( ) 5.模块越小,模块长处越大。
( )五、问答题(每小题10分,共20分)1.什么是软件?什么是软件工程?2.什么是编码风格?为什么要强调编码风格?六、分析题(共20分)依照下列N—S图,写出其相应伪码。
惠州学院软件工程作业SE2

软件工程导论第十三章作业3、下面叙述对一个计算机辅助设计(CAD)软件到需求:该CAD软件接受由工程师提供的二维或三维几何图形数据。
工程师通过用户界面与CAD系统交互交互并控制它,该用户界面应该表现出良好的人机界面特征。
几何图形数据及其他支持信息都保存在一个CAD数据库中。
开发必要的分析、设计模块,以产生所需要的输出,这些输出将显示在各种不同的图形设备上。
应该适当地设计软件,以便与外部设备交互并控制他们。
所用的外部设备包括鼠标、数字化扫描仪和激光打印机。
要求:(1)进一步精化上述要求,把CAD软件的功能分解成若干个子功能;(2)用代码行技术估算每个子功能的规模;(3)用功能点技术估算每个子功能的规模;(4)从历史数据得知,开发这类系统的平均生产率是620LOC/pm,如果软件工程师的平均月薪是8000元,试估算开发本系统的工作量和成本;(5)如果从历史数据得知,开发这类系统的平均生产率是6.5FP/pm,试估算开发本系统的工作量和成本。
答:(1)分解成以下若干个子功能:a、分析二维几何图形数据;b、分析三维几何图形数据;c、具有交互性、良好的用户界面;d、建立CAD数据库;e、必要的分析和设计模块;f、不同的图形设备显示输出数据;g、多样的外部设备。
(2)用代码行技术估算规模如下表所示:功能最小规模(a) 最大规模(b) 最可能规模(m) 估计值分析二维几何图形数据2500 3000 2800 2783 分析三维几何图形数据3500 4800 4500 4383 具有交互性、良好的用户界面2000 3000 2600 2567 建立CAD数据库1500 2200 2000 1950 必要的分析和设计模块7800 8500 8000 8050 不同的图形设备显示输出数据3200 3800 3500 3500 多样的外部设备1500 2300 2100 2033 估算出的总代码行数25267(3)用功能点技术估算规模如下表所示:信息域特性系数值信息域简单平均复杂特性系数功能点数(UFP) 输入项数a1 15 18 20 4 71输出项数a2 18 20 25 5 82查询数a3 15 16 18 3 65主文件数a4 5 5 6 11 21外部接口数a5 2 3 3 4 11总计250由上表可计算未调整的功能点数UFP:UFP=a1*Inp+a2*Out+a3*Inq+a4*Maf+a5*Inf = 291技术因素序号因素估计值1 数据通信02 分布式数据处理03 性能标准 24 高负荷的硬件 35 高处理率 36 联机数据输入07 终端用户效率 48 联机更新09 复杂的计算 510 可重用性 311 安装方便 212 操作方便 513 可移植性 214 可维护性 4DI 33由上面两个表可得出,技术复杂性因子TCF为:TCF=0.65+0.01*DI = 0.65+0.01*33 = 0.98则最终的功能点数FP为:FP = UFP*TCF = 285(4)用代码行估算,开发本系统的工作量E 为:E = 25267 / 620 = 41pm开发本系统的成本为:8000*39 = 312000元(5)用功能点估算,开发本系统的工作量E 为:E = 285 / 6.5 = 44pm开发本系统的成本为:8000*44 = 352000元4、假设自己被指定为项目负责人,任务是开发一个应用系统,该系统类似于自己的小组以前做过的那些系统,但是规模更大且更复杂一些。
大工软件工程课程大作业答案

大工软件工程课程大作业答案XXX的《软件工程》课程大作业要求完成一个企业货物管理系统。
本文将对该系统的总体设计说明书和需求分析规格书进行修改和改写。
总体设计说明书:该系统的运行环境包括硬件开发环境和软件开发环境。
硬件开发环境要求CPU为Intel Pentium 4 2.00GHz,内存为2G,硬盘为160G。
软件开发环境要求操作系统为XXX WindowsXP nal SP2,开发工具包为Java(TM) SE Development Kit 6,开发工具为MyEclipse Enterprise Workbench 5.5.1 GA,JSP服务器为Apache Tomcat 5.5.26,数据库为Microsoft SQL Server 2000并安装升级补丁,浏览器为XXX XXX 6.0以上。
系统功能模块包括管理人员的登录与注册模块、进货入库管理模块、退货管理模块、商品调价管理模块。
其中,登录模块用于实现用户的登录和注册,用户管理模块对系统所有的用户以列表形式浏览并能进行删除,部门管理模块对本企业的部门进行管理,有添加、删除、修改等管理,供应商管理模块对提供物资的企业或厂商信息进行添加、删除、修改,员工管理模块对企业的员工进行添加、删除、修改,进货合同管理模块对企业采购物品的合同进行添加、删除、修改管理,库房管理模块对企业库房进行管理,库存管理模块对所有库存中的物资以列表形式列出,可以对该信息进行修改和删除,退货管理模块对核查不合格的产品情况进行管理,核查管理模块对所采购的物资进行核查,合格进入库房,不合格列入退货列中,库存查询管理模块根据查询条件进行查询,查询条件可以是条形码、产品名称、产品类型、所在库房。
系统层次结构图展示了各个模块之间的关系,包括用户管理、部门管理、供应商管理、员工管理、进货合同管理、库房管理、库存管理、退货管理、核查管理和库存查询管理。
需求分析规格书:该系统的功能需求分析包括登录与注册、用户管理、部门管理、供应商管理、员工管理、进货合同管理、库房管理、库存管理、退货管理、核查管理和库存查询管理。
《软件工程》大题作业

精品资料附加题:1、对下列子程序进行调试:procedure example(y,z: real; var x: real)beginif(y>1) and (z=0) then x:=x/y;if(y=2) or(x=l) then x:=x+l;end.该子程序接受 x, y, z 的值,并将计算结果x的值返回给调用程序。
答题要求:(1)画出流程图。
(2)用白盒法设计测试用例,并写出它所满足的是何种覆盖标准、预期结果以及路径。
答:( 1 )流程图(2 )用白盒法中条件组合覆盖设计测试用例:①y=2, z=0, x=4;②y=2, z=1, x=1;③y=1, z=0, x=2;④y=1, z=1, x=1.2 、某报表处理系统要求用户输入处理报表的日期,日期限制在2003年1月至2008年12月,即系统只能对该段期间内的报表进行处理,如日期不在此范围内,则显示输入错误信息。
系统日期规定由年、月的 6 位数字字符组成,前四位代表年,后两位代表月。
现要求用黑盒测试法中的边界值法写出测试用例。
答:输入条件测试用例说明测试数据报表日期的 1 个数字字符5类型及长度 5 个数字字符200357 个数字字符2003005有 1 个非数字字符2003.5全部是非数字字符MAY---6 个数字字符200305日期范围在有效范围200301边界上选取200812数据200300精品资料200813月份范围月份为 1月200301月份为 12 月200312月份 <1200300月份 >122003133、对以下程序进行测试:PROCEDURE EX (A,B:REAL ;VAR X: REAL );BEGINIF( A=3 )OR (B> 1 ) THEN X :=A ×BIF ( A>2 ) AND ( B=0 ) THEN X :=A -3END先画出程序流程图。
再按不同逻辑覆盖法设计一种(写出名称)测试数据。
惠州学院 软件工程导论 第六章__详细设计 刘宇芳老师概要

第六章详细设计一、详细设计概述1、目的:为软件系统的H图/SC图中的每一个模块确定采用的算法(处理流程)和模块内数据结构,用某种选定的表达工具给出清晰的描述。
2、任务:用一定的工具精确描述目标系统,从而方便在编码阶段可以把这种描述直接翻译成用某种程序设计语言书写的程序。
(1) 确定每一模块的算法(处理流程)(2) 确定每一模块使用的数据结构(3) 确定本模块的外部接口和用户界面(4) 为每一模块设计一组测试用例(单元测试计划)详细设计阶段的任务还不是具体地编写程序,而是要设计出程序的“蓝图”,以后程序员将根据这个蓝图写出实际的程序代码。
因此,详细设计的结果基本上决定了最终的程序代码的质量。
考虑程序代码的质量时必须注意,程序的“读者”有两个,那就是计算机和人。
详细设计不仅要逻辑上正确地实现每个模块的功能,更重要的是设计出的处理过程容易阅读和理解。
二、结构化程序设计1、什么是结构化程序设计(1) 如果一个程序的代码块仅仅通过顺序、选择和循环这3种基本控制结构进行连接,并且每个代码块是单入口、单出口的,则称这个程序是结构化的。
(2) 结构化程序设计是尽可能少用GO TO语句的程序设计方法。
最好仅在检测出错误时才使用GO TO语句,而且应该总是使用前向GO TO 语句。
(3) 如果允许使用LEAVE(或BREAK)结构,则不仅方便而且会使效率提高很多。
LEAVE或BREAK结构实质上是受限制的GO TO 语句,用于转移到循环结构外面的语句。
(4) 如果只允许使用顺序、IF-THEN-ELSE型分支和DO-WHILE型循环这3种基本控制结构,P5,则称为经典的结构程序设计;如果除了上述3种基本控制结构之外,还允许使用DO-CASE型多分支结构和DO-UNTIL 型循环结构,则称为扩展的结构程序设计;如果再加上允许使用LEAVE(或BREAK)结构,则称为修正的结构化程序设计。
2、结构化程序设计中基本的控制流程三、人机界面的设计1、重要性人机界面设计是接口设计的一个重要的组成部分。
软件工程学第一次作业—答案中山大学

软件工程学第一次作业一、简答题1、需求分析的任务答:需求分析的任务主要包括以下几项:确定目标系统的综合要求,其中包括(目标系统的功能、性能、运行的环境及扩展性要求);分析目标系统的数据要求,其中包括(系统平台需要哪些数据?数据间有什么关系?数据及数据结构?对数据的处理逻辑关系等);导出目标系统的逻辑模型;修正系统流程图;修正系统开发计划、开发原型系统2、软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题,具体表现在哪些方面?答:1、无法开发复杂程度高的软件2、成本和进度估计不准3、无统一科学的规范,软件不可维护4、无质量保证,可靠性差5、软件常不能满足用户的需求6、无适当的文档资料7、软件生产率太低二、选择题1、从下列关于结构化程序设计的叙述中选出5条正确的叙述。
①程序设计比较方便,但比较难以维护。
②便于由多个人分工编制大型程序。
③软件的功能便于扩充。
④程序易于理解,也便于排错。
⑤在主存储器能够容纳得下的前提下,应使模块尽可能大,以便减少模块的个数。
⑥模块之间的接口叫做数据文件。
⑦只要模块之间的接口关系不变,各模块内部实现细节的修改将不会影响别的模块。
⑧模块间的单向调用关系叫做模块的层次结构。
⑨模块越小,模块化的优点越明显。
一般来说,模块的大小都在10行以下。
答:正确的叙述有②、③、④、⑦、⑧。
如果程序结构的模块化满足评价的标准(高内聚、低耦合),这样的结构是容易维护的,程序的功能也容易测试,容易理解、容易修改、容易维护的,程序的功能也容易扩充。
特别适合于大型程序编制时,多人分工全中作,协同完成任务的情形。
因为是采用自顶向下、逐层分解来划分解模块结构的,所以模块之间的调用关系是分层次的模块结构,就叫做模块的层次结构。
模块之间的信息传递叫做模块的接口,模块之间传递信息可以通过参数表、全局变量或全局数据结构、数据文件、专门模块太大,控制路径数目多、涉及的范围广、变量的数目多、总体复杂性高,可理解性、可修改性、可靠性就会变差。
软件工程大作业+暑期软件工程课程设计模板1.

《题 目:线性表的设计和实现专业年级: 2014级计算科学与技术专业 指导教师: 李四年 月 日中国石油大学胜利学院《软件工程》课程大作业摘 要数据结构算法设计和演示(C++)树和查找是在面向对象思想和技术的指导下,采用面向对象的编程语言(C++)和面向对象的编程工具(Borland C++ Builder 6.0)开发出来的小型应用程序。
它的功能主要是将数据结构中链表、栈、队列、树、查找、图和排序部分的典型算法和数据结构用面向对象的方法封装成类,并通过类的对外接口和对象之间的消息传递来实现这些算法,同时利用C++ Builder 6.0中丰富的控件资源中帮助理解、辅助教学和自我学习的作用。
关键词:毕业设计;格式;规范ABSTRACTXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxKeywords :Xxxx;Xxxx;Xxxx目 录错误!未定义书签。
2.2.2 三级标题名 .................................................................. 错误!未定义书签。
2.3 线性链表 ................................................................................................................... 3 第三章 设计的主体内容 (3)3.1 系统结构的设计 ....................................................................................................... 5 3.2 交互界面的设计和实现 ........................................................................................... 5 3.3 线性表的00P 序设计 ............................................................. 错误!未定义书签。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件工程导论第一章作业
1、什么是软件危机?它有那些典型表现?为什么会出现软件危机?
答:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
具体的说,软件危机主要有以下一些典型表现:
1)对软件开发成本和进度的估计常常很不准确。
2)用户对“已完成的”软件系统不满意的现象经常发生。
3)软件产品的质量往往靠不住。
4)软件常常是不可维护的。
5)软件通常没有适当的文档资料。
6)软件成本在计算机系统总成本中所占的比例逐年上升。
7)软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。
出现软件危机的原因,一方面与软件本身的特点有关,另一方面也和软件开发与维护的方法不正确有关。
3、什么是软件工程?它有哪些本质特性?怎样用软件工程消除软件危机?
答:采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。
软件工程具有下述的本质特性:
1)软件工程关注于大型程序的构造。
2)软件工程的中心课题是控制复杂性。
3)软件经常变化
4)开发软件的效率非常重要。
5)和谐地合作是开发软件的关键。
6)软件必须有效地支持它的用户。
7)在软件工程领域中通常由具有一种文化背景的人替另一种文化背景的人创造产品。
用下述软件工程的7条基本原理来消除软件危机:
1)用分阶段的生命周期计划严格管理。
2)坚持进行阶段评审。
3)实行严格的产品控制。
4)采用现代程序设计技术。
5)结果应能清楚地审查。
6)开发小组的人员应该少而精。
7)承认不断改进软件工程实践的必要性。
4、简述结构化范型和面向对象范型的要点,并分析它们的优缺点。
答:1)结构化范型也称为传统方法学或生命周期方法学。
它采用结构化技术(结构化分析、结构化设计和结构化实现)来完成软件开发的各项任务,并使用适当的软件工具或软件工程环境来支持结构化技术的运用。
这种方法学把软件生命周期的全过程依次划分为若干个阶段,然后顺序地完成每个阶段的任务。
采用这种方法学开发软件的时候,从对问题的抽象逻辑分析开始,一个阶段一个阶段地顺序进行开发。
每一个阶段的开始和结束都有严格标准,在每一个阶段结束之前都必须进行正式严格的技术审查和管理复审。
审查的一条主要标准就是每个阶段都应该交出“最新式的”(即和所开发的软件完全一致的)高质量的文档资料,从而保证在软件开发工程结束时有一个完整准确的软件配置交付使用。
优点:把软件生命周期划分成若干个阶段,每个阶段的任务相对独立,而且比较简单,便于不同人员分工协作,从而降低了整个软件开发工程的困难程度;使软件开发工程的全过程以一种有条不紊的方式进行,保证了软件的质量,特别是提高了软件的可维护性。
缺点:当软件规模庞大时,或者对软件的需求是模糊的或会承受时间而变化的时候,开发出来的软件往往不成功;而且维护起来仍然很困难。
2)概括地说,面向对象方法学具有下述4个要点:
A把对象(object)作为融合了数据及在数据上的操作行为的统一的软件构件。
也就是说,用对象分解取代了传统的功能分解。
B把所有对象都划分成类(class)。
C按照父类(或称为基类)与子类(或称为派生类)的关系,把若干个相关类组成一个层次结构的系统(也称为类等级)。
D对象彼此间仅能通过发送消息互相联系。
优点:面向对象方法保证了在各项开发活动之间的平滑过渡;面向对象方法普遍进行的对象分类过程,支持从特殊到一般的归纳思维过程;支持从一般到特殊的演绎思维过程;降低了软件产品的复杂性,提高了软件的可理解性,简化了软件的开发和维护工作;促进了软件重用。
7、什么是软件生命周期模型?试比较瀑布模型、快速原型模型、增量模型和螺旋模型的优缺点,说明每种某型的适用范围。
答:生命周期规定了把生命周期划分成哪些阶段及各个阶段的执行顺序,也称为过程模型。
1)瀑布模型
优点:可强迫开发人员采用规范的方法;严格地规定了每个阶段必须提交的文档;
要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。
缺点:瀑布模型是由文档驱动的。
2)快速原型模型
优点:软件产品的开发基本上是线性顺序进行的。
缺点:可能需要返回到需求分析、规格说明、设计或编码等不同阶段。
3)增量模型
优点:能在较短时间内向用户提交可完成部分工作的产品;逐步增加产品功能可以使用户有较充裕的时间学习和适应新产品,从而减少一个全新的软件可能给客户组织带来的冲击。
缺点:在把每个新的增量构件集成到现有软件体系结构中时,必须不破坏原来已经开发出的产品;增量模型本身是自相矛盾的。
4)螺旋模型
优点:对可选方案和约束条件的强调有利于已有软件的重用,也有助于软件质量作为软件开发的一个重要目标;减少了过多测试(浪费资金)或测试不足(产品故障多)所带来的风险;更重要的是,在螺旋模型中维护只是模型的另一个周期,在维护和开发之间并没有本质区别。
缺点:除非软件开发人员具有丰富的风险评估经验和这方面的专门知识,否则将出现真正的风险。