软件开发流程.

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

软件开发流程软件开发流程概述项目:需求来自某个别用户,定制性能政府、企业、基金项目金土资源、myPKI产品:需求来自某类用户,不单独定制Windows立项阶段开发阶段维护阶段市场调研立项申请需求分析总体设计详细设计编码文档单元测试集成测试系统测试产品化发行结项产品维护个性化修改软件产品开发流程1、可行性分析——做不做?目的:为决策提供依据要求:真实、全面与重点兼顾内容:市场可行性:成熟?对手?用户?政策可行性:盗版软件?技术可行性:核心技术?时间?成本收益分析:办公、工资、培训、维护SWOT分析:-Strengths,Weaknesses,Opportunities,ThreatsSWOT分析Strengths技术技能优势:资产优势:有形(先进设施)、无形(品牌)人力资源优势:组织体系优势竞争能力:开发周期,营销网络Weaknesses缺乏核心技能技术?缺乏有竞争力的资产资源(包括人力)……Opportunities确认评价每个重要机会客户群的扩展市场壁垒并购竞争对手?向其他地理区域扩张?Threats市场内的竞争对手市场增值率汇率和外贸政策市场需求减少经济危机,国家调控政策2、需求分析——有所为有所不为重要性:难点:用户需求不断改变、交流理解有误差内容:功能需求性能指标环境需求:软、硬件环境界面需求:人机交互方式使用工具:RationalRose、Visio3、系统设计——架构师软件体系结构属于系统设计可分两个阶段:总体设计和详细设计总体设计:需求分析的结果——软件体系构架、结构复杂系统模块进行功能划分、建立层次结构详细设计:各个模块的功能设计3、系统设计——流程总体设计评审软件体系结构修改需求说明书详细设计接受评审系统设计说明书修改模块功能描述3、系统设计——内容需求分析软件体系结构设计界面设计数据库设计模块功能设计算法、数据结构设计编码测试总体设计详细设计系统设计系统设计——用户界面设计用户界面类型对话框:计算器文档:office浏览器:outlook其他,如游戏界面界面设计人机界面就是系统本身3、系统设计——界面设计原则实用、直观、简洁、生动对用户友好:符合习惯、及时反馈信息风格一致:WordPowerpoint错误处理:提示、撤销等帮助:尽量减少非必要信息3、系统设计——数据库设计目的:设计表结构存储、操作数据步骤,分两步:抽象:客观对象抽象出实体和联系模型-Entity-Relationship将(概念)模型转化为实际数据库系统支持的数据模型(物理模型)数据库设计范式1NF、2NF、3NF、BCNF使得添加、更新、删除时少发生错误工具:PowerDesigner系统设计——数据库设计方法和工具1ER图实体:□,例如学生、教师属性:○,学生属性:姓名、性别、学号关系:◇,实体间关系课程学号分数学生成绩学号性别姓名班级n课程选修院系4、模块设计模块指系统的各功能部件模块化降低开发、测试、维护的代价如何划分模块:没有标准答案模块设计的原则接口公开、内部实现隐藏高内聚:模块内部关联度高。如果不高?低耦合:模块之间依赖程度应该低。高?模块设计内容接口(外)、数据结构+算法(内)4、模块设计——OOP设计类的抽象类的结构层次:继承、依赖类的属性、定义类的实现5、模块设计——数据结构和算法设计理念为那种应用服务?时间优先还是空间优先?熟悉哪些算法或数据结构一般过程先设计全局数据结构、再局部数据结构优先使用已有、成熟、合适的,再考虑自行设计满足性能即可,不满足,再优化6、编码语言Java:面向对象、分布式、解释型、可移植、多线程,.Net:健壮、安全、统一、开发简单-CLR(CommonLanguageRuntime):核心,类似虚拟机,负责代码执行、内存管理、安全等-Framework:平台基础-C#,C++,…Unix/LinuxCLRNativeImageGenerator(NGEN)6、编码——编码规范目标:易读、风格统一、安全,可维护移植内容:命名代码书写格式其他如函数、变量等的设置要求6、编码——开发方法一种软件开发方法:极限编程XP(eXtremeProgramming)KentBeck:1996理念:交流、朴素、反馈、勇气、尊重将复杂的开发过程分解为许多相对简单的小周期。积极交流反馈,让涉众清楚开发进度、问题、困难,并及时调整。相互尊重!极限:把所有强调的思想、方法做到最好,其他忽略;RUPAgileScrum6、编码——源代码控制版本管理人员离开变动?如何记录重要更新?多个版本出现,管理版本的变化?对各个小组的子模块管理?保留修改轨迹,便于撤销错误的改动?常用工具:VSS,MicrosoftVisualSouceSafeCVS,ConcurrentVersionsSystem,-Opensource7、软件测试定义(Myers,软件测试艺术):为了发现错误而执行程序的过程目的:保证软件质量时机:在软件交付用户或投入运行之前经验:错误越迟被发现,调试难度越大。阶段:单元测试、集成测试、系统测试、用户测试7、软件测试单元测试由开发者编写一段代码,检验程序基本功能是否正确。测试的单元:类、函数。-例如装配电脑,先测试显卡、硬盘、光驱等7、软件测试集成测试:自顶向下桩模块:模拟真模块,提供数据建立测试驱动模块:以程序真正的主模块为驱动模块,替换某桩模块,输入数据,检测输出是否正确回归测试:做一定修改后,再次由测试部门进行测试结束测完所有模块?Y回归测试替换一个桩模块建立测试驱动模块建立桩模块开始N集成测试7、软件测试集成测试:自底向上组织模块群:将部分底层模块组装成实现某个功能的模块群建立测试驱动模块:对上一步组装的模块群开发一个测试程序,输入数据,测试输出是否正确结束测完所有模块?Y删除驱动模块测试模块群建立测试驱动模块组织模块群开始N7、软件测试——系统测试概念:将完整的软件及其所依赖的软硬件环境整合,进行测试内容:性能、负载黑盒测试:不关心内部,只看结果是否正确白盒测试:结构或逻辑测试,检验内部功能是否按规定正确工作。单元测试通常是白盒测试,而集成测试和系统测试往往是黑盒测试7、软件测试——测试工具单元测试:xUnit(CppUnit,Junit,Nunit)黑盒:功能测试:RationalSQARobot性能测试:RationalSQALoad白盒测试:内存泄露:RationalPurify代码覆盖率:RationalPurecoverage代码性能:RationalQuantify测试管理:RationalTestManager8、结项安装盘的制作InstallShield,Acresso公司,事实标准VisioStudio.Net发布程序版权保护加密:序列号说明书帮助文档制作HLP,早期,MicrosoftHelpWorkshopCHM,1998年推出,MicrosoftHtmlHelpWorkshop8、软件维护未发现的Bug需求改变版本升级兼容售后培训……DimensionsofsoftwarecomplexityHighertechnicalcomplexity-Embedded,real-time,distributed,fault-tolerant-Custom,unprecedented,architecturereengineering-HighperformanceLowertechnicalcomplexity-Mostly4GL,orcomponent-based-Applicationreengineering-InteractiveperformanceHighermanagementcomplexity-Largescale-Contractual-Manystakeholders-“Projects”Lowermanagementcomplexity-Smallscale-Informal-Singlestakeholder-“Products”DefenseMISSystemDefenseWeaponSystemTelecomSwitchCASEToolNationalAirTrafficControlSystemEnterpriseIS(FamilyofISApplications)CommercialCompilerBusinessSpreadsheetISApplicationDistributedObjects(OrderEntry)SmallScientificSimulationLarge-ScaleOrganization/EntitySimulationAnaveragesoftwareproject:-5-10people-10-15monthduration-3-5externalinterfaces-Someunknowns&risksEmbeddedAutomotiveSoftwareISApplicationGUI/RDB(OrderEntry)CASE:computeraidedsoftwareengineeringForcesinSoftwareTechnologychurnOurenemyiscomplexity,andit’sourgoaltokillit.——JanBaanPerformanceThroughputCapacityAvailabilityFailsafeFaulttoleranceFunctionalityCostCompatibilityResilienceThechallengeoverthenext20yearswillnotbespeedorcostorperformance;itwillbeaquestionofcomplexity.——BillRaduchel,ChiefStrategyOfficer,SunMicrosystems

1 / 29
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功