软件工程3-史济民讲解
软件工程2-史济民

适用场合
需求明确的中、小型软件开发
需求模糊的小型软件开发 容易分块的大型软件开发 具有不确定性大型软件开发 领域工程、行业的中型软件开 发 理想化模型,尚无成熟工具支 持 开发团队熟悉形式化方法,中 小型软件开发
形式化方法模型的特点
• 形式化规约可以用数学方法研究,而非形 式化方法则不能。 • 某些形式的不完整性和不一致性可以被自 动地检测 。 • 形式化方法所生成的分析模型比用传统的 或面向对象的方法生成的模型更完整、一 致和无二义。集合论和逻辑符号的描述使 得软件工程师能创建清晰的关于事实(需求) 的陈述。
形式化方法模型的弱点
• 形式化规约主要关注于功能和数据,而问 题的时序、控制和行为等方面却更难于表 示。 • 使用形式化方法来建立规约比其他方法更 难于学习 。 • 难以使用该模型与用户进行交流沟通,因 为几乎所有的用户对其一无所知。 • 形式化模型的开发很费时和昂贵,因为懂 形式化方法的软件开发者很少。
2.2 传统的软件过程
• 传统的过程模型
• 瀑布模型
• waterfall model • 基于软件生存周期的线性开发模型 • 快速原型模型 • rapid prototype model • 基于原型的迭代化开发模型
瀑布模型
W.Royce于1970年提 出 线性开发模型
用户要求 需求分析
• 形式化方法模型:基于程序变换和验证 技术的软件开发
• 转换模型(transformational model) • 净室模型(cleanroom model)
软件工程技术讲座

软件工程技术讲座软件教研室艾孜海尔编新疆大学数学与系统科学学院目录第1章软件工程概述 (1)1.1 软件 (1)1.1.1软件的进展 (1)1.1.2软件定义 (2)1.1.3软件的特点 (2)1.1.4软件的分类 (4)1.2 软件工程概念 (6)1.2.1软件危机与软件工程定义 (6)1.2.2软件工程的差不多内容与目标 (10)1.2.3软件工程的原则 (10)1.3 软件生存周期与软件开发模型 (11)1.3.1软件生存周期 (11)1.3.2软件开发模型 (12)第2章可行性研究 (19)2.1 问题定义 (19)2.2 可行性研究 (19)2.2.1方法、步骤 (19)2.2.2文档编写 (25)第3章需求分析 (28)3.1 需求分析的方法步骤 (28)3.2 数据流图的分析与细化 (28)3.3 需求规格说明的编写 (29)第4章概要设计 (31)4.1 概要设计的任务与步骤 (31)4.2 软件设计的概念与原则 (31)4.2.1模块化 (31)4.2.2抽象与逐步求精 (31)4.2.3信息隐藏和局部化 (33)4.2.4模块独立性 (33)4.2.5结构设计原则 (37)4.2.6概要设计文档 (38)第5章详细设计 (40)5.1 详细设计的任务与原则 (40)5.2.1详细设计的任务 (40)5.2.2详细设计的原则 (40)5.2 详细设计的方法 (40)5.2.1程序流程图 (41)5.2.2N-S图 (42)5.2.3伪代码 (42)5.3 详细设计说明书 (42)第6章编码 (44)6.1 程序设计语言 (44)6.1.1程序设计语言分类 (44)6.1.2程序设计语言的选择 (44)6.2 编码风格 (45)6.2.1源程序文档化 (45)6.2.2数据说明 (50)6.2.3语句结构 (50)6.2.4输入/输出(I/O) (53)6.3 程序效率 (53)6.3.1有关程序效率的几条准则 (54)6.3.2算法对效率的阻碍 (54)6.3.3阻碍储备器效率的因素 (54)6.3.4阻碍输入/输出的因素 (54)6.4 编程安全 (55)6.4.1冗余程序设计 (55)6.4.2防错程序设计 (56)第7章软件质量与质量保证 (58)7.1 软件质量的定义 (58)7.2 阻碍软件质量的因素 (59)7.3 软件质量保证策略 (60)7.4 软件质量保证活动 (61)7.5 软件评审 (61)7.5.1设计质量的评审内容 (62)7.5.2程序质量的评审内容 (63)7.6 软件质量保证的标准 (64)7.7 软件测试打算与测试分析报告 (65)第8章项目打算与治理 (67)8.1 软件项目特点、治理的专门性及软件治理功能 (67)8.1.1软件项目的特点 (67)8.1.2软件治理的功能 (68)8.1.3确定软件项目的工作范畴 (68)8.2 确定软件开发所需的资源 (68)8.2.1人力资源 (69)8.2.2硬件 (69)8.2.3软件 (69)8.3 人员的打算和组织 (70)8.4 成本估量及操纵 (71)8.4.1软件开发成本估量方法 (71)8.4.2专家判定技术 (71)8.4.3成本估算模型 (72)8.5 进度打算 (74)8.5.1软件工作的专门性 (74)8.5.2各时期工作量的分配 (74)8.5.3制定开发进度 (75)8.6 软件配置治理 (76)8.6.1基线 (76)8.6.2软件配置项 (77)8.6.3软件配置治理过程 (78)8.7 软件治理方案 (81)第1章软件工程概述1.1 软件软件是一种产品,同时又是开发和运行产品的载体。
软件工程设计实践变电器校验软件工程部分

上海##学院课程设计报告课程名称软件工程设计实践变电器校验院(系)计信学院专业计算机系年级2003级#学生#时间2006-2007第一学年19周-20周设计地点学院机房307指导老师签名:教研室主任(系主任)签名:学生签名:变电器校验管理系统一、课题背景、目的变电器校验管理系统是供电局对下属变电所以及变电所内的各变电器的校验信息管理。
它能通过数据的统计对各变电所的变电器提供定期的校验和管理,使总部在业务上实现了有效的管理和及时提供有效应对措施。
二、课题的内容需求分析变电器校验管理系统得需求分析分为两个过程,一是理解需求,二是分析需求。
1、理解需求(1)进入主界面,点击年份、变电所和变电器名称,查询并显示符合条件的变电器资料。
(2)主界面,点击某行取得须校验的变电器信息,查询并显示符合条件的变送器遥测量数据。
(3)单击主界面上的校验报告按钮,可显示所有的变电器校验信息。
(4)点击校验信息上的修改按钮,可以修改变电器的各属性信息。
(5)也可将校验日期,校验人,结论,结论分析添加后点击修改按钮将对应的内容添加到数据库。
(6)点击校验报告界面上的刷新按钮,即不提交修改后的数据重新初始化界面内的数据。
(7)点击校验报告界面上的退出按钮,。
2、分析需求变电器校验管理是对指定年份下的指定变电所的变电器的测量数据以及结果进行校验和确认。
共分为四个部分:安装区域,变电器遥测量数据,变电器遥测量数据的校验数据,校验结论。
变电器校验的基本功能:(1)变电器安装区域根据用户指定的信息(如年份、变电所、变电器名称),显示变电器的信息方便用户确认。
(2)变电器遥测量数据用户在变电器安装区域中显示的内容中选取需要校验的的变电器后会在本区域显示需要的变电器遥测量数据。
(3)变电器遥测量数据的校验数据此模块可以修改有关变电器以及变电器遥测量数据各个属性值。
(4)校验结论可以根据给定的校验公式进行数据的校验,然后将校验后的数据(包括校验人,校验日期,结论,结论分析)保存到数据库。
软件工程的发展及应用

『 崔杜 武.o rul r .从基 础到 应 用. 民邮 电 出版 社 4 1 P we ie 0 B d 8 人
一
8 — 6
参考 文献 :
f 史 济 民. 工程 . 教 育 出版 社 , 0 1 1 软件 高等 2 2 0 [ 张 海藩 . 件 工程 导论 . 华 大学 出版 社 2 】 软 清
『 马承 志.o r u d r . 程 实例 与技 巧 . 械 工业 出版社 3 1 P we i e 8 编 B l 0 机
针算机硬件技术的迅速发展 , 要求软件系统能与之相适应。然
而 , 期的软件 生产具 有作坊 式、 早 个体 化特 点, 软件 开发平 台单一 , 开发 工具相对 落后 , 序设计 语言功 能差 。 其是 软件维 护工作 复 程 尤 杂 ,耗费大 量的物力 、人 力与计算 机资源 , 量程序 的个 体化特 性 大 使得它们 无法维 护与修 改 。而且 ,软件 的结构变 得越来越 复杂 ,规 模 也越来 越大 ,软件维护 与管理 开发 费用 不断 增加 ,这种软 件开发 工具 、 术与生产 方式落 后的状 况与计 算机行 业对软 件的需 求 日益 技 增加形成 了很大 矛盾 。为了解 决这一 困境 , 究人员 把工程 技术 的 研 思想 引入 到软件领 域 , 软件技术 走上 工程学科 的途 径 。 欧与美 使 西 国的一些 软件研 究人 员于 16 98年 首先提 出 “ 软件工程 ”这 一学科 名 词 ,从此 软件工程 得到 了相关研 究与发 展 。 ( )软件 工程 的定 义 一 软件工 程是 一 门研 究用工 程 化 的方法 维护 与 构建 实用 的 、有 效 的 与高质 量 的软件 学科 。它 涉 及到 数据 库 、系 统平 台 、程序 设 计 语言 、软件 开 发工 具 、设计 模 式与 标准 等方 面 的 内容 。在现 代 信 息社会 中,软 件应 用在 许多 方面 。典型 的软 件如 嵌入 式 系统 、 办 公套 件 、编 译 器 、数据 库 、 电子 邮 件与游 戏 等 。工业 、银 行 、 政 府部 门、农业 、航 空 等 。这些 实 际应 用 促进 了社 会 与经 济 的 迅速 发展 ,以方 面提 高 了生活 质量 , 另一方 面 ,使 人们 的 工作 更 加 高效 。 三 、软件 工程 的方 法 与技术 当前 ,软 件 工程 中主 要使 用 的技 术 与方 法可 以分成 管理 与技 术两 类 。从技 术 角度 来看 ,软件 工程 理 论在 实 践 中应 用 时重 点在 软件 复用 。参 照 目前成 熟 的产 品 的开发模 式 , 软件 复用 可 以在软 件开 发 中规避 重复 劳动 , 以现有 成果 为基 础 ,利 用过 去 开发 应用 系统 中积 累 的经验 与理 论知 识 ,将开 发 的重 点放 在新 应用 的特有 构成 成分 上 。 从管 理的 角度 来看 ,软 件项 目管 理与 其 他项 目管 理相 比,具 有一 些不 同的特 性 。软件 项 目管 理需 要平 衡 资源 、质 量 、工 期 、 需求 这 四者之 间 的关系 ;依 靠规 范 的项 目过 程来 控制 项 目进度 , 并能 确保 及 时发现 、解 决 问题 。大 规 模 的软件 工 程项 目需要 拆
华中师范大学教育技术学硕士研究生培养方案

教育技术学专业硕士研究生培养方案(学科专业代码078401或040110 授予理学/教育学硕士学位)一、培养目标本学科专业主要培养德、智、体全面发展的,适应社会主义现代化建设需要的教育技术学专业专门人才,其具体要求是:1.努力学习马列主义、毛泽东思想和邓小平理论;坚持党的基本路线、热爱祖国、遵纪守法;有好的品德,乐于为社会主义现代化建设服务。
2.在教育技术学科方面,掌握坚实的基础理论和较系统的专业知识,熟悉该学科国内外研究的历史、现状及发展趋势,较熟练地掌握一门外国语。
3.具备能独立地从事教育技术方面的科学研究与教学工作的能力。
4.热爱教师工作,具有健康的体格和良好的心理素质。
5.毕业生可在教育研究机构、行政事业单位等从事教育技术学的研究和相关管理工作,也可在高校、中小学从事相关教学及科研工作,在企业从事培训教学系统和资源的设计与制作,在从事教育软件与资源设计与开发的公司从事开发工作。
二、研究方向华中师范大学教育技术学科现有教授20人,副教授16人,形成教育技术基础理论、教育系统设计与绩效评估、教育信息化管理与政策、教育信息资源设计与开发、知识服务&智能教学系统、数字媒体技术、数字化学习平台技术等研究方向。
1.教育技术基本理论:教育技术学内涵、外延及研究范畴;教育技术学研究方法及方法论;技术、教育与社会的辩证关系及教育技术哲学思考;教育技术学发展史与学科发展趋势;信息技术对教育发展的革命性影响;技术引发学习方式变化与教学模式创新研究等。
2.教学设计与绩效技术:本方向主要研究教学系统设计的方法、策略、模式、评价等基本问题;新媒体支持下的教学系统设计基本方法;绩效技术基本理论及其在教育、企业或组织中的学习、培训或训练中的应用。
3.教育信息化管理与决策:本方向主要进行国内外教育信息化发展战略比较研究、教育信息化智能评测与决策系统研究、我国不同区域教育信息化发展趋势研究、教育信息资源配置的策略和机制研究、区域教育资源的共享模型和方法学研究、区域教育信息化中信息资源与组织体系等建设理论研究。
软件工程(史济民第三版)软件工程

软件工程——原理、方法与应用绪论1.什么是软件危机?为什么会产生软件危机?答:软件危机是指在计算机软件的开发和维护过程中遇到的一系列严重问题。
1.软件维护费用急剧上升,直接威胁计算机应用的夸大。
2.软件生产技术进步缓慢2. 什么是软件生产工程化?工程化生产方法与早期的程序设计方法主要差别在哪里?答:结构化程序设计地出现,使许多产业界认识认识到必须把软件生产从个人化方式改变为工程化。
采用工程的概念、原理、技术和方法开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程,同时这也是工程化生产方法。
3. 分别说明(1)软件开发方法与开发工具;(2)软件技术与软件管理的相互关系。
答:(1)工具和方法,是软件开发技术的两大支柱,它们密切相关。
当一种方法提出来并证明有效后,往往随之研制出相应的工具,来帮助实现和推行这种方法。
新方法在推行初期,总有人不愿接受和采用。
若将新方法融合于工具之中,使人们通过使用工具来了解新方法,就能更快促进新方法的推广。
(2)在工业生产中,即使有先进的技术和设备,管理不善的企业也不能获得良好的效益。
软件在生产中不能按质按时完成计划,管理混乱往往是其中的重要原因。
所以对于一个理想的软件工程环境,应该同时具备技术和管理两个方面。
4.试从你的亲身实践,谈谈软件工具在软件开发中的作用。
答:用C开发一个软件,是校园一卡通的模块。
首先,要在编辑程序支持下在计算机中输入源程序。
然后编译程序,把源程序翻译成目标程序。
如果发现错误,就重新调入编辑程序对源程序进行修改。
编译通过后,再调用连接程序吧所有通过了编译目标程序连同与之有关的程序连接起来,构成一个能在计算机上运行的可执行软件。
编译程序,编辑程序,连接程序以及支持他们的计算机操作系统,都属于软件工具。
离开这些工具,软件开发就是去了支持,变得十分困难和低效,甚至不能运行。
软件工程-原理、方法及应用(史济民第三版)答案范文

答:以面向对象程序设计为基础。
7.软件按规模大小可分成哪几类?简述软件工程中各型软件开发中的作用。
答:按规模分为极小、小、中、大、甚大、极大。
(1)中小型软件:软件工程对改进软件质量,提高程序员生产率和满足用户的需求,有很大的作用。
软件开发模型
1.什么是软件生存周期?把生存周期划分为阶段的目的是什么?
答:软件生存周期划分为计划、开发和运行3个时期;把整个生存周期划分为较小的阶段,给每个阶段赋予确定而有限的任务,就能够化简每一步的工作内容,使因为软件规模而增长而大大增加了软件复杂性变得交易控制和管理。
2.传统的瀑布模型把生存周期分为哪些阶段?瀑布模型软件开发有哪些特点?
8. DFD和CFD有什么区别?
答:
9.什么是系统的行为模型,如何建立?
答:类对象模型所表示的是面向对象分析模型中的静态部分,而对象行为模型则用于描述系统的动态行为,即系统如何对应外部事件---系统的行为模型。
建立一个对象行为模型一般要经历一些过程:评估所以的用例来理解系统中的交互序列;找出驱动交互序列的事件;为每个用例创建事件轨迹;为对象创建状态转换图。
答:瀑布模型在编码以前安排了分析阶段和设计阶段;阶段间具有顺序性和依赖性。
3.说明文档和复审对于软件质量的控制的作用。
答:每一阶段都要完成规定的文档,没有完成文档,就认为没有完成该阶段的任务。软件开发是许多人共同参加的计划,完整与合格的文档,不仅是开发时期软件人员之间互相通信的媒介,也是运行时期对软件进行维护的中要依据。每一阶段都要对已完成的文档进行复审,以便尽早发现问题,消除隐患。愈是早期潜伏下来的故障,暴露出来的时间愈晚,排除故障需付出的代价也就愈高。及时复审是保证软件质量,降低开发成本的重要措施。
软件工程——原理、方法与应用(第3版本)史济民-顾春华-版知识点整理(完整版)410

黑盒测试
定义:是根据被测试程序的功能来进行测试,也称为功能性测试 方法:
i. 等价分类法 ii. 边界值分析法 iii. 错误猜测发 iv. 因果图法
白盒测试
定义:以程序的结构为依据,又称结构测试 常用方法:
i. 逻辑覆盖法 ii. 路径测试法
30. 软件的维护
定义:在一个软件产品交付使用后对其进行修改,以纠正故障、改进其性能和其 他
27. 软件设计一般包括
1) 数据设计(DD、E-R) 2) 体系结构设计(DFD)
3) 接口设计(DFD) 4) 过程设计(STD,控制规格说明、加工规格说明)
28. 传统的软件设计
1) 概要设计 i. 结构设计 ii. 接口设计
iii. 编写概要设计文档 2) 详细设计
i. 确定各个软件部件的数据结构和操作,产生描述各软件部件的详细设计文档
26. 试比较 3 种不同的设计思想
a) 面向过程的思想: i. 各模块功能可能相互交叉或重叠,模块间常常存在数据的共享或数据结构的 共享
b) 面向功能的思想: i. 各模块的功能单一,如能将它们与其他模块的数据共享降到最低限度,就可 以在某些应用中重用
c) 面向对象的思想: i. 各模块是一个个独立的单位,不仅重用性较好,而且易于测试,联调和维护
14. 传统软件工程方法与面向对象的区别、各自的优缺 点
区别: 前者是面向过程的语言,一切以算法为核心 后者是面向对象的语言,构成类的封装机制,跟好的实现了代码的服用性能,依 据
高内聚、低耦合的思想核心
传统的软件工程主要指结构化软件工程方法
优点: 1) 整体思路清楚,目标明确 2) 设计工作中阶段性非常强,有利于系统开发的总体管理和控制 3) 在系统分析时可以诊断出原系统中存在的问题和结构上的缺陷