1、2018/10/7,软件工程,Software Engineering,2018/10/7,在一些人眼里,今天的软件开发似乎已成为简单的事情,已有了不少很好的开发工具和软件库,软件开发人员训练有素,都强烈渴望去编写很酷的软件,可以在几天的时间里编写出一个相当复杂的软件。但为什么有一些软件能够得到用户的喜欢,而另一些则不能?为什么有些软件能够在市场上成功,而有些则受到冷落?由此可见,开发软件并不一定难,难就难在如何开发有用的软件。,微软凌小宁博士,2018/10/7,我最大的心得是,一个产品一定要找到能够 真正适用的场合,不能只是为了技术而从事技术 为了研究而进行研究,却不管用户对你所研究的 技
2、术和产品有没有需求。否则,无论你的技术是 多么优秀,多么先进,恐怕你的产品在市场上都 无法获得成功。,微软张益肇博士,2018/10/7,2018/10/7,本课程比较全面、系统地介绍软件工程的概念、技术 与方法。主要内容包括:软件工程概述、软件生存周期及软件 需求分析、软件设计方法等。 通过本课程的学习,使学生能真正的从中了解软件开 发的整个过程。,课程主要内容,2018/10/7,第一章 软件工程概述,水利工程,建筑工程,机械工程, ,软件工程,本章将对软件的地位和作用、软件的特点、软件的发展、软件的危机以及软件工程学科的形成、软件生期等方面的问题和基本概念,传统工程,新兴工程,气象工程,
3、生物工程,2018/10/7,1.1 软件的概念与特点,1、软件,software,soft+ware,软制品 (软体),软件是计算机系统中与硬件相互依存的另一部分。它包括程序、数据及其相关文档的完整集合。,2018/10/7,2、软件特点,. 软件是一种逻辑实体,而不是具体的物理实体,. 软件的生产与硬件不同,. 在软件的运行和使用期间,没有硬件那样的机械 磨损,老化问题,磨合调整,磨损用坏,修改点,实际曲线,理想曲线,2018/10/7,. 软件的成本相当昂贵,软件技术的发展落后于需求,硬、软件成本比例的变化,年份,成本%,软件,硬件,2018/10/7,3、软件的分类,1、按软件的功能进
4、行划分,2018/10/7,2、按软件的规模进行划分,2018/10/7,3、按软件开发划分,2018/10/7,1.2 软件工程的概念及范畴,1、“软件工程”,-Software Engineering,于1968年 NATO 组织在 德国召开的一次会议上提出,是把软件当作一种工业产品,要求 “采用工程化的原理与方法对软件进行计划、开发和维护 ”。,2018/10/7,软件工程学,软件开发技术,软件工程管理,软件开发方法学,软件工具,软件工程环境,软件工程管理学,软件经济学,- 软件工程学的范畴,2、 软件工程学,2018/10/7,Wake up every day with a feel
5、ing of passionfor the different technology will make in peoplesLife.,微软企业文化宗旨部分内容,每天醒来的时候,要对技术给生活造成的改变始终拥有一份 激情。,2018/10/7,程序,3、软件的演变(即从传统软件开发到现代软件开发),软件,软件产品,传统软件开发,现代软件开发,2018/10/7,1.3 软件生存周期,软件从产生、发展到成熟、直至衰亡为止。,(SW life cycle),2018/10/7,特点:上一阶段的变换结果是下一阶段的变换的输入,相邻两个阶段具有因果关系,紧密相联。,需求分析,问题定义,可性行研究,计
6、划 时期,概要设计,详细设计,编 码,测 试,开发 时期,运行与维护,运 行 时 期,软件生存周期模型(瀑布模型 Waterfall Model),2018/10/7,原型模型(Prototype Model),加工 原型,原型:是指模拟某种产品的原始模型,快速分析 和设计,建造 原型,客户 评价原型,1、原型系统仅包括未来系统的主要功能,以及系统的重要接口。,2、为了尽快向用户提供原型,开发原型系统时应尽量使用能缩短开发周期的语言和工具。,2018/10/7,第二章 问题的定义与可性行研究,当我们在着手做任何一件工作以前,必须明确工作的性质、任务,制定完成任务的计划,这是非常必要的。同样对于
7、软件产品的开发 ,显然也应该解决好这样类似的问题,明确该软件产品开发的任务,以及完成任务的价值,从而制定出完成任务的计划。那么问题的定义和可性行研究就是制定软件系统计划的第一步。所以在软件工程中把这一步称为 计划时期,2018/10/7,开始,问题定义,可性行研究,可行否?,项目实施计划,终止项目的建议,结束,Y,计划时期的工作流程图,N,2018/10/7,Who,What,Why,3W,有用的软件,2018/10/7,2.1 现状调查和问题的定义,目的:弄清楚用户要求计算机解决什么问题,任务:编写系统目标与规范说明书,系统目标与规范说明书1、项目:教材销售系统 2、问题:人工销售教材手续繁
8、琐,容易出错 3、项目目标:建立一个高效率、无差错的计算机教材销售系统 4、项目范围:利用现有的计算机,软件开发费用不得超过2000元 5、初步想法:建议在系统中增加对缺书的统计与采购功能 6、可性行研究:建议进行大约10天的可性行研究,且研究费用不超过500元,2018/10/7,2.2 可行性研究与论证,1、经济可行性:,进行成本效益分析,评估项目的开发成本。,基于计算 机系统的 成本由四 部分组成,其论证的焦点是:围绕着对系统开发的价值进行论证,2018/10/7,举例:关于开发CAD系统的软件开发成本及效益分析,该系统节省经费,该系统成本,盈亏平衡点,投资回收期,-成本及效益分析图,2
9、018/10/7,2、技术可行性:,对系统的性能、可靠性、可维护性以及生产率 等方面的信息进行评价。,通过技术可行性的分析,将为新系统提交技术可 行性评估。以指明为完成系统的功能和性能需要什么 技术?需要哪些材料、方法、算法、或者过程等,2018/10/7,可行性 论证报告,2018/10/7,2.3 可行性分析所需工具 (系流程图与系统结构图),1、系统流程图:,是用来描述系统物理模型的一种传统工具。,2018/10/7,2018/10/7,举例,库存清单系统流程图,2018/10/7,2、系统结构图:,系统工程师用结构模版开发的系统模型,用户界面处理,输 入 处 理,维护和自测试,处理和控制功能,输 出 处 理,- 结构模版 -,