- 1、本文档共64页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]软件工程第1章8课时
软件工程 第1章 软件工程的内容与方法 本章导读 21世纪,什么技术将影响人类的生活?什么产业将决定国家的势力?可以毫不夸张地说,信息产业是首选的答案之一。 信息产业的核心是芯片与软件,软件工程是软件开发、生产、服务和管理的科学。 1.1 软件工程的定义 Computer:由硬件和软件组成。 硬件:是看得見、摸得着的电子机械设备块。 软件:是依附在硬件上面的程序、数据和文档的集合,是指挥控制计算机系统(包括硬件和软件)工作的神经思维中枢。 如果将硬件比作人的身体素质,那么软件就相当于人的神经中枢和知识才能。 软件开发:既非常艰苦(因为软件设计思想与开发工具不断更新),又无限快乐(因为软件成果是人类智慧与艺术的结晶)。 软件的定义 软件 == 程序 + 数据 + 文档。 数据 == 初始化数据 + 测试数据 文档 == 开发文档 + 管理文档。 今天仍然有人认为:软件等于程序。这些人一上来就写程序。 Roger S.Pressman说:“越早开始写代码的人,就是越迟完成代码的人”。 对管理文档的全面认识,那就更晚了。 1974年,美国人认识到软件需要管理。 1984年,美国人认识到软件管理是一个过程管理,或是一个管理过程。 1991年,出现了软件过程能力成熟度模型CMM (Capability Maturity Model)版。 软件文档具有严格的层次关系 (1)《目标程序》覆盖《源程序》; (2)《源程序》覆盖《详细设计说明书》; (3)《详细设计说明书》覆盖《概要设计说明书》; (4)《概要设计说明书》覆盖《需求规格说明书》; (5)《需求规格说明书》覆盖《用户需求报告》; (6)《用户需求报告》覆盖《软件合同》。 管理文档具有严格的时序关系:因为管理是一个过程。 程序的定义 优秀的程序(或模块),必须满足“高内聚、低耦合”的性质。所谓高内聚,就是程序(或模块)内部结构紧凑,凝聚力和向心力强。所谓低耦合,就是程序(或模块)之间彼此依赖关系很低。 有人说:“人生就是一段程序,这段程序是用特殊代码写成的,只是算法极其复杂而已。” 软件工程的定义 (1).1990年,IEEE对软件工程的定义是:软件工程是将系统化的、严格约束的、可量化的方法,应用于软件开发、运行和维护中去。 (2).2001年,Roger S.Pressman 对软件工程的定义是:软件工程是一个过程、一组方法和一系列工具。 软件工程研究的内容 (1). 软件开发模型,如:瀑布模型、增量模型、原型模型、螺旋模型、迭代模型等。 (2). 软件开发方法,如:面向过程的方法、面向数据的方法、面向对象的方法(包括面向业务基础平台的方法、面向工作流方法、面向主体的方法、面向方面的方法、面向代理的方法等等),以及形式化方法。 (3). 软件支持过程,如:CASE工具Rose、北大青鸟系统、Power Designer、ERWin,以及配置管理工具等。 (4). 软件管理过程,如:ISO9000、CMM/CMMI、软件企业文化(微软企业文件、敏捷文化现象、IBM企业文化)。 【例】 请读者开发一个“图书馆信息系统”,即图书馆MIS。 这是一项软件工程,为了完成这项任务,读者: 首先要选择软件开发模型,确定开发方法,准备开发工具,设计开发环境和运行环境,然后进行需求分析、概要设计、详细设计、编程、测试、试运行、正式运行、验收和交付,最后是系统维护或系统升级换代。 这一系列的软件开发过程和管理过程,就是软件工程。 软件工程的基本原理 (1).用分阶段的生命周期计划,严格管理软件开发。 (2).坚持进行阶段评审。 (3).实行严格的产品版本控制。 (4).采用现代程序设计技术。 (5).结果应能清楚地审查。文档要有严格要求。 (6).开发小组的成员要少而精。 (7).要不断地改进软件工程实践的经验和技术。 1.2 软件工程的作用 【例】 20世纪90年代初,有两个软件团队,一个较大(10多人),一个较小(6人),都在开发财务系统。 较大的那个团队,工作不规范,没有文档,没有评审,没有团队精神,结果开发出来的产品可维护性差,没有打开市场,致使产品与团队最后同归于尽。 较小的那个团队,分工明确: 一人负责原始凭证和输出报表的收集、归类和整理,这实际上是做需求分; 一人负责科目和数据字典(代码),这实际上是做信息的标准化与规范化; 一人负责记账凭证的录入和修改,这实际上是做数据库的设计和加载工; 一人负责日记账、明细账和总账之间的平衡与对账,这实际上是做数据处理; 一人负责统计、报表和查询,这实际上是做数据输出工作; 一人负责总体设计和项目管理,这就是项目经理
文档评论(0)