欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    《软件工程》教案(本科).doc

    • 资源ID:4751012       资源大小:4.34MB        全文页数:102页
    • 资源格式: DOC        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    《软件工程》教案(本科).doc

    软件工程教案(本 科)课件资料下载:ftp:/ftp.hdss.org2023年5月目录第一章软件工程概述4§1.1软件的概念、特点及分类4§1.2软件危机5§1.3软件工程7§1.4小结12第二章系统分析13§2.1系统分析(项目计划)13§2.2问题定义13§2.3可行性研究14§2.4小结19§2.5补充实例19第三章需求分析22§3.1需求分析概述22§3.2结构化分析方法24§3.3验证软件需求28§3.4小结28§3.5补充知识28§3.6补充实例31第四章软件设计概述35§4.1软件设计概述35§4.2软件设计的策略35§4.3概要设计40§4.4结构化系统设计42§4.5小结52§4.6补充实例52第五章详细设计53§5.1详细设计概述53§5.2结构化程序设计54§5.3详细设计的描述工具55§5.4其它的软件设计方法(面向数据结构的设计方法)60§5.5程序复杂度的定量度量61§5.6小结63§5.7补充实例63第六章编码67§6.1编码的目的67§6.2编码的风格67§6.3程序设计语言69§6.4小结70§6.5补充实例70第七章测试71第八章维护75第九章面向对象分析与设计76第十章软件质量保证77第十一章软件项目计划与管理78第十二章79第十三章80第十四章81第一章 软件工程概述引论:² 随着计算机的普及与深化,软件数量急剧膨胀,同时软件成本也在逐年上升,质量得不到可靠的保证。软件开发的生产率也远远跟不上普及计算机应用的要求。由此产生了“软件危机”。软件工程正是在此情况下产生的一门新兴学科。² 学习软件工程,锻炼思维能力及解决问题的能力。² 学习软件工程,努力成为软件界的“白领”。§1.1 软件的概念、特点及分类一 软件的定义:软件是计算机系统中与硬件相互依存的另一部分,它包括程序、数据及相关文档的完整集合。其中,程序是按事先设计的功能和性能要求执行的指令序列;数据是使程序能正常操纵信息的数据结构;文档是与程序开发、维护和使用有关的图文材料。二 软件的特点:1. 软件是一种逻辑实体,而不是具体的物理实体。2. 软件的生产与硬件不同。(无明显的制造过,存在软件产品的保护问题。)3. 在软件的运行和使用期间,没有硬件那样的机械磨损、老化等问题。4. 软件的开发和运行常常受到计算机系统的限制,对计算机系统有着不同程度的依赖性。5. 软件的开发至今尚未完全摆脱手工艺的开发方式。6. 软件是复杂的。(软件复杂性来源于它所反映的实际问题的复杂性。)7. 软件成本相当昂贵。(定制产品、手工开发.成本高)8. 相当多的软件工作涉及到社会问题。三 软件的分类:1. 按软件功能划分:1) 系统软件:使计算机系统各个部件、相关软件和数据协调、高效的工作的软件。(如:操作系统,数据库管理系统,设备驱动程序等)2) 支撑软件:协助用户开发软件的工具性软件。(如:文本编辑程序,集成开发工具,图形软件包等)3) 应用软件:在特定领域内开发为特定目的服务的一类软件。2. 按软件规模划分:微型1人14周0.5K小型1人16月12K中型25人12年550K大型520人23年50100K甚大型1001000人45年1M极大型20005000人510年1M10M微型1人14周0.5K3. 按软件的工作方式划分:1) 实时处理软件:在事件或数据产生时,立即予以处理,并及时反馈信号。2) 分时软件:允许每个联机用户同时使用计算机。3) 交互时软件:能实现人通信的软件。4) 批处理软件:把一组输入作业或一批数据以成批处理的方式一次运行,按顺序逐个处理完的软件。4. 按软件服务对象的范围划分:1) 项目软件2) 产品软件§1.2 软件危机一 软件危机:指在计算机软件的开发和维护过程中所遇到的一系列严重问题。1. 软件危机包含的问题:1) 如何开发软件,以满足对软件日益增长的需求。(提高生产率)2) 如何维护数量不断膨胀的已有软件2. 软件危机的表现形式:1) 对软件开发的成本和进度的估计常常不准确。导致:成本提高,工程延期,影响信誉。权益之计:损害软件质量,又会引起用户不满。2) 用户对“以完成”的软件系统不满意的现象经常发生。原因:对用户需求不确切,缺少沟通,仓促上阵,闭门造车。导致:不符合用户要求。3) 软件产品质量往往靠不住。原因:软件可靠性和质量保证未认真执行。导致:软件质量问题。4) 软件常常是不可维护的。原因:程序结构固定、死板、变更困难、错误、难以改正,无法增加新的功能和适应新的环境。5) 软件通常没有适当的文档资料。项目负责人:用以控制整体状态,把握工程进度;开发者:用以相互交流;维护人员:维护的依据。6) 软件成本在计算机系统中成本所占比例率上升。u 微电子技术的进步和自动化程度的不断提高,导致硬件成本下降;u 软件需要手工劳动,且大规模和数量不断的扩大,导致软件成本上升。7) 软件开发生产率提高的速度,远远跟不上计算机普及、深入的趁势。“供不应求”,无法充分利用硬件。二 软件危机产生的原因:1. 与软件自身的特点有关:逻辑实体、手工开发、复杂度高、成本昂贵。2. 与开发、维护方法不正确有关:忽视用户需求,轻视软件维护。三 解决软件危机的途径:1. 技术措施:方法和工具2. 组织管理措施:从管理角度进行审查、控制。软件工程正是从技术和管理两方面研究如何更好地开发和维护计算机软件的一门新兴学科。§1.3 软件工程一 软件工程:是采用工程的概念、原理、技术和方法来指导软件开发和维护的工程学科。1. 软件工程的基本原理:(七条)是确保软件产品质量和开发效率的原理的最小的完备的集合。1) 用分阶段的生命周期计划严格管理。2) 坚持进行阶段评审。进行相应的质量保证、尽早发现错误。3) 实行严格的产品控制。实行基准配置(给过阶段评审后的软件配置成分,包括文档、程序等)管理,涉及对基准配置的参数,必须按严格规程审批。4) 采用现代的程序设计技术。如:结构化分析与设计、面向对象的分析与设计。5) 结果应能清楚地审查。规定开发组织的责任和产品标准,提高软件开发过程的可见性。6) 开发小组的人员应该少而精。开发小组人员的素质和数量是影响产品质量和开发效率的重要因素。7) 承认不断改进软件工程实践的必要性。积极采纳新技术,不断总结经验。2. 软件工程的三要素:方法、工具和过程。1) 方法:“如何做”,常采用某种特殊的语言或图形的表达方法及一套质量保证标准。2) 工具:为方法提供的软件支撑环境。(计算机辅助软件工程CASE)3) 过程:将方法和工具综合起来以达到合理、及时地进行计算机软件开发的目的。3. 软件工程项目的基本目标:1) 付出较低的开发成本。2) 达到要求的软件功能。3) 取得较好的软件性能。4) 开发的软件易于移植。5) 需要较低的维护费用。6) 能按时完成开发工作,及时交付使用。4. 软件工程的原则:1) 抽象2) 信息隐藏3) 模块化4) 局部化5) 一致性6) 完全性7) 可验证性二 软件工程的传统途径:1. 软件工程的传统途径:生命周期方法学从时间角度对软件开发和维护的复杂问题进行分解,划分为若干个阶段,每个阶段有相对独立的任务,是在阶段结束时进行技术审查和管理复审,最后产生相应的文档资料。2. 软件生命周期的划分:1) 三个时期:n 软件定义:确定工程总目标:可行性、采用的策略,需求完成的功能,需要的资源和成本,工程进度表。包括:问题定义,可行性研究,需求分析。n 软件开发:具体设计和实现。包括:概要设计、详细设计(系统设计),编码和单元测试、综合测试(系统实现)n 软件维护:使软件持久地满足用户需要。改正错误,适应新环境,满足新需求。2) 八个阶段:n 问题定义:“要解决的问题是什么?”提出关于问题性质、工程目标和规模的全面报告。n 可行性研究:“对上一个阶段所确定的问题有行的通解决办法吗?”研究问题的范围,进行成本/效率分析,探索问题是否值得解和如何解。n 需求分析:“为了解决问题,目标系统必须做到什么?”确定目标系统所应具备的功能,建立系统逻辑模型(数据流图、数据字典、简要算法)n 概要设计:概括地谈,应该如何解决问题提出几种设计方案:低成本,中等成本,高成本(“十全十美”),确定解决系统的方案和目标系统需要那些程序,设计软件的结构,确定程序模块及模块间关系(层次图或结构图)。n 详细设计:应该怎样具体地实现系统把解决具体化,设计出程序的详细规格说明(HIPO图或PDL语言)n 编码和单元测试:编写程序模块的实现代码,并对其进行测试。n 综合测试:通过各种类型的测试使软件达到预定要求。u 集成测试:根据设计的软件结构,将单元模块按某种策略装配起来进行联合测试。u 验收测试:由用户根据需求规格说明书对目标系统进行整体验收。n 软件维护:通过各种必要的维护活动使系统持久满足用户需要。u 改正性维护(21%)u 适应性维护(25%)u 完善性维护(50%)u 预防性维护(4%)3) 目的和实质:控制开发工作的复杂性,通过有限的确定步骤,把用户需求从抽象的逻辑概念转化为具体的物理实现。3. 软件生存期模型:瀑布模型,演化模型,螺旋模型,喷泉模型,智能模型。1) 瀑布模型:系统的生命周期方法学用瀑布模型来进行模拟。n 各阶段间具有顺序性和依赖性u 前阶段结束>后阶段开始。u 前阶段输出文档>后阶段输入文档。n 推迟实现的观点:设置系统分析与设计、推迟物理实现。n 质量保证的观点:u 每个阶段必须完成规定的文档u 每个阶段结束前要对文档评审,以便尽早发现问题,改正错误。2) 演化模型:(原型模型)能够克服瀑布模型的缺点、适当的减少由于软件需求不明确而给开发工作带来的风险。3) 螺旋模型:将瀑布模型与演化模型结合起来,并且加入两种模型都忽略了的风险分析,以弥补两者的不足。螺旋模型沿着螺旋线旋转,在笛卡儿坐标的四个象限上分别表达四个方面的活动:u 制定计划:确定软件目标,选定实施方案,弄清项目开发的限制条件。u 风险分析:分析所选方案,考虑如何识别和取消风险。u 实施工程:实施软件开发。u 客户评估:评价开发工作,提出修正意见。4) 喷泉模型:u “喷泉”一词体现了迭代和无间隙特性。系统某个部分常常重复工作多次,相关功能在每次迭代中随之加入演进的系统,无间隙是指在开发活动,即分析、设计和编码之间不存在明显的边界。u 支持软件复用,支持面向对象的开发方法。5) 智能模型:基于知识的软件开发模型智能模型综合了其他模型,并把专家系统结合在一起。该模型应用于基于规则的系统,采用规约和推理机制,帮助软件人员完成开发工作,并使维护在系统规格说明一级完成。三 技术审查和管理复审:1. 技术审查:保证软件质量,控制错误的积累和放大,以降低软件成本。n 技术审查的标准和方法:从前导和后续,两个阶段进行考虑。u 前导:提出解法。u 后续:实现解法。n 步骤:u 准备u 简要介绍情况u 阅读被审查文档u 开审查会u 返工u 复查2. 管理复审:对工程项目的成本、经费、投资回收前景,项目进度等经济因素,从管理角度进行审查。§1.4 小结第二章 系统分析§2.1 系统分析(项目计划)一 两个阶段:² 问题定义² 可行性研究二 目标:1. 识别用户要求2. 评价系统的可行性3. 进行经济分析和技术分析4. 把功能分配给硬件、软件、人、数据库和其它系统元素5. 建立成本和进度限制6. 生成系统规格说明,形成所有后续工程的基础§2.2 问题定义一 目的:弄清用户需要计算机解决的问题根本所在,以及项目所需的经费和资源的文档。二 主要任务:是在向用户调查的基础上,编写一个叫做系统目标与范围说明书的文档。这个说明经用户同意后,就作为下一步可行性分析的依据。三 文档:系统目标与范围说明书1. 项目名称2. 问题说明:当前工作中存在的问题3. 项目目标:用户对新系统的目标4. 项目范围:指出解决这一项目所需的投资范围5. 初步想法:对系统功能提出一些初步设想6. 可行性研究计划:对可行性研究的时间、费用进行估算§2.3 可行性研究一 可行性研究1. 目的:用最少的代价,在尽可能短的时间内弄清所定义的项目是不是可能实现和值得进行。(不是解决问题,而是确定问题是否可能解决和值得去解)2. 实质:是进行一次大大简化了的系统分析和设计的过程,即在较高层次上以较抽象的方式进行的系统分析和设计的过程。3. 研究问题解法的可行性:n 技术可行性:使用现有技术能实现这个系统吗?n 经济可行性:这个系统的经济效益能超过它的开发成本吗?n 操作可行性:系统的操作方式在这个用户组织内行得通吗?4. 根本任务:对以后的行动方针提出建议5. 步骤:1) 复查系统规模和目标改正含糊或不正确的叙述,清晰的描述目标系统的一切限制和约束,确保正在解决的问题,确实是要求解决的问题。2) 研究目前正在使用的系统了解现有系统的功能,阅读文档资料和使用手册,确定目标系统必须完成的基本功能,并解决现有系统中存在的问题。3) 导出新系统的高层逻辑模型设计过程:现有物理系统>现有系统逻辑模型>目标系统逻辑模型>新物理系统4) 重新定义问题重新复查问题定义,工程规模和目标5) 导出和评价供选择的解法技术可行性,经济可行性,操作可行性。6) 推荐行动方针是否值得开发,选择最好的解法,说明理由。7) 草拟开发计划开发计划:工程进度表,开发人员,各种资源,使用时间,系统生命周期各阶段成本。8) 书写文档并提交审查二 成本/效益分析:通过估计开发成本,运行费用和经济效益,从而达到从经济角度分析开发一个特定的新系统是否划算,帮助使用部门负责人正确的做出是否投资这项工程开发的决定。1. 成本估计:n 软件开发成本主要表现为人力消耗:人力消耗×平均工资开发费用n 成本估计技术:u 代码行技术:源代码行数×每行代码平均成本开发成本u 任务分解技术:按开发阶段划分任务(每个相对独立的开发任务的)成本累加和=开发成本u 自动估计成本技术:软件工具。2. 运行费用:n 系统操作费用(操作员人数,工作时间,消耗的物资等)n 维护费用。3. 经济效益:n 因使用新系统增加的收入n 可以节省的运行费用4. 度量效益的方法:1) 货币的时间价值:设年利率为i,现已存入P元,则n年后所得:FP*(1i)n,即为P元钱在n年后的价值。反之,若n年后能收入F元,则其在现在的价值为:PF(1i)n。2) 投资回收期:是使累计的经济效益等于最初的投资所需要的时间,是衡量一个开发工程价值的经济指标。投资回收期越短,就能越快获得利润,所以工程就越值得投资。3) 纯收入:是在整个生存期之内系统的累计经济效益(折合成现在植)与投资之差。4) 投资回收率:设P为现在的投资的投资额,Fi为第i年底的效益(i1,2,n),n为系统的使用寿命,j为投资回收率。则 (P(1j)F1)(1j)F2)(1j)Fn0即 PF1(1j)F2(1j)2Fn(1j)n。三 技术分析:评价系统概念的技术价值,同时收集有关性能,可靠性,可维护性及生产率方面的信息。1. 目的:对系统的技术可行性进行评估,指明为完成系统的功能和性能需要什么技术?需要哪些新材料、方法、算法或者过程?有什么开发风险?这些技术问题对成本的影响如何?2. 方法:n 模型化方法(数学模型、物理模型)n 优化技术n 概率和统计n 排队论n 控制论等。四 系统结构的模型化:系统流程图1. 系统流程图:是用来描述系统物理模型的一种传统工具,基本思想是用图形符号、黑盒子形式描绘系统里面的每个部件(程序、文件、数据库、表格、人工过程等),它所表达的是信息在系统各部件之间的流动情况,而不是对信息进行加工处理的控制过程。2. 描述符号:(书:P25)1) 基本符号:(如表2.1)符号名称说明处理能改变数据值或数据位置的加工或部件,例如:程序、处理机、人工加工等输入/输出表示输入或输出(或既输入又输出),是一个广义的不指明具体设备的符号连接指出转到图的另一部分或从图的另一部分转来,通常在同一页上换页连接指出转到另一页图上或由另一页图转来数据流用来连接其他符号,指明数据流动方向表2.12) 系统符号:(如表2.2)符号名称说明穿孔卡片表示穿孔卡片输入或输出,也可表示一个穿孔卡片文件文档通常表示打印输出,也可表示用打印终端输入数据磁带磁带输入/输出,或表示一个磁带文件联机存储表示任何种类的联机存储,包括磁盘、磁鼓、软盘和海量存储器件等磁盘磁盘输入/输出,也可表示存储在磁盘上的文件或数据库磁鼓磁鼓输入/输出,也可表示存储在磁鼓上的文件或数据库显示CRT终端或类似的显示部件,可用于输入或输出,也可既输入又输出人工输入人工输入数据的脱机处理,例如:填写表格等人工操作人工完成的处理,例如:会计在工资支票上签名辅助操作使用设备进行的脱机操作通信链路通过远程通信线路或链路传送数据表2.23. 实例:(书:P25-26)五 文档:1. 可行性分析报告:1) 系统概述:n 当前现有系统分析:系统描述及存在问题n 目标系统分析:系统功能和性能描述。(物理模型:系统流程图)n 当前系统与目标系统比较:目标系统的优越性。2) 可行性分析:n 技术可行性n 经济可行性n 操作可行性。3) 结论意见:n 可着手组织开发n 须待若干条件(如资源、人力、设备等)具备后才能开发n 需对开发目标进行修改n 不能进行或不必进行(如技术不成熟、经济上不合算等)n 其它2. 项目开发计划:1) 系统概述:包括项目目标,主要功能,系统特点,以及关于开发工作的安排。2) 系统资源:包括开发和运行该软件系统所需要的各种资源。如:硬件、软件、人员、组织、机构等。3) 费用预算:分阶段的人员费用,机时费用及其它费用。4) 进度安排:各阶段起止时间,完成文档及验证方式。5) 要交付的产品清单§2.4 小结§2.5 补充实例一 库存清单系统:1. 系统说明:某装配厂有一座存放零件的仓库,仓库中现有的各种零件的数量以及每种零件的库存量临界值等记录在库存清单主文件中。当仓库中零件数量有变化时,应该及时修改库存清单主文件,如果那种零件的库存量少于它的库存量临界值,则应该报告给采购部门以便订货,规定每天向采购部门送一次订货报告。该装配厂使用一台小型计算机处理更新库存清单主文件和产生定货报告的任务。零件库存量的每一次变化称为一个事务,由放在仓库中的CRT终端输入到计算机中;系统中的库存清单程序对事务进行处理,更新存储在磁盘上的库存清单主文件,并且把必要的订货信息写在磁带上。最后,每天由报告生成程序读一次磁带,并且打印出定货报告。2. 系统流程图:(如图2.5.1所示)二 教材购销系统:1. 系统说明:在教材的销售过程中,首先学生拿着购书申请到会计处审查并开具购书发票,然后到出纳处交款,并开具领书单,学生拿着领书单到书库领书;在开具购书发票的过程中,若教材存量不够,则需要进行缺书统计,然后书库根据缺书情况去采购缺书,并通知学生补购教材。2. 系统流程图:(如图2.5.2所示)第三章 需求分析§3.1 需求分析概述一 需求分析的任务:1. 基本任务:回答“系统必须做什么”?确定目标系统功能和性能。2. 具体任务:1) 确定对系统的综合要求:功能要求;性能要求;运行要求;将来可能提出的要求。2) 分析系统的数据要求:E-R图(概念模型) 。3) 导出系统的逻辑模型:数据流图,数据字典,加工处理说明书等。4) 修正系统开发计划。5) 开发原型系统:使用户对目标系统有一个更直接、更具体的概念,从而能更准确提出用户需求。(关键的困难在于成本)二 需求分析的过程:1. 问题识别:确定软件的需求。1) 功能2) 性能3) 环境4) 可靠性5) 安全保密6) 界面7) 资源8) 成本进度9) 目标2. 分析与综合:从数据流和数据结构出发,逐步细化软件功能,找出各元素之间的联系,接口特性和设计上的限制,给出目标系统的详细逻辑模型。3. 编制需求分析文档:需求规格说明书1) 任务概述:系统目标,运行环境,条件与限制2) 数据描述:n 概念模型:E-R图n 逻辑模型:数据流图n 数据定义:数据字典,加工说明n 数据库描述:名称和类型3) 功能描述:软件功能要求4) 性能描述:软件性能要求(处理速度、响应时间、安全限制等)。5) 运行描述:用户界面、硬件接口、软件接口、故障处理等。6) 质量保证:阐明软件在交付使用前需要进行的功能测试和性能测试,并且规定源程序和文档遵守的各种标准。4. 技术审查和管理复审。三 需求分析的原则:1. 必须能够表达和理解问题的数据域和功能域1) 数据域:数据流,数据内容和数据结构。2) 功能域:加工变换。2. 必须按自顶向下,逐层分解的方式对问题进行分解和不断细化。3. 要给出系统的逻辑视图和物理视图。1) 逻辑视图:给出软件要达到的功能和要处理的数据之间的关系。2) 物理视图:给出处理功能和数据结构的实际表示形式。四 需求分析的方法:1. 需求分析方法:是由对软件的数据域和功能域的系统分析过程及其表示方法组成。包括:面向数据流,面向数据结构。2. 不同的需求分析方法具有的共性:1) 支持数据域分析的机制:所有方法都直接或间接地涉及到数据流,数据内容或数据结构等数据域的属性。2) 功能表示的方法:一般用数据变换或加工来表示。3) 接口的定义:是数据表示和功能表示的直接产物。(功能间的接口数据流)4) 问题分解的机制以及对抽象的支持:在不同抽象层次上表示数据域和功能域,以逐层细化的手段建立分层结构。5) 逻辑视图和物理视图:6) 系统抽象模型:是对现实世界中存在的有关实体和活动的抽象和精化。§3.2 结构化分析方法一 结构化分析方法:是面向数据流进行需求分析的方法,是用抽象模型的概念,按软件内部数据传递、变换的关系,自顶向下逐层分解,直到找到满足功能要求的所有可实现的软件为止。二 数据流图:1. 数据流图(DFD):是软件系统逻辑模型的一种图形表示,是从数据传递和加工的角度,以图形的方式刻画数据流从输入到输出的移动变换过程的工具。2. 组成符号:(书:P24)1) 基本符号:(如表3.1)符号说明数据的源点/终点变换数据的处理数据存储 数据流表3.12) 附加符号:(如表3.2)符号说明数据A和数据B同时输入才能变换成数据C数据A变换成B和C数据A或B,或A和B同时输入变换成C数据A变换成B或C,或B和C只有数据A或只有数据B(但不能A、B同时)输入时变换成C数据A变换成B或C,但不能变换成B和C表3.23. 性质:1) 数据流图中的箭头仅能表示在系统中流动的数据,而不是物质流2) 数据流图与程序流程图不同,它不能表示程序的控制结构。(如:选择或循环)3) 数据流图表现的范围具有很大的灵活性,可以画分层DFD4. 分层DFD:由顶向下,逐层分解,逐步细化。1) 优点:n 便于实现:逐层细化,有利于控制问题的复杂度。n 便于使用:使用户中的不同业务人员只选择与自身有关的图形,不必阅读全图。2) 画分层DFD的指导原则:n 第一层DFD应当是基本系统模型n 注意父图和子图的平衡,维护信息的连续性n 区分局部文件和局部外部项n 掌握分解的速度,上快下慢n 遵守加工编号原则5. 举例:(书:P2527)三 数据字典:1. 数据字典:是关于数据的信息的集合,是对DFD中的所有元素定义的集合。2. 组成符号:(如表3.3)符号含义说明被定义为与例:x=a+b,表示x由a和b组成,或|或例:x=a,b,x=a|b,表示x由a或由b组成重复例:x=a,表示x由0个或多个a组成mn重复例:x=3a8,表示x中至少出现3次a,至多出现8次a()可选例:x=(a),表示a可在x中出现,也可以不出现“”基本数据元素例:x=“a”,表示x为取值为a的数据元素连接符例:x=1.9,表示x可取1到9中的任一值表3.33. 内容:名称,别名,编号,分类,描述,定义,位置等1) 数据流的描述:数据流名:说明:简要介绍作用,即它产生的原因和结果来源:来自何方去向:去向何处组成:数据结构备注:2) 数据元素(数据项)的描述:数据元素名:类型:数值,文字,长度:取值范围:相关的数据元素及数据结构:备注:3) 数据存储(数据文件)的描述:数据文件名:简述:存放的是什么数据组成:数据结构存储方式:排列顺序,关键码等备注:4) 数据源(终)点描述:名称:外部实体名简要描述:什么外部实体有关数据流:四 加工说明:1. 加工说明:是对DFD中的加工所做的描述,包括:输入数据、加工逻辑、输出数据等。2. 内容:n 加工名称n 加工编号n 输入数据流n 输出数据流n 加工逻辑n 执行次数3. 加工逻辑:阐明把输入数据转换为输出数据的策略,是加工说明的主体,在需求分析阶段,仅需要指出要加工“做什么”。而不是“怎样去做”,描述方法:结构话语言,判定表,判定树。1) 结构化语言(PDL):又称过程设计语言,伪码;它是一种介于自然语言与程序设计语言之间的语言,即具有结构化程序的清晰易读的优点,又具有自然语言的灵活性,不受程序设计语言那样严格的语法约束。2) 判定表:采用表格化的形式,适于表达含有复杂判断的加工逻辑。实例:(书:P86)3) 判定树:是判定表的图形表示,其适用场合与判定表相同。实例:(书:P87)§3.3 验证软件需求² 一致性:所有需求必须一致,不能互相矛盾。² 完整性:需求必须完整,包含用户需要的所有功能和性能。² 现实性:指定需求用现有的软、硬件技术基本上可以实现。² 有效性:必须证明需求是正确有效的,确实能解决用户面对的问题。§3.4 小结§3.5 补充知识² 概念模型1. 数据模型的表示2. 概念模型的表示方法:实体联系方法(Entity-Relationship):E-R图3. E-R图:1) 主要概念:n 实体:客观存在并相互区分的事物n 属性:实体所具有的某一特性n 联系:现实世界的事物之间的联系在信息世界的反映u 一对一联系:(1:1)u 一对多联系:(1:n)u 多对多联系:(m:n)2) 符号表示:n 用长方形表示实体型,在框内写上实体名。n 用椭圆形表示实体的属性,并用无向边把实体与其属性连接起来。n 用菱形表示实体间的联系,菱形框内写上联系名。用无向边把菱形分别与有关实体相连接,在无向边旁标上联系的类型。若实体之间的联系也具有属性,则把属性和菱形也用无向边连接上。3) 实体联系类型符号表示:4) 特点:n 两个实体型间允许多种联系n 多个实体型间可以有一个联系n 一个实体型可以和自身联系n E-R图与具体的DBMS无关,是概念模型中最常用的一种5) 举例:用E-R图表示某个工厂的物资管理的概念模型n 涉及的实体:u 仓库:仓库号,仓库面积,电话号码u 零件:零件号,名称,规格,单价,描述u 供应商:供应商号,名称,地址,电话号码,帐号u 项目:项目号,预算,开工日期u 职工:职工号,姓名,年龄,职称n 实体间的联系:u 一个仓库可以存放多种零件,一种零件可以存放在多个仓库中u 一个仓库有多个职工当仓库保管员,一个职工只能在一个仓库工作u 职工之间具有领导和被领导关系,即仓库主任领导若干保管员n E-R图表示:§3.6 补充实例一 库存清单系统:1. 系统说明:某装配厂有一座存放零件的仓库,仓库中现有的各种零件的数量以及每种零件的库存量临界值等记录在库存清单主文件中。当仓库中零件数量有变化时,应该及时修改库存清单主文件,如果那种零件的库存量少于它的库存量临界值,则应该报告给采购部门以便订货,规定每天向采购部门送一次订货报告。该装配厂使用一台小型计算机处理更新库存清单主文件和产生定货报告的任务。零件库存量的每一次变化称为一个事务,由放在仓库中的CRT终端输入到计算机中;系统中的库存清单程序对事务进行处理,更新存储在磁盘上的库存清单主文件,并且把必要的订货信息写在磁带上。最后,每天由报告生成程序读一次磁带,并且打印出定货报告。2. 数据流图:1) 顶层数据流图2) 第一层数据流图3) 第二层数据流图二 教材购销系统:1. 系统说明:在教材的销售过程中,首先学生拿着购书申请到会计处审查并开具购书发票,然后到出纳处交款,并开具领书单,学生拿着领书单到书库领书;在开具购书发票的过程中,若教材存量不够,则需要进行缺书统计,然后书库根据缺书情况去采购缺书,并通知学生补购教材。2. 数据流图:1) 顶层数据流图:2) 第一层数据流图:3) 第二层数据流图:n 销售子系统(1)n 采购子系统(2)第四章 软件设计概述§4.1 软件设计概述一 软件设计的任务:把需求阶段所产生的软件需求说明转换为用适当手段表示的软件设计文档。“做什么”>“怎么做”。二 软件设计划分两个阶段:n 概要设计:确定软件的结构,即软件组成,以及各组成成分(子系统或模块)之间的相互转换。n 详细设计:确定模块内部算法和数据结构,产生描述各模块程序的详细设计文档。三 软件设计的方法:面向数据流,面向数据结构。§4.2 软件设计的策略一 模块化设计:1. 模块、模块化:n 模块:是数据说明,可执行语句等程序对象的集合。例:过程,函数,子程序,宏等。n 模块化:是把程序划分成若干个模块,每个模块完成一个子功能,把这些模块集中起来组成一个整体,可以完成指定的功能,满足问题的要求。2. 分解:将一个复杂的问题,划分为几个较小问题。1) “将一个复杂的问题分解为许多小问题,可以减少解决问题的工作量。使原来的问题也就容易解决了。” 这是模块化设计的依据。论证:假设C(P)是度量对一个问题P理解复杂性的函数。Z(P)是度量为解决问题P所需工作量(用时间计算)的函数,则给定问题P1,P2,如果C(P1)>C(P2),那么有Z(P1)>Z(P2),即一个问题越复杂,解决它所需要的工作量就越大,需要花费更多的时间。根据人们解决一般问题的实践的经验,有下面一条客观规律存在:C(P1P2)>C(P1)C(P2)则可得到:Z(P1P2)>Z(P1)Z(P2)2) “无限分解软件,最后为了开发软件而需要的工作量小的可以忽略” 不成立。论证:随着模块数目增加,每个模块的规模减少,成本降低。但相应的设计模块间的接口成本将增加,使得软件总成本呈抛物线形状,存在最小成本区。(如图所示)3. 信息隐蔽:指每个模块的实现细节对于其他模块来说是隐蔽的,即模块中所包含的信息(数据与过程)。应不允许其他不需要这些信息的模块使用(即隐蔽起来)。只有为了完成软件的总体功能而必须在模块间交换的信息。才允许在模块间进行传递。目的:是软件的修改或错误局限在一个或几个模块内部,不会涉及软件其他部分。4. 模块独立性:模块具有独立功能,且和其他模块之间没有过多的相互作用。即每个模块完成一个相对独立的特定子功能,且和其他模块之间的关系很简单。是软件划分模块时要遵守的准则,也是判断模块构造是否合理的标准。1) 度量模块独立性的准则:内聚、耦合。n 内聚:是模块功能强度(即一个模块内部各个元素彼此结合的紧密程度)的度量。模块内部各元素之间联系越紧密,内聚性越强。n 耦合:是模块之间相对独立性(即互相连接的紧密程度)的度量。模块间连接越紧密,联系越多,耦合性越强。n 模块的独立性越高,其块内联系越紧密(内聚性强),块间联系越弱(耦合性越弱)2) 内聚: 弱 强偶然内聚逻辑内聚时间内聚过程内聚通信内聚顺序内聚功能内聚低 内 聚中 内 聚高 内 聚n 偶然内聚:模块内部各组成成分在功能上是互不相关的。例:几个模块都需要执行“读A”,“写B”等相同的一组操作,为避免重复书写,可把这些操作记成一个模块,供有关模块调用。n 逻辑内聚:通常由若干个逻辑功能相似的成分组成。例:一个用于计算机全班学生平均分和最高分的模块,无论计算那种分数,都要经过读

    注意事项

    本文(《软件工程》教案(本科).doc)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开