软件工程方法(精简版)解说.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第一章 系统工程与软件工程 典型的软件开发方法 了解各类软件开发方法的基本思想 Parnas方法、面向数据结构、面向数据流、面向对象、基于构件、面向服务… 软件工程过程 了解软件工程过程的基本思想 系统工程特点: 系统性 运用自然科学、管理科学理论对系统进行优化设计。即用数学模型和逻辑模型来描述系统,通过模拟系统行为、求得系统的最优组合方案和最优的运行方案。 工程性 运用工程学原理,实施系统开发全过程管理,实现阶段性过程控制,达到软件开发和软件质量要求。工程实施过程文档的形式和管理符合通行标准。 举例 传送带分类系统 该系统对零部件进行分类。每一个零部件上有一个条形码标识号,并在传送带末端分别送到六个箱子中。零部件以随机的顺序通过,且其间的距离相同 建模准备 零部件标识号的形式?其间的距离?到达频率? 传送带的速度?末端可扩展空间? 箱子的间距?错误标识?箱满情况? 状态回传? 出错率?进度和预算约束? 建议方案 方案一:人工完成 方案二:条形码阅读器 方案三:机器手 寻求最优 项目考虑:成本、进度 效益分析:回报率、市场前景 技术分析:技术可行性 可用资源:人员、设备 环境接口:内部、外部互联 法律考虑:产权、风险 软件工程学科范畴 计算机科学和数学用于构造软件的模型与算法; 工程科学用于制定规范、设计范型、评估成本以及确定权衡等; 管理科学用于计划、资源、质量、成本等管理。 软件开发的工程原则 制订分阶段的项目计划;选取适宜的开发模型;采用合适的开发方法;合理配备开发小组人员;树立强烈的质量保证意识;不断改进软件过程。 Parnas 重要论述 对于软件系统的设计和建造最重要的除数学基础(特别是数理逻辑)还有模块化设计、规范、抽象、信息隐藏等原则。 软件学科的基础知识是计算机科学,就象电力工程的基础知识是物理学一样。但并不是每门计算机科学课程都与软件工程有关。 过去三十多年以来,软件已经越来越成为一种产品,建造产品的学科应该是工程学科。 面向数据结构的方法 适用于小系统的程序设计方法JSP,它以数据结构作为开发程序的基础目标,采用逐步求精的思想构造中系统的程序结构。为满足大系统设计要求,Jackson又提出了系统开发方法JSD。 特征 : JSP运用三种基本结构及其组合表示数据结构,并据此导出程序结构。 为保证数据之间一致性,JSP需要解决输入结构、输出结构的顺序冲突问题。 JSD引入进程模型描述系统动态特征,通过模型中的进程与现实世界的实体联系起来,以确保模型行为和现实世界行为一致性。 面向数据流的方法 结构化方法,也称为面向功能的软件开发方法或面向数据流的软件开发方法。包括结构化分析(SA)、结构化设计(SD)、结构化程序设计(SP)。 特征 SA是用抽象模型的概念,按照软件内部数据传递、变换的关系,自顶向下逐层分解,直到找到满足功能要求的所有解决方案为止。 SD是根据分析成果构造软件结构,并基于模块化、自顶向下逐层细化,直到可实现模块设计为止。 SP是从程序的控制结构入手,消除容易引起混乱的交叉跳转,并合理解决数据结构访问的规范化和标准化问题,直至能够编写出结构化的程序为止。 结构化方法适合与瀑布模型结合。 面向对象的软件开发 面向对象技术就是基于对象概念,以对象为中心,以类和继承为构造机制,来认识、理解、刻画客观世界和设计、构建相应的软件系统。 八十年代末,随着面向对象技术成为研究的热点出现了几十种支持软件开发的面向对象方法。统一建模语言UML综合了Booch, OMT, 和Jacobson方法优点,被作为是一种通用表示。 特征 面向对象软件系统中的任何元素都是对象,复杂的软件对象由比较简单的对象组合而成。 每个对象都归属于一个对象类,每个对象类都封装了一组数据和一组方法。 若干对象类组成一个层次结构,下层的派生类继承上层的基类特性;低层的特性可屏蔽高层的同名特性(多态)。 支持并发程序设计和迭代开发过程。 基于构件的软件开发 构件是指模块化的、可部署、可替换的软件系统组成部分,封装了内部的具体实现并对外提供一组接口。 基于构件的软件开发(CBSD) 通过整合已有的构件来完成大型软件系统的开发, 其核心就是构件级的可重用。 特征 构件具有可重用性和互操作性,CBSD会增强系统可维护性、可扩展性;参数化框架使得系统适应性、灵活性增强。 大粒度构件的重用使得平均开发费用降低,开发人员减少,开发速度加快。 CBSD将软件实现从程序编写转移到了系统装配和整合,开发人员更能专注于对领域的了解和分析。 支持业务与实现分离,逻辑与数据分离,使系统易于升级。 线性顺序模型特点 严格活动序列;严格阶段成果评审;不允许需求的不确定性;不显式

文档评论(0)

w5544434 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档