【文档说明】物联网工程设计与实施第6章-软件工程基础课件.pptx,共(44)页,1.471 MB,由小橙橙上传
转载请保留链接:https://www.ichengzhen.cn/view-45100.html
以下为本文档部分文字说明:
1第6章软件工程基础•软件工程概述•软件开发过程•软件计划•需求分析•软件设计•软件编码•软件测试26.1软件工程概述•软件工程方法学:在软件开发、维护全过程中使用的技术方法的集合•软件工程方法学3要素:方法、工具和过程–方法:完成软件开发的各项任务的
技术方法,回答“怎样做”的问题–工具:为运用方法而提供的自动的或半自动的软件工程支撑环境–过程:为了获得高质量的软件所需要完成的一系列任务的框架,规定完成各项任务的工作步骤•最常见的软件工程方法学:结构化方法学和面向对象方法学36.2软件开发过程软件生命周期
3个时期、8个阶段⑴软件定义时期(软件计划、需求分析)•软件计划阶段:在初步了解软件需求的基础上,进行可行性研究,理解工作范围和所花代价,估算项目的成本和工作量,做初步的进度安排,并据此制订软件计划。•软件需求分析阶段:深入具体地了解用户的要求,就必须“做什么”
这个问题与用户取得完全一致看法,包括功能需求、性能需求、环境要求与限制等内容,并用规格说明书表达出来。46.2软件开发过程⑵软件开发时期•软件设计阶段:总体设计和详细设计。总体设计阶段确定系统的实现方案,设计软件系统结构,确定各部分之间
的关系,给出模块间传送的数据结构以及每个模块的功能说明;详细设计阶段则设计出每一模块的内部实现细节。•软件编码阶段:选择合适的语言与相应支持环境,按软件设计说明书的要求为每一部分编写出程序代码。•软件测试阶段:发现和排除软件中存在的错误和缺陷,软件测试包括阶段文档的
评审和对程序的执行检查,测试步骤通常分为单元测试、集成测试、系统测试和验收测试。经过测试和排错,得到可运行的软件。56.2软件开发过程⑶软件运行和维护时期•对已交付运行的软件继续进行排错、修改、完善和扩充6软件开发过程模型1.瀑布模型7软件开发过程模型带反馈的瀑布模型8软件开
发过程模型2.原型模型9软件开发过程模型3.螺旋模型10软件开发过程模型4.增量模型11软件开发过程模型5.喷泉模型126.3软件计划问题定义问题定义报告用户单位:XX财务处负责人:XXX分析员单位:XX软件公司分析员:XXX项目名称:
水质监测系统问题概述:利用传感器感知监测区域的水质数据,利用通信系统将感知的数据传回数据中心,进行相应的处理、存档、发布。……项目目标:开发一个有效的水质系统项目规模:开发成本约XXX万元可行性研究建议:进行一周,费用不超过XXX元
XXXX年XX月XX日签字:XXX136.3软件计划可行性研究•经济可行性•技术可行性•法律可行性146.3软件计划软件规模估算•代码行技术和功能点技术(1)LOC(LineofCode)行数基准法根据估计的最小(乐观)的行数(a)、最大(悲观)的
行数(b)和最可能的行数(m),计算程序的最佳期望行数:64bmaL误差:midabL12)6(156.3软件计划(2)功能点法•件信息域特性:输入项数(Inp)、输出项数(Out)、查询数(Inq)、主文件数(Ma
f)、外部接口数(Inf)•估算功能点根据软件产品信息域特性等级分配功能点数,例如,简单级输入项分配3个功能点,平均级输入项分配4个功能点,复杂级输入项分配6个功能点,计算功能点数UFP:InfaMafaInqaOutaInpaUFP
54321166.3软件计划•计算技术复杂性因子TCF:标识名称标识名称F1数据通信F8联机更新F2分布式数据处理F9复杂的计算F3性能标准F10可重用性F4高负荷的硬件F11安装方便F5高
处理率F12操作方便F6联机数据输入F13可移植性F7终端用户效率F14可维护性141iiFDIDITCF01.065.0TCFUFPFP技术难度对工作量的影响DI一般定为[0,70]176.3软件计划软件成本和工
作量估算•工作量:人月数或人日数•不同类型的软件、在不同条件下开发软件,难易度与工作量是不一样的•三种情况:–有机方式:开发人员较少,具有类似项目的经验–嵌入方式:软硬件环境、运行规程有严格限制,开发出
的软件,嵌入到这个条件苛刻的大系统中去–半分离方式:介于有机方式和嵌入方式中间,开发人员对该项目具有中等的经验,对接口有一定的限制186.3软件计划特征方式有机半分离嵌入开发部门对产品目标的理解程度彻底有相当的
程度一般对有关软件系统的已有工作经验有广泛的经验相当程度的经验中等软件遵循预定需求的必要性基本上相当程度全面地软件遵循外部接口规格的必要性基本上相当程度全面地有关新型硬件与操作过程应否同时开发有一些中等广泛是否要开发新的数据处理算法与体系
结构很少有一些相当多提前完成可获得的奖励不多有一些相当多产品规模<50KDSI>=300KDSI无上限典型例子批处理数据浓缩大多数事务处理系统大型复杂事务处理系统科学、商务模型新OS、DBMS大型OS熟悉的OS与编译程序简单的指挥控制系统大型指挥系统简单的库
存管理、生产控制大型库存管理生产控制系统工作量计算公式MM(人月)2.4(KDSI)1.053.0(KDSI)1.123.6(KDSI)1.28开发时间计算公式TDEV(月)2.5(MM)0.382.5(MM
)0.352.5(MM)0.32TDEVMMFSP人数:19进度安排•普通进度图–MSproject–Excel月份任务123456789101112子任务1▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲
▲▲▲▲子任务2子任务3子任务4子任务5工作进度计划表5月工作任务负责人78910111213141516171819202122232425262728293031数据库处理路由建立函数路由更新函数路由修复函数20进度安排•甘特图–MSproject21进度安排•P
ERT(ProgramEvaluation&ReviewTechnique)图起点A4B3C3D2G4E5F6H6终点226.4需求分析需求分析工具1.数据流图(DataFlowDiagram,DFD)和数据字典236.4需求分析数据字典数据存储名称:
存折数据流的来源:储户数据流的去处:加工“1检验存折”数据流的组成:存折=帐号+户名+开户网点名称+凭证号+签发日期+属性+通存通兑+印密+1{存取记录}120帐号=“00000000000000000001”..“99999999999999999999”户名=
2{汉字}4开户网点名称=4{汉字}20凭证号=“000000001”..“999999999”签发日期=年+月+日属性=多币种用户|双币种用户通存通兑=非|通印密=密|无……246.4需求分析2.实体-关系图(Entity-RelationshipDiagram,ERD)256.4
需求分析3.状态转换图(StateTransitionDiagram,STD)266.4需求分析4.层次方框图监测系统数据处理主站发布命令节点接收命令节点数据获取数据发送清洗聚合归并保存276.4需求分析5.UseCase图查询余额存钱柜员机用户柜员机取钱使用柜员机《扩
展》用户选择查询余额《扩展》用户选择存钱《扩展》用户选择取钱打印单据《包含》《包含》286.4需求分析需求分析过程1.获取初步需求2.获取详细需求296.4需求分析需求分析规格说明书编制⑴任务描述⑵最终用户特点⑶软件功能⑷软件性能⑸输入输出要求⑹数据管理能力要求⑺故障处理要求⑻运行环
境规定⑼控制306.5软件设计总体设计给出系统的实现方法,确定软件结构,即模块间的关系1.总体设计的工具层次图316.5软件设计2.面向数据流的设计方法326.5软件设计2.面向数据流的设计方法336.5软件设计详细设计•为每个模块确定实现的算法•确定模块使用的数据结构
和模块接口的细节(包括内部接口、外部接口、输入、输出及局部数据等)•设计一组测试用例,以便在编码阶段对模块代码进行预定的测试346.5软件设计详细设计工具•IPO图与IPO表356.5软件设计详细设
计工具•流程图366.5软件设计详细设计文档⑴模块描述⑵功能⑶性能⑷输入项⑸输出项⑹算法⑺流程逻辑⑻接口⑼存储分配⑽注释设计⑾限制条件⑿测试计划⒀尚未解决的问题376.5软件设计详细设计文档⑴模块描述⑵功能⑶性能⑷输入项⑸输出项⑹算法⑺流程逻辑⑻接口⑼存储分配⑽
注释设计⑾限制条件⑿测试计划⒀尚未解决的问题386.6编码工具•语言:-C/C++-C#-Java-PHP•开发环境:-ASP.NET-Eclipse•DB-Oracles-SQLServer-DB2-PostGr
eSql-MySQL396.6编码编码风格模块序言性注释一般包括如下内容://////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////版权说明://文件名://文件编号://项目名称://对应设计文档://主要算法://接口://子程序://
开发简历://设计者://设计日期://复审者://复审日期://修改记录://摘要://版本://作者://更新日期://///////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////406.6编码函数的序言性注释/***********************************
**************//函数名://函数功能、性能等的描述://被本函数调用的函数://调用本函数的函数://被访问的表(此项仅对于牵扯到数据库操作的程序)://被修改的表(此项仅对于牵扯到数据库操作的程序)://输入参数说明,包括每个参数的作用、取值说明
及参数间关系://对输出参数的说明://函数返回值的说明://影响到的全局或局部静态变量://测试建议://修改记录://其它说明:*************************************************/416.6编码变量注释/****************
*********************************//变量的作用、含义://取值范围://可以读该变量的函数://可能修改该变量的函数://其它说明:************************************
*************/426.6编码•命名规则•程序格式if(…){a=a+1;…}if(…){a=a+1;…}436.7软件测试测试步骤与过程信息流向:测试过程:446.7软件测试测试方法•黑盒测试•白盒测试•测试工具,如Junit