资源预览内容
第1页 / 共53页
第2页 / 共53页
第3页 / 共53页
第4页 / 共53页
第5页 / 共53页
第6页 / 共53页
第7页 / 共53页
第8页 / 共53页
第9页 / 共53页
第10页 / 共53页
亲,该文档总共53页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
课程介绍 教材:软件工程与软件文档写作 文斌 刘长青 田原著 成绩计算: 平时成绩:30% 期末考试:70% 考勤:30% 作业:70% 本课程全面系统地讲述了现代软件工程的基本概念、原理 及应用,重点是面向对象的软件开发方法、工具和过程,并 针对软件生命周期的主要阶段,结合具体案例和相关标准, 讲述软件主要文档的写作规范和技巧。 通过本课程的学习,使学生能够真正的从中了解软件开 发的整个过程,培养学生的软件工程化开发的意识和对于不 同软件文档的写作能力;使学生能够运用所学技能和标准完成 软件开发组织中文档写作的任务。特别是面向对象部分,使 用UML +Rose进行开发方法讲述和文档写作能力培养。 课程主要内容 参考资料: 1 齐治昌,谭庆平,宁洪.软件工程.北京:高等教育出版社,2001 2殷人昆.软件工程复习与考试指导.北京:高等教育出版社,2001 3郑人杰,殷人昆,陶永雷.实用软件工程第2版.北京:清华大学出版 社,1997 4张虹.软件工程与软件开发工具.北京:清华大学出版社,2004 5朱三元,钱乐秋,宿为民.软件工程技术概论.北京:科学出版社, 2002 6王国强,廖启高,王海山,等.如何写好计算机软件文档.北京:电子 工业出 版社,1994 7美PrattTW,ZelkowitzM V.程序设计语言:设计与实现第4版. 傅育熙译. 北京:电子工业出版社,2001 8吴际,金茂忠.UML面向对象分析.北京:北京航空航天大学出版社, 2002 9Pressman R. Software Engineering: A Practitioners Approach. 4th ed.北京:机械 工业出版社,1999 10 张海藩.软件工程导论第4版.北京:清华大学出版社,2003 11 刘强.软件工程教案.北京:清华同方股份公司,2003 12 刘超,张莉.可视化面向对象建模技术.北京:北京航空航天大学出版 社,1999 第1章 软件工程与软件文档 1.1软 件 软件包括程序、数据及其相关文档的完整集合; 程序是按事先设计的功能和性能要求执行的指令序列; 数据是使程序能正常操纵信息的数据结构; 文档是与程序开发、维护和使用有关的图文材料 。 程序是由程序设计语言所描述、能为计算机所识别、理解 和处理的语句序列,程序设计语言具有良好、严格的语法和 语义。 目前程序设计语言主要有以下几种类型: 面向机器,如汇编语言、机器语言等; 面向过程,如Fortran、Pascal、C等等; 面向对象,如Java等等; 面向问题,如结构化查询语言SQL等等。 软件文档是记录软件开发活动和阶段性成果、理解软 件所必需的阐述性资料。 编写软件文档的目的: 促进对软件的开发、管理和维护; 便于各种人员(用户和开发人员)的交流。 软件的形式化定义,即软件是: (1) 能够完成预定功能和性能的可执行指令; (2) 使得程序能够适当地操作信息的数据结构; (3) 描述程序的操作和使用的文档。 软件的特点 (1)软件是一种逻辑实体,而不是具体的物理实体 (2)软件的生产与硬件不同 (3)在软件的运行和使用期间,没有硬件那样的机械 磨损,老化问题 磨合 调整 磨损 用坏 修改点 实际曲线 理想曲线 硬件失效率曲线 时间 失 效 率 时间 失 效 率 软件失效率曲线 (4)软件的开发和运行常常受到计算机系统的限制,对计算机 系统有着不同程度的依赖性。为了解除这种依赖性,在软件开 发中提出了软件移植的问题。 (5)软件的开发至今尚未完全摆脱手工艺的开发方式。 (6)软件本身是复杂的。 (7)相当多的软件工作涉及到社会因素。 (8)软件成本相当昂贵。 软件的成本相当昂贵 软件技术的发展落后于需求硬、软件成本比例的变化 时间 软 件 复 杂 性 软件需求 差距 软件技术 年份 成本% 软件软件 1950197019851995 硬件 1.2 软件的分类和发展 (1) 按软件的功能进行划分 系统软件:能与计算机硬件紧密配合在一起,使计算机系统各 个部件、相关软件 和数据协调、高效工作的软件,例如,操作 系统、数据库管理系统、设备驱动程序以及通 信处理程序等。 应用软件:是在特定领域内开发,为特定目的服务的一类软件 。 支撑软件:是协助用户开发软件的工具性软件,其中包括帮助 程序人员开发软件 产品的工具,也包括帮助管理人员控制开发 进程的工具。 * 支撑软件 一般一般类类型:型: 文本文本编辑编辑 程序程序 文本格式化程序文本格式化程序 支持需求分析:支持需求分析: PSL/PSA PSL/PSA问题问题 描述描述 语语言言 关系数据关系数据库库管理系管理系 统统 支持支持设计设计 : 图图形形软软件包件包 结结构化流程构化流程图绘图绘 图图程序程序 支持支持测试测试 : 静静态态分析器分析器 测试测试 覆盖覆盖检验检验 程程 序序 支持支持实现实现 : 编辑编辑 程序程序 连连接接编辑编辑 程序程序 支持管理:支持管理: 标标准准检验检验 程序程序 库库管理程序管理程序 (2) 按软件规模进行划分 类别参加人员数 研制期 限 产品规模(源程序行 数) 微型114周500 小型116月1 x 103 2 x 103 中型2512年5 x 103 50 x 103 大型52023年 5k 50xl03 100 xlO3 甚大 型 100 - 100045年1 xlO6 极大 型 2 000 5000 510年1 x 106 10 x 106 (3)按软件工作方式划分 实时处理软件:指在事件或数据产生时立即予以处理,并及时 反馈信号,控制需 要监测和控制的过程的软件。主要包括数据 采集、分析和输出三部分。例:QQ 分时软件:允许多个联机用户同时使用计算机。 例:红绿灯 交互式软件:能实现人机通信的软件。例:绘声绘影 批处理软件:把一组输入作业或一批数据以成批处理的方式一 次运行,按顺序逐 个处理的软件。 例:垃圾处理软件 (4)按软件服务对象的范围划分 项目软件:也称定制软件,是受某个特定客户(或少数客户) 的委托,由一个或 多个软件开发机构在合同的约束下开发出来 的软件。例如军用防空指挥系统、卫星控制系统。 产品软件:是由软件开发机构开发出来直接提供给市场,或是 为千百个用户服务的软件。例如,文字处理软件、文本处理软 件、财务处理软件、人事管理软件等。 (5)按使用的频度进行划分 有的软件开发出来仅供一次使用。例如用于人口普查 、工业普查的软件。另外有些软件具有较高的使用频 度,如天气预报软件。 (6)按软件失效的影响进行划分 有的软件在工作中出现了故障,造成软件失效,可能 给整个系统带来的影响不大。有的软件一旦失效。可 能酿成灾难性后果,例如财务金融、交通通信、航空 航天等软件。我 们称这类软件为关键软件或生命攸关 软件。 软件的发展历史 经历4个阶段 1950196019701980 程序设计阶段 面向批处理 有限的分布 自定义软件 1.1.2 软件发展 1950196019701980 程序系统阶段 多用户 实时 数据库 软件产品 19501960197019801990 软件工程阶段 分布式系统 嵌入“智能” 低成本硬件 消费者的影响 1.1.2 软件发展 195019601970198019902005 第四阶段 强大的桌面系统 面向对象技术 专家系统 人工神经网络 并行计算 网络计算 1.1.2 软件发展 软件危机 软件危机是指在计算机软件的开发和维护过程中所遇到的 一系列严重的问题。(20世纪60年代末70年代初) (正常、不正常运行软件都具有这种问题) 软件危机的具体表现: 对软件开发成本和进度的估计常常不准确。(成本、进度 等); 软件产品不符合用户的实际需要; 软件产品的质量差:软件质量保证技术(审查、复审及测 试)没有贯穿到软件开发的全过程中; 软件的可维护性差(改正、移植、重用性等); 件开发生产率提高的速度远远不能满足客观需求; 软件文档资料通常不完整、不合格; 软件的价格昂贵。 软件危机的原因: (1)用户需求不明确 (2)软件开发人员对用户需求的理解与用户的本来愿望 有差异 (3)软件规模越来越大,经验不足 (4)软件项目开发人员不能有效、独立自主地处理大型软 件的全部关系和各个分支 (5)缺乏有力的方法学和工具方面的支持 (6)软件产品的特殊性和人类智力的局限性 1.3 软件工程 软件工程,由NATO于1968年提出 软件工程是运用工程、数学、计算机等科学概念、方 法和原理来指导软件开发和管理和维护的一门工程学 科。 软件工程构成三要素为: 过程一管理部分; 方法技术手段; 工具自动或半自动地支持软件的开发和管理要 素之间相互关联和支持。 软件工程的目标是:在给定成本、进度的前提下,开 发出具有可修改性、有效性、可 靠性、可理解性、可 维护性、可重用性、可适应性、可移植性、可追踪性 和可互操作性并满足用户需求的软件产品。追求这些 目标有助于提高软件产品的质量和开发效率,减少维 护的困难。 软件工程的原则: 抽象、信息隐藏、模块化、局部化、一致性、完整性 和可验证性 12个在不同场合反复出现的概念: (1)绑定(Binding) (2)大问题的复杂性(Complexityof large Problems) (3)概念和形式模型(Conceptualand Format Models) (4)一致性和完备性(Consistency and Completeness) (5)效率(Efficiency) (6)演化(Evolution) (7)抽象层次(Levelsof Abstraction) (8)按空间排序(Orderingin Space) (9) 按时间排序(Orderingin Time) (10) 重用(Reuse) (11) 安全性(Security) (12) 折中和结论(Tradeoffsand Consequences) 1.4 软件文档在软件开发中的地位和作用 主要体现在以下几个方面: (1)文档反映软件开发人员在各阶段的工作成果和结束标志。 (2)文档提高软件开发过程的“透明度”,便于管理人员对整 个开发过程进行控制和管理。 (3)文档增强软件开发的系统性。 (4)文档改善软件开发人员之间“爱莫能助”的局面,增强开 发人员之间的通讯交流。 (5) 文档记录从问题定义、需求分析、软件设计到验收测试 ,这一系列有关软件的管理信息和技术信息,既便于协调软件 开发工作,又为软件维护和扩充提供了依据。 (6)文档说明软件安装。 对文档的基本要求: (1)文档的及时性。 (2)文档的完整性。 (3)文档的准确性。 (4)文档的规范性。 根据标准制定的机构和标准适用的范围有所不同,软 件工程和软件文档标准可分为五个级别,即国际标准 国家标准、行业标准、企业(机构)规范及项目(课 题)规范。 1. 国际标准:由国际联合机构制定和公布的标准,供各国参考。 如ISO国际标准化组织。 2. 国家标准:由政府或国家级的机构制定或批准,适用于全国范围。 如GB中国国标、ANSI美国国家标准协会、BS英国国家标准 、JIS日本工业标准。 3. 行业标准:由行业机构、学术团体或国防等机构制定,适用于某个业务 领域。 如IEEE美国电气和电子工程师学会、GJB中国国家军用标准。 4. 企业规范:企业因软件工程工作的需要制定的适用于本企业的规范。 如IBM通用产品部于1984年制定的程序设计开发指南。 5. 项目规范:由某一科研生产项目组织制定,仅为该项目任务服务的软件 工程规范。 如CIMS计算机集成制造系统软件工程规范。 中国的软件标准 1983年起,我国陆续制定和
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号