📄 数据流图(dfd)专题讲解[2]_爱我中华,从我做起.htm
字号:
try{
var ed=editor.window.document.body;
ed.innerHTML="";
editor.window.focus();
}catch(e){
var cmt=cmtForm.getElementsByTagName("textarea")[0];
cmt.value="";
cmt.focus();
}
G("cancleReLink").style.display="none";
cmtForm.btn_ok.value="发表评论";
}
function gotoreply()
{//to checking whether reply cmt
if( window.location.hash.indexOf("&re=1")<0) return;
var cmtID=window.location.hash.split("&")[0].replace("#","");
var cmtlinks=document.getElementsByTagName("a");
for(var i=0,n=cmtlinks.length;i<n;i++)
{
if(cmtlinks[i].name==cmtID){ var rename=cmtlinks[i].getAttribute("rename"); repid=cmtlinks[i].getAttribute("repid"); break;}
}
if(typeof(rename)!="undefined"){
cmtreply(rename, repid);
}
}
//-->
</SCRIPT>
<SCRIPT type=text/javascript>
/*<![CDATA[*/
window.onerror=function(){return true;}
var RelatedDocData = null, GetAndEval = false;
(function(){
var xhr = BdAjax.getXHR();
if(xhr == null){
RelatedDocData = -1;
return;
}
xhr.open("GET", "/sys/search?type=8&word=%CA%FD%BE%DD%C1%F7%CD%BC%28DFD%29%D7%A8%CC%E2%BD%B2%BD%E2%5B2%5D&item=c9390582c2d299a50cf4d21e&t=" + new Date().getTime(), true);
xhr.onreadystatechange = function(){
if(xhr.readyState == 4){
if(xhr.status == 0 || xhr.status == 200){
if(GetAndEval){
eval(xhr.responseText);
}else{
RelatedDocData = xhr.responseText;
}
}
}
}
xhr.send(null);
})();
/*]]>*/
</SCRIPT>
<META content="MSHTML 6.00.2900.5512" name=GENERATOR></HEAD>
<BODY onload=formatonlinpic();>
<CENTER>
<SCRIPT type=text/javascript>/*<![CDATA[*/if(top.location != self.location){ top.location = self.location;}var myref = encodeURIComponent("http://hi.baidu.com/jackwilling/blog/item/c9390582c2d299a50cf4d21e%2Ehtml");/*]]>*/</SCRIPT>
<LINK href="数据流图(DFD)专题讲解[2]_爱我中华,从我做起.files/mods.css" type=text/css
rel=stylesheet><LINK
href="数据流图(DFD)专题讲解[2]_爱我中华,从我做起.files/b9590a4e2461e909b3de0523.css"
type=text/css rel=stylesheet><LINK
href="数据流图(DFD)专题讲解[2]_爱我中华,从我做起.files/space.css" type=text/css rel=stylesheet>
<STYLE type=text/css>#usrbar {
PADDING-RIGHT: 10px; PADDING-LEFT: 0px; FONT-SIZE: 12px; BACKGROUND: #ffffff; FILTER: alpha(opacity=65); PADDING-BOTTOM: 3px; WIDTH: 100%; COLOR: #000000; LINE-HEIGHT: 19px; PADDING-TOP: 4px; FONT-FAMILY: Arial; LETTER-SPACING: normal; HEIGHT: 19px; TEXT-ALIGN: right; moz-opacity: 0.5
}
#usrbar A {
COLOR: #0000cc; TEXT-DECORATION: underline
}
#usrbar A:link {
COLOR: #0000cc; TEXT-DECORATION: underline
}
#usrbar A:visited {
COLOR: #0000cc; TEXT-DECORATION: underline
}
#ft {
CLEAR: both; FONT-SIZE: 12px; COLOR: #666666; LINE-HEIGHT: 20px; FONT-FAMILY: Arial; HEIGHT: 20px; TEXT-ALIGN: center
}
#ft A {
COLOR: #7777cc; TEXT-DECORATION: underline
}
#ft A:link {
COLOR: #7777cc; TEXT-DECORATION: underline
}
#ft A:visited {
COLOR: #7777cc; TEXT-DECORATION: underline
}
#usrbar {
LETTER-SPACING: normal
}
#usrbar A {
LETTER-SPACING: normal
}
#usrbar A:link {
LETTER-SPACING: normal
}
#usrbar A:visited {
LETTER-SPACING: normal
}
#ft {
LETTER-SPACING: normal
}
#ft A {
LETTER-SPACING: normal
}
#ft A:link {
LETTER-SPACING: normal
}
#ft A:visited {
LETTER-SPACING: normal
}
</STYLE>
<DIV id=usrbar><NOBR><A id=hi_index href="http://hi.baidu.com/"
target=_blank>百度空间</A> | <A href="http://www.baidu.com/"
target=_blank>百度首页</A>
<SCRIPT type=text/javascript> document.write('| <a href="https://passport.baidu.com/?login&tpl=sp&tpl_reg=sp&u=http://hi.baidu.com' + encodeURIComponent('/jackwilling/blog/item/c9390582c2d299a50cf4d21e%2Ehtml') + '">登录</a>'); </SCRIPT>
</NOBR></DIV>
<DIV id=newUserTip
style="Z-INDEX: 30000; RIGHT: 0px; FLOAT: right; WIDTH: 225px; POSITION: absolute; TOP: 26px; HEIGHT: 130px; TEXT-ALIGN: right"><A
id=newUserTipShadow
style="DISPLAY: block; FONT-SIZE: 14px; Z-INDEX: 30001; RIGHT: 14px; BACKGROUND: none transparent scroll repeat 0% 0%; OVERFLOW: hidden; WIDTH: 55px; COLOR: #4242f9! important; POSITION: absolute; TOP: 108px; HEIGHT: 14px; TEXT-DECORATION: none! important"
onclick=newUserRegLog()
href="http://passport.baidu.com/?reg&tpl=sp&return_method=get&skip_ok=1&u=http://hi.baidu.com/sys/reg/"
target=_blank> </A>
<EMBED id=newUserTipSwf style="WIDTH: 225px; HEIGHT: 130px"
src=http://hi.baidu.com/ui/flash/userReg/guide.swf
type=application/x-shockwave-flash wmode="transparent"
allowScriptAcess="always"> </DIV>
<SCRIPT language=javascript> <!-- function newUserTipShow(f) { if(f=="0"){//close G("newUserTipSwf").style.width="40px"; G("newUserTip").style.width="40px"; G("newUserTipShadow").style.display="none"; }else{//show G("newUserTip").style.width="225px"; G("newUserTipSwf").style.width="225px"; G("newUserTipShadow").style.display="block"; } } function newUserRegLog(){ var now=new Date(); now.setTime(now.getTime()+5*60*1000); document.cookie="BDSP_REGFLAG=1;expires="+now.toGMTString()+";path=/"; new Image().src="http://hi.baidu.com/sys/statlog/1.gif?m=blog_newer_pro2_click&v=/jackwilling&t="+Math.random(); } //--> </SCRIPT>
<SCRIPT type=text/javascript>function set_cookie_4_bdtip(index/* start from one */, value){ var bdtip = document.cookie.match(/(^| )BDTIP=([^;]*)(;|$)/); if(!bdtip){ bdtip=new Array(index); for(var i=0,n=bdtip.length;i<n;i++) { if(bdtip[i]=="" || bdtip[i]==null) bdtip[i]=0; if(i == index - 1){ bdtip[i] = value; } } }else{ bdtip = bdtip[2].split('-'); if(index > bdtip.length) bdtip.length= index; for(var i = 0, j = bdtip.length; i < j; i ++){ if(bdtip[i]=="" || bdtip[i]==null) bdtip[i]=0; if(i == index - 1){ bdtip[i] = value; } } } bdtip = bdtip.join('-'); document.cookie = "BDTIP=" + bdtip+ ";expires=Wed, 28-Nov-37 01:45:46 GMT;path=/;domain=.baidu.com";}</SCRIPT>
<DIV id=main align=left><!--[if IE]>
<SCRIPT>
var objmain = document.getElementById("main");
function updatesize(){ var bodyw = window.document.body.offsetWidth; if(bodyw <= 790) objmain.style.width="772px"; else if(bodyw >= 1016) objmain.style.width="996px"; else objmain.style.width="100%"; }
updatesize(); window.onresize = updatesize;
</SCRIPT>
<![endif]-->
<DIV id=header>
<DIV class=lc>
<DIV class=rc></DIV></DIV>
<DIV class=tit><A class=titlink
title="jackwilling的空间 http://hi.baidu.com/jackwilling"
href="http://hi.baidu.com/jackwilling">爱我中华,从我做起</A></DIV>
<DIV class=desc>我们中国的钓鱼岛,我们的南沙,我们的台湾</DIV>
<DIV id=tabline></DIV>
<DIV id=tab><A href="http://hi.baidu.com/jackwilling">主页</A><A class=on
href="http://hi.baidu.com/jackwilling/blog">博客</A><A
href="http://hi.baidu.com/jackwilling/album">相册</A><SPAN>|</SPAN><A
href="http://hi.baidu.com/jackwilling/profile">个人档案</A> <SPAN>|</SPAN><A
href="http://hi.baidu.com/jackwilling/friends">好友</A> </DIV></DIV>
<DIV class=stage>
<DIV class=stagepad>
<DIV style="WIDTH: 100%">
<TABLE class=modth cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD class=modtl width=7> </TD>
<TD class=modtc noWrap>
<DIV class=modhead><SPAN class=modtit>查看文章</SPAN></DIV></TD>
<TD class=modtc noWrap align=right></TD>
<TD class=modtr width=7> </TD></TR></TBODY></TABLE>
<DIV class=modbox id=m_blog>
<DIV class=tit>数据流图(DFD)专题讲解[2]</DIV>
<DIV class=date>2008-12-02 17:34</DIV>
<TABLE style="TABLE-LAYOUT: fixed">
<TBODY>
<TR>
<TD>
<DIV class=cnt id=blog_text><FONT
color=#bc2931>http://www.educity.cn</FONT> 作者:<A
href="http://www.educity.cn/incSearch/search_author.asp?in=%CC%C6+%C7%BF"
target=_blank><FONT color=#bc2931>唐
强</FONT></A> 来源:希赛IT教育研发中心 2008年5月23日<BR>
<P align=center><IMG
src="数据流图(DFD)专题讲解[2]_爱我中华,从我做起.files/20085232467.gif"></P>
<P align=center> 图1-2 0层数据流图</P>
<P> 【问题1】(4分)</P>
<P> 使用说明中的词语,给出图1-1中的外部实体E1~E4的名称。</P>
<P> 【问题2】(3分)</P>
<P> 使用说明中的词语,给出图1-2中的数据<A
href="http://www.educity.cn/incsearch/search.asp?key=%B4%E6%B4%A2"
target=_blank>存储</A>D1~D5的名称。</P>
<P> 【问题3】(6分)</P>
<P> 数据流图1-2缺少了三条数据流,根据说明及数据流图1-1提供的信息,分别指出这三条数据流的起点和终点。</P>
<P>
<TABLE borderColor=#cccccc cellSpacing=0 cellPadding=0 width=100
align=center border=1>
<TBODY>
<TR>
<TD><SPAN style="FONT-SIZE: 10.5pt; mso-bidi-: 1.0pt">起 点</SPAN></TD>
<TD><SPAN style="FONT-SIZE: 10.5pt; mso-bidi-: 1.0pt">终
点</SPAN></TD></TR>
<TR>
<TD></TD>
<TD></TD></TR>
<TR>
<TD></TD>
<TD></TD></TR>
<TR>
<TD></TD>
<TD></TD></TR></TBODY></TABLE></P>
<P> 【问题4】(2分)</P>
<P> 数据流图是在系统分析与总体设计阶段宏观地描述系统功能需求的重要图形化工具,程序流程图也是软件开发过程中比较常用的图形化工具。简要说明程序流程图的适用场合与作用。</P>
<P> 试题分析:</P>
<P> 本题考查的是DFD的应用,属于比较传统的题目,考查点也与往年类似。</P>
<P> 问题1考查的是顶层DFD。顶层DFD通常用来确定系统边界,其中只包含一个唯一的加工(即待开发的系统)、外部实体及外部实体与系统之间的输入输出数据流。题目要求填充的正是外部实体。</P>
<P> 从顶层DFD可以看出,数据流是完整的。所以只要根据数据流从题目说明的上下文中,找出E1~E4所对应的外部实体,分别为考试委员会、主讲教师、学生和教务处。</P>
<P> 0层DFD中缺少的东西比较多,要求填写数据存储及缺失的数据流。先来确定数据存储。首先,从说明中找出可能是数据存储的元素来。很明显,学生信息文件、课程信息文件、课程单元信息文件、课程成绩文件和无效成绩文件应该是数据存储。下面的工作就是对号入座。</P>
<P> 从0层DFD上可以看到,加工3到D5有一条数据流;而加工3所完成的操作是“记录无效成绩”。从说明中可知,“对于无效成绩,系统会单独将其保存在无效成绩文件中”,所以D5应该是数据存储“无效成绩文件”;类似地,从加工2气己录有效成绩”到D4有一条数据流,这说明D4就是数据存储“课程成绩文件”。</P>
<P> D1输出两条数据流,分别流向加工1“验证学生信息”和加工4“生成成绩列表”。由说明“根据学生信息文件来确认该学生是否选修这门课程”可知,验证学生信息时,需要根据学生信息文件来进行;而生成成绩列表及成绩单时,学生信息都是必要的。所以D1应该是“学生信息文件”。</P>
<P> 这样的话,D2和D3就应该分别与“课程单元信息文件”和“课程信息文件”对应。由于D2和D3都只与加工1有关,所以它们的对应关系就是随意的了。这样5个数据存储就填充完整了。下面要丰L充缺失的数据流。</P>
<P> 首先,从说明的第5条可知,生成成绩列表时,是需要从课程成绩文件中获取信息的,“课程成绩文件”实际上就是图中的D4。而D4和加工4之间并没有数据流,因此这就是一条缺失的数据流。</P>
<P> 另外,前面在确定D1所对应的数据存储时提到过,生成成绩单时是需要学生信息的。所以,加工5应该从D1中获取相应的信息,这样就找到了第二条数据流。</P>
<P> 第三条数据流也比较容易找。说明的第7条告诉我们,只有“对于所有通过审查的成绩,系统将会生成最终的成绩单,并通知每个选课学生”。也就是说,从成绩列表到成绩单的生成是有条件的。这意味着,在加工4和加工5之间应该存在一条数据流,这就是第3条数据流。</P>
<P> 问题4实际上是为了考查大家对DFD的进一步理解,明确DFD在软件开发中用于描述功能需求。</P>
<P> 例2:【<A
href="http://www.educity.cn/incsearch/search.asp?key=%C8%ED%BC%FE%C9%E8%BC%C6%CA%A6"
target=_blank>软件设计师</A>2004年5月真题】</P>
<P> 试题一(15分)</P>
<P> 阅读下列说明和数据流图,回答问题1至问题3,将解答填入答题纸的对应栏内。</P>
<P> [说明]</P>
<P> 某图书馆管理系统的主要功能是图书管理和信息查询。对于初次借书的读者,系统自动生成读者号,并与读者基本信息(姓名、单位、地址等)一起写入读者文件。</P>
<P> 系统的图书管理功能分为四个方面:购入新书、读者借书、读者还书以及图书注销。</P>
<P> 1.
购入新书时需要为该书编制入库单。入库单内容包括图书分类目录号、书名、作者、价格、数量和购书日期,将这些信息写入图书目录文件并修改文件中的库存总量(表示到目前为止,购入此种图书的数量)。</P>
<P> 2.
读者借书时需填写借书单。借书单内容包括读者号和所借图书分类目录号。系统首先检查该读者号是否有效,若无效,则拒绝借书;若有效,则进一步检查该读者已借图书是否超过最大限制数(假设每位读者能同时借阅的书不超过5本),若已达到最大限制数,则拒绝借书;否则允许借书,同时将图书分类目录号、读者号和借阅日期等信息写入借书文件中。</P>
<P> 3.
读者还书时需填写还书单。系统根据读者号和图书分类目录号,从借书文件中读出与该图书相关的借阅记录,标明还书日期,再写回到借书文件中,若图书逾期,则处以相应的罚款。</P>
<P> 4. 注销图书时,需填写注销单并修改图书目录文件中的库存总量。</P>
<P> 系统的信息查询功能主要包括读者信息查询和图书信息查询。其中读者信息查询可得到读者的基本信息以及读者借阅图书的情况;图书信息查询可得到图书基本信息和图书的借出情况。</P>
<P> 图书管理系统的顶层图如图1-1所示;图书管理系统的第0层DFD图如图1-2所示,其中加工2的细图如图1-3所示。</P>
<P align=center><IMG
src="数据流图(DFD)专题讲解[2]_爱我中华,从我做起.files/20085237443.gif"></P></DIV></TD></TR></TBODY></TABLE><BR>
<DIV class=opt><A title=查看该分类中所有文章
href="http://hi.baidu.com/jackwilling/blog/category/Èí¼þ¹¤³Ì">类别:软件工程</A> | <A
title=将此文章添加到百度搜藏 onclick="return addToFavor();"
href="http://cang.baidu.com/do/add" target=_blank>添加到搜藏</A> | 浏览(<SPAN
id=result></SPAN>) | <A
href="http://hi.baidu.com/jackwilling/blog/item/c9390582c2d299a50cf4d21e.html#send">评论</A> (0)
<SCRIPT language=javascript>
/*<![CDATA[*/
var pre = [true,'数据流图(DFD)专题讲解[1]', '数据流图(DFD)专题讲解[1]','/jackwilling/blog/item/e859c8ee667b732e2df5341d.html'];
var post = [true,'数据流图(DFD)专题讲解[3]','数据流图(DFD)专题讲解[3]', '/jackwilling/blog/item/d714b7c449200aae8226ac1f.html'];
if(pre[0] || post[0]){
document.write('<div style="height:5px;line-height:5px;"> </div><div id="in_nav">');
if(pre[0]){
document.write('上一篇:<a href="' + pre[3] + '" title="' + pre[1] + '">' + pre[2] + '</a> ');
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -