软件开发成本和进度估计不准确

上传人:xmg****18 文档编号:115304986 上传时间:2019-11-13 格式:PPT 页数:331 大小:5.13MB
返回 下载 相关 举报
软件开发成本和进度估计不准确_第1页
第1页 / 共331页
软件开发成本和进度估计不准确_第2页
第2页 / 共331页
软件开发成本和进度估计不准确_第3页
第3页 / 共331页
软件开发成本和进度估计不准确_第4页
第4页 / 共331页
软件开发成本和进度估计不准确_第5页
第5页 / 共331页
点击查看更多>>
资源描述

《软件开发成本和进度估计不准确》由会员分享,可在线阅读,更多相关《软件开发成本和进度估计不准确(331页珍藏版)》请在金锄头文库上搜索。

1、本课程的安排 Course Planning,授课时间:54学时 考核方式(平时+作业)20分+(闭卷考试)80分,讲授的内容 Contents,第1章 软件与软件工程 Chapter 1 Introduction,本章要讲的主要内容是: 软件(Software) 软件危机(Software Crisis) 软件工程(Software Engineering) 软件工程与计算机科学的关系 (Relationship between SE and CS),1.1 软件 Software,软件的概念与特征 软件的发展历程 软件的分类 软件开发的案例分析,软件的概念与特征,软件的定义 软件是程序和所

2、有使程序正确运行所需要的相关文档和配置信息。 Software = Program + Data + Document,软件的特征 软件是无形的 (intangible) 软件副本制作简单 软件无磨损,软件的发展历程,软件的分类,基于不同工程对象划分 基于软件规模的划分,基于不同工程对象划分,通用软件产品 Generic -由软件开发机构制作,市场上公开销售,独立使用。 ( developed to be sold to a range of different customers) 数据库软件、字处理软件、绘图软件、工程管理工具。 定制软件产品Bespoke (custom) - 受特定客户

3、委托,由软件承包商专门制作。 (developed for a single customer according to their specification),基于软件规模的划分,微小型软件-一般都在2000行以内的程序长度。在开发过程中,不讲究开发方法和开发实施的步骤,没有相应的软件编写文档。 中型软件-通常程序长度在500010000行之间,一般需要510人、持续一至两年时间开发,以团队方式采用统一的标准开发模式。 大型软件-采用软件工程指导下的软件开发方法和遵循相应的开发规范,建立软件开发过程的文档,由上百、千人参加形成的庞大开发团队,不同领域的人员相互沟通合作。,软件开发的案例分析

4、,系统软件-是一组为其他程序服务的程序。 实时软件-管理、分析、控制现实世界中发生的事件的程序。 商业软件-商业信息处理是最大的软件应用领域。 工程和科学计算软件-这类软件的特点是一般具有数值计算。 嵌入式软件-智能产品应用于所有的领域,嵌入式软件作用于这些智能产品,执行有限但专一的功能。 个人计算机软件-用于个人的文字、图片、财务、娱乐等等方面的软件系统。 人工智能软件-人工智能(AI)软件利用非数值计算解决复杂问题。,请给出相应的实例!,软件的未来与工业化,作坊式生产 软件工业化 CMMI认证,1.2 软件工程,软件工程的概念 软件工程的范畴 软件工程的开发原则 软件工程面临的挑战 软件工

5、程师的未来,问题分解的特征,软件开发过程中存在的问题,(1) 软件需求急剧增长; (2) 软件开发成本和进度估计 不准确; (3) 软件产品不满足用户需 求; (4) 软件难以维护; (5) 软件价格昂贵;,软件工程的概念,中心思想: 把软件当作一种工业产品,要求采用工程化的原理与方法对软件进行计划、开发和维护。 目的: 实现按预期的进度和经费完成软件生产计划,提高软件的生产率和可靠性。,软件工程框架,软件工程的范畴,软件工程开发的原则,分解 信息隐蔽 模块化 标准化,软件工程面临的挑战,遗留系统 交付上的挑战 多样性的挑战,软件工程师的未来,软件工程人员应当遵守以下八条准则: (1)公众感(

6、PUBLIC):软件工程师始终与公众利益保持一致。 (2)客户和雇主(CLIENT AND EMPLOYER):满足客户和雇主的最大利益。 (3)产品(PRODUCT ):保证产品达到尽可能高的行业标准。 (4)判断力(JUDGEMENT):具有公正和独立的职业判断力。 (5)管理(MANAGEMENT):提倡合乎道德的软件开发和维护的管理办法。 (6)职业感(PROFESSION):弘扬职业正义感和容易感,尊重社会公正利益。 (7)同事(COLLEAGUES):公平对待和协助每一位同事。 (8)自己(SELF):毕生学习专业知识,合乎职业道德的职业活动方式。,1.3 软件过程模型,软件生存周

7、期 软件开发模型 瀑布模型 进化式模型 演化模型 形式化开发,软件生存周期,软件生存周期的概念: 一个软件从计划起,到废弃不用止。 软件生存周期包括:计划、开发、运行。,软件开发模型概念,软件开发模型的概念: 为整个软件生存期建立的模型。,软件开发模型分类: 瀑布模型 进化式开发模型 演化模型 形式化开发模型,软件开发模型,1 瀑布模型 The waterfall model,瀑布模型 的优点,阶段间的顺序性 和依赖性 推迟实现的观点 质量保证的观点,瀑布模型的问题 Waterfall model problems,将项目生硬地分解成确切的阶段。 Inflexible partitioning

8、 of the project into distinct stages 对用户需求变更的相应困难。 This makes it difficult to respond to changing customer requirements 需求了解的好的时候,采用瀑布模型。 This model is only appropriate when the requirements are well-understood,2快速原型开发模型 Prototype Model,基本思想: 先开发出一个原型系统给用户使用,通过用户反馈意见来不断修改系统直到最后成熟。 让描述、开发、有效性验证活动并行执行

9、。,原型模型,原型模型的优点,原型化模型突出一个“快”字。软件开发人员向用户提供一个“样品”,用户向开发人员迅速作出“反馈”。,建立原型系统的方法,原型系统仅包括未来系统的主要功能,以及系统重要的接口。 开发原型系统尽可能使用能缩短开发周期的语言和工具。,3演化模型-增量模型 Evolutionary Model,增量模型的基本思想,每个增量提供系统功能的一个子集,一个增量完成并交付,部分系统功能可以提前交付使用。 对增量中服务的分配取决于服务优先次序。最高优先权的服务首先被交付。 第一个增量往往是核心的产品。 开发者能通过对系统的经验帮助理解后面的增量需求和目前增量后续版本的需求变更。,In

10、cremental development advantages 增量式开发过程的优点,客户无需等到整个系统的实现。 客户可以将早期的增量作为原型,从中获得对后面系统增量的需求经验。 项目总体性失败的风险比较低。 最高优先权的服务接受最多的测试。,Example,使用增量式开发的字处理软件 在第一个增量中发布基本的文件管理、编辑和文档生成功能; 在第二个增量中发布更加完善的编辑和文档生成能力; 第三个增量中实现拼写和文法检查功能; 第四个增量完成高级的页面布局功能。,4演化模型-螺旋模型 Evolutionary Model,螺旋模型的基本思想,每一个螺旋周期(Spiral model sec

11、tors)包含四个部分: (1)确定目标,选择方案,设定约束条件,选定完成本周期所定目标的策略。 (2)分析该策略可能存在的风险。 (3)在排除风险后,实现本螺旋周期的目标。 (4)评价前一步的结果,并且计划下一轮的工作。,螺旋模型的特点,每一阶段考虑技术风险。 依赖于风险评估。,5形式化方法模型,转换模型(Transformational Model)-是结合形式化软件开发方法和程序自动生成技术的一种软件开发模型。,转换模型,净室模型 Cleanroom Model,是一种形式化的增量开发模型。 基本思想: 力求在分析阶段就消除错误,确保正确,然后在无缺陷或“洁净”的状态下实现软件的制作。

12、“盒”(Box)-每一增量是一个形式化方式表示。,净室模型,6基于组件的开发过程,Advantages 优势,减少需要开发的软件数量 降低软件开发成本 降低风险 软件快速交付,小结,软件 软件工程 软件过程模型,小结,瀑布模型 原型模型 增量模型 螺旋模型 形式化开发模型 组件开发模型,新的开发模型 RUP统一开发过程 敏捷开发 极限编程 RAD快速的应用开发 设计模式,思考题1,调查目前软件公司对软件开发过程中存在的主要问题。 现代软件的分类。 都知道哪些软件开发的方法? 软件工程有意义吗? 以上问题请于本周调查,下次课提问。,思考题2,为以下各系统提出合适的软件过程模型,阐述理由: (1)

13、 汽车防锁死刹车控制系统 (2)一个支持软件维护的虚拟现实系统 (3)大学记账系统,准备替换一个已存在的系统 (4)一个位于火车站的交互式火车车次查询系统,第2章 软件需求分析 Requirements Analysis,需求分析的任务和分类; 需求获取的相关技术; 软件需求分析的描述模型; 需求分析的方法; 软件需求分析文档; 软件的案例需求分析。,项目相关人员,涉及对项目有利益关系的人员,包括: (1)发现系统的潜在最终用户; (2)考虑系统打算支持的业务过程描述以及与这些过程相关的人员; (3)可能会受到系统引入的影响的人员; (4)使用系统的客户; (5)开发和维护系统的工程师和维护人

14、员; (6)可能给系统添加需求的监管机构和认证机构等。因此,项目相关人员可能是系统最终用户和机构管理人员、工程人员、业务专家、工会代表等等。,Autoteller银行自动柜员机系统(ATM)的项目相关人员,当前银行客户 其他银行代表 硬件和软件维护工程师 市场开发部 银行管理者 柜台职员 数据库管理员 信息安全管理员,需求的定义,需求应该是对系统应提供的服务和所受到的约束的描述。 需求来自于用户,同时也是经过了开发人员抽象之后的需求。,Types of requirements需求种类,User requirements用户需求 Statements in natural language p

15、lus diagrams of the services the system provides and its operational constraints. Written for customers 是用自然语言加图表的形式给出的关于系统需要提供哪些服务以及系统操作受到哪些约束的声明。,Types of requirements需求种类,System requirements系统需求 A structured document setting out detailed descriptions of the system services. Written as a contract

16、between client and contractor 详细给出系统将要提供的服务以及系统所受的约束。,User requirements,Client managers System end-users Client engineers Contractor managers System architects,System requirements,System end-users Client engineers System architects Software developers,客户管理者 系统最终用户 客户工程师 承包商管理者 系统体系结构工程师,系统最终用户 客户工程师 系统体系结构工程师 软件开发人员,用户需求,系统需求,用户需求和系统需求描述,系统需求的描述方面,Functional requirements 功能性需求 Non-functional requirements 非功能性需求 Domain requirements 领域需求,Functional requirements 功能性需求,These are stat

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号