《电子商务软件工程》实验指导书V20Word文件下载.docx
《《电子商务软件工程》实验指导书V20Word文件下载.docx》由会员分享,可在线阅读,更多相关《《电子商务软件工程》实验指导书V20Word文件下载.docx(46页珍藏版)》请在冰豆网上搜索。
六、实验中的注意事项
把握思考的主线,注意思想性的内容大于操作本身。
学会操作,只是为今后进行构思、分析提供方便。
七、实验思考题
1.VISIO的操作有何特点,对于流程图绘制有何优势?
2.相对于VISIO而言,PowerDesigner有何特点?
八、实验报告的基本要求
1.基本要求:
注明实验时间、实验地点、实验课程、实验班级、姓名、学号
2.扩展要求:
写出实验内容,包括:
操作步骤、实验记录、实验结论。
实验二可行性研究与需求分析方法验证
1.实验目的
通过可行性研究与需求分析过程,掌握的相关方法。
2.实验内容要求
真正掌握可行性研究的方法与需求分析过程的方法,了解每一过程步骤。
3.实验类型
1.可行性研究
(1)思考:
用户面临的问题究竟是什么?
用户为什么要有这种需求,真实的意思是什么?
将你理解的用户的问题写下来。
[例1]某校财务科长要求系统分析员研究一下用学校自己的微型计算机生成工资明细表和各种财务报表的可能性。
继续前面的例子,从何处着手解决财务科长提出的问题呢?
由于用户并没有要求实现工资支付系统,而是研究这样做的可能性。
因此,首先需要明确的是,这样做值得吗?
财务科长为什么想研究在自己的计算机上实现工资支付系统的可能性呢?
(2)了解真实需求
将你了解到的用户的真实需求写下来。
通过询问财务科长后得知,该校一直由会计人工计算工资并编制财务报表,随着学校规模扩大工作量也越来越大。
目前,每个月都需要两名会计紧张工作半个月才能完成,不仅效率低而且成本高。
随着学校规模的进一步扩大,人工计算工资的工作量还会加大。
(3)定义目标
通过前述的分析定义用户的目标。
因此,目标是寻找一种比较便宜的生成工资明细表和各种财务报表的办法,并不一定要在学校自己的计算机上实现工资支付系统。
(4)确定预期项目规模
根据前述定义的目标,参考下例确定预期项目规模。
为了改进工资支付系统最多可以花多少钱?
虽然没人明确提出来,但是肯定会有某个限度。
应该考虑下述3个基本数字:
①目前计算工资所花费的成本
②新系统的开发成本
③新系统的运行费用
新系统的运行费用必须低于目前的成本,而且节省的费用应该能使学校在一个合理的期限内收回开发新系统时的投资。
①新系统获得效益
目前,每个月由两名会计用半个月时间计算工资和编制报表,一名会计每个月的工资和津贴约2000元,因此,每年为此项工作花费的人工费约2.4万元。
显然,任何新系统的运行费用也不可能减少到小于零,因此,新系统每年最多可能获得的经济效益是2.4万元。
②投资额上限
为了能够每年节省2.4万元,投资多少钱是可以接受的呢?
绝大多数单位都希望在3年内收回投资,因此,7.2万元可能是投资额的一个合理的上限值。
(5)形成文档
根据前述资料,形成基本文档。
2.可行性研究工具
(1)系统流程图
参见教材。
主要用于描述较复杂的系统状况,一般用于软件技术人员了解情况。
(2)业务流程图
可以适用于软件技术人员、用户。
相对来讲,业务流程图更简单、高效、易于理解和沟通。
3.需求分析
软件需求的目标
深入描述软件的功能和性能要求,确定软件设计的约束和软件同其他系统元素的接口细节,定义其他有效性需求。
(1)描述用户的需求
(2)为软件设计工作奠定基础
(3)定义一组需求,一旦开发出软件产品之后,就可以用这组需求为标准来验收该产品
需求分析阶段的任务有:
(1)确定目标系统的具体要求
1~确定系统的运行环境
2~系统的性能要求
3~系统的功能要求
4~系统的其他需求(安全、可靠性、界面、资源使用、进度、双方认可的界定规则等)
(2)分析系统的数据要求
即细化数据流图
(3)建立目标系统逻辑模型
数据流图、数据字典(简单)、关键算法描述
(4)修正系统开发计划
(5)建立原型系统
视情况不一定需要。
(6)编写软件需求规格说明书并评审
主要是通过分组讨论分析的方法,并使用字处理软件记录分析结果。
由教师演示方法,并提供相关参考资料;
并根据教师要求,进行相关的综合实验。
1.可行性研究步骤
(1)确定系统的规模和目标
根据问题定义阶段获得的总体目标,进一步分析和研究有关材料,确认目标的正确性。
[例]为了确保从一个正确的出发点着手进行可行性研究,首先通过访问财务科长和校长进一步验证上一阶段写出的“关于工资支付系统规模和目标的报告书”的正确性。
通过访问,分析员对人工计算工资存在的弊端有了更具体的认识,并且了解到工资总数应该记入分类日记帐。
显然,新工资支付系统不能忽略与分类日记帐系统的联系(这个新发现的需求,是一个以前没有暴露出来的隐含需要,要引起系统分析人员足够的重视)。
(2)分析(研究)现有系统,画出大致的系统业务流程图
在开发新系统之前,需要了解现有的业务流程和系统,一般通过阅读现有系统的各种资料和手册、实地考察等。
主要工作有:
①了解现有系统能够完成什么工作、为什么要这样做,并了解和分析现有系统的运行费用等情况,确定新系统的约束条件。
②画出现有系统的高层(初略)的系统流程图或业务流程图。
[例]注意:
图中的“工资支付系统”矩形是指这个系统的处理,这里暂不将它打开,它是一个黑盒,里面的处理过程应该在分析过程中打开、细化。
(3)打开高层业务流程图中的“处理”事务黑盒
细化业务处理过程,并画出细化的业务流程图。
[例]经过反复询问财务人员,可以知道现有的人工系统计算工资和编制报表的流程如下:
接到课时表和任务表之后,首先审核这些数据,然后把审核后的数据按教职工编号排序并抄到专用的表格上,该表格预先印有教职工编号、姓名、职务、职称、基本工资、生活补贴、书报费、交通费、洗理费等数据。
接下来,根据当月课时数或完成承包任务情况,计算课时费或岗位津贴。
算出每个人的工资总额之后,再计算应该扣除的个人所得税,应交纳的住房公积金和保险费,最后算出每个人当月的实发工资数。
把算出的上述各项数据登记到前述的专用表格上,就得到了工资明细表。
然后对数据进行汇总,编制出各种财务报表,而工资表不过是简化的工资明细表,它只包含有工资明细表中的教职工编号、姓名和实发工资这三个项目。
(4)导出高层逻辑模型
一般情况下,需要在此时就导出软件模型;
有时,这项工作也会留到需求分析、甚至总体设计中完成。
删除前一幅图中的有关具体实现方法的信息,用“事务数据”代表课时表和任务表中包含的数据;
用“加工事务数据”笼统地代表计算课时费、工资总额、个人所得税等一系列功能。
在可行性研究阶段还没有必要考虑“加工事务数据”的具体算法,因此没必要它分解成一系列更具体的数据处理功能。
这样,就得出了顶层“数据流图(DataFlowDiagram,DFD)”。
(5)进一步确定系统规模和目标,评审系统模型
在导出数据流图之后,系统分析员可以与用户进一步进行研讨、复审,不断修改系统流程图、业务流程图和数据流图,直到系统分析员提出的系统模型全部能满足用户的要求。
(6)导出供选择的解法,制定行动方案。
①技术可行性
从开发方的资源、技术等条件进行分析,从软件开发技术发展的大环境以及技术合作对象等方面考虑技术是否可行。
如果可能,提供以成功开发的项目的相关资料,进一步佐证开发项目的技术可行性。
②操作可行性
例如,在对外开放的公共计算机房内运行工资支付程序显然是不合适的;
对于需要保密、且没必要在互联网上交互数据的系统,可以考虑使用单机或局域网,在相对封闭的环境中。
③经济可行性
主要是回答“效益是否大于成本”的问题。
为了给客户提供在一定范围内进行选择的余地,分析员应该至少提供3种类型的供选择方案:
低成本方案、中等成本方案、高成本方案。
1~低成本方案
如果把每月发一次工资改为两个月发一次工资,则人工计算工资的成本大约可减少一半,即每年可节省1.2万元。
除了已经进行的可行性研究的费用外,不再需要新的投资。
这是一个很诱人的低成本方案。
缺点:
违反常规;
教职工反对;
没有解决根本问题。
随着规模扩大,问题仍然存在。
2~中等成本方案
建议基本复用现有系统的功能:
课时表和任务表交到处理工资事务的专用机房,操作员把这些数据通过终端输入计算机,数据收集程序接收并校核这些事务数据,把它们存储在磁盘上。
然后运行工资支付程序,它从磁盘中读取事务数据,计算工资,打印工资表、工资明细表和财务报表。
----------------------
开发成本:
人力(4人月.8000元/人月)计3.2万元
购买硬件计1万元
小计4.2万元
新系统运行费用:
人力和物资消耗(250元/月)计0.3万元/年
维护计0.1万元/年
小计0.4万元/年
现有系统运行费用:
2.4万元/年
每年节省的费用:
2.0万元/年
根据公式:
P=F/(1+i)n
例:
第1年现在值=20000/(1+0.05)1=19047.62
第2年现在值=20000/(1+0.05)2=18140.59
第3年现在值=20000/(1+0.05)3=17276.75
投资回收期=54464.96/24000≈2.27(年)
纯收入=第3年累计现在值-开发成本小计
=54464.96-42000
=12464.96(元)
3~高成本方案
建立一个中央数据库,为开发完整的管理信息系统做好准备,并且把工资支付系统作为该系统的第一个子系统。
这样人寿开发成本大约将增加到12万元,然而从工资支付这项应用中获得的经济效益并不变。
④确定最佳方案
根据与客户的交流,最终确定为中等成本方案最为实际。
(7)拟定开发计划
除了前述估计的成本外,还需要进一步细化成本。
另外,需要估计完工周期与进度,将系统按生命周期划分为各个阶段。
可行性研究0.5月
需求分析1.0月
概要设计0.5月
详细设计1.0月
系统实现2.0月
总计5.0月
(8)编制可行性报告
(教材P21)
2.需求分析
(1)沿数据流图回溯
[例]从数据终点“教师”和“职工”开始分析,流入他们的数据存储是“工资明细表”,根据了解,“工资明细表”包括如下内容:
教职工代号、教职姓名、基本工资、职务、职称、生活补贴、书报费、交通费、课时费、岗位津贴、工资总额、个人所得税、住房公积金、医疗保险费、实发工资
“工资明细表”的来源是:
一些是系统自己计算生成的,一些来源于“事务数据”。
分析员需要明确每个数据元素的来源,无论是计算生成还是直接复制,都要清晰明了。
例如,“工资总额”的来源不是直接输入得来的,往前回溯,有一个处理框“加工事务数据”,那么就是这个地方计算生成的。
所以,需要确定相关的算法,以便更准确地定义这个处理框的功能。
(注意,只是关键算法,对于一些更复杂的系统,这里不一定要非常清楚,只是一个计算的原理就行了,具体的复杂算法可以留到软件设计中完成;
需求分析中多用黑盒型的IPO表来初步确定。
)
其次,如“个人所得税”、“住房公积金”的计算方法,同样需要细分清楚。
(2)写出文档初稿
文档是主要的沟通工具,要求一致性和容易理解、不产生歧义。
结构化分析方法,要求在需求分析阶段完成的正式文档(软件需求规格说明书)中必须包含三个重要成分:
数据流图、数据定义(卡片式)、以及一组黑盒形式的算法描述。
1~数据流定义
-------------------------------------------------
数据流编号:
数据流名:
数据流别名:
数据流组成:
数据流来源:
实体或处理或数据存储
数据流去向:
简要说明:
2~数据存储的定义
数据存储编号:
D3
数据存储名字:
工资明细表
数据存储别名:
明细表
数据存储组成:
教职工代号、教职姓名、基本工资、职务、职称、生活补贴、书报费、交通费、课时费、岗位津贴、工资总额、个人所得税、住房公积金、医疗保险费、实发工资
由谁建立修改:
3.5印表格
由谁使用读取:
4分发工资明细表
略。
-----------------------------------------------
为便于管理,通常可以将数据字典用WORD列表填制。
3~数据项定义
------------------------------------------------
数据项编号:
D3-7
数据项名字:
工资总额
数据项别名:
总工资
数据项描述:
扣除个税、公积金和保险费之前一个教职工的月工资
类型及宽度:
数值(7,2):
9999.99
所属表名:
D3工资明细表
有些时候,数据项的定义将安置于软件设计阶段完成。
4~加工逻辑定义:
IPO表记录算法初步描述
通常使用IPO表,以黑盒方式记录算法。
所谓黑盒就是不考虑一个功能的具体实现方法,只把它看作给予输入之后就能够产生一定输出的盒子。
早期开发阶段使用这种方法的目的在于用原理性算法准确地定义功能,算法的细节可以在以后设计阶段再确定。
(3)定义逻辑系统
虽然有了上述的IPO图,但正确性、关联性还需要进一步确认。
[例]通过再次访问财务科长和具体处理工资事务的两名会计,沿数据流图的数据源点开始循序讨论。
在讨论到“加工事务数据”这个处理时,前一步骤描述了计算工资总额的算法,并且知道了基本工资、生活补贴、书报费、交通费等数据应该存储起来。
那么,它们到底存储在哪个数据存储中呢?
会计说,这些数据属于人事数据。
不过,前面的数据流图中并没有一个数据存储保存人事数据,显然,需要进一步修改数据流图,补充相关数据存储。
经进一步询问,人事数据来源于人事科,因此需要增加一个新的处理--------人事数据存储。
(4)细化数据流图
随着分析人员认识的深入,原有的数据流图已经显得很粗略,需要进一步细化。
(5)状态图
有些时候,描述系统的行为也很重要,状态图就是一个很好的表达工具。
比如“是否已将数据成功传输”、“是否已登帐”就是一个状态。
下面看一个电话系统的状态图:
(6)书写正式文档
根据前述的工作,目标系统定义已经越来越准确,最终可以将这些认识写成《软件需求规格说明书》。
教材P39~40
除了教材的大纲框架,这里还另外介绍一种软件需求规格说明框架:
分组进行实验,记录在实验过程中的文档及其变化,并最终形成要求的文档(《可行性分析报告》、《需求规格说明书》)。
注意认真分析已知条件,以求得最终结果的正确。
1.如何进行可行性研究与需求分析,它们之间有什么工作上的差别?
2.你认为所有的步骤都必不可省略吗,你认为哪些特别重要,为什么?
实验三自拟管理系统设计
通过综合运用软件设计方法,在实例中掌握软件的设计要求、步骤与过程。
明了软件设计的重要性,并且通过软件设计后形成的设计报告能够对软件编程工作具有实际性的指导作用。
通过相关的项目综合完成一个信息系统的概要设计、详细设计,完成时提交:
概要设计报告及其相关步骤记录(设计报告要充分使用已学到的方法)
详细设计报告及其相关步骤记录(设计报告要充分使用已学到的方法)
设计
本实验涉及到业务流程图、程序流程图、PDL、PAD图、盒图等多种设计工具;
针对用户的业务流程涉及到数据流图、数据字典、ER图等功能图形的绘制。
1.逐步求精
(1)逐步求精的定义:
逐步求精就是为了能够集中精力解决主要问题,而尽量推迟对问题细节的考虑。
(2)逐步求精产生的原因:
Miller法则:
一个人在任何时候都只能把注意力集中在7±
2个知识块上。
Miller法则是人类智力的基本局限,为了能够解决局限与软件复杂性之间的矛盾,NiklausWirth提出了一种自顶向下的设计策略。
(3)逐步求精过程
求精的过程就是将每一阶段的软件解法逐步细化。
系统结构顶层模块控制了系统的主要功能,而底层模块完成具体的处理。
通过逐步求精的过程,在软件设计中简化了软件的设计和实现,提高了软件的可理解性和可测试性、可维护性。
2程序结构与模块化
(1)程序结构的概述:
按水平方向或垂直方向进行划分。
水平划分其下级模块建立3个分支:
输入、处理、输出。
垂直划分(因子划分),顶层模块实行控制、低层模块具体执行。
(2)模块化的概述:
在计算机语言中,通常都有种类语言模块
如 Delphi的:
Begin…End
C语言的:
{…}
以及各种函数、类中方法等,都是模块。
(3)模块化的标准
1~模块的可分解性:
有助于降低整个问题的复杂性
2~模块可组装性:
可重用构件组装新系统,提高效率与稳定性
3~模块可理解性:
单个的模块易于理解和分析、修改
4~模块连续性:
如果对系统需求的修改只涉及个别模块,则对修改的副作用最小。
5~模块保护性:
如果一个模块内出现异常,它的影响局限在该模块内部,则由错误引起的副作用最小。
[模块化的实例]一个函数的注释部份
/*===========================*/
//函数名:
gf_dw2excel
//作用范围:
public
//描述:
将数据窗口的数据传递至EXCEL表格中
//入口参数:
//[value]datawindowadw_data需要保存的数据窗口
//[value]stringas_reptitle表格标题
//返回值:
LONG
//作者:
xiaolihua日期:
2003-05-20
//修改:
DoItNow日期:
2003.06.06
/*============================*/
3.抽象
(1)抽象的概述
在现实世界中一定的事务、状态或过程之间总存在着某些相似的方向(共性),将这些相似的方面集中和概括起来,暂时忽略它们之间的差异,这就是抽象。
(2)抽象的层次
考虑任何问题的模块化解法时,都可以提出许多抽象的层次:
在抽象的最高层次使用概括方式叙述问题的解法(如业务流图、IPO表等);
在抽象的较低层次使用更过程化的方法,面向问题和面向实现来叙述问题的解法(数据字典、数据流图等);
在抽象的最低层次用可以直接实现的方法来叙述问题的解法(编程)。
(3)抽象的内容
1~过程抽象:
在软件计划阶段,将整个系统当作一个简化的整体元素来看待;
在需求分析阶段,用问题所处环境的术语来描述软件的解决方法;
在软件设计阶段,从概要设计到详细设计,抽象层次逐步降低;
在软件实现阶段,最低抽象层次。
2~数据抽象
数据存储--à
详细数据字典
3~控制抽象
例如“卸载XX软件”,通过一个动作控制多个操作(查看安装日志、删除文件、修改注册表……等),每一个操作又可以用更具体的控制抽象来描述。
4.数据结构
(1)数据结构的定义
数据结构是数据的各个元素之间的逻辑关系的一种表示。
数据结构设计应确定数据的组织、存取方式、相关程度以及信息的不同处理方法。
(2)数据结构的常见类型:
1~标量:
单个的数据元素
longll_ss
Stringstr_cc
2~数组:
多个标量项组织成一个表或顺序邻接的一组。
DIMAA[3,2]
AA[0,0]=1
AA[2,1]=5
………………………………
3~链表
把不相邻的标