软件工程导论(第六版)_第1页
软件工程导论(第六版)_第2页
软件工程导论(第六版)_第3页
软件工程导论(第六版)_第4页
软件工程导论(第六版)_第5页
已阅读5页,还剩522页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、软件工程,信息科学学院信息安全系,第1章:软件工程概述,1.1软件危机在20世纪60年代中期之前:通用硬件相当普遍,但软件是为特定应用程序编写的。从60年代中期到70年代中期:软件研讨会。软件危机:计算机软件开发和维护中遇到的一系列严重问题。(正常和异常运行的软件都有这个问题),1.1.1引入软件危机,1)对软件开发成本和进度的估计往往不准确;2)用户经常对完整的软件系统不满意;3)软件产品的质量经常不可靠;软件危机的典型表现:4)软件通常不可维护;5)软件通常没有适当的文档;6)软件成本在计算机系统总成本中的比重逐年增加;7)软件开发的生产率跟不上计算机应用的发展趋势。1.1.2软件危机的原

2、因,1)软件本身的特性造成的;2)软件开发和维护方法不正确。主要表现为:(1)忽视软件需求分析;认为软件开发就是编写程序并使其运行;(c)轻视软件维护;在软件开发的不同阶段,修改的成本是非常不同的:(1)推广和使用在实践中总结出来的软件开发的成功技术和方法,并研究和探索更有效的技术和方法;2)开发和使用更好的软件工具;3)良好的组织管理措施。1.1.3解决软件危机的途径,为了解决软件危机所带来的问题,软件工程和方法论逐渐产生,然后出现了两个相互继承、侧重点不同的学科:1)软件工程:一个跨学科的学科,主要研究应用工程方法和技术进行软件开发和维护的方法、工具和管理。2)程序设计方法论:一门主要通过

3、数学研究程序的性质和程序设计的理论和方法的学科。软件是指由程序、数据和文档组成的配置。包含与数据处理系统操作相关的程序、法规、规则和相关文件的智力创造称为软件。文件描述了程序开发的过程,是知识创造的真实记录,是历史档案和创造活动的结晶。虚拟软件的描述性定义:软件由计算机程序、数据结构和文档组成。软件质量被定义为“与软件产品满足特定和隐含需求的能力相关的特征和特性的总和”,具体而言:1)软件产品中能够满足给定需求的属性和特性的总和;2)软件具有所需的各种属性的组合程度。v将软件质量属性划分为六个特征(功能性、可靠性、易用性、效率、可维护性和可移植性),它们面向用户和面向管理,并被定性描述。1.2

4、软件工程,1.2.1软件工程导论,1968年北约会议:软件工程是建立和使用完美的工程原理,以便经济地获得能在实际机器上有效运行的可靠软件。IEEE,1993:软件工程指的是(1)将系统的、标准化的和可测量的方法应用于软件开发、操作和维护;(2)研究(1)中提到的方法。1.软件工程侧重于大型程序的构建;2.软件工程的中心任务是控制复杂性;3.软件经常变化;4.开发软件的效率非常重要;5.和谐的合作是软件开发的关键。6.软件必须有效地支持其用户;7.在软件工程领域,具有一种文化背景的人为具有另一种文化背景的人创造产品。软件工程的本质特征:软件工程项目的基本目标:(1)低成本;(2)满足功能要求;(

5、3)高性能;(4)易于移植;(5)易于维护。软件工程管理的目的:按照进度和预算完成软件计划,实现预期的经济效益和社会效益。内容:成本估算、进度安排、人员组织、质量保证、配置管理等。软件工程管理的重要性怎么强调都不为过。1.2.2软件工程的基本原理,1。分阶段生命周期计划的严格管理;2.坚持阶段审查;3.实施严格的产品控制;4.采用现代编程技术;5.结果可以清楚地回顾;6.开发团队的成员应该小而精;7.认识到持续改进软件工程实践的必要性。1.2.3软件工程方法论通常是指在软件生命周期的整个过程中使用的一套技术方法,称为方法论,也称为范例。软件工程方法论有三个要素:方法、工具和过程。软件工程方法论

6、是提供如何从技术和管理上设计和维护软件。软件开发方法:面向数据流(Jordan)方法、面向数据结构方法和面向对象方法。结构编程是详细设计的基本原则,侧重于模块功能和过程设计。其要点是采用自上而下、逐步细化的编程方法;三种基本控制结构用于构造程序,任何程序都可以由三种基本控制结构来构造:顺序、选择和循环。用于协助软件开发、操作、维护、管理和支持过程中的活动的软件称为软件工具(CASE)。传统方法也被称为生命周期方法或结构化范式。有三种结构方法:1)结构设计方法;2)结构化方法;3)结构化分析和设计技术(SADT) 4)JACKSON方法5)WARNIER方法,2)面向对象方法,它将数据和对数据的

7、操作紧密结合,模拟人类理解世界和解决问题的方法和过程。面向对象方法=对象(属性和服务的封装)通过消息继承通信,1)适用于实时事务处理系统的有限状态机方法;2)适用于并行软件系统的PETRI网方法;3)基于数学概念和理论的形式方法,如SDC公司的FDM:(形式开发方法)和IBM公司的VDM:(维也纳开发方法),3。其他开发方法,1.3软件生命周期,软件生命周期:指软件从提出到最终淘汰的生存周期。软件生命周期的构成:1)软件定义;问题定义、可行性研究、需求分析、软件开发;总体设计e详细设计f编码和单元测试g综合测试3)操作和维护。1.问题定义;2.可行性研究;3.需求分析;4.总体设计(概要设计)

8、;5.详细设计;6.编码和单元测试;7.综合测试;8.维护。软件生命周期的每个阶段:1.4软件过程,软件过程:为了获得高质量的软件而要完成的一系列任务的框架,它规定了完成每个任务的工作步骤。软件过程(ISO9000):由使用资源将输入转化为输出的活动组成的系统。输入:如软件需求输出:如软件产品,1.4.1瀑布模型,1。阶段之间的顺序和依赖性,2。延迟实施的观点,3。质量保证观,优势:采用标准化方法;严格定义每个阶段提交的文件;要求在每个阶段交付的产品必须经过验证。1.4.2快速原型模型的优点:没有反馈回路,基本上是线性序列。1.4.3增量模型的优点:可以完成部分工作的产品可以在短时间内提交;它

9、可以给用户足够的时间来学习和适应新产品。一个更具风险的增量模型:1.4.4螺旋模型可以被视为一个快速原型模型,用于在每个阶段之前增加风险分析。1.4.6合理的统一过程,1。RUP软件开发经验(1)迭代开发(2)管理需求(3)使用基于组件的架构(4)可视化建模(5)整个开发过程中的软件质量验证(6)控制软件变更,1.4.7敏捷过程和极限编程,1。敏捷过程具有高效率和对变化的快速反应(1)个人和互动比过程和工具更好;(2)能够工作的软件比涵盖一切的文档更好;(3)客户合作优于合同谈判;(4)应对变化比遵循计划更好。2.极端编程敏捷过程中最著名的一个是指将良好的开发实践应用到极致,这主要用于软件需求

10、模糊的场合。1.4.8微软流程,1。微软过程标准2。微软软件生命周期(1)规划阶段(2)设计阶段(3)开发阶段(4)稳定阶段(5)发布阶段(3)。微软过程模型,问题的定义是确定为用户构建什么样的软件系统,什么样的软件名称等等。“问题”是指软件最基本的问题,例如:软件的总体目标是什么?有什么用?为那些用户设计的?1.5在问题定义阶段,问题定义报告的内容包括:1)软件项目名称;2)软件目标;3)软件用户对象;4)软件规模。问题定义是软件生命周期中最短的阶段,通常很简单,因此是实际开发中最容易被忽略的阶段。这一阶段的工作主要由系统分析员完成,他应该尽可能从更高的角度总结软件要做的工作,而不指定问题的

11、实现细节。第二章:可行性研究,可行性研究是回答“对已确定的问题有可行的解决方案吗?”。可行性研究的目的是确定问题是否有解决方案,是否值得在最短的时间内以最低的成本解决。2.1可行性研究的任务,可行性研究所需时间取决于项目规模,所需费用占项目总费用的5%。可行性研究内容:1)技术可行性技术可行性应分析各种技术因素,如:该系统能否利用现有技术实现?有合格的技术人员来开发这个项目吗?你能获得按时开发项目所需的软件和硬件资源吗?2)经济可行性为了评估经济合理性,需要考虑的问题是:该系统的经济效益能否超过其开发成本?这需要对项目进行价格/效益分析,即“投入/产出”分析。由于效益分析依赖于软件系统的特性,

12、在软件开发之前很难准确、定量地描述新系统所产生的效益,因此经常使用一些估算方法。3)可操作性可操作性评价体系将引起各方面的变化,如对组织管理模式和用户工作环境的影响。4)社会可行性社会可行性主要讨论法律和使用的可行性。例如,所开发软件的所有权,软件所使用的技术是否会引起侵权等等。2.2可行性研究步骤,1)复核系统规模和目标;2)研究当前使用的系统;3)导出新系统的高级逻辑模型(数据流图、数据字典);4)重新定义问题;5)推导和评估替代解决方案(物理解决方案);6)推荐行动计划;7)起草发展规划;8)编写文件并提交审查。2.2可行性研究步骤,2.3系统流程图(描述物理系统的工具),2.3.1符号

13、,2.3.2示例,2.4数据流程图(描述系统中数据流动的逻辑过程),2.4.1符号,注意:“处理”可以是指:单个程序、一系列程序、程序的模块,“数据存储”可以是指:文件、文件的一部分、数据库记录等。数据流图忽略错误处理、打开文件和关闭文件。2.4.2绘制数据流图示例,2.4.2绘制数据流图示例,仓库管理员,采购员,订单系统,交易,订单报告,图2.5订单系统的基本系统模型,2.4.2绘制数据流图示例,库存清单,仓库管理员,采购员,交易,订单报告,图2 2.4.2绘制数据流图示例,1)命名数据流(或数据存储)应代表整个数据流(或数据存储)的内容;不要使用没有特定含义的空名字(如“数据”和“输入”)

14、;2.4.3,c如果很难命名一个数据流(或数据存储),这可能是由于对数据流图的分解不当,所以应该尝试再次分解数据流图;2)命名进程A通常首先命名数据流,然后命名与之相关的进程;名称b应反映整个过程的功能;应尽量避免使用空动词和一般动词作为名称,如“加工”和“加工”;d通常以动词命名。如果必须用两个动词来描述整个过程的功能,那么把这个过程分解成两个过程可能更合适;如果很难命名一个过程,很可能已经发现了不适当的分解,应该考虑重新分解。通常,在命名“数据源点/端点”时,使用它们在问题字段中使用的名称(如“仓库管理员”和“买方”)。1)使用它作为交换信息的工具;2)作为软件分析和设计的工具。2.4.4

15、数据流图的使用,2.4.4数据流图的使用,对应于图2.8的物理实现硬件方案,2.4.4数据流图的使用,对应于图2.9的物理实现硬件方案,数据字典:数据流图中包含的所有元素的定义集合;在可行性研究阶段,数据流图和数据字典共同构成了系统的逻辑模型。2.5数据字典,2.5.1内容数据字典数据字典应定义以下元素:1)数据流;2)数据元素(数据流组件);3)数据存储;4)治疗。1)数据元素字典定义其定义的基本内容是:一个数据元素的编号、名称及其含义;数据类型和长度;合理价值;其他内容,如与其他数据的逻辑关系等。2.5.2定义数据的方法,数据元素字典定义示例:2)数据流字典定义其定义的基本内容是:数据流编

16、号和名称;b .数据流来源;数据流去了哪里;d数据流的构成;e .流通;f峰值。数据流字典定义示例:3)数据存储字典定义其定义的基本内容是:数据存储编号和名称;数据存储的构成;c其他要求。4)数据处理字典定义其定义的基本内容是:数据处理编号和名称;简要说明;输入/输出;功能描述;关于数据存储。数据处理字典定义示例:5)数据项的表示方法=“相当于”或“定义为”意味着“和|意味着”或“重复”()意味着可选地址簿=邮寄地址=姓名、邮政编码、省、市、自治区、市县街道门牌号(电话),1。作为分析阶段的重要工具;2.数据元素的控制信息非常有用;3.帮助开发数据库。2.5.3利用数据字典实现数据字典:1)程序处理;2)卡片式手工书写;2.5.4实施数据字典,2.6成本/效益分析,1)技术软件代码行成本=每一行代码的平均成本,估算的源代码行总成本,2.6.1成本估算,2)任

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论