
编辑推荐
本书从实用、够用的角度出发,以学生信息管理系统为主线,采用任务驱动案例教学的方式,详细讲述了软件工程的基本原理、概念、技术和方法。本书共9个项目,内容包括:软件工程的时代背景和理论基础;软件项目的需求分析;软件项目的总体设计和详细设计方法;软件项目的实现;软件项目的测试技术;软件项目的维护和管理等方面的基本理论;了如何书写整个软件项目开发总结性材料。
目录
项目1项目的市场调研
任务1.1系统的研发背景
1.1.1学生信息管理问题的提出
1.1.2国内外研发现状
任务1.2系统研发的理论基础
1.2.1软件的定义及其特点
1.2.2软件危机
1.2.3软件工程的提出
任务1.3制订软件计划
1.3.1问题的定义
1.3.2可行性研究
1.3.3系统的开发计划
任务1.4实验实训
小结
习题
项目2需求分析
任务2.1需求分析概述
2.1.1需求分析的任务
2.1.2需求分析应注意的问题
2.1.3需求分析的原则
2.1.4需求分析的过程
任务2.2需求分析的方法
2.2.1结构化分析方法
2.2.2面向对象的分析方法
任务2.3统一建模语言UML
2.3.1UML的基本概念
2.3.2UML语言概述
2.3.3静态建模
任务2.4需求分析规格说明书
2.4.1需求分析规格说明书的作用
2.4.2需求分析规格说明书的格式及内容
任务2.5实验实训
小结
习题
项目3软件项目的总体设计
任务3.1总体设计的基本内容
3.1.1软件设计的定义
3.1.2总体设计的目标
3.1.3总体设计的步骤
3.1.4总体设计的基本任务
3.1.5总体设计的准则
任务3.2结构化的软件设计
3.2.1结构化设计的基本概念
3.2.2结构化的设计方法
3.2.3总体结构设计
3.2.4运行环境的设计
任务3.3面向对象的软件设计
3.3.1面向对象的设计方法
3.3.2类图
3.3.3子系统清单
3.3.4功能模块清单
3.3.5模块(部件)功能分配
任务3.4数据库设计
3.4.1数据结构设计
3.4.2设计检查列表
3.4.3设计模型
3.4.4软件建模
任务3.5实验实训
小结
习题
项目4软件项目的详细设计
任务4.1系统详细设计的基本内容
4.1.1详细设计概述
4.1.2详细设计的基本任务
4.1.3详细设计的方法
任务4.2系统详细设计方案
4.2.1对象模型
4.2.2对象模型映射为关系模型
任务4.3用户界面设计
4.3.1用户界面设计的特点
4.3.2用户界面设计的基本类型和基本原则
4.3.3案例分析
任务4.4实验实训
小结
习题
项目5软件项目的实现
任务5.1结构化程序设计
5.1.1结构化程序的提出
5.1.2结构化程序的三种基本结构
5.1.3N—S流程图
5.1.4结构化程序的设计方法
任务5.2面向对象的程序设计
5.2.1数据的抽象和封装
5.2.2继承
5.2.3多态
任务5.3程序设计语言
5.3.1计算机语言与程序设计语言
5.3.2程序语言的分类
任务5.4程序的复杂度
5.4.1时间复杂度
5.4.2空间复杂度
任务5.5实验实训
小结
习题
项目6软件项目的测试
任务6.1软件测试的目的
任务6.2软件测试的方法和步骤
6.2.1黑盒测试和白盒测试
6.2.2信息管理系统的测试
6.2.3软件的测试步骤
任务6.3软件调试技术
6.3.1软件调试技术概述
6.3.2软件调试技术的分类
任务6.4测试报告
6.4.1软件测试报告概述
6.4.2软件测试报告模板
任务6.5实验实训
小结
习题
项目7软件维护
任务7.1软件维护的目的
7.1.1软件维护的原因
7.1.2软件维护的定义
7.1.3软件维护的策略
任务7.2软件维护的成本
7.2.1影响软件维护的因素
7.2.2软件维护成本的分析
任务7.3软件维护的方法
7.3.1维护组织
7.3.2维护报告
7.3.3维护的事件流
7.3.4保存维护记录
7.3.5评价维护活动
任务7.4软件可维护性
7.4.1软件可维护性的定义
7.4.2提高软件可维护性的方法
任务7.5实验实训
小结
习题
项目8软件项目的管理
任务8.1项目管理
8.1.1项目管理的定义
8.1.2项目管理的要素
8.1.3项目管理的特性
8.1.4项目管理的流程
任务8.2软件项目管理
8.2.1软件项目管理概述
8.2.2软件项目管理的人员配备
8.2.3软件项目管理的组织模式
任务8.3风险管理
8.3.1风险识别
8.3.2风险估计
8.3.3风险评价
8.3.4风险控制
8.3.5风险管理措施
任务8.4人力资源管理
8,4.1项目人员的管理
8.4.2人力资源的风险管理
任务8.5进度计划管理
8.5.1软件项目计划书
8.5.2软件项目时间管理
8.5.3项目进度计划工具
任务8.6质量管理
8.6.1软件的质量因素
8.6.2软件的质量保证
任务8.7实验实训
小结
习题
……
项目9软件项目的开发总结
参考文献
序言
自20世纪40年代中期现代计算机诞生以来,作为现代计算机“灵魂”的计算机软件经历了程序设计、软件设计和软件工程等几个发展阶段,尤其在20世纪60年代末期提出“软件工程”的概念以来,软件行业经历风风雨雨几十年,各种各样的编程语言、形形色色的开发方法、多如牛毛的软件工具、不计其数的软件应用如雨后春笋般涌现,然而,真正符合培养技能型紧缺人才需要,与现代软件企业开发相适应的教材并不多见。
针对这种情况,编者结合多年来从事软件开发的体会以及计算机教学的丰富经验,对软件人才培养模式进行了较长时间的分析和调研,遴选出一批富有工程实践经验和教学经验的双师型教师,合力编写了这本适用于高职高专乃至大学本科院校的教材。
本教材的编写是以任务驱动案例教学为核心,以学生信息管理系统这个项目开发为主线。在充分研究分析国内外先进职业教育的培训模式、教学方法和教材特色的基础上,消化吸收了优秀的教学经验和成果。以培养技能型人才为目标,以企业对人才的需要为依据,把软件工程和项目管理的思想完全融入教材体系中,将基本技能培养和主流技术相结合,课程的内容设置重点突出、主辅分明、结构合理、衔接紧凑。本教材侧重培养学生的实战操作能力,学、思、练相结合,旨在通过项目实践,增强学生的职业能力,使知识从书本中释放并转化为专业技能。
基于以上观点的考虑,教材的编写思想是以学生信息管理系统这个案例为中心,以技能培养为目标,围绕开发项目所用到知识点进行剖析,然后以教师信息管理系统作为实验实训的主要内容,对所学知识点加深巩固,以帮助读者理解,进而将知识转变为技能。
本书结合软件开发的生存周期,循序渐进,由浅入深,在整体上体现了内容主导、实例解析,以点带面的模式,本教材的特点如下:
(1)参照或吸纳国内外优秀软件专业教材的编写思想。
(2)准确把握高职高专及应用型本科院校软件专业人才的培养目标和特点。
(3)充分分析并研究国内软件企业,确定了基于案例教学任务驱动的教学手段。
(4)借鉴或采用项目驱动的教学方法和考核制度,突出计算机软件人才培养的先进性、工具性、实践性和应用性。
(5)以案例为中心,以能力培养为目标,并以身边的例子引入概念,符合学生的认知规律。语言简洁明了、清晰易懂,更具人性化。
(6)符合国家软件银领人才的培养目标;采用引入知识点、讲述知识点、强化知识点、应用知识点、综合知识点的模式,由浅入深地展开对技术内容的讲述。
本书由吴文国任主编,高晓燕、王英合、陶强、贾春朴、宫泽林任副主编,参加编写工作的还有陈守森、王海霞、顾海燕、邢茹、段鹏、陈涌、李华伟等老师。
编者非常感谢大家对本书的厚爱,为表谢意,书本的参考资料中附有完整的关于“学生信息管理系统”的程序设计源代码。限于作者水平,书中和程序设计上难免有疏漏和不妥之处,敬请广大读者不吝赐教。
编者
2017年1月
文摘
项目3软件项目的总体设计
【学习目标】
通过本项目的学习,能够使读者了解到软件项目总体设计的任务和目标,总体设计的准则,以及软件设计原理。
了解结构化的设计方法和面向对象的软件设计方法。
掌握数据设计方法,以及ER图、概念数据模型和物理数据模型的设计方法。
本阶段完成系统的大致设计并明确系统的数据结构与软件结构。软件需求分析阶段已经完全弄清楚了软件的各种需求,较好地解决了所开发的软件“做什么”的问题,下一步要着手对软件系统进行设计,也就是考虑应该“怎么做”的问题。软件设计是软件项目开发过程的核心,需求规格说明是软件设计的重要输入,也为软件设计提供了基础。软件设计过程是将需求规格转化为一个软件实现方案的过程。
任务3.1总体设计的基本内容
对于任何工程项目来说,在施工之前,总要先完成设计。从软件总体设计阶段开始正式进入软件的实际开发阶段。本阶段完成系统的大致设计并明确系统的数据结构与软件结构。软件总体设计的核心内容就是依据需求规格或规格定义,合理、有效地实现产品规格中定义的各项需求。它注重框架设计、总体结构设计、数据库设计、接口设计、网络环境设计等。总体设计是将产品分割成一些可以独立设计和实现的部分,保证系统的各个部分可以和谐地工作。设计过程是不断地分解系统模块,从高层分解到低层分解。
3.1.1软件设计的定义
软件需求讲述的是“做什么”,而软件设计解决的是“怎么做”的问题。软件设计是将需求描述的“做什么”问题变为一个实施方案的创造性的过程,使得整个项目在逻辑上和物理上能够得以实现。软件设计是软件工程的核心部分,软件工程中有三类主要开发活动: 设计、编码、测试。而设计是第一个开发活动,也是最重要的活动,是软件项目实现的关键阶段。设计质量的高低直接决定了软件项目的成败,缺乏或者没有软件设计的过程会产生一个不稳定的、甚至是失败的软件系统。
良好的软件设计是进行快速软件开发的根本,没有良好的设计,会将时间花在不断的调试上,无法添加新功能,修改时间越来越长,随着给程序打上一个又一个的补丁,新的功能需要更多的代码实现,就变成一个恶性循环了。
我们将软件设计分为两个级别,一个是高级设计,也称为概要设计(或者总体设计);另外一个设计是低级设计,也称为详细设计。概要设计是从需求出发,描述了总体上系统架构应该包含的组成要素。概要设计尽可能模块化,因此描述了各个模块之间的关联。详细设计主要是描述实现各个模块的算法和数据结构以及用特定计算机语言实现的初步描述,例如变量、指针、进程、操作符号以及一些实现机制。
3.1.2总体设计的目标
学生信息管理系统应尽量采用学校现有软硬件环境以及先进的管理系统开发方案,从而达到充分利用学校现有资源,提高系统开发水平和应用效果的目的。同时,系统应符合学校学生信息管理的规定,满足对学校学生信息管理需要,并达到操作过程中的直观、方便、实用、安全等要求。
根据总体设计的任务,明确设计所最终达到的目标,依据现有资源,选取合理的系统解决方案,设计软件模块的结构,有一个全面而精准的数据库设计,同时制订详细的测试计划,书写相关的文档资料。
3.1.3总体设计的步骤
由系统设计人员来设计软件,就是根据若干规定和需求,设计出功能符合需要的系统。一个软件最基本的模型框架一般由数据输入、数据输出、数据管理、空间分析4部分组成。但随着具体开发项目的不同,在系统环境、控制结构和内容设计等方面都有很大的差异,因此,设计人员开发软件时必须遵循正确的步骤。
(1) 根据用户需要,确定要做哪些工作,形成系统的逻辑模型。
(2) 将系统分解成一组模块,各个模块分别满足所提出的要求。
(3) 将分解出来的模块按照是否能满足正常的需求进行分类,对不能满足正常需求的模块要进一步调查研究,以确定是否能进行有效的开发。
(4) 制订工作计划,开发有关的模块,并对各模块进行一致行动测试以及系统的最后运行。
3.1.4总体设计的基本任务
1. 设计软件结构
为了实现目标系统,最终必须设计出组成这个系统的所有程序和数据库文件。对于程序则首先进行结构设计,具体方法如下。
(1) 采用某种设计方法,将一个复杂的系统按功能分成模块。
(2) 确定每个模块的功能。
(3) 确定模块之间的调用关系。
(4) 确定模块之间的接口,即模块之间传递的消息。
(5) 评价模块结构的质量。
软件结构的设计是以模块为基础的。在需求分析阶段,通过某种分析方法把系统分解成层次结构。在设计阶段,以需求分析的结果为依据,共实现的角度划分模块,并组成模块的层次结构。
软件结构的设计是总体设计的关键一步,直接影响到详细设计与编程工作。软件系统的质量及一些整体特性都在软件结构的设计中决定。
2.数据结构及数据库设计
对于大型数据处理的软件系统,除了软件结构设计外,数据结构与数据库设计也是重要的。数据结构的设计采用逐步细化的方法。在需求分析阶段通过数据字典对数据的组成、操作约束和数据之间的关系等方面进行描述,确定数据的结构特性,在总体设计阶段要加以细化,而详细设计阶段则规定具体的实现细节。
3. 编写总体设计文档
编写总体设计文档的内容如下。
(1) 总体设计的说明书。即总体设计阶段结束时提交的技术文档,主要内容如下。
①引言: 编写的目的、背景、定义、参考资料。
②总体设计: 需求规定、运行环境、基本设计概念和处理流程、软件结构。
③接口设计: 用户接口、外部接口、内部接口。
④运行设计: 运行模块组合、运行控制、运行时间。
⑤ 系统数据结构设计: 逻辑结构设计、物理结构设计。数据结构和程序的关系。
⑥ 系统出错处理设计: 出错信息、补救措施、系统恢复设计。
(2)数据库设计说明书。主要给出所使用的数据库管理系统DBMS简介,数据库概念模型、逻辑设计和结果。
(3)用户手册。对需求分析阶段的用户手册进行补充和修改。
(4)修订测试计划。对测试策略、方法和步骤提出明确要求。
本书从实用、够用的角度出发,以学生信息管理系统为主线,采用任务驱动案例教学的方式,详细讲述了软件工程的基本原理、概念、技术和方法。本书共9个项目,内容包括:软件工程的时代背景和理论基础;软件项目的需求分析;软件项目的总体设计和详细设计方法;软件项目的实现;软件项目的测试技术;软件项目的维护和管理等方面的基本理论;了如何书写整个软件项目开发总结性材料。
目录
项目1项目的市场调研
任务1.1系统的研发背景
1.1.1学生信息管理问题的提出
1.1.2国内外研发现状
任务1.2系统研发的理论基础
1.2.1软件的定义及其特点
1.2.2软件危机
1.2.3软件工程的提出
任务1.3制订软件计划
1.3.1问题的定义
1.3.2可行性研究
1.3.3系统的开发计划
任务1.4实验实训
小结
习题
项目2需求分析
任务2.1需求分析概述
2.1.1需求分析的任务
2.1.2需求分析应注意的问题
2.1.3需求分析的原则
2.1.4需求分析的过程
任务2.2需求分析的方法
2.2.1结构化分析方法
2.2.2面向对象的分析方法
任务2.3统一建模语言UML
2.3.1UML的基本概念
2.3.2UML语言概述
2.3.3静态建模
任务2.4需求分析规格说明书
2.4.1需求分析规格说明书的作用
2.4.2需求分析规格说明书的格式及内容
任务2.5实验实训
小结
习题
项目3软件项目的总体设计
任务3.1总体设计的基本内容
3.1.1软件设计的定义
3.1.2总体设计的目标
3.1.3总体设计的步骤
3.1.4总体设计的基本任务
3.1.5总体设计的准则
任务3.2结构化的软件设计
3.2.1结构化设计的基本概念
3.2.2结构化的设计方法
3.2.3总体结构设计
3.2.4运行环境的设计
任务3.3面向对象的软件设计
3.3.1面向对象的设计方法
3.3.2类图
3.3.3子系统清单
3.3.4功能模块清单
3.3.5模块(部件)功能分配
任务3.4数据库设计
3.4.1数据结构设计
3.4.2设计检查列表
3.4.3设计模型
3.4.4软件建模
任务3.5实验实训
小结
习题
项目4软件项目的详细设计
任务4.1系统详细设计的基本内容
4.1.1详细设计概述
4.1.2详细设计的基本任务
4.1.3详细设计的方法
任务4.2系统详细设计方案
4.2.1对象模型
4.2.2对象模型映射为关系模型
任务4.3用户界面设计
4.3.1用户界面设计的特点
4.3.2用户界面设计的基本类型和基本原则
4.3.3案例分析
任务4.4实验实训
小结
习题
项目5软件项目的实现
任务5.1结构化程序设计
5.1.1结构化程序的提出
5.1.2结构化程序的三种基本结构
5.1.3N—S流程图
5.1.4结构化程序的设计方法
任务5.2面向对象的程序设计
5.2.1数据的抽象和封装
5.2.2继承
5.2.3多态
任务5.3程序设计语言
5.3.1计算机语言与程序设计语言
5.3.2程序语言的分类
任务5.4程序的复杂度
5.4.1时间复杂度
5.4.2空间复杂度
任务5.5实验实训
小结
习题
项目6软件项目的测试
任务6.1软件测试的目的
任务6.2软件测试的方法和步骤
6.2.1黑盒测试和白盒测试
6.2.2信息管理系统的测试
6.2.3软件的测试步骤
任务6.3软件调试技术
6.3.1软件调试技术概述
6.3.2软件调试技术的分类
任务6.4测试报告
6.4.1软件测试报告概述
6.4.2软件测试报告模板
任务6.5实验实训
小结
习题
项目7软件维护
任务7.1软件维护的目的
7.1.1软件维护的原因
7.1.2软件维护的定义
7.1.3软件维护的策略
任务7.2软件维护的成本
7.2.1影响软件维护的因素
7.2.2软件维护成本的分析
任务7.3软件维护的方法
7.3.1维护组织
7.3.2维护报告
7.3.3维护的事件流
7.3.4保存维护记录
7.3.5评价维护活动
任务7.4软件可维护性
7.4.1软件可维护性的定义
7.4.2提高软件可维护性的方法
任务7.5实验实训
小结
习题
项目8软件项目的管理
任务8.1项目管理
8.1.1项目管理的定义
8.1.2项目管理的要素
8.1.3项目管理的特性
8.1.4项目管理的流程
任务8.2软件项目管理
8.2.1软件项目管理概述
8.2.2软件项目管理的人员配备
8.2.3软件项目管理的组织模式
任务8.3风险管理
8.3.1风险识别
8.3.2风险估计
8.3.3风险评价
8.3.4风险控制
8.3.5风险管理措施
任务8.4人力资源管理
8,4.1项目人员的管理
8.4.2人力资源的风险管理
任务8.5进度计划管理
8.5.1软件项目计划书
8.5.2软件项目时间管理
8.5.3项目进度计划工具
任务8.6质量管理
8.6.1软件的质量因素
8.6.2软件的质量保证
任务8.7实验实训
小结
习题
……
项目9软件项目的开发总结
参考文献
序言
自20世纪40年代中期现代计算机诞生以来,作为现代计算机“灵魂”的计算机软件经历了程序设计、软件设计和软件工程等几个发展阶段,尤其在20世纪60年代末期提出“软件工程”的概念以来,软件行业经历风风雨雨几十年,各种各样的编程语言、形形色色的开发方法、多如牛毛的软件工具、不计其数的软件应用如雨后春笋般涌现,然而,真正符合培养技能型紧缺人才需要,与现代软件企业开发相适应的教材并不多见。
针对这种情况,编者结合多年来从事软件开发的体会以及计算机教学的丰富经验,对软件人才培养模式进行了较长时间的分析和调研,遴选出一批富有工程实践经验和教学经验的双师型教师,合力编写了这本适用于高职高专乃至大学本科院校的教材。
本教材的编写是以任务驱动案例教学为核心,以学生信息管理系统这个项目开发为主线。在充分研究分析国内外先进职业教育的培训模式、教学方法和教材特色的基础上,消化吸收了优秀的教学经验和成果。以培养技能型人才为目标,以企业对人才的需要为依据,把软件工程和项目管理的思想完全融入教材体系中,将基本技能培养和主流技术相结合,课程的内容设置重点突出、主辅分明、结构合理、衔接紧凑。本教材侧重培养学生的实战操作能力,学、思、练相结合,旨在通过项目实践,增强学生的职业能力,使知识从书本中释放并转化为专业技能。
基于以上观点的考虑,教材的编写思想是以学生信息管理系统这个案例为中心,以技能培养为目标,围绕开发项目所用到知识点进行剖析,然后以教师信息管理系统作为实验实训的主要内容,对所学知识点加深巩固,以帮助读者理解,进而将知识转变为技能。
本书结合软件开发的生存周期,循序渐进,由浅入深,在整体上体现了内容主导、实例解析,以点带面的模式,本教材的特点如下:
(1)参照或吸纳国内外优秀软件专业教材的编写思想。
(2)准确把握高职高专及应用型本科院校软件专业人才的培养目标和特点。
(3)充分分析并研究国内软件企业,确定了基于案例教学任务驱动的教学手段。
(4)借鉴或采用项目驱动的教学方法和考核制度,突出计算机软件人才培养的先进性、工具性、实践性和应用性。
(5)以案例为中心,以能力培养为目标,并以身边的例子引入概念,符合学生的认知规律。语言简洁明了、清晰易懂,更具人性化。
(6)符合国家软件银领人才的培养目标;采用引入知识点、讲述知识点、强化知识点、应用知识点、综合知识点的模式,由浅入深地展开对技术内容的讲述。
本书由吴文国任主编,高晓燕、王英合、陶强、贾春朴、宫泽林任副主编,参加编写工作的还有陈守森、王海霞、顾海燕、邢茹、段鹏、陈涌、李华伟等老师。
编者非常感谢大家对本书的厚爱,为表谢意,书本的参考资料中附有完整的关于“学生信息管理系统”的程序设计源代码。限于作者水平,书中和程序设计上难免有疏漏和不妥之处,敬请广大读者不吝赐教。
编者
2017年1月
文摘
项目3软件项目的总体设计
【学习目标】
通过本项目的学习,能够使读者了解到软件项目总体设计的任务和目标,总体设计的准则,以及软件设计原理。
了解结构化的设计方法和面向对象的软件设计方法。
掌握数据设计方法,以及ER图、概念数据模型和物理数据模型的设计方法。
本阶段完成系统的大致设计并明确系统的数据结构与软件结构。软件需求分析阶段已经完全弄清楚了软件的各种需求,较好地解决了所开发的软件“做什么”的问题,下一步要着手对软件系统进行设计,也就是考虑应该“怎么做”的问题。软件设计是软件项目开发过程的核心,需求规格说明是软件设计的重要输入,也为软件设计提供了基础。软件设计过程是将需求规格转化为一个软件实现方案的过程。
任务3.1总体设计的基本内容
对于任何工程项目来说,在施工之前,总要先完成设计。从软件总体设计阶段开始正式进入软件的实际开发阶段。本阶段完成系统的大致设计并明确系统的数据结构与软件结构。软件总体设计的核心内容就是依据需求规格或规格定义,合理、有效地实现产品规格中定义的各项需求。它注重框架设计、总体结构设计、数据库设计、接口设计、网络环境设计等。总体设计是将产品分割成一些可以独立设计和实现的部分,保证系统的各个部分可以和谐地工作。设计过程是不断地分解系统模块,从高层分解到低层分解。
3.1.1软件设计的定义
软件需求讲述的是“做什么”,而软件设计解决的是“怎么做”的问题。软件设计是将需求描述的“做什么”问题变为一个实施方案的创造性的过程,使得整个项目在逻辑上和物理上能够得以实现。软件设计是软件工程的核心部分,软件工程中有三类主要开发活动: 设计、编码、测试。而设计是第一个开发活动,也是最重要的活动,是软件项目实现的关键阶段。设计质量的高低直接决定了软件项目的成败,缺乏或者没有软件设计的过程会产生一个不稳定的、甚至是失败的软件系统。
良好的软件设计是进行快速软件开发的根本,没有良好的设计,会将时间花在不断的调试上,无法添加新功能,修改时间越来越长,随着给程序打上一个又一个的补丁,新的功能需要更多的代码实现,就变成一个恶性循环了。
我们将软件设计分为两个级别,一个是高级设计,也称为概要设计(或者总体设计);另外一个设计是低级设计,也称为详细设计。概要设计是从需求出发,描述了总体上系统架构应该包含的组成要素。概要设计尽可能模块化,因此描述了各个模块之间的关联。详细设计主要是描述实现各个模块的算法和数据结构以及用特定计算机语言实现的初步描述,例如变量、指针、进程、操作符号以及一些实现机制。
3.1.2总体设计的目标
学生信息管理系统应尽量采用学校现有软硬件环境以及先进的管理系统开发方案,从而达到充分利用学校现有资源,提高系统开发水平和应用效果的目的。同时,系统应符合学校学生信息管理的规定,满足对学校学生信息管理需要,并达到操作过程中的直观、方便、实用、安全等要求。
根据总体设计的任务,明确设计所最终达到的目标,依据现有资源,选取合理的系统解决方案,设计软件模块的结构,有一个全面而精准的数据库设计,同时制订详细的测试计划,书写相关的文档资料。
3.1.3总体设计的步骤
由系统设计人员来设计软件,就是根据若干规定和需求,设计出功能符合需要的系统。一个软件最基本的模型框架一般由数据输入、数据输出、数据管理、空间分析4部分组成。但随着具体开发项目的不同,在系统环境、控制结构和内容设计等方面都有很大的差异,因此,设计人员开发软件时必须遵循正确的步骤。
(1) 根据用户需要,确定要做哪些工作,形成系统的逻辑模型。
(2) 将系统分解成一组模块,各个模块分别满足所提出的要求。
(3) 将分解出来的模块按照是否能满足正常的需求进行分类,对不能满足正常需求的模块要进一步调查研究,以确定是否能进行有效的开发。
(4) 制订工作计划,开发有关的模块,并对各模块进行一致行动测试以及系统的最后运行。
3.1.4总体设计的基本任务
1. 设计软件结构
为了实现目标系统,最终必须设计出组成这个系统的所有程序和数据库文件。对于程序则首先进行结构设计,具体方法如下。
(1) 采用某种设计方法,将一个复杂的系统按功能分成模块。
(2) 确定每个模块的功能。
(3) 确定模块之间的调用关系。
(4) 确定模块之间的接口,即模块之间传递的消息。
(5) 评价模块结构的质量。
软件结构的设计是以模块为基础的。在需求分析阶段,通过某种分析方法把系统分解成层次结构。在设计阶段,以需求分析的结果为依据,共实现的角度划分模块,并组成模块的层次结构。
软件结构的设计是总体设计的关键一步,直接影响到详细设计与编程工作。软件系统的质量及一些整体特性都在软件结构的设计中决定。
2.数据结构及数据库设计
对于大型数据处理的软件系统,除了软件结构设计外,数据结构与数据库设计也是重要的。数据结构的设计采用逐步细化的方法。在需求分析阶段通过数据字典对数据的组成、操作约束和数据之间的关系等方面进行描述,确定数据的结构特性,在总体设计阶段要加以细化,而详细设计阶段则规定具体的实现细节。
3. 编写总体设计文档
编写总体设计文档的内容如下。
(1) 总体设计的说明书。即总体设计阶段结束时提交的技术文档,主要内容如下。
①引言: 编写的目的、背景、定义、参考资料。
②总体设计: 需求规定、运行环境、基本设计概念和处理流程、软件结构。
③接口设计: 用户接口、外部接口、内部接口。
④运行设计: 运行模块组合、运行控制、运行时间。
⑤ 系统数据结构设计: 逻辑结构设计、物理结构设计。数据结构和程序的关系。
⑥ 系统出错处理设计: 出错信息、补救措施、系统恢复设计。
(2)数据库设计说明书。主要给出所使用的数据库管理系统DBMS简介,数据库概念模型、逻辑设计和结果。
(3)用户手册。对需求分析阶段的用户手册进行补充和修改。
(4)修订测试计划。对测试策略、方法和步骤提出明确要求。
ISBN | 9787302473039,730247303X |
---|---|
出版社 | 清华大学出版社 |
作者 | 吴文国 |
尺寸 | 16 |