软件工程与UML项目化实用教程(第2版)/高职高专计算机任务驱动模式教材pdf下载

软件工程与UML项目化实用教程(第2版)/高职高专计算机任务驱动模式教材百度网盘pdf下载

作者:
简介:软件工程与UML项目化实用教程(第2版)/高职高专计算机任务驱动模式教材
出版社:
出版时间:2019-09
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍

内容简介

  《软件工程与UML项目化实用教程(第2版)/高职高专计算机任务驱动模式教材》从实用的角度出发,通过一个案例项目“新闻发布系统”的开发过程来代领学习过程,进行教学内容的整合。通过引导学生完成一系列工作任务来实现本课程的学习目标,重点培养学生运用所学知识解决实际问题的能力。实现了项目导向、任务驱动、理论与实践教、学、做一体化。该书注重内容的先进性和系统性,注重实际应用。该书内容包括选择软件开发模型,认识统一建模语言,新闻发布系统可行性研究与软件开发计划、需求分析与建模、概要设计、详细设计、编码的实现、软件的测试、项目的发布与维护,软件项目管理等,并都有同步习题。
  该书内容适量,难度适中,既可作为高职高专院校计算机类相关专业学生的教材,也可供应用型本科、软件工程师、软件项目管理人员和软件开发人员使用。

作者简介

刘振华,女,硕士,53岁,天津大学计算机应用技术专业工学硕士,在《计算机应用》、《微处理机》、《教育信息化》和《中国成人教育》等发表学术论文31篇,编写教材5部.

内页插图

目录

任务1选择软件开发模型1

1.1对软件的认知2

1.1.1软件的概念和特点2

1.1.2软件的分类2

1.1.3软件的发展过程4

1.2对软件危机的认知5

1.2.1软件危机的主要表现5

1.2.2软件危机产生的原因6

1.2.3软件危机的解决途径6

1.3对软件工程的认知6

1.3.1软件工程的基本概念7

1.3.2软件工程的目标7

1.3.3软件工程的发展历程8

1.3.4软件工程的原则9

1.3.5软件工程方法学9

1.3.6软件工程过程10

1.4对软件生命周期的认知11

1.4.1软件生命周期的基本概念11

1.4.2软件生命周期的八个阶段11

1.5对软件开发模型的认知12

1.5.1瀑布模型12

1.5.2快速原型模型13

1.5.3螺旋模型14

1.5.4增量模型15

1.5.5喷泉模型16

1.5.6基于构件的软件开发模型17

1.6对计算机辅助软件工程的认知17

1.7习题19软件工程与UML项目化实用教程(第2版)目录任务2认识统一建模语言21

2.1初识UML22

2.1.1UML简介22

2.1.2UML发展简史22

2.1.3UML的特点和用途23

2.2UML的表示方法25

2.2.1UML视图25

2.2.2UML图25

2.2.3UML模型元素26

2.2.4UML通用机制30

2.3UML静态建模31

2.3.1用例图31

2.3.2类图33

2.3.3对象图34

2.3.4包图36

2.3.5组件图37

2.3.6配置图38

2.4UML动态建模40

2.4.1状态图40

2.4.2活动图43

2.4.3顺序图47

2.4.4协作图50

2.5统一过程RUP51

2.6习题53

任务3新闻发布系统可行性研究与软件开发计划54

3.1案例——新闻发布系统可行性研究报告55

3.1.1引言55

3.1.2可行性研究的前提55

3.1.3所建议技术可行性研究56

3.1.4经济可行性分析56

3.1.5社会因素可行性分析56

3.1.6结论57

3.2软件定义57

3.3项目的可行性研究57

3.3.1可行性研究的任务58

3.3.2可行性研究的步骤60

3.3.3可行性研究的结果60

3.4可行性研究工具——系统流程图的使用62

3.5制订软件开发计划64

3.6习题65

任务4新闻发布系统需求分析与建模66

4.1案例——新闻发布系统产品需求规格说明67

4.1.1系统说明67

4.1.2功能性需求67

4.1.3非功能性需求72

4.2需求分析任务、步骤和方法74

4.2.1需求获取74

4.2.2需求建模76

4.2.3需求描述76

4.2.4需求验证77

4.3面向对象需求分析78

4.3.1基于用例的需求分析方法79

4.3.2绘制业务流程图81

4.3.3绘制活动图84

4.3.4绘制实体—关系图86

4.4结构化分析方法89

4.4.1绘制数据流图89

4.4.2编制数据字典92

4.5习题96

任务5新闻发布系统概要设计97

5.1案例——新闻发布系统模块设计报告98

5.1.1文档介绍98

5.1.2模块命名规则98

5.1.3模块设计99

5.2面向对象设计108

5.2.1面向对象设计内容109

5.2.2面向对象设计原则109

5.3新闻发布系统体系结构设计111

5.4开发环境及运行平台的选择111

5.5新闻发布系统模式设计112

5.5.1MVC设计模式112

5.5.2DAO设计模式114

5.6新闻发布系统类设计115

5.7新闻发布系统包设计116

5.8新闻发布系统接口设计118

5.9新闻发布系统数据库设计119

5.10新闻发布系统动态结构设计121

5.10.1绘制状态图121

5.10.2绘制顺序图123

5.10.3绘制协作图125

5.11编写文档126

5.11.1编制软件测试计划126

5.11.2编制软件概要设计说明127

5.11.3编制数据库设计说明127

5.12习题128

任务6新闻发布系统详细设计129

6.1案例——新闻发布系统用户界面设计报告130

6.1.1应当遵循的界面设计规范130

6.1.2界面设计131

6.2绘制新闻发布系统程序流程图138

6.2.1程序流程图基本知识138

6.2.2绘制程序流程图的方法138

6.3设计数据代码140

6.4输入、输出设计142

6.4.1输入设计142

6.4.2输出设计143

6.4.3新闻发布系统部分输入/输出数据说明143

6.5用户界面设计144

6.6数据安全设计148

6.7编写软件详细设计说明并复审149

6.8拓展提高——其他详细设计工具150

6.9习题153

任务7新闻发布系统编码的实现155

7.1代码结构建模——绘制新闻发布系统组件图156

7.1.1组件图的用途156

7.1.2组件图建模技术156

7.1.3新闻发布系统组件图156

7.2系统物理结构建模——绘制新闻发布系统配置图157

7.2.1配置图建模技术158

7.2.2新闻发布系统配置图158

7.3选择程序设计语言158

7.3.1程序设计语言的分类159

7.3.2选择程序设计语言的标准160

7.4熟悉编码规范,编写符合要求的代码162

7.5面向对象程序设计164

7.5.1面向对象程序设计概念164

7.5.2面向对象程序设计准则164

7.6拓展提高——软件重用165

7.6.1软件重用的优点与级别166

7.6.2软件构件的标准规范、组织和检索166

7.6.3基于构件的软件开发过程169

7.6.4面向对象软件重用技术169

7.7习题171

任务8新闻发布系统软件的测试172

8.1案例——新闻发布系统测试用例设计173

8.1.1测试环境173

8.1.2测试用例173

8.2软件测试基础知识177

8.2.1测试的概念、目标和对象177

8.2.2软件测试的基本原则177

8.2.3软件测试方法178

8.2.4软件测试步骤179

8.2.5设计测试方案181

8.3面向对象测试187

8.3.1面向对象语境对测试的影响187

8.3.2面向对象的测试策略188

8.3.3面向对象测试用例设计188

8.4使用软件测试工具189

8.4.1白盒测试工具189

8.4.2黑盒测试工具190

8.4.3测试管理工具191

8.5软件调试192

8.5.1软件调试方法192

8.5.2常用调试策略192

8.6编写软件测试分析文档193

8.7拓展提高——度量程序的复杂性194

8.8习题196

任务9新闻发布系统项目的发布与维护197

9.1案例——新闻发布系统用户手册198

9.1.1栏目管理198

9.1.2类别管理199

9.1.3新闻管理200

9.2发布产品201

9.3维护软件202

9.3.1软件维护类型202

9.3.2软件维护方式203

9.3.3软件维护实施204

9.3.4软件可维护性度量207

9.3.5软件维护的副作用208

9.4习题209

任务10软件项目管理211

10.1软件项目管理概述212

10.2估算软件规模213

10.2.1代码行技术213

10.2.2功能点技术214

10.3使用COCOMO 2模型估算软件开发工作量215

10.4进度管理217

10.4.1估算开发时间217

10.4.2进度控制218

10.4.3甘特图219

10.4.4工程网络图219

10.5人员组织220

10.5.1确定项目组成员220

10.5.2确定项目组组织方式221

10.6软件质量保证223

10.6.1软件质量223

10.6.2软件质量保证措施224

10.7软件配置管理225

10.8软件工程的文档管理227

10.8.1软件文档及其使用对象227

10.8.2软件生存周期各阶段文档的编制228

10.8.3面向对象软件各种文档的编制229

10.8.4文档编制应考虑的因素229

10.9软件项目管理计划231

10.10习题233

参考文献234


精彩书摘

任务3新闻发布系统可行性研究

与软件开发计划

 能力目标

能够独立对较简单项目从技术、经济、社会条件等方面进行可行性研究,确定项目是否立项。

能够使用系统流程图进行项目可行性研究。

能够编写项目可行性研究报告。

能够制订初步的项目开发计划。

能够使用Project进行项目的计划安排。

 知识目标

掌握软件项目立项时可行性研究的方法、内容和步骤。

掌握可行性研究报告的编写方法。

任 务 导 入

在软件生命周期中的软件计划时期要进行软件定义。这个阶段的时间最短,要通过对用户的调查研究,尽快明确软件开发的目标、规模和基本要求,研究系统开发的可行性并制订软件开发计划。

任 务 清 单

(1) 软件定义。

(2) 研究项目可行性。

(3) 绘制系统流程图和业务流程图。

(4) 编写项目可行性研究报告。

(5) 制订软件开发计划。软件工程与UML项目化实用教程(第2版)任务3新闻发布系统可行性研究与软件开发计划3.1案例——新闻发布系统可行性研究报告〖1〗3.1.1引言〖*2〗1. 编写目的说明该软件开发项目的实现在技术、经济和社会条件方面的可行性;说明并论证所选定方案的可行性。

2. 项目背景

校园网作为学校信息化建设的一个平台,在完成新闻发布、资源共享、互联网访问等方面发挥了重要作用。宣传展示学校风采、发布日常办公等事务通知和通告、政策信息的上传与下达是新闻发布系统建设的目标所在。本系统立足于校园实际,着眼于未来发展,建成符合标准化协议、通用性较强、实用的系统,以提高高校现代化管理水平,实现信息资源的共享,向数字化校园更进一步。校内新闻发布系统目前从学校的实际条件出发,充分利用学校所拥有的计算机硬件设备和软件条件,为学校教学、行政和其他日常工作提供有力的信息和知识保障。更好地服务于师生,方便师生及时了解校内外的实时资讯及学校的最新动态。

3. 参考资料

略。

3.1.2可行性研究的前提〖*2〗1. 基本要求实现校内新闻的管理,使得对信息的管理更加及时、高效,功能主要包括前台新闻浏览、评论及后台的管理。

本系统主要功能及性能要求如下。

(1) 用户登录验证。

(2) 管理员进行新闻类别管理和新闻发布管理。新闻类别管理内容包括新闻类别的添加、删除、修改;新闻发布管理内容包括新闻信息的添加、删除、修改、查询。

(3) 普通用户浏览新闻,可以对新闻进行评论,管理员可以对评论进行管理。

(4) 能方便快捷地完成新闻发布工作,输入数据合法性校验程度高,数据查询速度快。

(5) 完成期限的要求。

2. 目标

(1) 人力与设备费用的相对减少。

(2) 使用此系统后可以及时发布校内外重要信息。

3. 条件、假定和限制

说明项目开发中所具备的条件、假定和所受到的限制。

(1) 系统运行寿命的最小值应达三年。

(2) 系统方案选择比较的时间为一个月。

(3) 经费、投资方面的来源。

(4) 运行环境和开发环境方面的条件。

(5) 可利用的信息和资源。

① 可参考已有的应用程序和数据库管理系统。

② 系统投入使用的最晚时间为当年的6月。

4. 可行性研究方法

可行性研究采用的方法如下。

(1) 客户调查。

(2) 参考其他同类网站、同类产品。

3.1.3所建议技术可行性研究

(1) 风险分析。此软件可维护,可扩展,风险小。

(2) 资源分析。必需的软件、硬件、工作环境都已经具备。

(3) 技术分析。此网站使用JSP技术,采用MyEclipse JSP Editor和SQL Server 2008及以上版本的DBMS开发工具。采用三层架构,使网站将来具有更好的扩展性和可维护性,由于项目没有复杂的业务,逻辑要求简单,所以利用现有技术方面完全可以达到。

3.1.4经济可行性分析

校园内部局域网已经建成;不需要很大投入,充分利用学校所拥有的计算机硬件设备和软件条件。

3.1.5社会因素可行性分析〖*2〗1. 法律方面的可行性新系统的研制和开发,不得侵犯他人、集体和国家的利益,不会违反国家政策和法律。

2. 使用方面的可行性

具体安排操作简单、界面友好,许多选项只需单击就可以完成,实现了网站对即时新闻的管理要求,新闻的发布具有预览功能。系统运行应该快速、稳定、高效和可靠;在结构上应具有很好的可扩展性,便于将来的功能扩展和维护。

3.1.6结论

经上述可行性分析,系统研制和开发可以立即开始进行。

3.2软 件 定 义

在软件工程项目开始时,往往先进行软件定义,确定系统硬件、软件的功能和接口。通过对用户进行详细的调查研究,仔细阅读和分析有关的资料,确定所开发的软件系统的名称,明确系统的目标规模、基本要求,并对现有系统进行分析,明确开发新系统的必要性,设计新系统可能的解决方案。

【实例31】新闻发布系统的软件定义。

开发一个新闻发布系统,将校园信息集中管理,并通过信息的某些共性进行分类,最后系统化、标准化发布到网站上,使师生可以及时了解校内外动态。新闻发布系统的用户有管理员和普通用户。管理员负责新闻类别管理、新闻发布管理、用户管理和评论管理,普通用户可以浏览新闻、发布评论。录入数据合法性校验程度高,数据查询速度快。

3.3项目的可行性研究

可行性研究是软件项目在正式立项前必须进行的工作,目的不是解决问题,而是确定软件项目是否值得做以及能否用尽可能小的代价在尽可能短的时间内解决。可行性研究最根本的任务是对以后的行动方针提出建议,如果问题没有可行的解,则应建议停止这项开发工程,以避免时间、资源、人力和金钱的浪费;如果问题值得解,则推荐一个好的解决方案,并制订一个初步的工程计划。

可行性研究需要的时间长短取决于工程的规模,一般来说,可行性研究的成本只是预期工程总成本的5%~10%。

3.3.1可行性研究的任务

可行性研究的主要任务: “了解客户的要求及现实环境,从技术因素、经济因素和社会因素三方面研究并论证本软件项目的可行性,编写可行性研究报告,制订初步项目开发计划。”

可行性研究实质上是进行一次简化的系统分析和设计的过程。分析员应该给出系统的高层逻辑模型,然后从系统逻辑模型出发,寻找可供选择的解法,研究每一种解法的可行性。

1. 技术可行性

技术可行性是根据客户提出的系统功能、性能及实现系统的各项约束条件,从技术的角度研究系统实现的可行性。例如,公司现有资源(如人员、环境、设备和技术条件等)能否满足工程和项目的实施要求,若不满足,应考虑补救措施(如需要承包方参与,并增加人员、投资和设备等),涉及经济问题应进行投资、成本和效益可行性分析,最后确定工程和项目是否具备技术可行性。技术可行性研究具体包括以下几项。

(1) 风险分析。在给出的限制范围内,能否设计出系统,并实现必要的功能和性能。

(2) 资源分析。要论证是否具备系统开发所需的各类人员(管理人员和各类专业技术人员)、软件、硬件资源和工作环境等。

(3) 技术分析。相关技术的发展是否支持这个系统。

2. 经济可行性

经济可行性是分析开发该软件系统能否取得合理的经济效益,从经济角度判断这个系统是否值得投资,因而需要估算开发成本和预期的经济效益。

(1) 开发成本。估算开发成本应该全面考虑开发软件所需的各项费用,比如,办公室房租,购置办公用品、软硬件及有关设备的费用,水电费,资料费,系统安装和维护费用,人员工资,调研、培训和产品宣传费用等。

(2) 预期的经济效益。预期的经济效益包括一次性收益、非一次性收益、不可定量的收益、收益/投资比和投资回收周期等。投资是现在进行的,效益是将来获得的,不能简单地比较成本和收益,还应该考虑货币的时间价值。

① 货币的时间价值。通常以利率形式表示货币的时间价值。假设年利率为i,如果现在存入银行P元,则n年后可得到的钱数为F=P(1+i)nF就是P元在n年后的价值。

【实例32】开发新闻发布系统,最初投资为5000元,产品使用寿命为5年,设年利率为3%,如果将这5000元存入银行,则5年后可得到的钱数为5000×(1+3%)5=5796.37反之,如果n年后能收入F元,那么这些钱现在的价值是


前言/序言

“软件工程”是计算机软件、计算机应用等相关专业的一门理论与实践并重的专业技术平台课程,是学生学习软件开发和维护的基本方法、基本技术,掌握软件项目开发规范的工程类课程。

传统的软件工程教材,教学内容庞杂、抽象,教学实践环节薄弱,教学实施方面存在较大的难度,不适合高职院校的学生使用。本书是编者在总结近几年教学经验的基础上,根据高职教育的职业性、实践性和先进性的要求进行编写的。以案例项目“新闻发布系统”为例,按照“可行性研究—需求分析—概要设计—详细设计—编码的实现—测试—发布与维护—项目管理”这样一个项目开发过程展开教学过程。把该项目自始至终设计开发过程的文档展现出来,对涉及的知识和技术进行了说明。将软件项目开发实践与软件工程理论自然地融为一体,将面向对象方法与传统方法融为一体。学生通过学习可以了解软件项目开发和维护的一般过程和项目开发规范,掌握结构化方法和面向对象方法等软件开发方法,能够规范地开发、维护软件,规范地编写软件工程文档资料,具备应用所学知识解决实际问题的实践能力,能够参与中小型规模软件的需求分析、设计、编码的实现、测试和维护,为以后更深入地学习和从事软件工程实践打下良好的基础。

本书将“新闻发布系统”项目分解为若干项任务,每项任务又划分为若干项典型子任务。使学生在完成每项任务的过程中完成相关知识点和技术的学习,让学生带着问题学习,用解决实际问题的过程驱动学习过程,减少学习的盲目性,提高学习效率。

根据高等职业教育培养高级技能型人才的要求,本书适当削减了理论叙述方面的内容,增加了一些简单、易于理解的实例。这些实例与贯穿全书的案例项目“新闻发布系统”相辅相成,共同使抽象的理论变得形象、具体、直观,更利于学生学习、理解和掌握。

本书的特点如下。

(1) 案例项目导向,任务驱动,项目贯穿课程的始终。围绕项目整合与规范教学内容,以解决实际问题的过程驱动学习过程。(2) 把面向对象方法和结构化方法自然地融为一体,增加了面向对象方法在本书中所占的比重,突出了面向对象方法和UML技术的应用。

(3) 理论与实践紧密结合,实用性强、实践性强、实现了教、学、做一体化。

(4) 介绍了最新的软件文档编制规范,供读者参考使用。

本课程适宜在程序设计语言、数据库原理等专业课之后,毕业实习、毕业设计之前开设,建议学时数为72学时,适当安排实践环节,边学边做,分阶段逐步完成实践课题。为方便教师的教学与学生的学习,本书配有“新闻发布系统”demo和电子课件免费供读者参考使用。

本书由滨州职业学院刘振华编著,窦家勇审核,任务1和任务2由王晓蓓编写,任务3~任务10由刘振华编写,大纲的编制和全书的统稿与修订由刘振华完成。在本书的编写过程中,得到了山东师创软件工程有限公司和同事的大力支持,在此向提供帮助的各位同人一并表示感谢。

第2版在第1版的基础上增加了部分内容、调整了部分内容的位置、增加和重新绘制了一部分图表,教材内容变得更丰富、更翔实、更具体、更规范。

由于编者水平有限,书中难免有疏漏和不当之处,敬请广大读者和同人批评指正,我们将不胜感激。Email: liuzhenhua6688@163.com。


编者2019年4月