ImageVerifierCode 换一换
格式:DOCX , 页数:65 ,大小:84.16KB ,
资源ID:22279936      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/22279936.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(软件工程读书笔记文档格式.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

软件工程读书笔记文档格式.docx

1、1)经费预算经常突破、完成时间一再拖延。 2)开发的软件不能满足用户要求。3)开发的软件可维护性差。 4)开发的软件可靠性差。2软件危机的原因:1)软件规模越来越大,结构越来越复杂。 2)软件开发管理困难而复杂。3)软件开发费用不断增加。 4)软件开发技术落后。 5)生产方式落后。6)开发工具落后,生产率提高缓慢。四软件工程:用科学知识和技术原理来定义、开发、维护软件的一门科学。1软件工程的性质:是一门综合性的交叉学科,涉及计算机科学、工程科学、管理科学、数学等领域。2软件工程的目标:成功地建造一个大型软件系统,即达到如下目标:1)付出较低的开发成本, 2)达到要求的软件功能, 3)取得较好的

2、软件性能, 4)开发的软件 易于移植, 5) 需要较低的维护费用, 6)能按时完成开发任务,及时交付使用, 7)开发的软件可靠性高。3软件工程内容:软件开发技术和软件开发管理两方面。 软件开发技术中:研究软件开发方法、软件开发过程、软件开发工具和环境。 软件开发管理中,主要是研究软件管理科学、软件经济学、软件心理学等。4软件工程面临的问题:软件费用、软件可靠性、软件维护、软件生产率、软件重用等。1)软件费用:软件生产基本上处于手工状态,软件是知识高度密集的技术的综合产物,人力资 源远远不能适应软件这种迅速增长的社会要求,软件费用上升的势头还将继续下去。2)软件可靠性: 指软件系统能否在既定的环

3、境条件下运行并实现所期望的结果。 通常在开发中 花费 40%代价进行测试和排错,为提高可靠性就要付出足够的代价。3)软件维护:费用占软件系统费用的 2/3,而软件开发费用只占整个软件系统费用的 1/3。维护工作非常困难,效率低下。4)软件生产率: 计算机的广泛应用使得软件的需求量大幅度上升, 而软件的生产又处于手工开 发的状态,软件生产率低下,成为一个重要问题。5)软件重用:提高软件的重用性,对于提高软件生产率、降低软件成本有重要意义。第二节软件工程过程和软件生存周期1软件工程过程:规定了获取、供应、开发、操作和维护软件时,要实施的过程活动和任务。 目的是为各种人员提供一个公共的框架,以便用相

4、同的语言进行交流。包括:1获取过程:定义需方按合同获取一个系统、软件产品或服务的活动。2供应过程:定义供方向需方提供合同中的系统、软件产品或服务所需活动。3开发过程:包括需求分析、设计、编码、集成、测试、软件安装和验收活动。4操作过程:定义操作者和机构为了在规定的运行环境中为其用户运行一个计算机系统所需的 活动。5维护过程:定义维护者和机构为了修改和管理软件,使它处于良好运行状态所需要的活动。6管理过程:包括项目开始和范围定义,项目管理计划,实施和控制,评审和评价,项目完成。7支持过程:对项目的生存周期过程给予支持。它有助于项目的成功并能提高项目的质量。2软件生存周期: 指一个软件从提出开发要

5、求开始直到该软件报废为止的整个时期。 包括可行 性分析和项目开发计划、需求分析、概要设计、详细设计、编码、测试、维护等活动。划分软 件生存周期的原则:各阶段的任务应尽可能相对独立,同一阶段各项任务的性质尽可能相同, 从而降低每个阶段任务的复杂程度,简化不同阶段之间的联系,有利于软件项目开发的组织管 理。1可行性分析和项目开发计划:进行问题定义,可行性分析,制定项目开发计划。系统分析员、 用户和使用部门负责人共同讨论,生成的文档是:项目开发计划和可行性分析报告。2需求分析:准确地确定软件系统必须做什么,确定软件系统必须具备哪些功能。系统分析员 与用户交流,生成软件需求说明书。3概要设计:开发人员

6、把确定的各项功能需求转换成需要的体系结构。4详细设计:为每个模块完成的功能进行具体描述,要把功能描述转变为精确的、结构化的过 程描述。5编码:把每个模块的控制结构转换成计算机可接受的程序代码,即写成以某种特定程序设计 语言的“源程序清单” 。6测试:是保证软件质量的重要手段,其主要方式是在设计测试用例的基础上检验软件的各个 组成部分。测试分为:单元测试、集成测试、确认测试。7维护:软件周期中的时间最长的阶段。第三节软件生存周期模型、方法和工具1软件生存周期模型1模型:是为了理解事物而对事物做出的一种抽象,它忽略不必要的细节,它也是事物的一种 抽象形式、一个规划、一个程式。2软件生存周期模型是描

7、述软件开发过程中各种活动如何执行的模型。包括瀑布模型、增量模 型、螺旋模型、喷泉模型、变换模型和基于知识的模型等。3六种常用的模型1)瀑布模型: 是将软件生存周期各个活动规定为依线性顺序连接的若干阶段的模型。 它包括可 行性分析、项目开发计划、需求分析、概要设计、详细设计、编码、测试和维护。它规定了由 前至后、相互衔接的固定次序,如同瀑布流水,逐级下落,是一种整体工发模型。特点:为软件开发提供了一种有效的管理模式,根据这一模式制定开发计划,进行成本预算, 组织开发力量,以项目的阶段评审和文档控制为手段有效地对整个开发过程进行指导,所以它 是以文档作为驱动、适合于软件需求很明确的软件项目的模型。

8、它在消除非结构化软件、降低 软件的复杂性、促进软件开发工程化方面起了很大的作用。缺点: 它是一种理想的线性开发模式, 缺乏灵活性。 特别是无法解决软件需求不明确或不准确 的问题。2)增量模型: 一种非整体开发的模型, 软件在该模型中是 “逐渐” 开发出来的, 开发出一部分, 向用户展示一部分,可让用户及早看到部分软件,及早发现问题。或者先开发一个“原型”软 件。完成部分主要功能,展示给用户并征求意见,然后逐步完善,最终获得满意的软件产品。 优点:具有较大的灵活性,适合于软件需求不明确、设计方案有一定风险的软件项目。3)螺旋模型:将瀑布模型与增量模型结合起来, 加入了两种模型均忽略了的风险分析,

9、弥补了 这两种模型的不足,是一种风险驱动的模型。将开发过程分为几个螺旋周期,每个周期大致和 瀑布模型相符合,在每个螺旋周期内分为四个工作步:第一制定计划。确定目标,选定实施方 案,明确开发限制条件。第二风险分析。分析所选方案,识别风险,通过原型消除风险,第三 开发实施。实施软件开发。第四用户评估。评价开发工作,提出修改意见建立下一个周期的计 划。适合大型软件的开发,它吸收了软件工程“演化”的概念,使得开发人员和用户对 每个螺旋周期出现的风险有所了解,从而做出相应的反应。需要相当丰富的风险评估经验和专 门知识,使其应用受到一定限制。4)喷泉模型:一种以用户需求为动力,以对象作为驱动的模型,适合于

10、面向对象的开发方法, 克服了瀑布模型不支持软件重用和多项开发活动集成的局限性,其使开发过程具有迭代性和无 间隙性。无间隙是指在分析、设计、实现等开发活动之间不存在明显的边界。5)基于知识的模型:又称智能模型,将瀑布模型和专家系统结合在一起。6)变换模型:适合于形式化开发方法的模型,从软件需求形式化说明开始,经过一系列变换, 最终得到系统的目标程序。二软件开发方法:是一种使用早已定义好的技术集及符号表示习惯来组织软件生产的过程。包 括结构化方法, Jackson 方法,维也纳开发方法( VDM )、面向对象的开发方法等。1结构化方法:由结构化分析、结构化设计、结构化程序设计构成。它是一种面向数据

11、流的开 发方法。1)结构化分析: 是根据分解与抽象的原则按照系统中数据处理的流程, 用数据流图来建立系统 的功能模型,从而完成需求分析工作。2)结构化设计: 是根据模块独立性准则、软件结构准则将数据流图转换为软件的体系结构,用 软件结构图来建立系统的物理模型,实现系统的概要设计。3)结构化程序设计是根据结构程序设计原理, 将每个模块的功能用相应的标准控制结构表示出 来,从而实现详细设计。结构化方法总指导思想:自顶向下,逐步求精。基本原则是功能的分 解与抽象, 特别适合于数据处理领域的问题, 但对于规模大的项目, 特别复杂的项目不太适应, 难于解决软件重用问题,难于适应需求变化问题,难于彻底解决

12、维护问题。2Jackson 方法:一种面向数据结构的开发方法1) JSP( Jackson structure Programming )方法是以数据结构为驱动的适合于小规模的项目。当 输入数据结构无对应关系时难应用此法。2) JSD ( Jackson System Development)一个完整的系统开发方法, 首先建立现实世界的模型, 再确定系统的功能需求,对需求的描述特别强调操作之间的时序性。它是以事件作为驱动的, 是一种基于进程的开发方法。所以应用于时序特点较强的系统,包括数据处理系统和一些实时 控制系统。3维也纳开发方法( VDM )是一种形式化的开发方法,软件的需求用严格的形式

13、语言描述,然 后把描述模型逐步变换成目标系统。 VDM 是一个基于模型的方法,以指称语义为基础。主要 思想是将软件系统当作模型来给予描述,把软件的输入、输出看作模型对象,把这些对象在计 算机内的状态看作该模型在对象上的操作。目的是从软件系统最高一级抽象直到最后生成目标 的每一步都给予形式化说明,以此提高软件的可靠性。4面向对象的开发方法:基本出发点是尽能按人类认识世界的方法和思维方式来分析和解决问 题。以对象作为基本元素,它是分析问题、解决问题的核心。包括面向对象分析、面向对象设 计、面向对象实现。面向对象开发方法有 Booch 方法。 Coad 方法和 OMT 方法。统一建模语言 即 UML

14、 语言。它是面向对象的标准建模语言。3软件开发工具1软件工具一般是指为了支持软件人员开发和维护活动而使用的软件。2工具箱:一种工具支持一种开发活动。然后将各种工具简单组合起来就构成工具箱。其工具 界面不统一, 工具内部无联系, 工具切换由人工操作, 对大型软件开发与维护的支持能力有限, 无法支持一个统一的软件开发和维护过程。3软件开发环境:目的是使软件工具支持整个生存周期。4计算机辅助软件工程:软件开发的自动化,简称 CASE ,实质是为软件开发提供一组优化集成的且能大量节省人力的软件开发工具,目的是实现软件生存周期各环节的自动化并使之成为 一个整体,是软件工具和软件开发方法的结合。5软件开发

15、方法1)结构化方法可使用瀑布模型、增量模型、螺旋模型进行开发。2) Jackson方法可用瀑布模型、增量模型进行开发。3)面向对象方法一般采用喷泉模型也可用瀑布模型、增量模型进行开发。4)形式化的维也纳方法只能用变换模型进行开发。第二章软件可行性研究与项目开发计划第一节可行性研究 软件可行性研究目的是用最小的代价在尽可能短的时间内确定该软件项目是否能够开发,是否 值得去开发。1可行性研究的任务: 首先需要进行概要的分析。 初步确定项目的规模和目标, 确定项目的约 束和限制,将它们清楚地列举出来。然后,分析员进行简要的需求分析,抽象出该项目的逻辑 结构,建立逻辑模型。从逻辑模型出发,经过压缩的设

16、计,探索出若干种可供选择的主要解决 办法,对每种办法都研究它的可行性。1技术可行性:对要开发项目的功能、性能、限制和条件进行分析,确定在现有的资源条件下, 技术风险有多大,项目是否能实现。应考虑情况包括: 1)开发风险 2)资源的有效性 3)技术4)开发人员在评估技术可行性时,一旦估计错误,将出现灾难性后果。2经济可行性:进行开发成本的估算以及了解取得效益的评估,确定要开发的项目是否值得投 资开发。成本 效益分析、公司经营长期策略、开发所需的成本的资源、潜在的市场前 景。3社会可行性:要开发的项目是否存在任何侵犯、妨碍等责任问题,要开发项目的运行方式在 用户组织内是否行得通,现有管理制度、人员

17、素质、操作方式是否可行。合同、责任、 侵权、用户组织的管理模式及规范,其他一些技术人员常常不了解的陷阱等。2可行性研究的具体步骤:1确定项目规模和目标 2 研究正在运行的系统 3 建立新系统的高层逻辑模型 4 导出和评价 各种方案 5 推荐可行的方案 6 编写可行性研究报告。3可行性研究报告的主要内容: 1 引言 2 可行性研究前提 3 对现有系统的分析 4 所建议系统 的技术可行性分析 5 所建议系统的经济可行性分析 6 社会因素可行性分析 7 其他可供选择 方案 8 结论意见。第二节系统流程图一系统流程图的作用:在可行性研究过程中,要以概括的形式描述现有系统的高层逻辑模型, 并通过概要的设

18、计变成所建议系统的物理模型,可以用系统流程图来描述所建议系统的物理模 型。1系统流程图是描绘物理系统的传统工具。它用图形符号来表示系统中的各个元素,例如人工 处理、数据处理、数据库、文件、设备等。它表达了系统中各个元素之间的信息流动的情况。2系统流程图的符号( P17 P 18)第三节成本 效益分析1目的:是从经济角度评价开发一个新的软件项目是否可行。 成本 效益分析首先是估算将要开发的系统的开发成本,然后与可能取得的效益进行比较和权衡。1效益分有形效益和无形效益两种。有形效益可用货币的时间价值、投资回收期、纯收入等指 标进行度量 ;无形效益主要从性质上、心理上进行衡量,很难直接进行量的比较。

19、2系统经济效益等于因使用新的系统而增加的收入加上使用新的系统可以节省的运行费用。运 行费用包括操作人员人数,工作时间、消耗的物资等。2有形效益分析方法1货币的时间价值:通常用利率表示货币的时间价值。2投资回收期:衡量一个开发项目的价值,即使累计的经济效益等于最初的投资费用所需的时 间越短,越快获得利润,越值得开发。3纯收入:在整个生存周期之内的累计经济效益(折合成现在值)与投资之差。第四节项目开发计划项目开发计划的主要内容为: 1项目概述 2实施计划 3人员组织及分工 4 交付期限。 第三章软件需求分析第一节需求分析的任务1概念: 需求分析是指开发人员要准确理解用户的要求, 进行细致的调查分析

20、, 将用户非形式 的需求陈述转化为完整的需求定义, 再由需求定义转换到相应的形式功能规约 (需求规格说明) 的过程。1难点: 1)问题的复杂性 2)交流障碍 3)不完备性和不一致性 4)需求易变性2基本原则:1)必须能够表达和理解问题的数据域和功能域。 数据域包括数据流 (即数据通过一个系统时的 变化方式)数据内容和数据结构,而功能域反映上述三个方面的控制信息。2)可以把一个复杂问题按功能进行分解并可逐层细化。3)建模: 建立模型可以帮助分析人员更好地理解软件系统的信息、 功能行为这些模型也是软件设计的基础。2需求分析的基本任务1问题识别:双方确定对问题的综合需求,包括: 1 )功能需求 2

21、)性能需求 3)环境需求 4 )用户界面需求,另外还有可靠性、安全性、保密性、可移植性、可维护性方面的需求,一般通 过双方交流、调查研究来获取,并达到共同的理解。2分析与综合,导出软件的逻辑模型。3编写文档 1 )编写需求规格说明书 2 )编写初步用户使用手册 3)编写确认测试计划 4 )修改 完善软件开发计划。3需求规格说明书内容第二节结构化分析方法结构化分析( Structured Analysis ,SA )是面向数据流进行需求分析的方法,是一种建模活动, 该方法使用简单易读符号,根据软件内部数据传递,变换的关系自顶向下逐层分解,描绘出满 足功能需求的软件模型。1自顶向下逐层分解的分析策

22、略: 分解: 把一个复杂的问题划分成若干个小问题, 然后再分别 解决, 将问题的复杂性降低到人可以掌握的程度。 分解可分层进行, 先考虑问题最本质的方面,忽略细节,形成问题的高层概念,然后再逐层添加细节,即在分层过程中采用不同程度的“抽 象”级别,最高层问题最抽象,而低层的较为具体。二描述工具: SA 方法利用图形等半形式化的描述方式表达需求,工具有 1)数据流图 2)数据字典 3)描述加工逻辑的结构化语言、判定表或判定树则详细描述数据流图中不能被再分解的 每一个加工。3SA 分析步骤1了解当前系统的工作流程,获得当前系统的物理模型,这一模型包含许多具体因素,反映现 实世界的实际情况。2抽象出

23、当前系统的逻辑模型。去掉物理模型中非本质因素,抽取出本质的因素。1)本质的因素指系统固有的、不依赖运行环境变化而变化的因素,任何实现均这样做。2)非本质因素不是固有的,随环境不同而不同,随实现不同而不同。3建立目标系统的逻辑模型。4作进一步的补充和优化。第三节数据流图( DFD ) 数据流图简称 DFD 是 SA 方法中用于表示系统逻辑模型的一种工具, 它以图形的方式描绘数据 在系统中流动和处理的过程, 由于它只反映系统必须完成的逻辑功能, 所以它是一种功能模型。 一基本图形符号四种: 1) :箭头,表示数据流 2)圆或椭圆,表示加工 3)= 双杠,表 示数据存储 4)方框表示数据的源点或终点

24、。1 数据流:是数据在系统内传播的路径,因此由一组成分固定的数据项组成。必须有流向,加 工之间、加工与源终点之间,加工与数据存储之间流动,除与数据存储之间的数据流不用命名 外,数据流应该用名词或名词短语命名。2加工(数据处理) :对数据流进行某些操作或变换。每个加工也要有名字,通常是动词短语, 简明地描述完成什么加工。在分层的数据流图中,加工还应编号。3数据存储(又称文件)指暂时保存的数据,它可以是数据库文件或任何形式的数据组织。4数据源点或终点:是本软件系统外部环境中的实体,统称外部实体。一般只出现在顶层图中。 在方框的右下角加斜线则表示是同一个实体,有时数据存储也需重复标识。2画数据流图的

25、步骤1首先画系统的输入输出,即先画顶层数据流图。顶层流图,只包含一个加工,用以表示被开 发的系统,然后考虑该系统有哪些输入数据,从哪里来,有哪些输出,输出到哪里去,即定义 系统的输入、输出数据流。顶层图的作用在于表明被开发系统的范围以及它和周围环境的数据 交换关系。2 画系统内部,即画下层数据流图。一般将层号从 0 开始编号,采用自顶向下,由外向内的原则。1)画 0 层数据流图时,一般根据当前系统工作分组情况,并按新系统应有的外部功能,分解顶 层流图的系统为若干子系统,决定每个子系统间的数据接口和活动关系。2)画更下层的数据流图时,则分解上层图中的加工,一般沿着输入流的方向,凡数据流的组成 或

26、值发生变化的地方则设置一个加工,这样一直进行到输出数据流(也可从输出流到输入流方 向画)。如果加工的内部还有数据流, 则对此加工在下层图中继续分解, 直到每一个加工足够简 单,不能再分解为止,不再分解的加工称为基本加工。3注意事项:1)命名:数据流的名字代表整个数据流的内容, 而不仅是它的某些成分, 不使用缺乏具体含义 的名字。加工名也应反映整个处理的功能。2)画数据流而不是控制流。数据流图反映系统“做什么” ,不反映“如何做” ,因此箭头上的数 据流名称只能是名词或名词短语,整个图中不反映加工的执行顺序。3)一般不画物质流4)每个加工至少有一个输入数据流和一个输出数据流,反映此加工数据的来源

27、与加工的结果。5)编号:若一张数据流图中的某个加工分解成另一张数据流图时,则上层为父图,直接下层为 子图。子图应编号,子图上的所有加工也应编号,子图的编号就是父图中相应加工的编号,加 工的编号由子图号、小数点及局部号组成。6)父图与子图的平衡。 子图的输入输出数据流同父图相应加工的输入输出数据流必须一致, 即 父图与子图的平衡。7)局部数据存储: 一个局部数据存储只要当它作为某些加工的数据接口或某个加工特定的输入 或输出时,就把它画出来,这样有助于实现信息隐蔽。1局部数据存储: 当某层数据流图中的数据存储不是父图中相应加工的外部接口, 而只是本 图中某些加工之间的数据接口。8)提高数据流图的易

28、理解性。 注意合理分解, 要把一个加工分解成几个功能相对独立的子加工, 这样可减少加工之间输入、输出数据流的数目,增加数据流图的可理解性。要在分解时注意子 加工的独立性、均匀性。第四节数据字典( DD ) 数据字典是用来定义数据流图中的各个成份的具体含义,它以一种准确的、无二义性的说明方 式为系统的分析、设计及维护提供了有关元素的一致的定义和详细的描述。1DD 的内容及格式:有四类条目:数据流、数据项、数据存储、基本加工。数据项是组成数 据流和数据存储的最小元素。1数据流条目:给出了 DFD 中数据流的定义,通常列出该数据流的各组成数据项。2数据存储条目:是对数据存储的定义。3数据项条目:是不

29、可再分解的数据单位。4加工条目: 是用来说明 DFD 中基本加工的处理逻辑的,由于上层的加工是由下层的基本加工 分解而来,只要有了基本加工的说明,就可理解其他加工。2DD 的实现: 1 手工建立: DD 的内容用卡片形式存放。 2 利用计算机辅助建立并维护。 第五节加工逻辑的描述加工逻辑也称为“小说明” ,描述加工逻辑一般有三种工具:结构化语言、判定表、判定树。 一结构化语言:介于自然语言和形式语言之间的一种半形式语言。它是在自然语言的基础上加 了一些限定,使用有限的词汇和有限的语句来描述加工逻辑。结构分为外层和内层两层。1 外层:用来描述控制结构,采用顺序、选择、重复三种基本结构。2内层:采用祈使句的自然语言短语,使用 DD 中的名词和有限的自定义词,其动词语义要

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1