目录
第1章软件工程的基本概念
1.1软件的定义、特征和分类
1.1.1软件的定义
1.1.2软件的特征<p>目录</p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p>第1章软件工程的基本概念</p> <p> </p> <p>1.1软件的定义、特征和分类</p> <p> </p> <p>1.1.1软件的定义</p> <p> </p> <p>1.1.2软件的特征</p> <p> </p> <p>1.1.3软件的分类</p> <p> </p> <p>1.2软件的发展和软件危机</p> <p> </p> <p>1.2.1软件的发展历程</p> <p> </p> <p>1.2.2软件危机的表现、产生的原因和解决方法</p> <p> </p> <p>1.3软件工程方法学</p> <p> </p> <p>1.3.1软件工程的基本概念</p> <p> </p> <p>1.3.2软件工程的要素</p> <p> </p> <p>1.3.3软件工程的基本原理</p> <p> </p> <p>1.3.4软件工程的基本目标</p> <p> </p> <p>1.3.5软件工程的基本原则</p> <p> </p> <p>1.3.6两种主要的软件工程方法</p> <p> </p> <p>小结</p> <p> </p> <p>习题</p> <p> </p> <p>第2章软件生存周期及开发模型</p> <p> </p> <p>2.1生存周期的种类</p> <p> </p> <p>2.2生存周期的阶段划分</p> <p> </p> <p>2.3软件过程的模型</p> <p> </p> <p>2.3.1瀑布模型</p> <p> </p> <p>2.3.2原型模型</p> <p> </p> <p>2.3.3增量模型</p> <p> </p> <p>2.3.4螺旋模型</p> <p> </p> <p>2.3.5变换模型</p> <p> </p> <p>2.3.6喷泉模型</p> <p> </p> <p>2.3.7智能模型</p> <p> </p> <p>2.3.8第4代技术模型</p> <p> </p> <p>2.3.9基于构件的开发模型</p> <p> </p> <p>小结</p> <p> </p> <p>习题</p> <p> </p> <p>第3章结构化需求分析</p> <p> </p> <p>3.1可行性研究</p> <p> </p> <p>3.1.1问题的定义</p> <p> </p> <p>3.1.2可行性分析的内容</p> <p> </p> <p>3.2需求分析的任务</p> <p> </p> <p>3.3获取需求的方法</p> <p> </p> <p>3.4结构化需求分析方法</p> <p> </p> <p>3.4.1需求分析的原则</p> <p> </p> <p>3.4.2需求分析的过程</p> <p> </p> <p>3.5分析建模</p> <p> </p> <p>3.5.1分析模型</p> <p> </p> <p>3.5.2数据建模(ER图)</p> <p> </p> <p>3.5.3功能建模(数据流图)</p> <p> </p> <p>3.5.4行为建模(状态迁移图)</p> <p> </p> <p>3.5.5数据字典</p> <p> </p> <p>3.5.6加工说明的描述工具</p> <p> </p> <p>3.6需求规格说明书</p> <p> </p> <p>3.7需求验证</p> <p> </p> <p>小结</p> <p> </p> <p>习题</p> <p> </p> <p>第4章结构化软件设计</p> <p> </p> <p>4.1软件设计的原理</p> <p> </p> <p>4.1.1软件设计的过程</p> <p> </p> <p>4.1.2软件设计的原则</p> <p> </p> <p>4.1.3软件体系结构</p> <p> </p> <p>4.2软件结构设计</p> <p> </p> <p>4.2.1模块化设计</p> <p> </p> <p>4.2.2模块的独立性</p> <p> </p> <p>4.2.3软件体系结构优化的方法</p> <p> </p> <p>4.2.4体系结构设计案例</p> <p> </p> <p>4.3面向数据流的设计方法</p> <p> </p> <p>4.3.1变换流与变换型系统结构</p> <p> </p> <p>4.3.2事务流与事务型系统结构图</p> <p> </p> <p>4.3.3变换分析与映射</p> <p> </p> <p>4.3.4事务分析与映射</p> <p> </p> <p>4.4数据设计</p> <p> </p> <p>4.4.1数据设计的原则</p> <p> </p> <p>4.4.2文件设计的过程</p> <p> </p> <p>4.4.3数据库设计</p> <p> </p> <p>4.4.4数据库设计的技巧</p> <p> </p> <p>4.5详细设计</p> <p> </p> <p>4.5.1详细设计的任务</p> <p> </p> <p>4.5.2详细设计的原则</p> <p> </p> <p>4.5.3过程设计</p> <p> </p> <p>4.5.4界面设计</p> <p> </p> <p>4.5.5在线帮助的信息设计</p> <p> </p> <p>4.5.6提示信息的信息设计</p> <p> </p> <p>4.6设计规格说明与设计评审</p> <p> </p> <p>4.6.1软件设计规格说明书</p> <p> </p> <p>4.6.2软件设计的评审</p> <p> </p> <p>小结</p> <p> </p> <p>习题</p> <p> </p> <p>第5章面向对象方法学</p> <p> </p> <p>5.1面向对象概述</p> <p> </p> <p>5.1.1面向对象基本概念</p> <p> </p> <p>5.1.2面向对象基本特征</p> <p> </p> <p>5.2面向对象开发方法概述</p> <p> </p> <p>5.2.1软件开发过程</p> <p> </p> <p>5.2.2传统开发方法存在的问题</p> <p> </p> <p>5.2.3面向对象开发方法的特点</p> <p> </p> <p>5.2.4Booch方法</p> <p> </p> <p>5.2.5Coda/Yourdon方法</p> <p> </p> <p>5.2.6OMT方法</p> <p> </p> <p>5.2.7OOSE方法</p> <p> </p> <p>5.3统一建模语言UML</p> <p> </p> <p>5.3.1UML概述</p> <p> </p> <p>5.3.2UML内容</p> <p> </p> <p>小结</p> <p> </p> <p>习题</p> <p> </p> <p>第6章面向对象分析</p> <p> </p> <p>6.1面向对象分析概述</p> <p> </p> <p>6.1.1面向对象分析模型</p> <p> </p> <p>6.1.2面向对象分析过程</p> <p> </p> <p>6.2需求陈述</p> <p> </p> <p>6.3建立功能模型</p> <p> </p> <p>6.3.1确定基本系统模型图</p> <p> </p> <p>6.3.2细化数据流图</p> <p> </p> <p>6.3.3功能描述</p> <p> </p> <p>6.3.4用例模型</p> <p> </p> <p>6.4建立静态模型</p> <p> </p> <p>6.4.1寻找类与对象</p> <p> </p> <p>6.4.2确定关联</p> <p> </p> <p>6.4.3确定属性</p> <p> </p> <p>6.4.4识别主题</p> <p> </p> <p>6.4.5识别结构</p> <p> </p> <p>6.4.6定义服务</p> <p> </p> <p>6.4.7完善对象模型</p> <p> </p> <p>6.5建立动态模型</p> <p> </p> <p>6.5.1准备脚本</p> <p> </p> <p>6.5.2确定事件</p> <p> </p> <p>6.5.3准备时序图</p> <p> </p> <p>6.5.4生成协作图</p> <p> </p> <p>6.5.5构造状态机图</p> <p> </p> <p>6.5.6完善动态模型</p> <p> </p> <p>6.6面向对象分析实例</p> <p> </p> <p>小结</p> <p> </p> <p>习题</p> <p> </p> <p>第7章面向对象设计</p> <p> </p> <p>7.1面向对象设计概述</p> <p> </p> <p>7.1.1面向对象设计模型</p> <p> </p> <p>7.1.2面向对象设计准则</p> <p> </p> <p>7.1.3面向对象设计启发规则</p> <p> </p> <p>7.2系统设计</p> <p> </p> <p>7.2.1系统分解</p> <p> </p> <p>7.2.2设计问题域子系统</p> <p> </p> <p>7.2.3设计人机交互子系统</p> <p> </p> <p>7.2.4设计任务管理子系统</p> <p> </p> <p>7.2.5设计数据管理子系统</p> <p> </p> <p>7.2.6全局资源管理</p> <p> </p> <p>7.2.7控制流机制</p> <p> </p> <p>7.2.8边界条件</p> <p> </p> <p>7.2.9评审</p> <p> </p> <p>7.3对象设计</p> <p> </p> <p>7.3.1设计内部结构</p> <p> </p> <p>7.3.2设计关联</p> <p> </p> <p>7.3.3设计接口</p> <p> </p> <p>7.3.4设计类中的服务</p> <p> </p> <p>7.3.5选择复用构件</p> <p> </p> <p>7.3.6优化对象设计</p> <p> </p> <p>7.4面向对象设计实例</p> <p> </p> <p>7.4.1分析阶段</p> <p> </p> <p>7.4.2设计阶段</p> <p> </p> <p>小结</p> <p> </p> <p>习题</p> <p> </p> <p>第8章代码设计</p> <p> </p> <p>8.1程序设计语言</p> <p> </p> <p>8.1.1程序设计语言的基本成分</p> <p> </p> <p>8.1.2程序设计语言的分类</p> <p> </p> <p>8.1.3程序设计语言的选择</p> <p> </p> <p>8.2程序设计风格</p> <p> </p> <p>8.2.1源程序的文档化</p> <p> </p> <p>8.2.2数据说明</p> <p> </p> <p>8.2.3语句构造</p> <p> </p> <p>8.2.4输入与输出</p> <p> </p> <p>8.2.5编程规范</p> <p> </p> <p>8.3结构化程序设计</p> <p> </p> <p>8.3.1结构化程序设计的原理</p> <p> </p> <p>8.3.2结构化编程</p> <p> </p> <p>8.4面向对象程序设计</p> <p> </p> <p>8.4.1面向对象语言特点</p> <p> </p> <p>8.4.2面向对象语言的选择</p> <p> </p> <p>8.4.3面向对象程序设计风格</p> <p> </p> <p>8.5程序效率</p> <p> </p> <p>8.6程序复杂性度量</p> <p> </p> <p>小结</p> <p> </p> <p>习题</p> <p> </p> <p>第9章软件测试</p> <p> </p> <p>9.1软件测试基础</p> <p> </p> <p>9.1.1什么是软件缺陷</p> <p> </p> <p>9.1.2软件测试的原则</p> <p> </p> <p>9.1.3软件测试过程模型</p> <p> </p> <p>9.1.4软件测试的阶段</p> <p> </p> <p>9.1.5软件测试的工作范畴</p> <p> </p> <p>9.2软件测试基本技术</p> <p> </p> <p>9.2.1黑盒测试和白盒测试</p> <p> </p> <p>9.2.2静态测试和动态测试</p> <p> </p> <p>9.2.3验证与确认</p> <p> </p> <p>9.2.4自动化测试和随机测试</p> <p> </p> <p>9.3黑盒测试法</p> <p> </p> <p>9.3.1等价类划分法</p> <p> </p> <p>9.3.2边界值分析法</p> <p> </p> <p>9.3.3错误推测法</p> <p> </p> <p>9.3.4因果图法</p> <p> </p> <p>9.4白盒测试法</p> <p> </p> <p>9.4.1逻辑覆盖法</p> <p> </p> <p>9.4.2基本路径法</p> <p> </p> <p>9.5软件测试计划</p> <p> </p> <p>9.5.1测试策略</p> <p> </p> <p>9.5.2制定测试计划</p> <p> </p> <p>9.6测**例设计</p> <p> </p> <p>9.6.1什么是测**例</p> <p> </p> <p>9.6.2测**例的书写标准</p> <p> </p> <p>9.6.3测**例设计的原则</p> <p> </p> <p>9.7面向对象测试</p> <p> </p> <p>9.7.1面向对象测试模型</p> <p> </p> <p>9.7.2面向对象的单元测试</p> <p> </p> <p>9.7.3面向对象的集成测试</p> <p> </p> <p>9.8软件测试自动化</p> <p> </p> <p>9.8.1自动化测试的基本概念</p> <p> </p> <p>9.8.2测试工具的分类及选择</p> <p> </p> <p>小结</p> <p> </p> <p>习题</p> <p> </p> <p>第10章软件过程</p> <p> </p> <p>10.1软件过程概述</p> <p> </p> <p>10.2软件过程能力成熟度模型</p> <p> </p> <p>10.2.1软件过程能力成熟度模型(SWCMM)的诞生</p> <p> </p> <p>10.2.2软件过程能力成熟度模型(CMM)的组织与结构</p> <p> </p> <p>10.2.3能力等级的特点和关键过程域</p> <p> </p> <p>10.2.4实施CMM是软件企业发展的必然趋势</p> <p> </p> <p>10.3软件过程的改进</p> <p> </p> <p>10.3.1软件过程改进的5条原则</p> <p> </p> <p>10.3.2软件过程改进的策略</p> <p> </p> <p>10.3.3软件过程改进战略策划</p> <p> </p> <p>10.3.4软件过程改进建议</p> <p> </p> <p>10.3.5为什么要实施SPI</p> <p> </p> <p>10.3.6以项目形式管理SPI</p> <p> </p> <p>小结</p> <p> </p> <p>习题</p> <p> </p> <p>第11章成本估算与进度规划</p> <p> </p> <p>11.1软件度量与软件生产率</p> <p> </p> <p>11.1.1软件度量</p> <p> </p> <p>11.1.2面向规模的度量</p> <p> </p> <p>11.1.3面向功能的度量</p> <p> </p> <p>11.1.4软件质量的度量</p> <p> </p> <p>11.1.5影响软件生产率的因素</p> <p> </p> <p>11.2软件项目估算与开发成本估算</p> <p> </p> <p>11.2.1软件项目计划的目标</p> <p> </p> <p>11.2.2软件的范围</p> <p> </p> <p>11.2.3软件开发的资源</p> <p> </p> <p>11.2.4软件项目估算</p> <p> </p> <p>11.2.5估算之前的任务分解</p> <p> </p> <p>11.2.6软件开发成本估算</p> <p> </p> <p>11.3进度计划</p> <p> </p> <p>11.3.1各阶段工作量的分配</p> <p> </p> <p>11.3.2制订开发进度计划</p> <p> </p> <p>11.3.3进度安排的方法</p> <p> </p> <p>小结</p> <p> </p> <p>习题</p> <p> </p> <p>第12章团队建设与沟通管理</p> <p> </p> <p>12.1团队建设的基本概念</p> <p> </p> <p>12.2项目团队的组织</p> <p> </p> <p>12.2.1项目的组织结构模式</p> <p> </p> <p>12.2.2程序设计小组的组织形式</p> <p> </p> <p>12.3团队成员的选择与基本要求</p> <p> </p> <p>12.3.1项目开发各阶段对人员的需求</p> <p> </p> <p>12.3.2配备人员的原则</p> <p> </p> <p>12.3.3对项目经理的要求</p> <p> </p> <p>12.3.4团队成员的招聘与选择</p> <p> </p> <p>12.4团队的建设与管理</p> <p> </p> <p>12.4.1项目成员的使用与培训</p> <p> </p> <p>12.4.2对项目成员的激励</p> <p> </p> <p>12.4.3软件项目的指导</p> <p> </p> <p>12.4.4软件项目的检验</p> <p> </p> <p>12.5团队的沟通管理</p> <p> </p> <p>12.5.1沟通管理与沟通的原则</p> <p> </p> <p>12.5.2沟通方式</p> <p> </p> <p>12.5.3编制项目沟通计划</p> <p> </p> <p>小结</p> <p> </p> <p>习题</p> <p> </p> <p>第13章风险管理和配置管理</p> <p> </p> <p>13.1风险管理</p> <p> </p> <p>13.1.1软件风险分类</p> <p> </p> <p>13.1.2风险识别</p> <p> </p> <p>13.1.3风险预测</p> <p> </p> <p>13.1.4处理风险的策略</p> <p> </p> <p>13.2质量保证</p> <p> </p> <p>13.2.1软件质量</p> <p> </p> <p>13.2.2软件质量保证措施</p> <p> </p> <p>13.3配置管理</p> <p> </p> <p>13.3.1软件配置管理的内容</p> <p> </p> <p>13.3.2软件配置管理的基本目标</p> <p> </p> <p>13.3.3软件配置管理角色职责</p> <p> </p> <p>13.3.4软件配置管理过程描述</p> <p> </p> <p>13.3.5软件配置管理的关键活动</p> <p> </p> <p>小结</p> <p> </p> <p>习题</p> <p> </p> <p>第14章软件工程标准</p> <p> </p> <p>14.1软件工程标准化</p> <p> </p> <p>14.1.1软件工程标准的概念</p> <p> </p> <p>14.1.2软件工程标准的制定与推行</p> <p> </p> <p>14.1.3软件工程标准层次</p> <p> </p> <p>14.2软件质量认证</p> <p> </p> <p>14.2.1软件质量认证的产生背景</p> <p> </p> <p>14.2.2软件质量认证的标准</p> <p> </p> <p>14.2.3软件质量认证的作用</p> <p> </p> <p>14.2.4ISO 9000标准的构成</p> <p> </p> <p>14.3GB/T 8567—2006计算机软件文档编制规范</p> <p> </p> <p>14.3.1使用范围</p> <p> </p> <p>14.3.2文档过程</p> <p> </p> <p>14.3.3文档编制要求</p> <p> </p> <p>小结</p> <p> </p> <p>习题</p> <p> </p> <p>第15章软件文档</p> <p> </p> <p>15.1软件文档的意义</p> <p> </p> <p>15.2软件文档的作用</p> <p> </p> <p>15.2.1管理依据</p> <p> </p> <p>15.2.2任务之间联系的凭证</p> <p> </p> <p>15.2.3质量保证</p> <p> </p> <p>15.2.4培训与参考</p> <p> </p> <p>15.2.5软件维护支持</p> <p> </p> <p>15.2.6历史档案</p> <p> </p> <p>15.3软件文档的分类</p> <p> </p> <p>15.3.1开发文档</p> <p> </p> <p>15.3.2产品文档</p> <p> </p> <p>15.3.3管理文档</p> <p> </p> <p>15.4软件文档的管理</p> <p> </p> <p>15.4.1概述</p> <p> </p> <p>15.4.2管理者的作用</p> <p> </p> <p>15.4.3制订文档编制策略</p> <p> </p> <p>15.5软件文档的编写技巧</p> <p> </p> <p>15.5.1从技术角度进行文档的编写和评价</p> <p> </p> <p>15.5.2明确文档编写人员的责任</p> <p> </p> <p>15.5.3让编写人员对开发项目有准确的认识</p> <p> </p> <p>15.5.4让开发和设计人员参与文档审阅工作</p> <p> </p> <p>15.6文档编写的常用工具</p> <p> </p> <p>小结</p> <p> </p> <p>习题</p> <p> </p> <p>第16章软件文档编写指南</p> <p> </p> <p>16.1概述</p> <p> </p> <p>16.2软件开发文档</p> <p> </p> <p>16.2.1可行性分析(研究)报告</p> <p> </p> <p>16.2.2软件需求规格说明</p> <p> </p> <p>16.2.3概要设计书</p> <p> </p> <p>16.2.4详细设计书</p> <p> </p> <p>16.3软件管理文档</p> <p> </p> <p>16.3.1项目开发计划</p> <p> </p> <p>16.3.2软件测试计划</p> <p> </p> <p>16.3.3测试报告</p> <p> </p> <p>16.3.4开发进度月报</p> <p> </p> <p>16.3.5项目开发总结报告</p> <p> </p> <p>16.4软件用户文档</p> <p> </p> <p>16.4.1用户手册</p> <p> </p> <p>16.4.2操作手册</p> <p> </p> <p>小结</p> <p> </p> <p>习题</p> <p> </p> <p>参考文献</p> <p> </p> <p> </p>显示全部信息前 言第2版前言本书第1版于2013年5月由清华大学出版社出版,得到了广大高校师生和读者的好评。第2版是在经过几年的教学实践的基础上,吸收了很多读者有益的建议后编写而成,在此对这些读者表示衷心的感谢。作者在这些年的软件工程教学和实践中也感觉到需要将软件工程教学和实践中的新技术、新发展、新需求加入到教材中,因此对第1版进行了修订。本书第2版在第1版的基础上,根据新技术、新消息的发展,总结了软件开发的实践过程和教学过程的经验教训,完善了第1版的精华部分,删除了不适宜的内容,同时增加了新的知识元素。对于章节做了适当的调整,尤其是对面向对象技术部分内容做了一些改动。本书是一种注重系统性、针对性、实效性的书籍,对于从事软件工程的人员都具有非常好的借鉴作用。全书共分为16章。第1章简要介绍了软件工程的基本概念、软件的发展过程、软件工程学研究的对象与准则、当前几种主要的软件工程方法以及软件工程的发展方向。第2章简述软件工程的生命周期模型。第3章以软件定义为目标,叙述了可行性研究的任务和方法,软件需求分析的任务、要求和方法,以及使用结构化方法进行系统建模的过程。第4章主要以结构化方法介绍软件的概要设计或基本设计、详细设计和数据库设计的内容、设计过程、方法和技术。第5~7章介绍当前主要采用的面向对象方法,包括面向对象分析、面向对象设计的方法和技术。第8、9章介绍软件开发阶段的软件代码设计和软件测试技术。第10章简要地介绍了软件过程能力成熟度模型和软件过程改进方法。第11~13章简要地介绍了软件项目管理的一些内容,其中主要包括成本管理、度量管理与进度规划、团队建设与沟通管理、风险管理与配置管理等。第14~16章介绍有关软件工程的开发规范和软件文档的编写方法。本书主要是作为普通高等院校的软件工程课程的教材,同时也兼顾了一些软件企业的技术人员自学的需要,因此每章均配备了大量的习题,关于参考课件和习题答案可以从清华大学出版社网站上下载。本书由吉林大学珠海学院计算机科学与技术系的李军国教授组织编著和定稿,其中的第1~4章和第10~13章由李军国编著,第5~7章由吴昊编著,第8、9章由郭晓燕编著,第14~16章由王舒编著。在编写过程中,力求结合实际,通过一些案例讲解软件工程的方法和过程。由于作者水平有限,书中难免有疏漏之处,恳请各位读者批评指正,并衷心希望读者能将实际工作中运用本书介绍的经验和体会告诉作者,以便作者在下一版中加以改进和完善。第2版前言本书第1版于2013年5月由清华大学出版社出版,得到了广大高校师生和读者的好评。第2版是在经过几年的教学实践的基础上,吸收了很多读者有益的建议后编写而成,在此对这些读者表示衷心的感谢。作者在这些年的软件工程教学和实践中也感觉到需要将软件工程教学和实践中的新技术、新发展、新需求加入到教材中,因此对第1版进行了修订。本书第2版在第1版的基础上,根据新技术、新消息的发展,总结了软件开发的实践过程和教学过程的经验教训,完善了第1版的精华部分,删除了不适宜的内容,同时增加了新的知识元素。对于章节做了适当的调整,尤其是对面向对象技术部分内容做了一些改动。本书是一种注重系统性、针对性、实效性的书籍,对于从事软件工程的人员都具有非常好的借鉴作用。全书共分为16章。第1章简要介绍了软件工程的基本概念、软件的发展过程、软件工程学研究的对象与准则、当前几种主要的软件工程方法以及软件工程的发展方向。第2章简述软件工程的生命周期模型。第3章以软件定义为目标,叙述了可行性研究的任务和方法,软件需求分析的任务、要求和方法,以及使用结构化方法进行系统建模的过程。第4章主要以结构化方法介绍软件的概要设计或基本设计、详细设计和数据库设计的内容、设计过程、方法和技术。第5~7章介绍当前主要采用的面向对象方法,包括面向对象分析、面向对象设计的方法和技术。第8、9章介绍软件开发阶段的软件代码设计和软件测试技术。第10章简要地介绍了软件过程能力成熟度模型和软件过程改进方法。第11~13章简要地介绍了软件项目管理的一些内容,其中主要包括成本管理、度量管理与进度规划、团队建设与沟通管理、风险管理与配置管理等。第14~16章介绍有关软件工程的开发规范和软件文档的编写方法。本书主要是作为普通高等院校的软件工程课程的教材,同时也兼顾了一些软件企业的技术人员自学的需要,因此每章均配备了大量的习题,关于参考课件和习题答案可以从清华大学出版社网站上下载。本书由吉林大学珠海学院计算机科学与技术系的李军国教授组织编著和定稿,其中的第1~4章和第10~13章由李军国编著,第5~7章由吴昊编著,第8、9章由郭晓燕编著,第14~16章由王舒编著。在编写过程中,力求结合实际,通过一些案例讲解软件工程的方法和过程。由于作者水平有限,书中难免有疏漏之处,恳请各位读者批评指正,并衷心希望读者能将实际工作中运用本书介绍的经验和体会告诉作者,以便作者在下一版中加以改进和完善。<br />李军国2018年3月<br /><br /><br /><br />显示全部信息免费在线读第3章结构化需求分析需求分析是必要且十分重要的环节。实践证明,软件分析工作的好坏,在很大程度上决定了软件的成败。本章将从实际案例出发,对结构化方法的可行性分析和需求分析过程进行全面的剖析。在软件开发实践中,经过成功和失败,使人们认识到,为了使开发出来的目标系统能满足实际需要,在着手编程之前,首先必须要有一定的时间用来认真考虑以下问题。(1) 需求所要求解决的问题是什么?(2) 为解决该问题,系统应该做些什么?(3) 系统应该怎么去做?软件分析的任务是: 通过计划和需求分析,*终完成系统的逻辑方案。逻辑方案不同于物理方案,前者解决“是什么”的问题,是软件分析的任务; 后者解决“如何做”的问题,是软件设计的任务。系统分析过程如图3.1所示。
图3.1系统分析过程流程图
3.1可行性研究