李家沱网站建设,国外科技感强的网站,好看的网站博客模板下载,沧州市网站制作基本概念
软件工程三要素#xff1a;方法、工具、过程 软件开发方法#xff1a;软件开发所遵循的办法和步骤#xff0c;以保证所得到的运行系统和支持的文档满足质量要求。
软件开发过程管理
软件生命周期#xff1a;可行性研究、需求分析、概要设计、详细设计、编码、测…基本概念
软件工程三要素方法、工具、过程 软件开发方法软件开发所遵循的办法和步骤以保证所得到的运行系统和支持的文档满足质量要求。
软件开发过程管理
软件生命周期可行性研究、需求分析、概要设计、详细设计、编码、测试、运行维护七个阶段。
软件开发模型
瀑布模型
将软件生命周期划分为制订计划、需求分析、软件设计、程序编写、软件测试和运行维护等6个基本活动并且规定了它们自上而下、相互衔接的固定次序比如同瀑布流水逐级下落。
优点是可以规范化过程有利于评审。 缺点在于给出软件生存周期各阶段的固定顺序上一阶段完成后才能进入下一阶段所以过于理想缺乏灵活性容易产生需求偏差导致软件开发完成才发现并非用户所需要的。
快速原型模型
第一步是建造一个快速原型实现客户或未来的用户与系统的交互用户或客户对原型进行评价进一步细化待开发软件的需求。通过逐步调整原型使其满足客户的要求开发人员可以确定客户的真正需求是什么。第二步则在第一步的基础上开发客户满意的软件产品。
优点减少由于软件需求不明确带来的开发风险具有显著的效果。
演化模型
快速原型模型在获取真实需求后将抛弃原型。而演化模型将在快速开发一个原型的基础上逐步演化成最终的软件。
增量模型
软件被作为一系列的增量构件来设计、实现、集成和测试每一个构件是由多种相互作用的模块所形成的提供特定功能的代码片段构成。增量模型在各个阶段并不交付一个可运行的完整产品而是交付满足客户需求的一个子集的可运行产品。
优点可以较好地适应变化客户可以不断地看到所开发的软件从而降低开发风险。也就是说增量模型有利于快速开发软件。
螺旋模型
综合了瀑布模型和演化模型的优点还增加了风险分析特别适合于大型复杂的系统。
喷泉模型
对软件复用和生存期中多项开发活动的集成提供了支持主要支持面向对象的开发方法。
软件开发方法
结构化开发方法
强调系统结构的合理性以及所开发的软件结构的合理性主要是面向数据流的 因此也被称为面向功能的软件开发方法或面向数据流的软件开发方法。
模块化开发方法
把一个待开发的软件系统分解成若干可单独命名和编址的较为简单的部分即模块每个模块分别独立地开发、测试最后再组装出整个软件系统。
面向对象开发方法
核心思想是利用面向对象的概念和方法为软件需求建立模型进行系统设计采用面向对象程序设计语言进行系统实现对建成的系统进行面向对象的测试和维护。
结构化分析
系统分析是指把要解决的问题作为一个系统对系统要素进行综合分析找出解决问题的可行方案的方法。
结构化分析方法StructuredAnalysisSA是面向数据流的需求分析方法适用于分析大型数据处理。釆用自顶向下、逐层分解建立系统的处理流程以数据流图Data Flow DiagramDFD和数据字典为主要工具建立系统的逻辑模型。SA方法的分析结果由以下几部分组成
一套分层的数据流图一本数据词典一组小说明补充材料
数据流图
结构化分析是面向数据流进行需求分析的方法用来描述数据流从输入到输出的变换流程。它以图形的方式描绘数据在系统中流动和处理的过程它只反映系统必须完成的逻辑功能所以是一种功能模型。
数据字典
数据流图仅描述了系统的“分解”但没有对图中各成分进行说明。数据字典就是用来定义数据流图中的各个成分的含义的。数据字典有4类条目包括数据流、数据项、数据存储和基本加工。
系统设计
结构化设计(Structured Design简称SD)是将结构化分析得到的数据流图映射成软件体系结构的一种设计方法。强调抽象化、模块化、信息隐蔽、模块独立、逐步求精、高内聚低耦合等设计准则。分为概要设计和详细设计两大步骤。
独立性由强到弱非直接耦合、数据耦合、标记耦合、控制耦合、外部耦合、公共耦合、内容耦合。
概要设计
设计软件系统总体结构数据结构的设计数据库的设计编写概要设计文档评审
详细设计
对每个模块进行详细的算法设计对模块内的数据结构进行设计对数据库进行物理设计其他设计。比如代码设计、用户界面设计、输入输出格式设计。编写详细设计说明书评审
系统开发
敏捷开发
以用户的需求进化为核心采用迭代、循序渐进的方法进行软件开发。核心理念就是以最简单有效的方式快速地达成目标并在这个过程中及时地响应外界的变化做出迅速的调整。
在敏捷开发中软件项目在构建初期被切分成多个子项目各个子项目的成果都经过测试具备可视、可集成和可运行使用的特征。换言之就是把一个大项目分为多个相互联系但也可独立运行的小项目并分别完成在此过程中软件一直处于可使用状态。
软件测试
从是否关心软件内部结构和具体实现的角度划分
白盒测试常见的方法是逻辑覆盖法。黑盒测试常用的方法包括等价类划分、边界值分析、错误推测法、因果图、功能图。
从是否执行代码角度
静态测试仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。动态测试动态测试是指通过运行被测程序检查运行结果与预期结果的差异并分析运行效率、正确性和健壮性等性能指标。
从软件开发的过程按阶段划分
单元测试又称模块测试集成测试又叫组装测试或联合测试是单元测试的多级扩展确认测试又称有效性测试。任务是验证软件的功能和性能及其它特性是否与用户的要求一致。系统测试为判断系统是否符合要求而对集成的软、硬件系统进行的测试活动验收测试以用户为主的测试软件开发人员和质量保证人员参加由用户设计测试用例。回归测试改了旧代码后重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。
系统维护
软件维护是指因修正错误、提升性能或其他属性而进行的软件修改。分为纠错性维护、适应性维护、增强型维护、预防性维护。
软件管理
软件项目管理
软件项目管理是软件生存周期中软件管理者所进行的一系列的活动其目的是在一定的时间和预设的范围内有效地利用人力、资源、技术和工具使软件系统或产品按照原定的计划和质量要求比如期完成。
有效的软件项目管理集中在4个P上即人员Person、产品Product、过程Procedure和项目Project。
软件评审
软件评审是在软件的生命周期内所实施的对软件本身的评审是对软件元素或者项目状态的一种评估手段以确定其是否与计划的结果保持一致并使其得到改进。
三层架构与MVC
三层架构表现层、业务逻辑层和数据访问层区分层次的目的即为了“高内聚低耦合”的思想。
MVC全名是Model View Controller是模型model视图view控制器controller的缩写一种软件设计典范用一种业务逻辑、数据、界面显示分离的方法组织代码将业务逻辑聚集到一个部件里面在改进和个性化定制界面及用户交互的同时不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。
M即Model模型层主要负责处理业务逻辑以及数据库的交互。V即View视图层主要负责显示数据和提交数据。C即Controller控制层主要是用作辅助捕获请求并控制请求转发。