- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
; ; ; ; ; ; ; ; ;软件产品的概念与分类
对于软件的一种公认的解释是:软件是计算机系统中与硬件相互依存的另一部分,它是包括程序、数据及其相关文档的完整集合。
其中,程序是为实现设计的功能和性能要求而编写的指令序列;数据是使指令能够正常操纵信息的数据结构;文档是与程序开发、维护和使用有关的图文资料。
;根据用途划分,软件可以大致划分成如下类别:
系统软件;
实时软件;
商业管理软件
嵌入式软件
人工智能软件
个人计算机软件
;软件产品的特征
(1)软件是一种逻辑实体,具有抽象性。
(2)软件的生产与硬件不同。
(3)软件产品不会“磨损”。
; ; ; ; ; ; ; ; ; ; ; ; ;软件工程具有下述的本质特性。
1.软件工程关注于大型程序的构造
“大”与“小”的分界线并不十分清晰。通常把一个人在较短时间内写出的程序称为小型程序,而把多人合作用时半年以上才写出的程序称为大型程序。
2.软件工程的中心课题是控制复杂性
通常,软件所解决的问题十分复杂,以致不能把问题作为一个整体通盘考虑。人们不得不把问题分解,使得分解出的每个部分是可理解的,而且各部分之间保持简单的通信关系。用这种方法并不能降低问题的整体复杂性,但是却可使它变成可以管理的。
3.软件经常变化
在软件系统交付使用后仍然需要耗费成本,而且在开发过程中必须考虑软件将来可能的变化。
; ; ; ;3.实行严格的产品控制
在软件开发过程中改变需求是难免的,只能依靠科学的产品控制技术来顺应这种要求。也就是说,当改变需求时,为了保持软件各个配置成分的一致性,必须实行严格的产品控制,其中主要是实行基准配置管理。所谓基准配置又称为基线配置,它们是经过阶段评审后的软件配置成分。
4.采用现代程序设计技术
5.结果应能清楚地审查
为了提高软件开发过程的可见性,更好地进行管理,应该根据软件开发项目的总目标及完成期限,规定开发组织的责任和产品标准,从而使得所得到的结果能够清楚地审查。
6.开发小组的人员应该少而精
7.承认不??改进软件工程实践的必要性
; ; ; ; ;特征
前一个阶段任务的完成是开始进行后一个阶段工作的前提和基础,而后一阶段任务的完成通常是使前一阶段提出的解法更进一步具体化,加进了更多的实现细节。
把软件生命周期划分成若干个阶段,每个阶段的任务相对独立,而且比较简单,便于不同人员分工协作,从而降低了整个软件开发工程的困难程度。
; ; ; ; ; ; ; ; ;软件生命周期每个阶段的基本任务。
1.问题定义
问题定义阶段必须回答的关键问题是:“要解决的问题是什么?”
通过对客户的访问调查,系统分析员扼要地写出关于问题性质、工程目标和工程规模的书面报告,经过讨论和必要的修改之后这份报告应该得到客户的确认。;2.可行性研究
这个阶段要回答的关键问题是:“对于上一个阶段所确定的问题有行得通的解决办法吗?”
系统分析员需要进行一次大大压缩和简化了的系统分析和设计过程,也就是在较抽象的高层次上进行的分析和设计过程。
;3.需求分析
这个阶段的任务仍然不是具体地解决问题,而是准确地确定“为了解决这个问题,目标系统必须做什么”。
系统分析员在需求分析阶段必须和用户密切配合,充分交流信息,以得出经过用户确认的系统逻辑模型。
在需求分析阶段确定的系统逻辑模型是以后设计和实现目标系统的基础,因此必须准确完整地体现用户的要求。这个阶段的一项重要任务,是用正式文档准确地记录对目标系统的需求,这份文档通常称为规格说明书(specification)。;4.总体设计
这个阶段必须回答的关键问题是:“概括地说,应该怎样实现目标系统?”总体设计又称为概要设计。
首先,应该设计出实现目标系统的几种可能的方案。
推荐一个最佳方案。
客户接受所推荐的方案,则应该进一步完成另一项主要任务。;5.详细设计
详细设计阶段的任务就是把解法具体化,也就是回答下面这个关键问题:“应该怎样具体地实现这个系统呢?”
详细设计也称为模块设计,在这个阶段将详细地设计每个模块,确定实现模块功能所需要的算法和数据结构。;6.编码和单元测试
这个阶段的关键任务是写出正确的容易理解、容易维护的程序模块。
7.综合测试
这个阶段的关键任务是通过各种类型的测试(及相应的调试)使软件达到预定的要
文档评论(0)