




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、软件工程基本知识简介软件工程基本知识简介葛君伟葛君伟 教授,博士教授,博士(62460397,)主要参考教材主要参考教材张海藩,软件工程,人民邮电出张海藩,软件工程,人民邮电出版社,版社,2010。 S. L. Pfleeger,软件工程,人民,软件工程,人民邮电出版社,邮电出版社,2007.Lan Sommerville, 软件工程软件工程(英文版第英文版第7版版),Software Engineering, Seventh Edition, 机机械工业出版社,械工业出版社,2004.11,ISBN 7-111-15309-X1软件工程知识回顾软件工程知识回顾2022-5-21Junwei
2、Ge4#include void main()int a,b;coutab; int c; c=a/b;int d=a%b;coutn a/b=cend; coutn a%b=dend; 问题问题1请讨论以下请讨论以下C+程序的作用和不足?程序的作用和不足?/I/O流库头文件流库头文件/输出提示语输出提示语/对对a、b变量输入变量输入/变量可随用随定义变量可随用随定义/输出输出a除以除以b的商的商/输出输出a除以除以b的余数的余数CQUPT 葛君伟5IT is now one of the largest corporate expenses outside employee costs4Or
3、ganizations and governments spend an estimated $1 trillion on IT hardware, software, and services worldwide.4The average company spends about 4 to 5 percent of revenue on IT.4The companies that are highly IT dependentsuch as financial and telecommunications companiesspending more than 10 percent on
4、it.CQUPT 葛君伟6Governments are big consumers ofsoftware 4The United Kingdom had more than 100 major government IT projects under way that totaled $20.3 billion.4The U.S. government cataloged 1200 civilian IT projects costing more than $60 billion, plus another $16 billion for military software.CQUPT 葛
5、君伟7Governments are big consumers ofsoftware4Any one of these projects can cost over $1 billion. For example, the computer modernization effort at the U.S. Department of Veterans Affairs is projected to run $3.5 billion, while automating the health records of the UKs National Health Service is likely
6、 to cost more than $14.3 billion for development and another $50.8 billion for deployment.4Such megasoftware projects are now much more common, as smaller IT operations are joined into “systems of systems.” Air traffic control is a prime example, because it relies on connections among dozens of netw
7、orks that provide communications, weather, navigation, and other data.2022-5-21Junwei Ge8问题问题2你应如何开发一个电信业务管理系统?你应如何开发一个电信业务管理系统?2022-5-21CQUPT91软件工程知识回顾软件工程知识回顾1.1软件工程的基本概念软件工程的基本概念vWhat is software?v具有以下特征的实体具有以下特征的实体(Entities)可以被看成软件。可以被看成软件。 They Are Non-tangible, and Non-physical, but Often Inte
8、nded to Manage Tangibles. Hierarchical Structure Is a Common Feature. They Consist of Components Having Different Purposes. All Are Expected to Require Modification/Evolution. Interconnections Are Key. Analysis and Verification Are Universal Underlying Needs.2022-5-21CQUPT101软件工程知识回顾软件工程知识回顾1.1软件工程的
9、基本概念软件工程的基本概念vWhat is computer software?v具有以下特征的软件可以被看成计算机软件。具有以下特征的软件可以被看成计算机软件。 有可以在计算机上运行的程序有可以在计算机上运行的程序/代码。代码。 有可以被程序处理的数据。有可以被程序处理的数据。 有说明文档。有说明文档。2022-5-21CQUPT111软件工程知识回顾软件工程知识回顾1.1软件工程的基本概念软件工程的基本概念v软件工程的定义软件工程的定义 软件工程是软件工程师用工具和技术软件工程是软件工程师用工具和技术(方法方法),按照,按照某一过程和范例来构造软件,从而增强软件产品的某一过程和范例来构造软
10、件,从而增强软件产品的质量,更有效地解决问题。质量,更有效地解决问题。 Software engineering is the process of designing, developing and delivering software systems that meet a clients requirements in an efficient and cost effective manner. (Software Engineering: A Hands-On Approach, 2013) The IEEE Standard glossary of software engine
11、ering terminology defines software engineering as the application of a systematic, disciplined, quantifiable approach to the development, operation and maintenance of software (Ghezzi et al. 1991).2022-5-21CQUPT121软件工程知识回顾软件工程知识回顾1.1软件工程的基本概念软件工程的基本概念v软件发展的三个阶段软件发展的三个阶段 高级语言出现之前高级语言出现之前(约约1946年年1956
12、年年); 高级语言出现到软件工程出现之前高级语言出现到软件工程出现之前(约约1956年年1969年年); 软件工程阶段软件工程阶段(1969年至今年至今)。2022-5-21CQUPT131软件工程知识回顾软件工程知识回顾1.1软件工程的基本概念软件工程的基本概念v软件工程的作用软件工程的作用 解决软件危机;解决软件危机; 从从技术技术和和技术管理技术管理的角度来研究和探的角度来研究和探讨软件的设计、开发和维护问题。但由于软讨软件的设计、开发和维护问题。但由于软件本身的特点,软件产业既受技术影响,又件本身的特点,软件产业既受技术影响,又受市场影响。所以我们不能说受市场影响。所以我们不能说,只要
13、解决软只要解决软件工程问题就能推进软件产业。件工程问题就能推进软件产业。2022-5-21CQUPT141软件工程知识回顾软件工程知识回顾1.1软件工程的基本概念软件工程的基本概念v软件危机的特征软件危机的特征 从微观上看从微观上看,软件危机的特征正是表现在完软件危机的特征正是表现在完工日期一再拖后、经费一再超支工日期一再拖后、经费一再超支,甚至工程甚至工程最终宣告失败等方面。最终宣告失败等方面。 而从宏观上、从整个社会对软件的需求来看而从宏观上、从整个社会对软件的需求来看,软件危机的实质是软件产品的供应跟不上需软件危机的实质是软件产品的供应跟不上需求的增长。求的增长。2022-5-21CQU
14、PT151软件工程知识回顾软件工程知识回顾1.1软件工程的基本概念软件工程的基本概念v软件危机举例软件危机举例l丹佛国际机场的行李地下传输系统丹佛国际机场的行李地下传输系统 有有40004000台遥控车,台遥控车, 2121英里长的钢轨,英里长的钢轨, 50005000个电子眼,个电子眼, 400400台无线电接收机,台无线电接收机, 5656台条码机,台条码机, 在在2020家航空公司、柜台和行李领取处之间传送行李。家航空公司、柜台和行李领取处之间传送行李。 通过由通过由100100台计算机组成的互联网来管理该系统。台计算机组成的互联网来管理该系统。 投资投资1.931.93亿美元,亿美元,
15、 机场的开放时间拖了机场的开放时间拖了7 7个月以上。个月以上。2022-5-21CQUPT161软件工程知识回顾软件工程知识回顾1.1软件工程的基本概念软件工程的基本概念v软件危机举例软件危机举例 19931993年距伦敦年距伦敦9090英里的塞兹韦尔核电站正式英里的塞兹韦尔核电站正式投入运行投入运行, ,但是工作人员很快发现核电站的但是工作人员很快发现核电站的反应堆内温度控制失灵反应堆内温度控制失灵, ,这使得欧洲人口最这使得欧洲人口最为稠密的地区面临巨大危险。事后查明为稠密的地区面临巨大危险。事后查明, ,在在反应堆的反应堆的 主要保护系统主要保护系统 中中, ,有一个有一个1010万行
16、万行代码的控制软件几乎有一半未能通过测试。代码的控制软件几乎有一半未能通过测试。2022-5-21CQUPT171软件工程知识回顾软件工程知识回顾1.1软件工程的基本概念软件工程的基本概念v软件危机举例软件危机举例 8080年代中年代中, ,加拿大一家原子能公司生产的、加拿大一家原子能公司生产的、由微处理机控制的癌症治疗仪由微处理机控制的癌症治疗仪, ,在美国和加在美国和加拿大的多家医院使用均告失灵拿大的多家医院使用均告失灵, ,致使致使6 6个病人个病人因受超剂量辐射而死亡或受到严重伤害。因受超剂量辐射而死亡或受到严重伤害。2022-5-21CQUPT181软件工程知识回顾软件工程知识回顾1
17、.1软件工程的基本概念软件工程的基本概念v软件危机举例软件危机举例 海湾战争中海湾战争中, ,一个软件故障打乱了一个软件故障打乱了 爱国者爱国者 导弹雷达跟踪系统导弹雷达跟踪系统, ,使导弹发射后未能迎击使导弹发射后未能迎击对方的对方的 飞毛腿飞毛腿 导弹导弹, ,反而轰击了自己的军反而轰击了自己的军营营, ,造成造成2828名士兵丧生、名士兵丧生、9898人受伤。人受伤。2022-5-21CQUPT191软件工程知识回顾软件工程知识回顾1.1软件工程的基本概念软件工程的基本概念v软件危机举例软件危机举例 19961996年欧洲航天局发射的阿丽亚娜年欧洲航天局发射的阿丽亚娜5 5型火箭型火箭,
18、 ,发射发射4040秒钟后火箭爆炸秒钟后火箭爆炸, ,发射场上发射场上2 2名法国士名法国士兵当场死亡兵当场死亡, ,耗资耗资1010亿美元、历时亿美元、历时9 9年的航天年的航天计划严重受挫计划严重受挫, ,引起了国际宇航界的震惊。引起了国际宇航界的震惊。事故发生后事故发生后, ,专家组的调查分析报告指明专家组的调查分析报告指明, ,爆爆炸的根本原因在于惯性导航系统软件中技术炸的根本原因在于惯性导航系统软件中技术要求和设计的错误。要求和设计的错误。2022-5-21CQUPT201软件工程知识回顾软件工程知识回顾1.1软件工程的基本概念软件工程的基本概念v软件危机举例软件危机举例 德国电话计
19、费系统的软件问题德国电话计费系统的软件问题, ,造成用户需造成用户需交付不合理电话费的事件交付不合理电话费的事件, ,引起了公众的抗引起了公众的抗议。议。2022-5-21CQUPT211软件工程知识回顾软件工程知识回顾1.1软件工程的基本概念软件工程的基本概念v软件危机举例软件危机举例 2006年年10日日13时时28分,中国民航信息网络股分,中国民航信息网络股份公司在首都机场的离港系统发生故障,导份公司在首都机场的离港系统发生故障,导致机场部分航班无法办理值机手续。北京、致机场部分航班无法办理值机手续。北京、广州、深圳、长沙机场至少广州、深圳、长沙机场至少84个离港航班发个离港航班发生延误
20、。而发生航班延误的机场,由于延误生延误。而发生航班延误的机场,由于延误航班较多,机场人满为患。航班较多,机场人满为患。 2022-5-21CQUPT221软件工程知识回顾软件工程知识回顾1.1软件工程的基本概念软件工程的基本概念v软件危机举例软件危机举例更多的例子更多的例子2022-5-21CQUPT231生命周期知识回顾生命周期知识回顾1.1软件工程的基本概念软件工程的基本概念v软件危机举例软件危机举例更多的例子更多的例子CQUPT 葛君伟24国内失败案例 4资源一号资源一号02型型 飞行两年,在飞行两年,在1473圈,变轨没有成功圈,变轨没有成功 发现是潜通道问题。系统实现是分散到五发现是
21、潜通道问题。系统实现是分散到五个子程序,变量在前一个模块被清掉,需个子程序,变量在前一个模块被清掉,需要姿态正常,才能开发动机。要姿态正常,才能开发动机。 方法:把部分程序重新设计,再送上去方法:把部分程序重新设计,再送上去CQUPT 葛君伟25国内失败案例 4三号卫星三号卫星 2004年年11月发射,月发射,12月月-05.1,有四次进入异,有四次进入异常工作模式。常工作模式。 分析:异常指令内存传下来分析,发现是分析:异常指令内存传下来分析,发现是轨道计算发现寻址跳变。减法运算指令,是轨道计算发现寻址跳变。减法运算指令,是否带进位关系到结果正确。否带进位关系到结果正确。CQUPT 葛君伟2
22、6国内失败案例4神州飞船神州飞船 返回的前天晚上,发现异常,发现发动返回的前天晚上,发现异常,发现发动机通讯有短暂不成功。机通讯有短暂不成功。4神州二号神州二号 发射逃逸模式,发出指令却没有转化到发射逃逸模式,发出指令却没有转化到逃逸模式。逃逸模式。 问题:时间清零问题问题:时间清零问题CQUPT 葛君伟27The problem only gets worse as IT grows ubiquitous4Failure can be defined as the total abandonment of a project before or shortly after it is del
23、ivered.4Of the IT projects that are initiated, from 5 to 15 percent will be abandoned before or shortly after delivery as hopelessly inadequate. 4Many others will arrive late and over budget or require massive reworking.4Few IT projects, in other words, truly succeed.CQUPT 葛君伟28WHEN A SOFTWARE PROJE
24、CT FAILS4The failure doesnt reflect projects that exceed their budgetswhich most projects do, that delivered latewhich the majority are, that have to start over once a project is abandoned, or that are bug-ridden systems which have to be repeatedly reworked. 发生用户诉讼的项目。4包括以上所有浪费的费用,仅美国每年在软件开发上浪费的费用就在
25、60-70 billion美元。这些钱 可以发射太空飞船100次, 建造由24颗卫星组成的GPS系统,或者 从头研制开发Boeing 777飞机,还要剩余几billion美元。2022-5-21CQUPT291软件工程知识回顾软件工程知识回顾1.1软件工程的基本概念软件工程的基本概念v出现大量软件开发失败的主要原因出现大量软件开发失败的主要原因 A complex software system comprises individual adaptive systems whose behavior and interactions change over time. These change
26、s are usually not centrally planned, but arise from independent processes and decisions within and outside the complex software system. 因此,软件的适应能力差是主要原因。v出现大量软件开发失败的根本原因?出现大量软件开发失败的根本原因?2022-5-21CQUPT301软件工程知识回顾软件工程知识回顾1.1软件工程的基本概念软件工程的基本概念v软件工程的地位软件工程的地位v1991年,年,ACM和和IEEE-CS的计算学科教程的计算学科教程CC1991专题组将
27、软件工程列为计算学科的九个知识领域之专题组将软件工程列为计算学科的九个知识领域之一。一。v2001年,年,CC2001将计算科学划分为将计算科学划分为5个相对独立的个相对独立的部分:计算机科学,计算机工程,软件工程,信息部分:计算机科学,计算机工程,软件工程,信息系统和信息技术。系统和信息技术。v2004年年8月,全世界月,全世界500多位来指大学、科研机构和多位来指大学、科研机构和企业的专家、教授推出了软件工程知识体和软件工企业的专家、教授推出了软件工程知识体和软件工程教育知识体程教育知识体(SEEK),标志着软件工程学科在世界,标志着软件工程学科在世界范围正式确立。范围正式确立。v2011
28、年,教育部正式将软件工程列为一级学科。年,教育部正式将软件工程列为一级学科。2022-5-21CQUPT311软件工程知识回顾软件工程知识回顾1.1软件工程的基本概念软件工程的基本概念v软件工程学科软件工程学科vSoftware engineering is the discipline that aims at providing, evaluating, and improving methods, techniques, processes, and tools for the development of defect-free software that fulfills the n
29、eeds of customers and users within time and budget constraints.摘自摘自Perspectives on the Future of Software Engineering,20132022-5-21CQUPT321软件工程知识回顾软件工程知识回顾1.1软件工程的基本概念软件工程的基本概念v软件工程的十个知识域软件工程的十个知识域v 软件需求软件需求软件工程基础软件工程基础v 软件设计软件设计软件工程核心软件工程核心v 软件构造软件构造v 软件测试软件测试v 软件维护软件维护v 软件配置管理软件配置管理v 软件工程管理软件工程管理基
30、础设施管理,项目管理,度量和控制计划基础设施管理,项目管理,度量和控制计划v 软件工程过程软件工程过程v 软件工程工具和方法软件工程工具和方法v 软件质量软件质量2022-5-21CQUPT331软件工程知识回顾软件工程知识回顾1.1软件工程的基本概念软件工程的基本概念v软件工程的传统途径软件工程的传统途径生命周期方法学生命周期方法学 对复杂问题进行分解对复杂问题进行分解 逐步完成每个阶段的任务逐步完成每个阶段的任务 阶段审查的主要标准是高质量的文档阶段审查的主要标准是高质量的文档2022-5-21CQUPT341软件工程知识回顾软件工程知识回顾1.1软件工程的基本概念软件工程的基本概念v软件
31、的生命周期软件的生命周期(LifeCycle): 计划计划 需求分析需求分析 设计设计 程序编写程序编写 测试测试 运行维护等六个步骤运行维护等六个步骤2022-5-21CQUPT351软件工程知识回顾软件工程知识回顾1.1软件工程的基本概念软件工程的基本概念v瀑布式模型瀑布式模型( (waterfall model)waterfall model)系统需求分析系统需求分析软件需求分析软件需求分析设计设计编码编码测试测试维护维护2022-5-21CQUPT361软件工程知识回顾软件工程知识回顾1.1软件工程的基本概念软件工程的基本概念v原型开发模型原型开发模型( (rapid prototyp
32、ing)rapid prototyping)需求分析需求分析快速设计快速设计建立原型建立原型用户评价原型用户评价原型修改原型修改原型生产产品生产产品2022-5-21CQUPT371软件工程知识回顾软件工程知识回顾1.1软件工程的基本概念软件工程的基本概念v面向对象生存期模型面向对象生存期模型(object-oriented software engineering)CQUPT 葛君伟38软件工程模型软件工程模型v螺旋模型螺旋模型( (spiral model)spiral model)CQUPT 葛君伟39软件工程模型软件工程模型v增量模型示意图增量模型示意图2022-5-21CQUPT40
33、1软件工程知识回顾软件工程知识回顾1.2可行性研究可行性研究问题问题: 我想开发我想开发“互联网上身份证挂失系互联网上身份证挂失系统统”,是否可行?,是否可行?2022-5-21CQUPT411软件工程知识回顾软件工程知识回顾1.2可行性研究可行性研究v目的:确定问题是否值得去解目的:确定问题是否值得去解v任务任务 进一步分析和澄清问题的定义进一步分析和澄清问题的定义 导出系统的逻辑模型导出系统的逻辑模型 探索若干种解决方案,并分析各种方案的探索若干种解决方案,并分析各种方案的 技术可行性技术可行性 经济可行性经济可行性 操作可行性操作可行性 对以后的行动方针提出建议对以后的行动方针提出建议2
34、022-5-21CQUPT421软件工程知识回顾软件工程知识回顾1.2可行性研究可行性研究v研究目前正在使用的系统研究目前正在使用的系统 现有系统的功能现有系统的功能 现有系统的不足现有系统的不足 现有系统的经济指标现有系统的经济指标 现有系统和其它系统之间的接口情况现有系统和其它系统之间的接口情况2022-5-21CQUPT431软件工程知识回顾软件工程知识回顾1.2可行性研究可行性研究v导出新系统的系统流程图导出新系统的系统流程图 用图形符号以黑盒子形式描述物理系统的构用图形符号以黑盒子形式描述物理系统的构成。成。v导出新系统的高层逻辑模型导出新系统的高层逻辑模型 数据流图数据流图 描述数
35、据在系统中流动和处理的情况描述数据在系统中流动和处理的情况 描绘系统的逻辑模型描绘系统的逻辑模型 数据字典数据字典2022-5-21Junwei Ge44 可行性研究可行性研究 风险分析风险分析v风险:是由于从事某项特定活动过程中存在的不确定风险:是由于从事某项特定活动过程中存在的不确定性而产生的经济或财务的损失,自然破坏或损伤的可性而产生的经济或财务的损失,自然破坏或损伤的可能性。能性。v任务:针对不同项目结合具体风险分析方法,进行项任务:针对不同项目结合具体风险分析方法,进行项目风险评价,以采取有效方式进行风险管理,从而达目风险评价,以采取有效方式进行风险管理,从而达到损失最小化的目的和效
36、果。到损失最小化的目的和效果。v类型类型v 自然风险:是由于自然灾害(如水灾、火灾、地震、台风等)自然风险:是由于自然灾害(如水灾、火灾、地震、台风等)引起的项目风险。引起的项目风险。v 人为风险:是指由于人为因素带来的风险,包括行为风险、人为风险:是指由于人为因素带来的风险,包括行为风险、政治风险、经济风险、技术风险、组织风险等。政治风险、经济风险、技术风险、组织风险等。2022-5-21Junwei Ge45 可行性研究可行性研究 风险分析风险分析v过程过程v风险识别:风险识别:项目包括那些活动;各种活动存在那些风险;风险产生的原因是什么;这些风险的主次关系;各风险之间是否相关。v风险估计
37、:风险估计:风险发生的概率大小;风险概率的分布情况;风险估算。v风险评价:风险评价:给出方案,选择规则;选出最佳方案;检验各风险因素对指标的影响;对风险对策提出建议。2022-5-21Junwei Ge46 可行性研究可行性研究 风险分析风险分析v方法方法v风险识别:风险识别:专家调查法,故障树分析法,幕景分析法。v风险估计风险估计v确定型风险估计:盈亏平衡分析,敏感性分析。v不确定型风险估计:小中取大原则,大中取小原则,遗憾原则,最大数学期望原则。v随机型风险估计v风险评价风险评价v定性风险评价方法:主观评分法,层次分析法。v定量风险评价方法;风险报酬法,决策树法,外推法,等。2022-5-
38、21CQUPT471软件工程知识回顾软件工程知识回顾1.2可行性研究可行性研究v系统流程图举例系统流程图举例2022-5-21CQUPT481软件工程知识回顾软件工程知识回顾1.2 可行性研究可行性研究典型环境下各个开发阶段需要使用的典型环境下各个开发阶段需要使用的人力的百分比人力的百分比 任任 务务 人人 力力可行性研究可行性研究 5 需求分析需求分析 10 设计设计 25 编码和单元测试编码和单元测试 20 综合测试综合测试 40 总计总计 1002022-5-21CQUPT491软件工程知识回顾软件工程知识回顾1.2 可行性研究可行性研究问题问题1: 打算开发打算开发“公共场所安全监控系
39、统的公共服务平公共场所安全监控系统的公共服务平台台”,请作可行性分析。,请作可行性分析。问题问题2: 打算开发打算开发“互联网上身份证挂失系统互联网上身份证挂失系统”,请作可行,请作可行性分析。性分析。问题问题3: 某区打算开发基于云计算的社区卫生服务系统,请某区打算开发基于云计算的社区卫生服务系统,请作可行性分析。作可行性分析。2022-5-21CQUPT501软件工程知识回顾软件工程知识回顾1.3 需求分析需求分析总任务总任务确定系统必须要做什么?确定系统必须要做什么?2022-5-21CQUPT511软件工程知识回顾软件工程知识回顾1.3 需求分析需求分析具体任务具体任务 确定对系统的综
40、合要求确定对系统的综合要求 分析系统的数据要求分析系统的数据要求 导出系统的逻辑模型:导出系统的逻辑模型: 数据流图,数据字典和处理算法。数据流图,数据字典和处理算法。 开发原型系统开发原型系统2022-5-21CQUPT521软件工程知识回顾软件工程知识回顾1.3 需求分析需求分析_结构化结构化 分析系统的数据要求分析系统的数据要求2022-5-21CQUPT531软件工程知识回顾软件工程知识回顾1.3 需求分析需求分析分析的基本方法分析的基本方法结构化方法结构化方法(SA) (SA) 强调过程,强调过程, 围绕功能围绕功能面向对象方法面向对象方法( (OOA)OOA)强调方法,强调方法,
41、围绕对象围绕对象互补互补2022-5-21CQUPT541软件工程知识回顾软件工程知识回顾1.3 需求分析需求分析_结构化结构化v数据流图数据流图 处理处理+ +数据,但数据无关联数据,但数据无关联2022-5-21CQUPT551软件工程知识回顾软件工程知识回顾1.3 需求分析需求分析_结构化结构化v数据流图细化过程举例数据流图细化过程举例2022-5-21CQUPT561软件工程知识回顾软件工程知识回顾1.3 需求分析需求分析_结构化结构化v数据流图细化过程举例数据流图细化过程举例2022-5-21CQUPT571软件工程知识回顾软件工程知识回顾1. 3 需求分析需求分析_结构化结构化v数
42、据流图举例数据流图举例2022-5-21CQUPT581软件工程知识回顾软件工程知识回顾1. 3 需求分析需求分析_结构化结构化v数据字典举例数据字典举例名字:定货报表名字:定货报表别名:定货信息别名:定货信息描述:每天一次送给采购员的需要定货的零件表描述:每天一次送给采购员的需要定货的零件表定义:定货报表定义:定货报表=零件编号零件编号+零件名称零件名称+定货数量定货数量 +目前价格目前价格+主要供应者主要供应者 +次要供应者次要供应者位置:输出到打印机位置:输出到打印机2022-5-21CQUPT591软件工程知识回顾软件工程知识回顾1. 3 需求分析需求分析_结构化结构化v数据字典举例数
43、据字典举例名字:定货数量名字:定货数量别名:别名:描述:某个零件一次定货的数量描述:某个零件一次定货的数量定义:定货数量定义:定货数量=1数字数字5位置:定货报表位置:定货报表 定货信息定货信息2022-5-21CQUPT601软件工程知识回顾软件工程知识回顾1. 3 需求分析需求分析_结构化结构化v问题:问题:如何建立数据之间的联系?如何建立数据之间的联系?例如,能否定义以下关系?例如,能否定义以下关系?定货报表(零件编号,零件名称,定货数量,定货报表(零件编号,零件名称,定货数量, 目前价格,主要供应者目前价格,主要供应者 ,次要供应者),次要供应者)v这个关系好不好?这个关系好不好?20
44、22-5-21CQUPT611软件工程知识回顾软件工程知识回顾1.3 需求分析需求分析_结构化结构化什么是概念模型或信息模型?什么是概念模型或信息模型?按用户的观点来对数据和信息建模,按用户的观点来对数据和信息建模,即即建立数据之间的关系建立数据之间的关系。2022-5-21CQUPT621软件工程知识回顾软件工程知识回顾1.3需求分析需求分析_结构化结构化常用的概念模型的建模方法常用的概念模型的建模方法2022-5-21CQUPT631软件工程知识回顾软件工程知识回顾1.3需求分析需求分析_面向对象面向对象u将处理、数据和数据之间的关系聚合在将处理、数据和数据之间的关系聚合在一个模型中,即类
45、图。一个模型中,即类图。2022-5-21CQUPT641软件工程知识回顾软件工程知识回顾1.3需求分析需求分析_面向对象面向对象u对需求更直观的描述对需求更直观的描述用例图用例图2022-5-21CQUPT GE J.65 需求分析需求分析 概念模型和规范化概念模型和规范化v衡量数据聚合在一个实体或对象中是否衡量数据聚合在一个实体或对象中是否合适的方法合适的方法规范化规范化 采用分解的方法,力求使关系的语义单纯化采用分解的方法,力求使关系的语义单纯化。2022-5-21CQUPT GE J.66 需求分析需求分析 概念模型和规范化概念模型和规范化v什么是范式?什么是范式? 表示关系的某一种级
46、别表示关系的某一种级别(或消除数据冗余的或消除数据冗余的程度程度)。2022-5-21CQUPT GE J.67 需求分析需求分析 概念模型和规范化概念模型和规范化v范式定律范式定律 第一范式第一范式(1NF) 关系的每一个分量必须是不可分的数据项。关系的每一个分量必须是不可分的数据项。2022-5-21CQUPT GE J.68 需求分析需求分析 概念模型和规范化概念模型和规范化v范式定律范式定律 第二范式第二范式(2NF) 若若R 1NF,且每一个非主属性完全函数依赖于且每一个非主属性完全函数依赖于码,则码,则R 2NF。 例:运动会管理系统,下面的实体:例:运动会管理系统,下面的实体:
47、项目项目(项目编号项目编号,名称,时间,场地,成绩,名称,时间,场地,成绩); 由于项目编号不能唯一确定成绩,故不满足由于项目编号不能唯一确定成绩,故不满足2NF。 项目项目(项目编号项目编号,名称,时间,场地,成绩,名称,时间,场地,成绩,运动员运动员); 由于名称等部分函数依赖于项目编号,故不满足由于名称等部分函数依赖于项目编号,故不满足2NF。2022-5-21CQUPT GE J.69 需求分析需求分析 概念模型和规范化概念模型和规范化v范式定律范式定律 第三范式第三范式(3NF) R中若不存在这样的码中若不存在这样的码X、属性组属性组Y及非及非主属性主属性Z(Z Y)使得使得XY,Y
48、Z,Y/ / X成立,成立,则称则称R 3NF。或或 即若即若R 3NF,则每一个非主属性既不部分依赖则每一个非主属性既不部分依赖于码,也不传递依赖于码。于码,也不传递依赖于码。 例:裁判例:裁判(裁判编号裁判编号,姓名,项目编号,项目名称,姓名,项目编号,项目名称) 假设一个裁判只能执法一个项目。假设一个裁判只能执法一个项目。 项目名称项目名称项目编号项目编号裁判编号,存在传递依赖裁判编号,存在传递依赖2022-5-21CQUPT GE J.70 需求分析需求分析 概念模型和规范化概念模型和规范化v范式定律范式定律的图示的图示2022-5-21CQUPT711软件工程知识回顾软件工程知识回顾
49、1.3需求分析需求分析u讨论:讨论:“互联网上身份证挂失系统互联网上身份证挂失系统”的顶的顶层数据流图?层数据流图?2022-5-21CQUPT721软件工程知识回顾软件工程知识回顾1.4 总体设计总体设计v总体设计的任务总体设计的任务 划分出组成系统的物理元素;划分出组成系统的物理元素; 设计软件的结构。设计软件的结构。怎么从需求分析结果导出系统架构?怎么从需求分析结果导出系统架构?2022-5-21CQUPT73总体设计总体设计Software Architecture vSoftware architecture is the design and specification of ov
50、erall system structure. It defines a software system in terms of computational components (structure) and interactions among those components (topology). vComponents: are identified and assigned responsibilities that client components interact with through contracted interfaces. vInteractions: speci
51、fy communication and control mechanisms, and support all component interactions needed to accomplish system behavior. 2022-5-21CQUPT74总体设计总体设计Software Architecture vStructure issues include the description of elements from which systems are built, interactions among those elements, that is, intercha
52、nge representations and protocols, patterns that guide their composition, and constraints on these patterns. 2022-5-21CQUPT75总体设计总体设计Software Architecture vArchitecture examples procedure call, shared variable access, client-server protocols, database-accessing protocols, asynchronous event multicas
53、t, and piped streams.2022-5-21CQUPT761软件工程知识回顾软件工程知识回顾1.4 总体设计总体设计v总体设计的基础总体设计的基础 数据流图数据流图2022-5-21CQUPT771软件工程知识回顾软件工程知识回顾1.4 总体设计总体设计v总体设计的基本原理总体设计的基本原理l模块化模块化l抽象抽象摩托车整车生产和零部件生产的管理摩托车整车生产和零部件生产的管理过程过程l模块独立模块独立 模块之间低耦合,如数据耦合,控制耦合,公共模块之间低耦合,如数据耦合,控制耦合,公共环境耦合,内容耦合环境耦合,内容耦合 模块内高内聚,如功能内聚,顺序内聚,通信内模块内高内聚
54、,如功能内聚,顺序内聚,通信内聚,过程内聚,时间内聚,逻辑内聚,偶然内聚聚,过程内聚,时间内聚,逻辑内聚,偶然内聚2022-5-21CQUPT781软件工程知识回顾软件工程知识回顾1.4 总体设计总体设计v用层次图描述软件结构用层次图描述软件结构2022-5-21CQUPT791软件工程知识回顾软件工程知识回顾1.4 总体设计总体设计_结构化结构化软件结构图软件结构图数据流图数据流图获得软件结构图的基本方法获得软件结构图的基本方法面向数据流的设计方法面向数据流的设计方法2022-5-21CQUPT GE J.80 总体设计总体设计 面向数据流的设计方法面向数据流的设计方法_变换流变换流2022
55、-5-21CQUPT GE J.81 总体设计总体设计 面向数据流的设计方法面向数据流的设计方法_变换流变换流2022-5-21CQUPT82 总体设计总体设计 面向数据流的设计方法面向数据流的设计方法_变换流变换流v数字仪表板系数字仪表板系统的软件结构统的软件结构分析分析低耦合:数据耦合低耦合:数据耦合中耦合:控制耦合中耦合:控制耦合高耦合:内容耦合高耦合:内容耦合低内聚:偶然,逻辑,时间低内聚:偶然,逻辑,时间中内聚:过程,通信中内聚:过程,通信高内聚:顺序,功能高内聚:顺序,功能2022-5-21CQUPT83 总体设计总体设计 面向数据流的设计方法面向数据流的设计方法_变换流变换流v数
56、字仪表板系统的软件结构分析数字仪表板系统的软件结构分析2022-5-21CQUPT84 总体设计总体设计 面向数据流的设计方法面向数据流的设计方法_变换流变换流v数字仪表板系统的第二级分解数字仪表板系统的第二级分解2022-5-21CQUPT GE J.85 总体设计总体设计 面向数据流的设计方法面向数据流的设计方法_事务流事务流2022-5-21CQUPT861软件工程知识回顾软件工程知识回顾1.4总体设计总体设计_面向对象面向对象u类图类图2022-5-21CQUPT871软件工程知识回顾软件工程知识回顾1.4总体设计总体设计_面向对象面向对象u为了更好地描述行为之间的关系为了更好地描述行为之间的关系u状态图状态图2022-5-21CQUPT88 总体设计总体设计 讨论讨论v上述数字仪表板系统模块的独
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 心脏基础知识课件下载
- 端午节家长课件
- 心理咨询说课课件
- 委托出售专利协议书范本
- 药店聘用协议书范本
- 2025年年园区物业项目发展计划
- 心理健康课件百度
- 2025版个人经营性店铺股权交易与经营权限合同
- 2025年度绿化树木种植与土壤改良工程合同
- 二零二五年度屋顶防水改造安全施工协议
- uom理论考试题库答案及考试技巧
- 农资销售员岗位面试问题及答案
- 新型电力系统配电网网格化规划及应用
- 儿童膝过伸课件
- 槟榔地转让协议书
- 医院意识形态培训课件
- (正式版)HGT 6313-2024 化工园区智慧化评价导则
- 6人小品《没有学习的人不伤心》台词完整版
- 子宫畸形的超声诊断
- 精神科常用量表应
- esc急性肺栓塞诊断和管理指南解读
评论
0/150
提交评论