资源描述
2022/11/25软件工程软件工程 Software Engineering 2022/11/25 哈哈尔尔滨滨工工业业大大学学 韩静萍2022/11/25 在一些人眼里,今天的软件开发似乎已 成为简单的事情,已有不少很好的开发工 具和软件库,软件开发人员训练有素,都强 烈渴望去编写很酷的软件,可以在几天的时 间里编写出一个相当复杂的软件。但是为什么 有一些软件能够得到用户的喜欢,而另一些 则不能?为什么有些软件能够在市场上成功 ,而有些则受到冷落?由此可见,开发软件 并不一定难,难就难在如何开发有用的软件。微软凌小宁博士2022/11/25 哈哈尔尔滨滨工工业业大大学学 韩静萍2022/11/25 我最大的心得是,一个产品一定要找到能够真正适用的场合,不能只是为了技术而从事技术为了研究而进行研究,却不管用户对你所研究的技术和产品有没有需求。否则,无论你的技术是多么优秀,多么先进,恐怕你的产品在市场上都无法获得成功。微软张益肇博士2022/11/25 哈哈尔尔滨滨工工业业大大学学 韩静萍2022/11/25 软件工程是计算机科学与技术专业的一门专业核心课程。通过本课程的学习,使学生掌握系统的软件开发理论、技术和方法,使用正确的工程方法开发出成本低、可靠性好并在机器上能高效运行的软件,为今后从事软件开发和维护打下坚实的基础。课程的性质、目的与任务课程的性质、目的与任务2022/11/25 哈哈尔尔滨滨工工业业大大学学 韩静萍2022/11/25 本课程比较全面、系统地介绍软件工程的概念、技术与方法。主要内容包括:软件工程概述、软件生存周期及软件需求分析、软件设计方法、软件测试技术等。通过本课程的学习,使学生能真正的从中了解软件开发的整个过程。为了让学生真正得以实践,结合实际软件开发项目,让学生从问题定义开始,经过可行性研究、需求分析、概要设计、详细设计、编码直到最后要对自己开发的软件还要进行测试,这样一个软件开发过程,从而使学生掌握软件开发的基本技能。课程主要内容课程主要内容2022/11/25 哈哈尔尔滨滨工工业业大大学学 韩静萍2022/11/25学习本课程的基本要求学习本课程的基本要求 本课程是继程序设计课程之后,对提高学生软件开发能力有重要作用的一门课程。要求学生在学习本课程前应掌握信息管理系统、数据结构、结构化程序设计、面向对象程序设计以及程序设计方法论。通过本课程的学习,为学生后期的毕业设计环节奠定了良好的基础。2022/11/25 哈哈尔尔滨滨工工业业大大学学 韩静萍2022/11/25章学时章学时章学时章学时123494132补充2421021442284122总学时 46=38(讲授)+8(课程设计)各 章 学 时 安 排2022/11/25 哈哈尔尔滨滨工工业业大大学学 韩静萍2022/11/25第一章第一章 软件工程概述软件工程概述水利工程建筑工程机械工程 软件工程软件工程软件工程软件工程 本章将对软件的地位和作用、软件的特点、软件 的发展、软件的危机以及软件工程学科的形成、软件 生期等方面的问题和基本概念传统工程新兴工程气象工程生物工程2022/11/25 哈哈尔尔滨滨工工业业大大学学 韩静萍2022/11/251.1 软件的概念与特点软件的概念与特点1、软件softwaresoft+ware软制品(软体)软件是计算机系统中与硬件相互依存的另一部分。它包括程序、数据及其相关文档的完整集合。2022/11/25 哈哈尔尔滨滨工工业业大大学学 韩静萍2022/11/252、软件特点.软件是一种逻辑实体,而不是具体的物理实体.软件的生产与硬件不同 .在软件的运行和使用期间,没有硬件那样的机械 磨损,老化问题磨合调整磨损用坏修改点实际曲线理想曲线硬件失效率曲线时间失效率时间失效率软件失效率曲线2022/11/25 哈哈尔尔滨滨工工业业大大学学 韩静萍2022/11/25.软件的成本相当昂贵软件技术的发展落后于需求时间软件复杂性软件需求差距软件技术硬、软件成本比例的变化年份成本%软件软件1950197019851995硬件硬件2022/11/25 哈哈尔尔滨滨工工业业大大学学 韩静萍2022/11/253、软件的分类1 1、按软件的、按软件的、按软件的、按软件的功能功能功能功能进行划分进行划分进行划分进行划分系统软件支撑软件应用软件2022/11/25 哈哈尔尔滨滨工工业业大大学学 韩静萍2022/11/25支撑软件一般类型一般类型一般类型一般类型:文本编辑程序文本编辑程序文本编辑程序文本编辑程序 文本格式化程序文本格式化程序文本格式化程序文本格式化程序支持需求分析支持需求分析支持需求分析支持需求分析:PSL/PSA PSL/PSA问题描述语言问题描述语言问题描述语言问题描述语言 关系数据库管理系统关系数据库管理系统关系数据库管理系统关系数据库管理系统支持设计支持设计支持设计支持设计:图形软件包图形软件包图形软件包图形软件包 结构化流程图绘图程序结构化流程图绘图程序结构化流程图绘图程序结构化流程图绘图程序支持测试支持测试支持测试支持测试:静态分析器静态分析器静态分析器静态分析器 测试覆盖检验程序测试覆盖检验程序测试覆盖检验程序测试覆盖检验程序支持实现支持实现支持实现支持实现:编辑程序编辑程序编辑程序编辑程序 连接编辑程序连接编辑程序连接编辑程序连接编辑程序支持管理支持管理支持管理支持管理:标准检验程序标准检验程序标准检验程序标准检验程序 库管理程序库管理程序库管理程序库管理程序2022/11/25 哈哈尔尔滨滨工工业业大大学学 韩静萍2022/11/252 2、按软件的、按软件的、按软件的、按软件的规模规模规模规模进行划分进行划分进行划分进行划分 按开发软件所需的 人力、时间以及完成的 源代码行数。类别参加人数研制期限产品规模(源代码行数)微型微型微型微型小型小型小型小型中型中型中型中型大型大型大型大型甚大型甚大型甚大型甚大型极大型极大型极大型极大型1 11 12-52-55-205-20100-1000100-10002000-50002000-50001-41-4周周周周1-61-6周周周周1-21-2年年年年2-32-3年年年年4-54-5年年年年5-105-10年年年年约约约约500500行行行行 约约约约20002000行行行行 5000-500005000-50000行行行行5 5万万万万-10-10万行万行万行万行100100万行万行万行万行10001000万行万行万行万行2022/11/25 哈哈尔尔滨滨工工业业大大学学 韩静萍2022/11/25 3 3、按软件、按软件、按软件、按软件开发开发开发开发划分划分划分划分软件项目开发软件产品开发2022/11/25 哈哈尔尔滨滨工工业业大大学学 韩静萍2022/11/251.2 软件工程的概念及范畴软件工程的概念及范畴 1、“软件工程”-Software Engineering 于1968年 NATO 组织在德国召开的一次会议上提出 是把软件当作一种工业产品,要求是把软件当作一种工业产品,要求是把软件当作一种工业产品,要求是把软件当作一种工业产品,要求 “采用工程化的采用工程化的采用工程化的采用工程化的 原理与方法对软件进行计划、开发和维护原理与方法对软件进行计划、开发和维护原理与方法对软件进行计划、开发和维护原理与方法对软件进行计划、开发和维护 ”。2022/11/25 哈哈尔尔滨滨工工业业大大学学 韩静萍2022/11/25 软件工程学 软件开发技术 软件工程管理 软件开发方法学 软件工具 软件工程环境 软件工程管理学 软件经济学-软件工程学的范畴 2、软件工程学 2022/11/25 哈哈尔尔滨滨工工业业大大学学 韩静萍2022/11/25 Wake up every day with a feeling of passion for the different technology will make in peoples Life.微软企业文化宗旨部分内容 每天醒来的时候,要对技术给生活造成的改变 始终拥有一份 激情。2022/11/25 哈哈尔尔滨滨工工业业大大学学 韩静萍2022/11/25程序 3、软件的演变(即从传统软件开发到现代软件开发)软件软件产品传统软件开发现代软件开发 1975 1989 2000 0.00016240营业额增长曲线 802022/11/25 哈哈尔尔滨滨工工业业大大学学 韩静萍2022/11/251.3 软件生存周期软件生存周期把软件从产生、发展到成熟、直至衰亡为止(SW life cycle)2022/11/25 哈哈尔尔滨滨工工业业大大学学 韩静萍2022/11/25特点:上一阶段的变换结果 是下一阶段的变换的 输入,相邻两个阶段 具有因果关系,紧密 相联。需求分析需求分析问题定义问题定义可性行研究可性行研究计划计划时期时期概要设计概要设计详细设计详细设计编编 码码 测测 试试开发开发时期时期运行与维护运行与维护运运 行行时时 期期软件生存周期模型(瀑布模型 Waterfall Model)2022/11/25 哈哈尔尔滨滨工工业业大大学学 韩静萍2022/11/25原型模型(Prototype Model)加工原型原型原型:是指模拟某种产品的原始模型快速分析和设计建造原型客户评价原型1、原型系统仅包括未来系统的 主要功能,以及系统的重要 接口。2、为了尽快向用户提供原型,开发原型系统时应尽量使用 能缩短开发周期的语言和工 具。2022/11/25 哈哈尔尔滨滨工工业业大大学学 韩静萍2022/11/25 第二章第二章 问题的定义与可性行研究问题的定义与可性行研究 当我们在着手做任何一件工作以前,必须明确工作的性质、任务,制定完成任务的计划,这是非常必要的。同样对于软件产品的开发,显然也应该解决好这样类似的问题,明确该软件产品开发的任务,以及完成任务的价值从而制定出完成任务的计划。那么问题的定义和可性行研究就是制定软件系统的计划的第一步。所以在软件工程中把这一步称为 计划时期2022/11/25 哈哈尔尔滨滨工工业业大大学学 韩静萍2022/11/25开始问题定义可性行研究 可行否?项目实施计划终止项目的建议结束Y计划时期的工作流程图N2022/11/25 哈哈尔尔滨滨工工业业大大学学 韩静萍2022/11/25Who 为谁设计,用户是谁?What 要解决哪些问题?Why 为什么要解决这些问题 3W Win CE1.0 有用的软件有用的软件2022/11/25 哈哈尔尔滨滨工工业业大大学学 韩静萍2022/11/252.1 现状调查和问题的定义现状调查和问题的定义 目的目的:弄清楚用户要求计算机解决什么问题弄清楚用户要求计算机解决什么问题任务任务:编写系统目标与规范说明书编写系统目标与规范说明书 系统目标与规范说明书系统目标与规范说明书1 1、项目:教材销售系统、项目:教材销售系统2 2、问题:人工销售教材手续繁琐,容易出错、问题:人工销售教材手续繁琐,容易出错3 3、项目目标:建立一个高效率、无差错的计算机教材销售系统、项目目标:建立一个高效率、无差错的计算机教材销售系统4 4、项目范围:利用现有的计算机,软件开发费用不得超过、项目范围:利用现有的计算机,软件开发费用不得超过20002000元元5 5、初步想法:建议在系统中增加对缺书的统计与采购功能、初步想法:建议在系统中增加对缺书的统计与采购功能6 6、可性行研究:建议进行大约、可性行研究:建议进行大约1010天的可性行研究,且研究费用不超过天的可性行研究,且研究费用不超过500500元元2022/11/25 哈哈尔尔滨滨工工业业大大学学 韩静萍2022/11/252.2 可行性研究与论证可行性研究与论证 1、经济可行性:进行成本效益分析,评估项目的开发成本。基于计算机系统的成本由四部分组成1、购置软、硬件及有关设备费用2、系统开发费用3、系统安装和维护费用4、人员培训费用费用其论证的焦点是:围绕着对系统开发的价值价值进行论证20
展开阅读全文
温馨提示:
金锄头文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
相关搜索