python二级-软件工程基础

计算机软件是计算机系统中与硬件相互依存的另一部分,是包括程序、数据及相关文档的完整集合。软件具有以下特点:①软件是一种逻辑实体,而不是物理实体,具有抽象性;②软件的生产过程与硬件不同,它没有明显的制作过程;③软件在运行、使用期间不存在磨损、老化问题;④软件的开发、运行对计算机系统具有依赖性,受计算机系统的限制,这导致软件移植的问题;⑤软件复杂性高,成本昂贵;⑥软件开发涉及诸多的社会因素。

软件工程三要素:方法、工具、过程

​ 通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。它可以分为软件定义、软件开发及软件运行维护三个阶段。

设计阶段

软件设计一般分为总体设计和详细设计两个阶段,总体设计的任务是确定软件的总体结构,子系统和模块的划分,并确定模块间的接口和评价模块划分质量,以及进行数据分析。详细设计的任务是确定每一模块实现的定义,包括数据结构、算法和接口。

软件设计包括软件结构设计、数据设计、接口设计和过程设计

  • 结构设计是定义软件系统各主要部件之间的关系;

  • 数据设计是将分析时创建的模型转化为数据结构的定义;

  • 接口设计是描述软件内部、软件和操作系统之间及软件与人之间如何通信;

  • 过程设计则是把系统结构部件转换成软件的过程性描述。

软件需求分析阶段

需求分析是软件定义时期的最后一个阶段,它的基本任务就是详细调查现实世界要处理的对象(组织、部门、企业等),充分了解原系统的工作概况,明确用户的各种需求,然后在此基础上确定新系统的功能。

软件的需求分析阶段的工作,可以概括为四个方面:需求获取、需求分析、编写需求规格说明书和需求评审。

  • 需求获取的目的是确定对目标系统的各方面需求。涉及到的主要任务是建立获取用户需求的方法框架,并支持和监控需求获取的过程。
  • 需求分析是对获取的需求进行分析和综合,最终给出系统的解决方案和目标系统的逻辑模型。
  • 编写需求规格说明书作为需求分析的阶段成果,可以为用户、分析人员和设计人员之间的交流提供方便,可以直接支持目标软件系统的确认,又可以作为控制软件开发进程的依据。
  • 需求评审是对需求分析阶段的工作进行复审,验证需求文档的一致性、可行性、完整性和有效性。

软件需求规格说明书(SRS,Software Requirement Specification)是需求分析阶段的最后成果,是软件开发中的重要文档之一。它有以下几个方面的作用:① 便于用户、开发人员进行理解和交流;② 反映出用户问题的结构,可以作为软件开发工作的基础和依据;③ 作为确认测试和验收的依据。

确认测试

​ 确认测试的任务是验证软件的功能和性能及其他特性是否满足了需求规格说明中的确定的各种需求,以及软件配置是否完全、正确。

总体设计阶段

​ 总体设计过程通常由两个主要阶段组成:系统设计,确定系统的具体实现方案;结构设计,确定软件结构。

​ 为确定软件结构,首先需要从实现角度把复杂的功能进一步分解。分析员结合算法描述仔细分析数据流图中的每个处理,如果一个处理的功能过分复杂,必须把它的功能适当地分解成一系列比较简单的功能。

软件调试技术

调试的关键在于推断程序内部的错误位置及原因。主要的调试方法有强行排错法、回溯法和原因排除法。

视图设计

视图设计一般有3种设计次序,它们分别是自顶向下、自底向上和由内向外,它们又为视图设计提供了具体的操作方法,设计者可根据实际情况灵活掌握,可以单独使用也可混合使用。

软件测试的目的

​ 软件测试是为了发现错误而执行程序的过程;一个好的测试用例是指很可能找到迄今为止尚未发现的错误的用例;一个成功的测试是发现了至今尚未发现的错误的测试。整体来说,软件测试的目的就是尽可能多地发现程序中的错误。

软件测试的步骤

软件测试过程一般按4个步骤进行,即单元测试、集成测试、验收测试(确认测试)和系统测试

软件测试的准则

1)所有的测试都应追溯到需求;2)严格执行测试计划,排除测试的随意性;3)充分注意测试中的群集现象;4)程序员应避免检查自己的程序;5)穷举测试不可能;6)妥善保存测试计划、测试用例、出错统计和最终分析报告,为维护提供方便。

软件设计阶段

从工程管理角度看,软件设计分为两步完成:概要设计与详细设计。概要设计(又称结构设计)将软件需求转化为软件体系结构、确定系统级接口、全局数据结构或数据库模式;详细设计确立每个模块的实现算法和局部数据结构,用适当方法表示算法和数据结构的细节。

软件设计准则

​ ①提高模块独立性;
​ ②模块规模适中;
​ ③深度、宽度、扇入和扇出适当;
​ ④使模块的作用域在该模块的控制域内;
​ ⑤应减少模块的接口和界面的复杂性;
​ ⑥设计成单入口、单出口的模块。
​ ⑦设计功能可预测的模块。

软件生命周期

​ 软件生命周期分为软件定义、软件开发及软件维护。其中软件开发阶段的任务中软件设计阶段可分解成概要设计阶段和详细设计阶段;

软件开发和维护过程中,软件危机的主要表现

​ ①软件需求的增长得不到满足。用户对系统不满意的情况经常发生。
​ ②软件开发成本和进度无法控制。开发成本超出预算,开发周期大大超过规定日期的情况经常发生。
​ ③软件质量难以保证。
​ ④软件不可维护或维护程度非常低。
​ ⑤软件的成本不断提高。
​ ⑥软件开发生产率的提高赶不上硬件的发展和应用需求的增长

总之,可以将软件危机归结为成本、质量、生产率等问题。

带箭头线段

程序流程图中带有箭头的线段表示控制流

数据流图中带有箭头的线段表示数据流

黑盒测试方法

等价类划分法、边界值分析法、错误推测法、因果图等,主要用于软件确认测试。

白盒测试方法

逻辑覆盖、基本路径测试,判定-条件覆盖 等

各种工具总结

详细设计使用的工具主要有:程序流程图,N-S图,PAD,HIPO。
结构化分析的常用工具有:数据流图(DFD)、数据字典(DD)、判定树和判定表等。

软件设计工具包括:程序流程图、N-S、PAD、HIPO,判定表,PDL(伪码)

过程设计工具有:程序流程图、N-S图、PAD图和HIPO图。其中,为了避免流程图在描述程序逻辑时的灵活性,提出了用方框图来代替传统的程序流程图,通常也把这种图称为N-S图。

需求分析阶段常用的工具:数据流图(DFD)和数据字典(DD)

发布了106 篇原创文章 · 获赞 21 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/jiangSummer/article/details/104572773