目录 任务1选择软件开发模型1 1.1对软件的认知2 1.1.1软件的概念和特点2 1.1.2软件的分类2 1.1.3软件生产的发展过程4 1.1.4我国软件产业的发展历程5 1.2对软件危机的认知8 1.2.1软件危机的主要表现9 1.2.2软件危机产生的原因9 1.2.3软件危机的解决途径9 1.3对软件工程的认知10 1.3.1软件工程的基本概念10 1.3.2软件工程的目标10 1.3.3软件工程的发展历程11 1.3.4软件工程的原则12 1.3.5软件工程方法学13 1.3.6软件工程过程15 1.4对软件生命周期的认知16 1.4.1软件生命周期的基本概念16 1.4.2软件生命周期的八个阶段16 1.5对软件开发模型的认知17 1.5.1瀑布模型17 1.5.2快速原型模型18 1.5.3螺旋模型19 1.5.4增量模型20 1.5.5喷泉模型21 1.5.6基于构件的软件开发模型22 1.5.7敏捷开发模型22软件工程与UML项目化实用教程(第3版)目录1.6对计算机辅助软件工程的认知29 1.7习题31 任务2认识统一建模语言33 2.1初识UML34 2.1.1UML简介34 2.1.2UML发展简史34 2.1.3UML的特点和用途35 2.2UML的表示方法37 2.2.1UML视图37 2.2.2UML图37 2.2.3UML模型元素38 2.2.4UML通用机制40 2.3UML静态建模42 2.3.1用例图42 2.3.2类图47 2.3.3对象图53 2.3.4组件图54 2.3.5配置图56 2.4UML动态建模57 2.4.1状态图58 2.4.2活动图61 2.4.3顺序图65 2.4.4协作图67 2.5包图69 2.6统一过程RUP71 2.7拓展提高——类图的抽象层次73 2.8习题76 任务3新闻发布系统可行性研究与软件开发计划77 3.1案例——新闻发布系统可行性研究报告78 3.1.1引言78 3.1.2可行性研究的前提78 3.1.3所建议技术可行性研究79 3.1.4经济可行性分析79 3.1.5社会因素可行性分析79 3.1.6结论80 3.2软件定义80 3.3项目的可行性研究80 3.3.1可行性研究的任务81 3.3.2可行性研究的步骤83 3.3.3可行性研究的结果84 3.4可行性研究工具——系统流程图的使用85 3.5制订软件开发计划87 3.6习题88 任务4新闻发布系统需求分析与建模89 4.1案例——新闻发布系统产品需求规格说明90 4.1.1系统说明90 4.1.2功能性需求90 4.1.3非功能性需求95 4.2需求分析任务、步骤和方法97 4.2.1需求获取97 4.2.2需求建模99 4.2.3需求描述99 4.2.4需求验证100 4.3面向对象需求分析101 4.3.1建立用例模型101 4.3.2绘制业务流程图104 4.3.3绘制活动图105 4.3.4绘制实体—联系图107 4.4结构化分析方法110 4.4.1绘制数据流图111 4.4.2编制数据字典114 4.5习题117 任务5新闻发布系统概要设计118 5.1案例——新闻发布系统模块设计报告119 5.1.1文档介绍119 5.1.2模块命名规则119 5.1.3模块设计120 5.2面向对象设计128 5.2.1面向对象设计内容129 5.2.2面向对象设计原则129 5.3新闻发布系统体系结构设计133 5.4开发环境及运行平台的选择133 5.5新闻发布系统模式设计134 5.5.1MVC设计模式134 5.5.2DAO设计模式136 5.6新闻发布系统类设计137 5.7新闻发布系统包设计138 5.8新闻发布系统接口设计140 5.9新闻发布系统数据库设计141 5.10新闻发布系统动态结构设计143 5.10.1绘制状态图143 5.10.2绘制顺序图144 5.10.3绘制协作图147 5.11编写文档148 5.11.1编制软件测试计划148 5.11.2编制软件概要设计说明149 5.11.3编制数据库设计说明149 5.12习题150 任务6新闻发布系统详细设计151 6.1案例——新闻发布系统用户界面设计报告152 6.1.1应当遵循的界面设计规范152 6.1.2界面设计153 6.2绘制新闻发布系统程序流程图160 6.2.1程序流程图基本知识160 6.2.2绘制程序流程图的方法160 6.3设计数据代码162 6.4输入/输出设计164 6.4.1输入设计164 6.4.2输出设计165 6.4.3新闻发布系统部分输入/输出数据说明165 6.5用户界面设计166 6.6数据安全设计170 6.7编写软件详细设计说明并复审171 6.8拓展提高——其他详细设计工具172 6.9习题175 任务7新闻发布系统编码的实现177 7.1代码结构建模——绘制新闻发布系统组件图178 7.1.1组件图的用途178 7.1.2组件图建模技术178 7.1.3新闻发布系统组件图178 7.2系统物理结构建模——绘制新闻发布系统配置图179 7.2.1配置图建模技术180 7.2.2新闻发布系统配置图180 7.3选择程序设计语言180 7.3.1程序设计语言的分类181 7.3.2选择程序设计语言的标准182 7.4熟悉编码规范,编写符合要求的代码184 7.5面向对象程序设计186 7.5.1面向对象程序设计概念186 7.5.2面向对象程序设计准则186 7.6拓展提高——软件重用187 7.6.1软件重用的优点与级别187 7.6.2软件构件的标准规范、组织和检索188 7.6.3基于构件的软件开发过程190 7.6.4面向对象软件重用技术191 7.7习题192 任务8新闻发布系统软件的测试193 8.1案例——新闻发布系统测试用例设计194 8.1.1测试环境194 8.1.2测试用例194 8.2软件测试基础知识197 8.2.1测试的概念、目标和对象197 8.2.2软件测试的基本原则198 8.2.3软件测试方法199 8.2.4软件测试步骤200 8.2.5设计测试方案202 8.3面向对象测试207 8.3.1面向对象语境对测试的影响208 8.3.2面向对象的测试策略208 8.3.3面向对象测试用例设计209 8.4使用软件测试工具210 8.4.1白盒测试工具210 8.4.2黑盒测试工具211 8.4.3测试管理工具212 8.5软件调试212 8.5.1软件调试方法213 8.5.2常用调试策略213 8.6编写软件测试分析文档214 8.7拓展提高——度量程序的复杂性215 8.8习题216 任务9新闻发布系统项目的发布与维护218 9.1案例——新闻发布系统用户手册219 9.1.1栏目管理219 9.1.2类别管理220 9.1.3新闻管理221 9.2发布产品222 9.3维护软件224 9.3.1软件维护类型224 9.3.2软件维护方式224 9.3.3软件维护实施225 9.3.4软件可维护性度量228 9.3.5软件维护的副作用230 9.4习题231 任务10软件项目管理232 10.1软件项目管理概述233 10.2估算软件规模234 10.2.1代码行技术234 10.2.2功能点技术235 10.3使用COCOMO 2模型估算软件开发工作量236 10.4进度管理238 10.4.1估算开发时间238 10.4.2进度控制238 10.4.3甘特图240 10.4.4工程网络图240 10.5人员组织241 10.5.1确定项目组成员242 10.5.2确定项目组组织方式242 10.6软件质量保证244 10.6.1软件质量244 10.6.2软件质量保证措施245 10.7软件配置管理246 10.8软件工程的文档管理248 10.8.1软件文档及其使用对象248 10.8.2软件生存周期各阶段文档的编制249 10.8.3面向对象软件各种文档的编制250 10.8.4文档编制应考虑的因素250 10.9软件项目管理计划252 10.10习题253 参考文献255