- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
软件工程重点概要
整理者:南京农业大学戚爱静概论计算机软件定义:计算机系统中的程序及其文档。程序:计算任务的处理对象和处理规则的描述。处理对象:数据或信息。处理规则:一般指处理的动作和步骤。文档:为了便于了解程序所需的阐述性资料。发展:1946-1956年:从计算机问世到实用的高级程序语言出现前;1956-1968年:从实用的高级程序语言出现到软件工程出现前(出现软件危机);1968年-至今:从软件工程出现到现在。软件危机:许多软件项目不能满足客户的要求;许多软件项目超出预算和时间安排。表现:1)对软件开发成本和进度的估计常常很不正确;2)用户对“已完成的”软件系统不满意的现象经常发生;3)软件产品的质量往往靠不住;4)软件常常是不可维护的;5)软件通常没有适当的文档资料;6)软件成本在计算机系统总成本中所占的比例逐年上升;7)软件开发生产率提高的速度远远跟不上计算机应用迅速普及深入的趋势。原因:1)软件是逻辑产品,开发进度、成本难以估计;2)缺乏或不完整、不一致的文档给维护带来困难;3)用户对软件需求的描述往往不够精确,有遗漏,有二义;4)软件开发人员对需求的理解与用户的本来愿望有差异;5)大型软件项目需多人协同完成,缺乏管理经验;6)开发人员不能有效地、独立自主地处理大型软件的全部关系;7)缺乏有力的方法学和工具的支持;8)软件项目的特殊性和人类智力的局限性。克服:1)消除错误的概念和做法;2)推广使用成功的开发技术和方法;3)使用软件工具和软件工程支持环境;4)加强软件管理。软件的特点(与硬件相比):软件是一种逻辑实体,而不是有形的系统元件,其开发成本和进度难以准确地估算。软件是被开发的或被设计的,没有明显的制造过程,一旦开发成功,只需复制即可,但其维护的工作量大。软件的使用没有硬件那样的机械磨损和老化问题。故障曲线:软件的分类:系统软件:位于计算机系统中最靠近硬件的一层,其它软件一般都通过系统软件发挥作用,它与具体的应用领域无关(如操作系统、编译程序等)。支撑软件:支持软件开发和维护的软件(如数据库管理系统、网络软件、软件开发环境)。应用软件:特定应用领域专用的软件(如实时软件、嵌入式软件、科学和工程计算软件、事务处理软件、人工智能软件等)。软件语言:书写计算机软件的语言。需求定义语言:书写软件需求定义(功能需求和非功能需求),做什么(如PSL、PSA)。功能性语言:书写软件功能规约语言。外部功能做什么(如广谱语言、Z语言)。(软件功能规约是软件所要完成功能的精确而完整的陈述。)设计性语言:书写软件设计规约。如何做(如PDL)。(设计规约是软件设计的严格而完整的陈述,是功能规约的算法性细化。)实现性语言:用于书写计算机程序的语言,也称编程语言或程序设计语言。分类:按语言级别可分为低级语言和高级语言;按用户要求可分为过程式语言和非过程式语言;按应用范围可分为通用语言和专用语言;按使用方式可分为交互式语言和非交互式语言;按成分性质可分为顺序语言、并发语言、分布语言。文档语言:用于书写软件文档的语言。二、软件工程定义:软件工程是应用计算机科学、数学及管理科学等原理,开发软件的工程。软件工程借鉴传统工程的原则、方法,以提高质量、降低成本为目的。软件工程框架:目标:生产具有正确性、可用性以及开销合宜的产品。过程:指生产一个最终满足需求且达到工程目标的软件产品所需要的步骤。原则:选取适宜的开发模型;采用合适的设计方法;提供高质量的工程支持;重视软件工程的管理。软件生存周期(6个阶段):计算机系统工程:确定待开发软件的总体要求和范围,以及它与其它计算机系统元素之间的关系;进行成本估算,做出进度安排;进行可行性分析。软件需求分析:做什么。确定软件的功能、数据、界面等要求,生成软件需求规约。软件设计:怎么做。系统设计:设计软件系统的体系结构;详细设计:设计各个组成成分的实现细节。编码:用某种程序设计语言,将设计的结果转换为可执行的程序代码。测试:发现并纠正软件中的错误和缺陷(包括单元测试、集成测试、确认测试和系统测试)。运行和维护:当发现了软件中潜藏的错误或需要增加新的功能或使软件适应外界环境的变化等情况出现时对软件进行修改。三、软件过程模型定义:软件开发全部过程、活动和任务的结构框架。瀑布模型:给出了软件生存周期活动的固定顺序,上一阶段的活动完成后向下一阶段的活动过渡,最终得到所开发的软件产品。特征:1)接受上一阶段的结果作为本阶段的输入;2)利用这一输入实施本阶段应完成的活动;3)对本阶段的工作进行评审;4)将本阶段的结果作为输出,传递给下一阶段。缺点:1)缺乏灵活性,难以适应需求不明确或需求多变的软件开发;2)问题往往要到交付使用时才发现,维护代价大。演化模型:在获取了一组基本的需求后,通过快速分析构造出该软件的一个初始可运行版本,称之谓原型,然后
文档评论(0)