软件工程的基本概念
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件工程的基本概念
软件工程是指导软件开发、运行、维护的系统方法。软件工程是强调使用生存周期方法和各种结构分析及设计技术。这些方法和技术适用于软件生存周期的各个阶段。所谓软件生存周期,是指一项软件从构思起,从经过开发成功投入使用,到停止使用或被另一项软件代替的全过程。
软件工程采用的生存周期方法就是从时间角度对软件开发的维护的复杂问题进行分解,把软件生存的漫长周期依次划分为若干阶段,每个阶段有相对独立的任务,然后逐步完成每个阶段的任务。采用软件工程方法开发软件时,从对任务的抽象逻辑分析开始,一个阶段一个阶段地进行开发。前一个阶段任务的完成是下一阶段开始进行的前提和基础,而后一阶段任务的完成使得肖一阶段提出的结果更加具体化。每一阶段的开始和结束都有严格标准,文档中阶段通信的工具,是阶段衔接的纽带。概括起来,软件工程的基本思想是:(1)软件开发划分为若干个阶段,每个阶段的任务相对独立和简单。
(2)完成各阶段任务是使用系统化技术和方法论。
(3)适时地建立里程碑,从技术和管理两方面加以严格审查。
(4)在软件的整个生存周期中编制完整的文档。
根据中华人民共和国国家标准GB8567-88《计算机软件产品开发文件编制指南》规定,软件生存周期可以分为六个阶段:可行性研究与计划阶段,需求分析阶段,设计阶段、实现阶段、测试阶段和运行与维护阶段。其中:
可行性研究与计划阶段,主要确定软件的开发目标和总体的要求,进行可行性分析、投资—效益分析,制定开发计划。
需求分析阶段,重点对被设计的软件进行系统分析,确定对软件的各项功能,性能需求和设计约束,确定对文档编制的要求。
设计阶段,根据软件需求提出多个设计,分析每个设计能履行的功能并进行相互比较,最后确定一个设计,包括软件的结构、模块的划分、功能的分配以及处理流程。当软件比较复杂的情况下,设计阶段可分成概要设计和详细设计两个步骤。
实现阶段,要完成源程序的编码、编译(或汇编)和排错调试,得出无语法错误的程序清单。
测试阶段,对提出的程序全面进行测试,检查审定已编制出的文档。
运行和维护阶段,软件将在运行使用中不断地被维护,根据新提出的需求进行必要而且可能的扩充和删改。
总之,采用软件工程可以大提高软件开发的成功率,软件的质量和生产率也会明显提高。
一、可行性研究与计划
软件开发之初必须要搞清楚解决的问题是什么,因此,进行可行性研究与计划是软件开发的第一步。
明确软件开发目标、研究软件能否实现、提出开发计划就是可行性研究与计划的目的和任务。
1.主要任务
首先确切地定义用户要求解决的问题,也就是问题的性质、软件的目标和总的要求,然后是用最小的代价在尽可能短的时间内确定问题是否能够解决。具体就就是,在澄清了问题定义之后,要导出系统的逻辑模型,从此出发探索若干种解决办法。对每种解决办法都要认真仔细研究三个可行性:
(1)技术可行性,即回答现有技术条件能否完成软件。
(2)经济合理性,即回答软件的成本与效益相比是否合算。
(3)实施可行性,即回答软件在实际使用时是否可行得通。
所以说,可行性研究与计划阶段要解决的关键在于对今后的行为提出建议;如果问题没有可行的解,立刻停止软件开发,以免造成更大的浪费;如果问题值得一解,则要推荐一个较好的解决方案,并为今后的工作制定一个初步的计划。
2.基本步骤
(1)对用户需求和现实环境进行调查。分析人员要访问有关用户,仔细阅读和分析有关材料,认真倾听理解用户口头提出的需求,从而确定问题的性质、软件的目标和规模。在复查确认的基础上,确保要解决的问题即用户要求解决的问题。
(2)提出解决办法。要对现有系统进行认真研究,根据用户需求导出新系统的高层逻辑模型。一般用数据流图和数据字典表示。然后把新系统的逻辑模型与用户重新交换意见,复查问题定义、工程规模和目标。从建议的逻辑模型出发,提出若干个较高层次的物理解法供比较和选择,提出书面材料。
(3)进行可行性研究。根据书面材料和有关资料对欲开发的软件从经济、技术和实施等方面进行可行性研究,写出可行性研究报告。
(4)评审。根据可行性研究结果,评审和审批决定软件项目是否继续。若项目可行,则制订初步的软件开发计划。
3.主要要求
(1)实施可行性切不可忽略,技术上、经济上可行,但实施不可行的软件同样行不通。
(2)进行成本/效益分析要提供几种可供选择的解答,要有确切的数据和估算方法,避免主观臆断。
(3)软件开发计划中要有明确的、可检查的标志。要提交齐全的、可验证的文档。包括:
①可行性研究报告;
②初步的软件开发计划。
总之,可行性研究与计划的关键在于保证软件开发人员和用户目标一致的前
提下,提交供审查批准的行动方案。
二、需求分析
需求分析也叫要求分析,指在准确地解决“软件必须实现什么”的问题。
1.主要任务
(1)确定对软件的综合需求
包括四方面的需求:
①功能需求,即要划分出软件必须完成的一切功能。
②性能需求,包括需要的存储容量、安全性、响应时间等。
③运行需求,主要是对软件运行时所处环境的要求。如支持软件运行的系
统软件是什么;采用什么数据库管理系统;需要什么样的外存储器和数据通信接口等。
④将来可能提出的需求,即列出那些虽然眼下不属于系统开发范畴,但将
来可能会提出来的需求,以便在设计过程中考虑将来的扩充和修改。
(2)分析软件的数据需求
任何一个软件本质上都是信息处理系统,软件必须处理的信息和软件应该产生的信息在很大程度上决定着软件的面貌,对软件设计影响深远。因此,分析软件的数据需求就成为需求分析阶段的重要任务之一。
软件中的数据分析要建立在对软件功能理解的基础上,借助图形工具进行。