软件工程(全)420页



《软件工程(全)420页》由会员分享,可在线阅读,更多相关《软件工程(全)420页(419页珍藏版)》请在装配图网上搜索。
1、,*,哈尔滨工业大学,韩静萍,,,2024/11/26,2024/11/26,《软件工程》,,哈尔滨工业大学,韩静萍,Software Engineering,2024/11/26,在一些人眼里,今天的软件开发似乎已,,成为简单的事情,已有了不少很好的开发工,,具和软件库,软件开发人员训练有素,都强,,烈渴望去编写很酷的软件,可以在几天的时,,间里编写出一个相当复杂的软件。但为什么,,有一些软件能够得到用户的喜欢,而另一些,,则不能?为什么有些软件能够在市场上成功,,,而有些则受到冷落?由此可见,开发软件,,并不一定难,难就难在如何开发有用的软件。,微软凌小宁博士,2024/11/26,我最大
2、的心得是,一个产品一定要找到能够,,真正适用的场合,不能只是为了技术而从事技术,,为了研究而进行研究,却不管用户对你所研究的,,技术和产品有没有需求。否则,无论你的技术是,,多么优秀,多么先进,恐怕你的产品在市场上都,,无法获得成功。,微软张益肇博士,2024/11/26,,软件工程是计算机科学与技术专业的一门专,,业核心课程。通过本课程的学习,使学生掌握系,,统的软件开发理论、技术和方法,使用正确的工,,程方法开发出成本低、可靠性好并在机器上能高,,效运行的软件,为今后从事软件开发和维护打下,,坚实的基础。,,,,,课程的性质、目的与任务,2024/11/26,本课程比较全面、系统地介绍软件
3、工程的概念、技术,,与方法。,,主要内容包括:,软件工程概述、软件生存周期及软件,,需求分析、软件设计方法、软件测试技术等。,,,通过本课程的学习,使学生能真正的从中了解软件开,,发的整个过程。为了让学生真正得以实践,结合实际软件,,开发项目,让学生从问题定义开始,经过可行性研究、需,,求分析、概要设计、详细设计、编码直到最后要对自己开,,发的软件还要进行测试,这样一个软件开发过程,从而使,,学生掌握软件开发的基本技能。,,,,,,课程主要内容,2024/11/26,,,,,,学习本课程的基本要求,本课程是继程序设计课程之后,对提高学生软件,,开发能力有重要作用的一门课程。要求学生在学习本,,
4、课程前应掌握,信息管理系统、数据结构、结构化程序,,设计、面向对象程序设计以及程序设计方法论,。,,通过本课程的学习,为学生后期的毕业设计环节,,奠定了良好的基础。,2024/11/26,,章,学时,章,学时,章,学时,章,学时,1,2,3,4,9,4,13,2,补充,2,4,2,10,2,14,4,2,2,8,4,12,2,,,总学时 46=38(讲授)+8(课程设计),,,,,,,,各 章 学 时 安 排,2024/11/26,第一章 软件工程概述,水利工程,建筑工程,机械工程,…,,…,软件工程,本章将对软件的地位和作用、软件的特点、软件,,的发展、软件的危机以及软件工程学科的形成、软件
5、,,生期等方面的问题和基本概念,传统工程,新兴工程,气象工程,生物工程,2024/11/26,1.1 软件的概念与特点,1、软件,software,soft+ware,软制品,,(软体),软件是计算机系统中与硬件相互依存的另一部分。,,它包括,程序,、,数据,及其相关,文档,的完整集合。,2024/11/26,2、软件特点,.,,软件是一种逻辑实体,而不是具体的物理实体,.,,软件的生产与硬件不同,.,在软件的运行和使用期间,没有硬件那样的机械,,磨损,老化问题,磨合调整,磨损用坏,修改点,实际曲线,,,理想曲线,,硬件失效率曲线,时间,失效率,,时间,失效率,软件失效率曲线,2024/11/
6、26,.,,软件的成本相当昂贵,软件技术的发展落后于需求,时间,软件复杂性,,,软件需求,差距,,软件技术,硬、软件成本比例的变化,年份,成本%,,软件,1950,1970,1985,1995,硬件,2024/11/26,3、软件的分类,1、按软件的,功能,进行划分,系,,统,,软,,件,支,,撑,,软,,件,应,,用,,软,,件,2024/11/26,支撑软件,一般类型,:,,文本编辑程序,,文本格式化程序,支持需求分析,:,,PSL/PSA,问题描述语言,,关系数据库管理系统,支持设计,:,,图形软件包,,结构化流程图绘图程序,支持测试,:,,静态分析器,,测试覆盖检验程序,支持实现,:,
7、,编辑程序,,连接编辑程序,支持管理,:,,标准检验程序,,库管理程序,2024/11/26,,2、按软件的,规模,进行划分,,按开发软件所需的,,人力、时间以及完成的,,源代码行数。,类别,参加人数,研制期限,产品规模(源代码行数),微型,,小型,,中型,,大型,,甚大型,,极大型,1,,1,,2-5,,5-20,,100-1000,,2000-5000,1-4周,,1-6周,,1-2年,,2-3年,,4-5年,,5-10年,约500行,,约2000行,,5000-50000,行,,5,万-10万行,,100万行,,1000万行,2024/11/26,,,,3、按软件,开发,划分,软,,件,
8、,项,,目,,开,,发,软,,件,,产,,品,,开,,发,2024/11/26,1.2 软件工程的概念及范畴,1、,“,软件工程,”,----Software Engineering,于1968年,NATO,组织在,,德国召开的一次会议上提出,是把软件当作一种工业产品,要求,“,采用工程化的,,原理与方法对软件进行计划、开发和维护,”,。,2024/11/26,软件工程学,,,软件开发技术,,软件工程管理,,软件开发方法学,软件工具,软件工程环境,,软件工程管理学,软件经济学,---- 软件工程学的范畴,2、 软件工程学,2024/11/26,,Wake up every day with a
9、 feeling of passion,,for the different technology will make in people’s,,Life.,微软企业文化宗旨部分内容,,每天醒来的时候,要对技术给生活造成的改变,,始终拥有一份,激情,。,2024/11/26,程序,3、软件的演变(,即从传统软件开发到现代软件开发,),软件,软件产品,传统软件开发,现代软件开发,1975,1989,2000,0.00016,240,,营业额,,增长曲线,80,2024/11/26,1.3 软件生存周期,把软件从产生、发展到成熟、直至衰亡为止,(SW life cycle),2024/11/26,
10、,特点:,,上一阶段的变换结果,,是下一阶段的变换的,,输入,相邻两个阶段,,具有因果关系,紧密,,相联。,需求分析,问题定义,可性行研究,计划,,时期,概要设计,详细设计,编 码,测 试,开发,,时期,运行与维护,运 行,,时 期,软件生存周期模型(瀑布模型,Waterfall Model,),2024/11/26,,原型模型(,Prototype Model,),加工,,原型,,原型,原型:是指模拟某种产品的原始模型,快速分析,,和设计,建造,,原型,客户,,评价原型,,1、原型系统仅包括未来系统的,,主要功能,以及系统的重要,,接口。,2、为了尽快向用户提供原型,,,开发原型
11、系统时应尽量使用,,,能缩短开发周期的语言和工,,具。,2024/11/26,,第二章 问题的定义与可性行研究,,,当我们在着手做任何一件工作以前,必须明确工作的性质、任务,制定完成任务的计划,这是非常必要的。同样对于软件产品的开发 ,显然也应该解决好这样类似的问题,明确该软件产品开发的任务,以及完成任务的价值从而制定出完成任务的计划。那么问题的定义和可性行研究就是制定软件系统的计划的第一步。,,所以在软件工程中把这一步称为,计划时期,2024/11/26,开始,问题定义,可性行研究,可行否?,项目实施计划,终止项目的建议,,,结束,,Y,计划时期的工作流程图,N,,2024/11/26,Wh
12、o,为谁设计,用户是谁?,What,要解决哪些问题?,Why,为什么要解决这些问题,,,3W,,,Win CE1.0,,有用的软件,2024/11/26,2.1 现状调查和问题的定义,目的:弄清楚用户要求计算机解决什么问题,任务:编写系统目标与规范说明书,系统目标与规范说明书,,,1、项目:教材销售系统,,2、问题:人工销售教材手续繁琐,容易出错,,3、项目目标:建立一个高效率、无差错的计算机教材销售系统,,4、项目范围:利用现有的计算机,软件开发费用不得超过2000元,,5、初步想法:建议在系统中增加对缺书的统计与采购功能,,6、可性行研究:建议进行大约10天的可性行研究,且研究费用不超过5
13、00元,2024/11/26,2.2 可行性研究与论证,1、经济可行性:,进行,成本,效益分析,评估项目的开发成本。,基于计算,,机系统的,,成本,由四,,部分组成,1、购置软、硬件及有关设备费用,2、系统开发费用,3、系统安装和维护费用,4、人员培训费用费用,其论证的焦点是,:,围绕着对系统开发的,价值,进行论证,2024/11/26,举例:关于开发,CAD,系统的软件开发成本及效益分析,,1 2 3 4 5,,年,60,,,40,,,20,,,0,成本-效益(万元),该系统节省经费,该系统成本,盈亏平衡点,投资回收期,---------成本及
14、效益分析图,2024/11/26,2、技术可行性:,对系统的性能、可靠性、可维护性以及生产率,,等方面的信息进行评价。,通过技术可行性的分析,将为新系统提交技术可,,行性,评估,。以指明为完成系统的功能和性能需要什么,,技术?需要哪些材料、方法、算法、或者过程等,技术可行性分析方法--- 数学模型和优化技术、,,概率和统计、排队论、控制论等方法。,,,2024/11/26,可行性,,论证报告,1、系统概述,2、可行性分析,3、拟订开发计划,4、结论意见,2024/11/26,2.3 可行性分析所需工具 (,系流程图与系统结构图,),1、系统流程图:,是用来描述系统,物理模型,的一种传统工具。,
15、流程符号,含 义,流程符号,含 义,,数据加工符号,,换页连接,,输入/输出符号,,磁带符号,,连接点符号,,文档符号,,人工操作,,多文档符号,,,,,,,,,2024/11/26,流程符号,含 义,流程符号,含 义,,显示器或终端机,,控制流符号,,磁盘机或数据库,,流程开始与结束,,,,2024/11/26,举例,库存清单系统流程图,库存清单程序,定货报告,事务,定货信息,结束,报告生成程序,零件库,,,2024/11/26,人工销售教材 流程图,结束,学生,申请购,,书,购书证明,检索教材,,帐本是,,否有该,,教材,购书单,开购书发,,票和购,,书单,购书发票
16、,到书库,,领书,2024/11/26,计算机售书系统流程图,结束,学生,购书发票,到书库,,领书,购书单,终端,审查并,,开发票,1,1---学生各学期用书数据库,购书单,2,2---教材存量数据库,2024/11/26,练,习,设某城市招干考试成绩统计系统。,,考生分三个专业,不同专业考试科目不同:,,法律专业---考政治、语文、法律,,行政专业---考政治、语文、行政,,财经专业---考政治、语文、财经学,,每个考生在报名时登记姓名、地址、年龄和报考专业。报,,名后招干办公室根据专业考生专业及地址在市区或郊区来编排,,准考证号码和考场。考生参加考试后,输入每个考生的各门课,,程的成绩,并
17、统计出每个考生三门课程的总成绩。按准考证号,,的顺序打印出考生考试成绩单,分发给每个考生。各专业分别,,将考生按成绩总分从高到低的次序排序,以便决定录取名单。,,,请画出由下列文字描述的系统流程图,2024/11/26,2、系统结构图:,系统工程师用,结构摸板,开发的系统模型,用户界面处理,输,入,处,理,维护和自测试,处理和控制功能,输,出,处,理,----,结构摸板,----,2024/11/26,,,,,,,------- 传输线的分类系统,,,,,3、系统结构环境图(,ACD-Architecture Context Diagram),,:,ACD,,可用于描述实现系统与系统运行环境之
18、间的信息边界。,2024/11/26,传输线,,分类系统,条形码,,阅读器,传输线,分配站,,操作员,分配站,,操作员,分类机构,主 机,条形码,线速,,指示器,分路,,命令,格式化,,报告数据,查,,询,查询及,,报告,诊断,,数据,------- 传输线分类系统的,ACD,图,,处理与控制功能区,外部实体,2024/11/26,,,ACD,的层次结构,,A,,,,B,,,,,,,,C,,,,,,,,,,,,,,,,2024/11/26,作,请画出学生成绩管理系统的,,ACD,图,业,2024/11/26,,第,3,章 软件需求分析,软件需求分析是软件开发早期的一个重要阶段。它,,在问
19、题定义和可行性研究阶段之后进行。需求分析的基,,本任务是软件人员和用户一起完全弄清用户对系统的确,,切要求。这是关系到软件开发成败的关键步骤,也是整,,个系统开发的基础。,,软件需求分析阶段要求用 需求规格说明书,(,SRS),,,来表达用户对系统的要求。规格说明书可用文字方式表,,示,也可用图形表示。,,本章将介绍需求分析的,任务、步骤、需求分析方法,,(面向数据流图分析方法、面向对象的分析方法)。,2024/11/26,一、确定目标系统的具体要求,1、确定系统的运行环境要求,2、系统的性能要求,3、系统功能,3.1 需求分析的任务,硬件环境和软件环境,确定目标系统具备的所有功能,2024/
20、11/26,举,例,数据库中存放的是职工的,,某学校医疗费管理系统,所属部门、职工号、姓名,职工报销时应填写:,所属部门、职工号、姓名、日期,校内门诊、校外门诊、住院费、子女医疗费,医疗费分类:,该校规定,每年每个职工的医疗费有一个限额(如 80元),限,,额在年初确定,其限额规则如下:,1、每个职工一年内报销的医疗费不超过限额时,全部报销,,2、超额,则超出部分只可报销90%,其余10%由职工个人负担,,3、职工子女的医疗费也有限额(如 40元),2024/11/26,1、,医疗费管理系统每天,记录,当天报销的若干职工或职工子女的医,,疗费的,类别、金额,。,,,2、,在当天下班前让系统,自
21、动结帐,、,统计当天报销的医疗费总额,,供,,出纳员核对。,,,3、,每笔帐要保存备查,每天所报销的费用要和各个职工已报销的金,,额累计起来,以便检查哪些职工已超额。,,,4、,系统还要配有适当的,查询功能,。,,,5、,年终结算后,下一年度开始时要对数据库文件进行初始化。,,,6、,当职工调离本单位,职工调如本单位或在本单位内部门间调动,,,数据库文件应能及时得到修改。,,请完成对上述系统的,需求分析,用户对系统的要求,2024/11/26,,,,该系统规模不太大,可以和用户单位的其他管理系统,,使用,相同的计算机硬件设备,、,相同的操作系统,和,相同的关,,系数据库管理系统,。,,如果,可
22、以使用汉化了的数据库管理系统,但在建立,,数据库结构时,凡是用英文名称来代表字段名时,则必须,,在数据字典中予以说明。,,,1、确定系统的环境要求,2024/11/26,3、系统的功能,(1)具有表格形式屏幕的输入格式,,(2)具有重复录入数据的功能,,(3)具有查询和统计汇总的功能,,(4)职工的调入和调出以及对数据库的初始化,2024/11/26,2、系统性能要求,(1)数据不能随意更改 2)保证数据的准确性,,,由于医疗费管理系统涉及到会计经费问题,,数据不能,,随意更改,但数据输入又难免会出错。因而在每输入一个职,,工的医疗费后,屏幕提示,“,数据有误吗?,”,。若是在核对时,,有
23、误,可及时更改,避免输入错误。一天报销结束时,在,,数据存档前,再让出纳员核对一下经费总额,若出纳员支,,出的金额总数有误时,应让计算机显示每笔帐目,供一一,,仔细核对,此时在允许修改一次。当正式登帐后,数据就,,绝对不允许在修改了,由此保证财务制度的严格性,保证,,数据的安全性。,,2024/11/26,二、建立目标系统的逻辑模型,,通常软件软件开发项目是要实现目标系统的物理模型,即,,确定待开发软件系统的系统元素,并将功能和数据结构分配到,,这些系统元素中。它是软件实现的基础。,,但是目标系统的物理模型是由它的逻辑模型经实例化,即,,具体到某个业务领域而得到的。与物理模型不同,逻辑模型忽,
24、,视机制和细节,只描述系统要完成的功能和要处理的数据。,,为此,该阶段的主要任务是,,借助于当前系统的逻辑模型,,导出目标系统的逻辑模型,,也就是解决目标系统“做什么”的问,,题。,2024/11/26,用户,,调查,具体模型,建立系统模型的工作流程,逻辑,抽象,当前系统,逻辑模型,当前系统,计算,,机化,评审,修改,正式模型,完善,细节,目标系统,目标系统,,初始模型,经认可的,问题需求,系统模型,用户,1、建立,目标系统,逻辑模型的步骤,2024/11/26,图形工具,数据流图,数据字典,2、建立目标系统逻辑模型的图形工具,2024/11/26,---- 学生购买教材的,具体模型,,举,例
25、,请建立计算机,,售书系统的逻辑模型,张,,秘书,,学,生,,购书,购书,王,,会计,发票,李,,出纳,领书,赵,保管,单,申请,证明,书,----学生购买教材的,逻辑模型,,审查,,有效性,,学,生,,有效,购书单,开发票,发票,开领,书单,领书单,发书,购书单,书,2024/11/26,----学生购买教材的,逻辑模型,,审查并,,开发票,,学,生,,发票,购书单,各班学生用书表,教材存量表,无效书单,开领,书单,领书单,,学,生,,完善目标系统并补充细节,的出目标系统的正式逻辑模型,2024/11/26,三、需求规格说明书与评审,软件需求说明书,----,SRS(Software Req
26、uirement Specification),主要包括以下的内容:,SRS,引言,数据描述,数据流图,数据字典,功能描述,性能描述,特殊需求,2024/11/26,一、数据流图,,3.2 面向数据流的方法,----,DFD(Data Flow Diagram),是用来描述系统逻辑模型的一种图形工具。,,数据流图从数据传递和加工的角度,以图形的方式,,刻画数据流从输入到输出的移动变换过程。,DFD,2024/11/26,储,户,检验,付款,登录,,,,存折,帐卡,,,,取款,信息,办理取款手续的,DFD,图,,检验不合格,现款,付款信息,取款单,存折,2024/11/26,,,1、数据流图中的
27、主要图形元素,------ 转换数据流的处理过程,,,,----,,可以是数据库文件或任何形式的数,,据组织。箭头向内则表示写入文件,,或查询文件,箭头向外则表示从文,,件中读取数据或得到查询结果,数据转换,外部实体,------ 位于软件系统边界之外的信息生产者 或,,消费者,数据流,------ 在转换之间有向流动的数据项或数据,,集合,数据存储文件,2024/11/26,----,,系统,逻辑,模型,数据的,加工或,变换,输入,输出,软件,,系统,外部实体,外部实体,… …,外部实体,外部实体,… …,输入,,数据流,输入,,数据流,输出,,数据流,输出,,数据流,2024/11/26,
28、----学生购买教材的,逻辑模型,,审查并,,开发票,,学,生,,发票,购书单,各班学生用书表,教材存量表,无效书单,开领,书单,领书单,,学,生,,外部,,实体,数据的,,加工,2024/11/26,2、数据流图中的其它图形元素,,A,B,C,------ 有,A,则,B,或者,C,,或者两者都有,*,,A,B,C,+,,A,B,C,------ 有,A,则,B,与,C,,或者两者同时有,------ 有,A,则,B,或,C,,但不会同时有,B,与,C,2024/11/26,----- 标识多个数据流与加工之间关系的符号,------ 当,A,或,B,有一个存在就有,C,,A,B,C,*,,
29、A,B,C,------ 只有当,A,与,B,都存在,则有,C,2024/11/26,3、分层的数据流图,F0,A0,B0,F11,A0,B0,F12,F13,F14,F15,p1,C1,D1,M1,N1,F21,M1,F22,N1,F23,K2,F24,W2,F25,p1,Y2,X2,第,n,,层,第,n+1,,层,第,n+2,,层,2024/11/26,人工销售教材 系统流程图,学生,开购书,,证明,购书,,证明,开购书,,发票,发 票,收书费,领书单,发书,学生,举,例,2024/11/26,,学,生,教材,,购,销,,系统,购书单,领书单,缺书单,进书通知,进书通知,,,,,保,,管员
30、,1,,销售,购书单,领书单,学,生,缺书单,进书通知,2,,采购,保,,管员,第,1,,层,第,2,,层,教材存量表,F1,缺书登记表,F2,外部实体,外部实体,2024/11/26,,教材销售子系统,无效书单,购书单,1.3,,登记并开,,领书单,1.2,,开发票,1.1,,审查,,有效性,1.4,,登记,,缺书,1.5,,补售,,教材,,采,购,学,生,学,生,进书通知,有效书单,发票,领书单,,暂缺书单,,,,1,,销售,购书单,领书单,缺书单,进书通知,2,,采购,进书通知,缺书登记表,,,教材存量表,,,学,生,保,,管员,第,2,,层,,补售,,书单,第,3,层,教材存量表,F1
31、,缺书登记表,F2,,F1,,书号,,单价,,数量,各班用书表,F3,售书登记表,F4,外部,,项,2024/11/26,,1,,销售,购书单,领书单,缺书单,进书通知,2,,采购,进书通知,缺书登记表,,,教材存量表,,,学,生,保,,管员,采购,子系统,,第,2,层,第,3,,层,缺书单,2.3,,修改教材库,,存和待,,购量,销,售,进书通知,进书通知,2.1,,按书号汇,,总缺书,2.2,,按出版社统,,计缺书,保,,管员,教材存量表,F1,,,,,,,,,待购教材表,F5,教材一览表,F6,缺书登记表,F2,2024/11/26,. 便于实现,. 便于使用,---,采用,逐步细化,的
32、扩展方法,可避免一,,次引入过多的细节,有利于控制问题,,的复杂度;,,---,用一组图代替一张总图,方便用户及,,,软件开发人员阅读。,4、分层,DFD,图的优点,2024/11/26,. 注意父图和子图的平衡,5、画分层,DFD,的指导原则,发票,1.3,开领书单,领书单,(,a),父图,1.3.1,学生,领书单,1.3.2,1.3.3,教材,(,a),子图,2024/11/26,. 区分局部文件和局部外部项,,. 掌握分解的速度,一般来说,每一个加工每次可分为,2-4,个子加工,最,,多不得超过,7,个。,. 遵守加工编号规则,顶层加工不编号。第二层的加工编号为1,2,3,,…,,,n,
33、号。,,第三层编号为1.1,1.2,1.3,…,n.1,n.2,…,等号,依此类推。,,,2024/11/26,,1,,销售,购书单,领书单,缺书单,进书通知,2,,采购,进书通知,缺书登记表,,,教材存量表,,,学,生,保,,管员,采购,子系统,,第,2,层,第,3,,层,缺书单,2.3,,修改教材库,,存和待,,购量,销,售,进书通知,进书通知,2.1,,按书号汇,,总缺书,2.2,,按出版社统,,计缺书,保,,管员,教材存量表,F1,,,,,,,,,待购教材表,F5,教材一览表,F6,缺书登记表,F2,局部,,外部项,局部,,文件,,2024/11/26,练,请画出学生成绩管理系统的,,
34、DFD,,图,习,2024/11/26,二、数据字典,,----,DD(Data Dictionary),数据字典的任务是: 对于数据流图中出现的所有被,,命名的图形元素在字典中作为一个词条加以定义,使得,,每一个图形元素的名字都有一个确切的解释。,DD,2024/11/26,1、数据字典的定义,数据流名:,,说明:简要介绍作用即它产生的原因和结果。,,数据流来源:即该数据流来自何方。,,数据流去向:去向何处。,,数据流组成:数据结构。,,每个数据量流通量:数据量、流通量。,(1) 数据流词条的描述,,数据流名:,发票,,说明:用作学生已付书款的依据,,数据流来源:来自加工,“,审查并开发票,
35、”,,数据流去向:流向加工,“,开领书单,”,。,,数据流组成:学号+姓名+书号+单价总价+书费合计,审查并,,开发票,发票,购书单,,2024/11/26,数据元素名:,,类型:数字(离散值、连续值),文字(编码类型),,长度:,,取值范围:,,相关的数据元素及数据结构,(2),,数据元素词条的描述,,年 = “1900”..“3000” 月 = “01”..“12” 日 = “01”..“31”,,摘要 = 1{字母}4,,金额 = “00000000.01”..“999999999.99” … …,,,2024/11/26,(3) 数据文件词条的描述,,数据文件名:
36、,,简述:存放的是什么数据。,,输入数据:,,输出数据:,,数据文件组成:数据结构。,,存储方式:顺序,直接,关键码。,,存取频率:,,,…,,…,审查并,,开发票,,学,生,,发票,购书单,各班学生用书表,教材存量表,2024/11/26,加工名:,,加工编号:反映该加工的层次,,简要描述:加工逻辑及功能简述,,输入数据流:,,取值范围:,,相关的数据元素及数据结构,,,…,,…,(4),,加工逻辑词条的描述,,1.3,,审查并,,开发票,,学,生,,发票,购书单,各班学生用书表,教材存量表,2024/11/26,名称:外部实体名,,简要描述:什么外部实体,,有关数据流:,,数目:,(5)
37、外部实体词条描述,,1,,销售,购书单,领书单,缺书单,进书通知,2,,采购,进书通知,缺书登记表,,,教材存量表,,,学,生,保,,管员,2024/11/26,2、数据字典定义符号,符号,含 义,例 子,,,,,,,,,,,,,,,,,,,,,,=,被定义为,+,与,[ ],x=a+b,,,则表示,x,,由,a,和,,b,,组成,x=[a,b],,,则表示,x,,由,a,或由,,b,,组成,{ },或,重复,x={a},,,则表示,x,,由,0,个,或多个,a,组成,( ),可选,,表示在两个,*,,之间的内容为词条的注释,m,{ },n,重复,x=3{a}8,
38、,,则表示,x,中至少出现3次,a ,,最多出现8次,*…*,注释符,x=(a),,,则表示,a,在,x,中出现,,也可不出现,2024/11/26,储,户,检验,付款,登录,,,,存折,帐卡,,,,取款,信息,-------- 办理取款手续的,DFD,图,,检验不合格,现款,付款信息,取款单,存折,练,习,请为下列给出的,DFD,,图编写,DD,2024/11/26,日期,,年月日,摘要,支出,存入,余额,操作,复核,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,户名:,储蓄网点名称:,帐号:,开户日:,性质:,印密:,------- 存折格式,2024/11/26,,日期 (年
39、月日),摘要,支出,存入,余额,操作,复核,,,,,,,,,户名:,储蓄网点名称:,帐号:,开户日:,性质:,印密:,存折 = 户名+所号+帐号+开户日+性质+(印密)+1{存取行}20,,户名 = 2{字母}24,,所号 = “001”..“999”,,帐号 = “00000001”..“99999999”,,开户日 = 年+月+日,,性质 = “1”..“6”,,印密 = “0”,,存取行 = 日期+(摘要)+支出+存入+余额+操作+复核,,日期 =年+月+日,,年 = “1900”..“3000” 月 = “01”..“12” 日 = “01”..“31”,,摘要 = 1{字母}
40、4,,支出 = 金额,,金额 = “00000000.01”..“999999999.99” … …,,,2024/11/26,3、数据字典的实现,数据字典的实现,人工方法,自动方法,将每一字典中的词条,,写在一张卡片上,由,,专人管理和维护,利用,“,字典管理程序,”,,在计算机中对字典进,,行管理和维护。,2024/11/26,三、加工说明,,----,(Process Specification),加工说明是:对,DFD,中每个加工给予说明。它是从,,系统功能的角度对,DFD,作出了注解,与,DD,一样是,DFD,必不可缺少的辅助资料。,PS,2024/11/26,,加工说
41、明组成,输入,,数据,,加工,逻辑,,输出,,数据,,加工说明,,描述工具,结构化,,语言,,判定,表,,判定,树,,描述把输入数据流变,,换为输出数据流的加工过,,程,是加工说明的主体。,2024/11/26,----学生购买教材的,逻辑模型,,审查并,,开发票,,学,生,,发票,购书单,各班学生用书表,教材存量表,无效书单,开领,书单,领书单,,学,生,,2024/11/26,自然语言+结构化形式,结构化语言,选,,择,,结,,构,如果,,,,,,If,,,,,,如果,,,,则,,,,,否则,,,情况,1 ,,,,… …,,情况,n <,条件>,,<策略,n>,If,,,,then,,,O
42、therwise,,,,case,1 ,,,,… …,,case,n ,,,循,,环,,结,,构,对,,… ,,,,重复以下,,,,直至,<条件,>,,For,each,… ,,,,Repeat,the following:,,,,Until,,2024/11/26,例1: 请写出下列在,DFD,图中给出的,“,统计晚婚职工,”,,的加工说明,Count Late,,-Marriage,,Employees,Late-Marriage,,-Count Request,职工名册文件,,Late-Marriage-List,,=List-Count+Name-List,Name-List={Nam
43、e},2024/11/26,Count Late-Marriage Employees Policy,,For each Late-Marriage-Count request:,,,Repeat,the following;,,Access the staffs-Record.,,,If,status is single,,,,If,sex is maie and Age is over 30 or,,sex is female and Age is over 26,,Write Name to Name-List.,,Increment List-Count.,,,Until,there
44、are no more Staff-Records.,,Combine List-Count and Name-List.,,Write Up Late-Marriage-List.,2024/11/26,----学生购买教材的,系统逻辑模型,,审查并,,开发票,,学,生,,发票,购书单,各班学生用书表,教材存量表,无效书单,开领,书单,领书单,,学,生,,例2: 请为下列,DFD,中的,“,审查并开发票,”,加工点写,,加工说明,2024/11/26,,把学生学号和姓名写到发票上,,按购书单上学生的年级和系、专业与班号,,,检索,“,各班学生用书表,”,文件,获得该生当年的书单,,,对,,购
45、书单上的每一书号,,,如果,,书单上无此书号,,,则,,把书号写到出错通知单上,,,否则,,,,按书号检索,“,教材存量表,”,文件,,,从而获得该书的单价与库存量,,,如果,,库存量〈 购书单的数量,,,则,,将书号写到出错通知单上,,,否则,,,将,书号、单价、数量、总价等项写入到发票上;,,更新存书量,并写回,“,教材存量表,”,文件;,,累计书费合计,,,把,书费合计写到发票上,对,每张购书单,2024/11/26,分房,,加工,婚龄,中级职称,晚婚,正常分房,优先分房,不分房,,,分房加工逻辑,判断表,采用表格的形式来表达,,具复杂判断的加工逻辑,1、一般职工婚后5年可参加分房,,2
46、、中级以上职称的职工婚后3年,,可参加分房,,3、符合正常分房条件的职工,,,若再符合晚婚条件可优先分房,2024/11/26,,分房,,加工,婚龄,中级职称,晚婚,正常分房,优先分房,不分房,,,,,1,2,3,4,5,6,说 明,条,,,件,婚 龄,>5,年,,3-5,年,,,<3,年,(-),表示任意,,,(,Y),条件满足,,,(,N),条件不满足,,(*),选中的决策,,,中级职称,-----------,,Y,,N,-----,,,晚 婚,Y,N,Y,N,----,-----,,决,,,策,优先分房,*,,*,,,,,,正常分房,,*,,*,,,,,不分房,,,,,*
47、,*,,2024/11/26,判断树,判断树是判断表的图形形式,,其适用场合与判断表相同,中 级,,职 称,不 分 房,初婚,,分房决策,> 5年,3-5 年,< 3年,优先分房,非中,,级职称,正常分房,正常分房,晚 婚,非晚婚,晚 婚,非晚婚,优先分房,不 分 房,2024/11/26,“检查发货单” 的判断表,,,1,2,3,4,条,,件,发货单金额,>$500,>$500,<=$500,<=$500,,赊欠情况,>60天,<=60天,>60天,<=60天,决,,,,策,不发出批准书,V,,,,,发出批准书,,V,V,V,,发出发货单,,V,V,V,,发出赊欠报告,,,V,,2024/1
48、1/26,作,业,工资管理系统,系统流程图,系统软件模型,部分数据字典,一、对工资管理系统进行需求分析,二、阅读教课书的,P27,,页,2024/11/26,三,、,把下列用文字叙述的内容请采判断表和判断树描述出来,设某旅游票预定系统中,在旅游旺季 7- 9、12月,,份,如果订票超过 50张,则优惠票价的 15%,;,50张以,,下,优惠5%。在旅游淡季1-6,10、11月份,若订票超,,过 50张,则优惠30%;50张以下,优惠 20%。,2024/11/26,面向对象,继承,类,3.3 面向对象的需求分析,一、面向对象的概念,,对象,消息,2024/11/26,,对,,象,对象就是一
49、个包含数据以及与这些数据有关,,的操作的集合。每个实体都是对象。,对象,数 据,操作代码,2024/11/26,类,是一组具有,相同数据结构,和,相同操作,的对象,,集合。类的定义包括一组数据属性和在数据上的,,一组合法操作。类定义可视为一个具有类似特性,,与共同行为的对象摸板,可用来产生对象。,,可以说,类是对象的抽象,而对象是类的具,,体实例。,2024/11/26,继承,是在一个已存有的类的基础上建立一个新,,的类。并将已存在的类称为--基类或父类;,,新建立的类称为,—,派生类或子类。,,继,,承,基 类,派 生 类,2024/11/26,对象继承了类所有属性,------
50、 从,类,到,对象,的继承,,cost,,dimension,,weight,,location,,color,类:,furniture,,cost,,dimension,,weight,,location,,color,对象,:,chair,对象、类、继承,,2024/11/26,,,对象,继承类的所有属性和操作,,cost,,dimension,,weight,,location,,color,类:,furniture,Buy,,Sell,,Weight,,move,,cost,,dimension,,weight,,location,,color,对象,:,chable,Buy,,Sel
51、l,,Weight,,move,,cost,,dimension,,weight,,location,,color,对象,:,chair,Buy,,Sell,,Weight,,move,2024/11/26,------ 面向,对象类,的表示模式,,,类名,:,,,,,,,,,,,,,,,操作,:,属性,:,2024/11/26,识别对象,1、标识潜在对象,找出通过分析过程中的所有名词或名词短语并合并,,同义词。除去有动作含义的名词,使它们将被描述为对,,象的操作。,,标识规则如下:,(1)、外部实体,(2)、事物,(3)、位置,(7)、聚焦对象,(5)、事件,(6)、角色,(4)、组织机构
52、,2024/11/26,二、面向对象的分析方法(,OOA,),,,O,bject,O,riented,A,nalysis,,OOA,的核心思想是利用,OO,的概念,,和方法对软件需求建造模型,以使用户,,需求逐步精确化、一致化、完全化。,,为此,,OOA,的方法步骤为:,,识别对象,属性及外部服务,识别类及其结构,定义对象之,,间的消息传递,2024/11/26,潜在对象,理由,用户,,传感器,,控制面板,,系统(,SafeHome System),,传感器编号,,密码,,电话号码,,传感器事件,,警报器,角色或外部实体,,外部实体,,外部实体,,聚焦对象,,概念实体,,概念实体,,概念实体,
53、,事件,,外部实体,例如:,2024/11/26,2、筛选对象,筛选对象规则如下:,(1)、具有记忆自身状态的能力,(2)、有意义的操作,(3)、多个属性,(5)、公共操作,(6)、必须的需求,(4)、公共属性,潜在对象,理由,用户,,传感器,,控制面板,,系统,),,传感器编号,,密码,,电话号码,,传感器事件,,警报器,角色或外部实体,,外部实体,,外部实体,,聚焦对象,,概念实体,,概念实体,,概念实体,,事件,,外部实体,2024/11/26,,第四章 软件设计基础,,,Who,为谁设计,用户是谁?,What,要解决哪些问题?,Why,为什么要解决这些问题,,,3W,2024/11/2
54、6,4.1 软件设计过程,编码,测试,设计,信息描述,功能描述,行为描述,其他需求,总体结构设计,数据设计,过程设计,程序模块,集成并确,,认的软件,------ 软件开发阶段的信息流,2024/11/26,软件设计任务,制定规范,4.2,软件设计的任务和步骤,软件系统,,结构的总体设计,处理方式设计,数据结构设计,可靠性设计,2024/11/26,软件设计方法,结构化设计方法,4.3,软件设计的方法,面向对象的设计方法,2024/11/26,一、模块化设计与信息隐藏,-----,“,模块,“,又称,”,构件,”,一般指用一个名字调用的一段程序,4.4,软件设计基础,模块(,module),模
55、块化设计,,(,modular design),,按适当的原则把软件划分为一个个较小的、相关而又相对独立的模块。,,逻辑,功能,状态,2024/11/26,1、分解(,decomposition),E(P1+P2)>E(P1)+E(P2),设:,C(x),,为,复杂程度函数,,E(x),,为决定解决问题,x,所需的,工作量(时间)函数,,C(P1)>C(P2),E(P1)>E(P2),C(P1+P2)>C(P1)+C(P2),Magical Number Seven,Plus or Minus Two,Some Limits on,,Our Capacity for Processing I
56、nformation,,,The Psychological Review,1956,,G.A. Miller,奇妙的数字,7,+,2,,人类信息处理能力的限度,2024/11/26,C(P1+P2)>C(P1)+C(P2),,E(P1+P2)>E(P1)+E(P2),软件工程基本定理,最小成本区,,M,,,,模块成本,接口成本,总成本,软件,,开发,,工作,,量,,,模块数,,,2024/11/26,,每个模块的实现细节对于其他模块来说是隐藏的。,,也就是说,模块中所包含的信息是不允许其他不需要,,这些信息的模块使用的。,2、信息隐藏,(,information hiding,),栈,sta
57、ck,置空栈,,,makenull,进栈,,,push,退栈,,,pop,2024/11/26,3、模块的独立性,(,module independence,),模块的独立性是指软件系统中每个模块只,,涉及软件要求的具体的子功能,而和软件系统,,中其他模块的接口是简单的。,耦合,,,模块之间的,,相对独立性,,的度量。,内聚,,模块功能强,,度的度量。,2024/11/26,(1)、内聚(,Cohesion,),低,功能,,内聚,信息,,内聚,通信,,内聚,过程,,内聚,时间,,内聚,逻辑,,内聚,巧合性内聚,高,强,弱,,内聚,性,模块独立性,2024/11/26,偶然性内聚,M STO
58、RE RECN() TO N,,READ MASTRE FILE,,ADD 1 TO X,,。。。 。。。,A,B,C,当模块内各部之间没有联系,或者即使有联,,系,这种联系也很松散。则称这种模块为巧合内,,聚模块。,2024/11/26,逻辑性内聚,这种模块是把几种功能组合在一起,每次,,调用时,则由传递给模块的判定参数来确定该,,模块应执行哪一种功能。,调用模块,判定,,读,,一,,个,,记,,录,,,写,,一,,个,,记,,录,,被调用模块,,2024/11/26,,S,X,Y,Z,W,A,B,C,D,S,X,Y,Z,W,ABCD,2024/11/26,信息性内聚,这种模块能完成多个功
59、能,各个功能都在同,,一数据结构上操作,每一项功能有一个唯一的入,,口点。,,,,,符 号 表,,,,,查找,登录,删除,修改,2024/11/26,功能性内聚,如果一个模块内所有成分都完成一个功能,,则称这样的模块为功能模块。,主控模块,录入,查询,打印,低,功能,,内聚,信息,,内聚,通信,,内聚,过程,,内聚,时间,,内聚,逻辑,,内聚,巧合性内聚,高,强,弱,,内聚,性,模块独立性,2024/11/26,(2)、耦合,耦合性是程序结构中各个模块之间相互关联的度量,,它取决于各个模块之间接口的复杂程度、调用模块的方,,式以及那些信息通过接口。,低,非直接,,耦合,数据,,耦合,标记,,耦
60、合,控制,,耦合,外部,,耦合,公共,,耦合,内容,,耦合,高,弱,强,耦合性,模块独立性,2024/11/26,公共耦合,允许一组模块访问同一全局性的数据结构。,全局,,数据区,,,A,B,C,D,E,F,,B、C、E,,为公共耦合,2024/11/26,控制耦合,如果一个模块通过传送开关、标志、名字,,等控制信息,明显地控制选择另一模块的功能,,就是控制耦合。,A,模块,flag,f1,B,f2,fn,… …,2024/11/26,以上给出了 7种耦合类型,这只是从耦合,,的机制上所做的分类,按耦合的强弱程度的排,,列只是相对的关系。但它给设计人员在设计程,,序结构时提供了一决策准则。实际
61、上,开始时,,两个模块之间的耦合不只是一种类型,而是多,,种类型的混合。这就要求设计人员按照实际情,,况进行分析、比较和分析,逐步加以改进,以,,提高模块的独立性。,2024/11/26,4.5,结构化设计方法(,SD--,Structured Design,),,结构化设计方法是基于,模块化、自顶向,,下细化、结构化程序设计,等程序设计技术基,,础发展起来的。,,它所提供的方法和原则,主要是用来指,,导软件的,概要设计,。它还提供了一种,“,结构,,图,”,的描述工具,是专门用来描述软件的总,,体结构的。,,,2024/11/26,结构化设计属于,面向数据流,的设计方法。,,在软件的需求分析
62、阶段,数据流是软件开发人员考虑问题的出,,发点和基础。数据流从系统的输入端向输出端,则要经历一系列的,,变换或处理。用来表现这个过程的数据流(,DFD,),,实际上就是软件,,系统的逻辑模型。,,面向数据流的设计要解决的任务,就是在上述需求分析的基础,,上,将,DFD,图,映射(,Mapping)---,软件系统的结构,。,,换句话说,这类设计方法,允许把用,DFD,图表示的系统逻辑模,,型,很方便地转换成对于软件结构的初始设计描述。,,结构化设计方法中,软件的结构一律用,SC,图来描述。,2024/11/26,结构化设,,计的,目的,使,程序的结构,尽可能反,,映,要解决的问题的结构,结构化
63、设,,计的,任务,完成目标系统的—,,系统结构图(,SC,),2024/11/26,目标系统的,DFD,SC,图,---,Structured Chart,该图常用来表示系统的,软件结构,。利用它可以清楚地表达软件结构中,模块间的层次调用关系和模块之间的联系,。,SD,目标系统的,SC,2024/11/26,A,SC,,图中的主要内容,1、模块,--在,SC,图中用,矩形框,表示,并用名字来标记它,-- 模块调用关系,2、模块,的调用关系和接口,B,调用模块,调用模块,A,(,查询学生,),B,(,查找学生记录,),数据信号,控制信号,学,,号,查找成功信号,-- 模块间接口的表示,202
64、4/11/26,产生最佳解,得到好的输入,计算最佳解,输出结果,读输入,编辑输入,好输入,好,,输,,入,解,解,原始,,输入,原始,,输入,编辑,,结果,结果格式化,显示结果,解,格式化,,的解,SC,,图的一般格式,2024/11/26,1、在系统结构图中的模块,一、典型的系统,结构形式,原子模块: 在系统结构图中通常是指不能再分割的,,底层模块,完全因子分解系统,如果一个软件系统,它的全部实际加工,,(即数据计算或处理)都是由底层的原子模块来,,完成,而其它所有非原子模块仅仅执行控制或,,协调功能。,2024/11/26,传入模块,A,A,传入模块,,从下属模块取得数据,进行某些处理,再
65、将其结果,,传给上级模块。在此,将它传送的数据流称为逻辑输入,,数据流。,在系统结构图中有四种类型的模块:,逻辑输,,入数据流,成绩,,处理,成绩录入,2024/11/26,传出模块,,从上级模块获得数据,进行某些处理,再将其结果,,传给下属模块。在此,将它传送的数据流称为逻辑输出,,数据流。,传出模块,D,D,逻辑输,,出数据流,成绩,,处理,成绩输出,2024/11/26,变换模块,,也叫加工模块。它是从上级模块获得数据,进行,,特定的处理,将其转换为其他形式,再传回上级模块,,它所加工的数据流叫做变换数据流。,变换模块,C,B,变换,,数据流,审查并,,开发票,发票,购书单,2024/1
66、1/26,协调模块,,对所有下属模块进行协调和管理的模块。在一个,,好的系统结构图中,协调模块应在较高层出现。,协调模块,Y,X,Y,X,2024/11/26,2、典型的系统结构形式之一(,变换型,系统结构图,),取得,,数据,,i,a,e,o,变换,,数据,,给出,,数据,传入部分,变换中心,传出部分,-------- 具有变换型,数据流图,2024/11/26,,主模块,C,变换成,D,取得,C,给出,D,取得,B,B,变换成,C,D,变换成,E,给出,E,取得,A,A,变换成,B,A,A,B,B,B,C,C,D,C,D,E,D,取得,,数据,,C,D,变换,,数据,,给出,,数据,,协调模块,,变换模块,,传出模块,-------- 具有变换型,系统结构,图,DFD--SC,2024/11/26,3、典型的系统结构形式之二(事务型系统结构图,),“,事务,”,引起、触发或启动某一,,动作或一串动作的任何数据,,、控制信号、事件或状态的,,变化。,由它接受一项事务,根据事务处理的特点和性质,,,选择分配一个适当的处理单元,然后给出结果。,2024/11/26,输入,------,事
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。