复习软件工程p5n_第1页
复习软件工程p5n_第2页
复习软件工程p5n_第3页
复习软件工程p5n_第4页
复习软件工程p5n_第5页
已阅读5页,还剩123页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、软件工程软件工程Software Engineer谷伟谷伟同上同上同上第第 5章章 软件详细设计软件详细设计 5.1 5.1 详细设计的目的与任务详细设计的目的与任务 5.2 5.2 结构化程序设计结构化程序设计 5.3 5.3 详细设计工具详细设计工具 5.1 详细设计的目的与任务详细设计的目的与任务 详细设计的根本目的:就是确定应该怎样具体实详细设计的根本目的:就是确定应该怎样具体实现所要求的系统。现所要求的系统。详细设计阶段的任务是要设计出程序的详细设计阶段的任务是要设计出程序的“蓝图蓝图”,以后程序员将根据这个蓝图写出实际的代码。,以后程序员将根据这个蓝图写出实际的代码。 详细设计详细

2、设计n 详细设计就是在概要设计的基础上决定如何具体详细设计就是在概要设计的基础上决定如何具体实现各模块的内部细节。实现各模块的内部细节。n 详细设计方案的更改,不得影响概要设计方案详细设计方案的更改,不得影响概要设计方案(或者要项目经理的同意)(或者要项目经理的同意)n 目的:在编码实现阶段就可以完全按照详细设计目的:在编码实现阶段就可以完全按照详细设计的细节过程来映射到代码,最终实现整个系统。的细节过程来映射到代码,最终实现整个系统。n 一般使用结构化程序设计工具来描述一般使用结构化程序设计工具来描述详细设计的基本任务详细设计的基本任务n 为每个模块进行详细的算法设计为每个模块进行详细的算法

3、设计n 为模块内的数据结构进行设计为模块内的数据结构进行设计n 为数据结构进行物理设计,即确定数据库的物理结为数据结构进行物理设计,即确定数据库的物理结构构n 其他设计:根据软件系统的类型,还可能要进行以其他设计:根据软件系统的类型,还可能要进行以下设计:下设计: n 代码设计代码设计n 输入输入/ /输出格式设计输出格式设计n 人机对话设计人机对话设计n 编写详细设计文档编写详细设计文档n 评审评审5.2 结构化程序设计结构化程序设计 结构化程序设计所使用的结构有顺序、结构化程序设计所使用的结构有顺序、条件和重复三种条件和重复三种 。 结构化程序设计采用自顶向下,逐步求结构化程序设计采用自顶

4、向下,逐步求精的设计方法和单入口单出口的控制结精的设计方法和单入口单出口的控制结构构 。 例如:程序1 if ( A B ) goto 120; if ( B C ) goto 110; 100 write ( C ); goto 140; 110 write ( B ); goto 140; 120 if ( A C ) goto 130; goto 100; 130 write ( A ); 140 end 可改成结构化程序结构化程序设计优点结构化程序设计优点 自顶向下逐步求精的方法符合人类解决复杂问题的普自顶向下逐步求精的方法符合人类解决复杂问题的普遍规律,因此可以显著提高软件开发工程的

5、成功率和遍规律,因此可以显著提高软件开发工程的成功率和生产率。生产率。 用先全局后局部、先整体后细节、先抽象后具体的逐用先全局后局部、先整体后细节、先抽象后具体的逐步求精过程开发出的程序有清晰的层次结构,因此容步求精过程开发出的程序有清晰的层次结构,因此容易阅读和理解。易阅读和理解。 仅使用单入口单出口的控制结构,使得程序的静态结仅使用单入口单出口的控制结构,使得程序的静态结构和它的动态执行情况比较一致。因此,程序容易阅构和它的动态执行情况比较一致。因此,程序容易阅读和理解,开发时也比较容易保证程序的正确性,即读和理解,开发时也比较容易保证程序的正确性,即使出现错误也比较容易诊断和改正。使出现

6、错误也比较容易诊断和改正。 控制结构有确定的逻辑模式,编写程序代码只限控制结构有确定的逻辑模式,编写程序代码只限于使用很少几种直截了当的方式,因此源程序清于使用很少几种直截了当的方式,因此源程序清晰流畅,易读易懂而且容易测试。晰流畅,易读易懂而且容易测试。 程序清晰和模块化使得在修改和重新设计一个软程序清晰和模块化使得在修改和重新设计一个软件时可以重用的代码量最大。件时可以重用的代码量最大。 程序的逻辑结构清晰,有利于程序正确性证明。程序的逻辑结构清晰,有利于程序正确性证明。5.3 结构化详细设计工具结构化详细设计工具n 图形工具:图形工具: 如如 流程图、盒图、流程图、盒图、PADPAD图图

7、n 列表工具:用一个表来表示过程的细节,如列表工具:用一个表来表示过程的细节,如 判判定表和判定树定表和判定树 n 语言工具:用类语言来表示过程的细节,这种类语言工具:用类语言来表示过程的细节,这种类语言很接近于编程语言。如语言很接近于编程语言。如: :过程描述语言过程描述语言程序流程图程序流程图 程序流程图又称为程序框图,程序流程图又称为程序框图,GoldstineGoldstine于于19461946年首先采用。年首先采用。 它的主要优点是对控制流程的描绘很直观,便于它的主要优点是对控制流程的描绘很直观,便于初学者掌握。初学者掌握。程序流程图符号程序流程图符号(a)预处理 (b)选择 (c

8、)多分支 (d)循环上界 (e)循环下界(f)开始/结束 (g)准备 (h)注释 (i)虚线 (j)省略 (k)并行方式 (l)控制流盒图盒图 盒图是由盒图是由NassiNassi和和ShneidermanShneiderman提出的,所以又称为提出的,所以又称为N-SN-S图。图。 每个处理步骤都用一个盒子来表示,这些处理步骤可以是语每个处理步骤都用一个盒子来表示,这些处理步骤可以是语句或语句序列,在需要时,盒子中还可以嵌套另一个盒子,句或语句序列,在需要时,盒子中还可以嵌套另一个盒子,嵌套深度一般没有限制。嵌套深度一般没有限制。 盒图具有下述特点:盒图具有下述特点: 功能域(即,一个特定控

9、制结构的作用域)明确,可以从盒功能域(即,一个特定控制结构的作用域)明确,可以从盒图上一眼就看出来。图上一眼就看出来。 由于只能从上边进入盒子然后从下面走出盒子,除此之外没由于只能从上边进入盒子然后从下面走出盒子,除此之外没有其它的入口和出口,所以盒图限制了任意的控制转移,保有其它的入口和出口,所以盒图限制了任意的控制转移,保证程序有良好的结构。证程序有良好的结构。 很容易表现嵌套关系,也可以表示模块的层次结构。很容易表现嵌套关系,也可以表示模块的层次结构。盒图符号盒图符号 A B a.顺序 F P T B A b.IF-THEN-ELSE 选择 F P T A Do while p S c.

10、do-while 循环 S Do until p d.do-until 循环 P =1 =2 =n A1 A2 An e.多分支选择 PAD图图n PADPAD是问题分析图(是问题分析图(Problem Analysis DiagramProblem Analysis Diagram)的英文缩写,自的英文缩写,自19731973年由日本日立公司发明。年由日本日立公司发明。n 它是由程序流程图演化而来,用二维树形结构的它是由程序流程图演化而来,用二维树形结构的图来表示程序的控制流,将这种图翻译成程序代图来表示程序的控制流,将这种图翻译成程序代码比较容易。码比较容易。PAD图符号图符号 P1 P2

11、 a.顺序 C P1 P2 b.if-then-else 选择 X= P1 P2 L1 L2 Pn Ln c.case 多分支选择 While c P d.do-while 型循环 until c P e.repeat-until 型循环 PAD图的主要优点图的主要优点 使用表示结构化控制结构的使用表示结构化控制结构的PADPAD符号设计出来的程序必然是符号设计出来的程序必然是结构化程序。结构化程序。 PADPAD图所描绘的程序结构十分清晰。图中最左边的竖线是程图所描绘的程序结构十分清晰。图中最左边的竖线是程序的主线,即第一层结构。序的主线,即第一层结构。 每增加一个层次,图形向右扩每增加一个

12、层次,图形向右扩展一条竖线。展一条竖线。PADPAD图中竖线的总条数就是程序的层次数。图中竖线的总条数就是程序的层次数。 程序从图中最左竖线上端的结点开始执行,自上而下,从程序从图中最左竖线上端的结点开始执行,自上而下,从左向右顺序执行,遍历所有结点。左向右顺序执行,遍历所有结点。 容易将容易将PADPAD图转换成高级语言源程序,这种转换可用软件工图转换成高级语言源程序,这种转换可用软件工具自动完成具自动完成 。 既可用于表示程序逻辑,又可用于描绘数据结构。既可用于表示程序逻辑,又可用于描绘数据结构。PAD图举例图举例 P1 P2 C P3 P4 P2 a.初始的 PAD 图 b.使用 def

13、 符号细化处理框 P2 后的 PAD 图 P5 def P6 C1 P8 until C2 P7 until C3 P9 P10 判定表判定表 n 当算法中包含多重嵌套的条件选择时,用程序流程图、当算法中包含多重嵌套的条件选择时,用程序流程图、N-SN-S图或图或PADPAD都不易清楚地描述。都不易清楚地描述。n 然而,判定表却能清晰地表达复杂的条件组合与应做动作之间的然而,判定表却能清晰地表达复杂的条件组合与应做动作之间的对应关系。对应关系。n 23判定表判定表 例如:某数据流图中有一个例如:某数据流图中有一个“确定保险类别确定保险类别”的加工,指的是申请的加工,指的是申请汽车驾驶保险时,要

14、根据申请者的情况确定不同的保险类别。汽车驾驶保险时,要根据申请者的情况确定不同的保险类别。 加工逻辑为:加工逻辑为: 如果申请者的年龄在如果申请者的年龄在2121岁以下,要额外收费;岁以下,要额外收费; 如果申请者是如果申请者是2121岁以上并是岁以上并是2626岁以上的女性,适用于岁以上的女性,适用于A A类保险;类保险; 如果申请者是如果申请者是2626岁以下的已婚男性,或者岁以下的已婚男性,或者2626岁以上的男性,适用于岁以上的男性,适用于B B类保险;类保险; 如果申请者是如果申请者是2121岁以下的女性或岁以下的女性或2626岁以下的单身男性适用于岁以下的单身男性适用于C C类保类

15、保险;险; 除此之外的其他申请者都适用于除此之外的其他申请者都适用于A A类保险。类保险。判定表判定表n 提取问题中的条件:年龄、性别、婚姻。提取问题中的条件:年龄、性别、婚姻。n 标出条件的取值标出条件的取值条件名条件名取值取值符号符号取值数取值数m年龄年龄2121年龄21未婚未婚C类保险且额外收费类保险且额外收费已婚已婚B类保险且额外收费类保险且额外收费未婚未婚C类保险类保险已婚已婚D类保险类保险年龄年龄21C类保险收额外收费类保险收额外收费A类保险类保险B类保险类保险2126年龄年龄21确保保险类别确保保险类别男性男性女性女性过程描述语言过程描述语言PDLn 过程描述语言(过程描述语言(

16、PDL-Procedural Description LanguagePDL-Procedural Description Language)介于自然语言和形式语言之间的一种半形式化语言,)介于自然语言和形式语言之间的一种半形式化语言,使用有限的词汇和有限的语句来描述加工逻辑。使用有限的词汇和有限的语句来描述加工逻辑。n 外层用来描述控制结构,采用顺序、选择、重复三种基外层用来描述控制结构,采用顺序、选择、重复三种基本结构。本结构。n 内层一般采用祈使语句的自然语言短语,使用数据字典内层一般采用祈使语句的自然语言短语,使用数据字典中的名词和有限的自定义词,其动词含义要具体,尽量中的名词和有限的

17、自定义词,其动词含义要具体,尽量不用形容词和副词来修饰。不用形容词和副词来修饰。PDL三种结构三种结构n 顺序结构顺序结构n A seqA seqn Block1 Block1n Block2 Block2n Block3 Block3n A endA end选择结构A select cond1 Block1A or cond2 Block2A or cond3 Block3A end重复结构A iter until cond Block1A endA iter while cond Block1A end统计单词数目统计单词数目n 统计空格 seqn 打开文件n 读入字符串n Totalsu

18、m = 0n 程序体 iter until文件结束n n 程序体endn 印总数seq n 印出空格总数n 印总数endn 关闭文件n 停止n 统计空格endn 软件设计可分为两个部分:编码设计与软件设计可分为两个部分:编码设计与UIUI设计。设计。n UI=User + interface UI=User + interface 从字面上看是用户与界面从字面上看是用户与界面2 2个个组成部分,但实际上还包括用户与界面之间的交互关系组成部分,但实际上还包括用户与界面之间的交互关系。n 专门设计界面专门设计界面 人机界面设计人机界面设计用户界面设计师用户界面设计师n 岗位职责:岗位职责:n 1

19、1、参与团队视觉设计工作,负责、参与团队视觉设计工作,负责WebWeb端和移动端端和移动端页面的视觉设计,制作一流的用户界面页面的视觉设计,制作一流的用户界面n 2 2、根据需求和用户研究的结果,完成界面的信、根据需求和用户研究的结果,完成界面的信息架构、流程设计和原形设计;息架构、流程设计和原形设计;n 3 3、负责维护和更新界面设计标准和规范,推动、负责维护和更新界面设计标准和规范,推动标准和规范的实施;标准和规范的实施;n 4 4、负责界面设计流程的完善和优化工作。、负责界面设计流程的完善和优化工作。n 岗位要求:岗位要求:n 1 1、具备、具备2 2年以上相关工作经验,对产品流程、用户

20、流程及用户需求年以上相关工作经验,对产品流程、用户流程及用户需求有深入理解;有深入理解;n 2 2、较强的视觉、网页、较强的视觉、网页、UIUI设计能力,熟练运用设计能力,熟练运用DreamweaverDreamweaver、photoshopphotoshop、IllustratorIllustrator、FlashFlash等设计软件,熟悉等设计软件,熟悉CssCss、JavaJava、HtmlHtml等网络技术;等网络技术;n 3 3、能与页面前端制作人员合作良好,具有良好的沟通协调能力,富、能与页面前端制作人员合作良好,具有良好的沟通协调能力,富于团队精神;于团队精神;n 4 4、优秀

21、的用户界面设计能力,对以人为本的设计理念有深入的理解、优秀的用户界面设计能力,对以人为本的设计理念有深入的理解;n 5 5、认真细致,善于创新,对视觉设计、色彩有敏锐的观察力及分析、认真细致,善于创新,对视觉设计、色彩有敏锐的观察力及分析能力;能力;n 6 6、具有扎实的美术功底,具有良好的创作意识和思维,具有较强的、具有扎实的美术功底,具有良好的创作意识和思维,具有较强的整体风格控制能力。整体风格控制能力。用户界面设计师(用户界面设计师(UI)n 岗位职责岗位职责 1 1、负责公司软件界面设计工作;、负责公司软件界面设计工作; 2 2、负责从视觉和操作层面对公司软件的页面风格操作流程、负责从

22、视觉和操作层面对公司软件的页面风格操作流程 , , 页面内容的设计、开发、及维护;页面内容的设计、开发、及维护; 3 3、负责产品宣传、手册、各类附件的美术设计工作;、负责产品宣传、手册、各类附件的美术设计工作; 4 4、结合用户体验,优化完善设计流程,高质量完成产品设计。、结合用户体验,优化完善设计流程,高质量完成产品设计。 n 任职资格任职资格 1 1、两年及以上完整门户网站、专题页面的设计经验;、两年及以上完整门户网站、专题页面的设计经验; 2 2、大专及以上学历,计算机或者美术设计类相关专业;、大专及以上学历,计算机或者美术设计类相关专业; 3 3、熟练使用、熟练使用Dreamweav

23、erDreamweaver、PhotoshopPhotoshop、IllustratorIllustrator、flashflash等等相关软件;相关软件; 4 4、具备较好的沟通能力和逻辑思维能力,有良好的团队合作精、具备较好的沟通能力和逻辑思维能力,有良好的团队合作精神;神; n 设计人机界面要充分考虑到人的因素,如用户的特设计人机界面要充分考虑到人的因素,如用户的特点、用户怎样学会与系统交互工作、用户怎样理解点、用户怎样学会与系统交互工作、用户怎样理解系统产生的输出信息以及用户对系统有什么期望等。系统产生的输出信息以及用户对系统有什么期望等。n 考虑界面的风格,可用的软、硬件技术及应用本

24、身考虑界面的风格,可用的软、硬件技术及应用本身产生的影响。产生的影响。应根据用户的特点设计人机界面应根据用户的特点设计人机界面n 用户分类:用户分类:n 外行型:不熟悉计算机操作,对系统很少或毫无认识外行型:不熟悉计算机操作,对系统很少或毫无认识n 初学型:对计算机有一些经验,对新系统不熟悉,需要相当初学型:对计算机有一些经验,对新系统不熟悉,需要相当多的支持多的支持n 熟练型:对系统有丰富的使用经验,能熟练操作,但不了解熟练型:对系统有丰富的使用经验,能熟练操作,但不了解系统的内部结构,不能纠正意外错误,不能扩充系统的能力系统的内部结构,不能纠正意外错误,不能扩充系统的能力n 专家型:了解系

25、统内部的结构,有系统工作机制的专门知识专家型:了解系统内部的结构,有系统工作机制的专门知识,具有维护和修改系统的能力,希望为他们提供具备修改和,具有维护和修改系统的能力,希望为他们提供具备修改和扩充系统能力的复杂界面扩充系统能力的复杂界面n 第一代:命令和询问方式的界面第一代:命令和询问方式的界面n 第二代:简单的菜单式界面第二代:简单的菜单式界面n 第三代:窗口、图标、菜单、指示器四位一体的界面第三代:窗口、图标、菜单、指示器四位一体的界面n 第四代:第三界面与超文本、多任务概念相结合的界面,用户第四代:第三界面与超文本、多任务概念相结合的界面,用户可同时执行多个任务。可同时执行多个任务。n

26、 交互界面设计原则交互界面设计原则n美学规则美学规则n置用户于控制之下置用户于控制之下( (让用户拥有控制权让用户拥有控制权 ) )n减少用户的记忆负担减少用户的记忆负担n保持界面一致:在应用系列内保持一致保持界面一致:在应用系列内保持一致性,不要改变用户已经熟悉的用户交互性,不要改变用户已经熟悉的用户交互模型模型人机交互界面设计人机交互界面设计n 人机交互界面分析过程人机交互界面分析过程n 人机交互界面设计步骤人机交互界面设计步骤n 人机交互界面设计指南人机交互界面设计指南人机交互界面分析人机交互界面分析n 人机界面的设计工作应与软件系统的需求分析工作同步进行。它主人机界面的设计工作应与软件

27、系统的需求分析工作同步进行。它主要包括:要包括:n 通过界面和系统交互的最终用户分析通过界面和系统交互的最终用户分析n 最终用户为完成工作要做的任务分析最终用户为完成工作要做的任务分析n 确定界面的类型确定界面的类型n 任务处理的环境任务处理的环境n 界面将位于何处?界面将位于何处?n 用户是否坐着、站着或完成其他和该界面无关的任务?用户是否坐着、站着或完成其他和该界面无关的任务?n 界面硬件是否适应空间、光线或噪音的约束?界面硬件是否适应空间、光线或噪音的约束?n 是否需要考虑特殊的由环境因素驱动的人的因素?是否需要考虑特殊的由环境因素驱动的人的因素?人机交互界面分析过程人机交互界面分析过程

28、交互界面设计步骤交互界面设计步骤n 建立任务的目标和意图;建立任务的目标和意图;n 为每个目标和意图制定特定的动作序列;为每个目标和意图制定特定的动作序列;n 按照在界面上执行的方式对动作序列进行规约;按照在界面上执行的方式对动作序列进行规约;n 指明系统状态,即执行动作时的界面表现;指明系统状态,即执行动作时的界面表现;n 定义控制机制,即用户可用的改变系统状态的设备定义控制机制,即用户可用的改变系统状态的设备和动作;和动作;n 指明控制机制如何影响系统状态;指明控制机制如何影响系统状态;n 指明用户如何通过界面上的信息解释系统状态;指明用户如何通过界面上的信息解释系统状态;交互界面设计指南

29、交互界面设计指南n 交互界面的设计指南交互界面的设计指南n 信息显示的设计指南信息显示的设计指南n 数据输入的设计指南数据输入的设计指南设计规范设计规范n 一致性一致性n 坚持以用户体验为中心设计原则,界面直观、简洁,操作方便坚持以用户体验为中心设计原则,界面直观、简洁,操作方便快捷,不需要太多培训就可以方便使用本应用系统。快捷,不需要太多培训就可以方便使用本应用系统。n 字体字体- -保持字体及颜色一致保持字体及颜色一致 - -不可修改的字段,统一用灰色文字显示。不可修改的字段,统一用灰色文字显示。n 对齐对齐- -保持页面内元素对齐方式的一致,如无特殊情况应避免同保持页面内元素对齐方式的一

30、致,如无特殊情况应避免同一页面出现多种数据对齐方式。一页面出现多种数据对齐方式。n 表单录入表单录入- -在包含必须与选填的页面中,必须在必填项旁边给出醒目标识在包含必须与选填的页面中,必须在必填项旁边给出醒目标识(* *););- -格式校验格式校验 如电话号码输入只允许输入数字、邮箱地址需要如电话号码输入只允许输入数字、邮箱地址需要包含包含“”“”等,在用户输入有误时给出明确提示。等,在用户输入有误时给出明确提示。n 鼠标手势鼠标手势- -可点击的按钮、链接需要切换鼠标手势至手型;可点击的按钮、链接需要切换鼠标手势至手型;n 保持功能及内容描述一致保持功能及内容描述一致- -避免同一功能描

31、述使用多个词汇,如编辑和修改,避免同一功能描述使用多个词汇,如编辑和修改,新增和增加,删除和清除混用等。新增和增加,删除和清除混用等。n建议在项目开发阶段建立一个产品词典,包括建议在项目开发阶段建立一个产品词典,包括产品中常用术语及描述,设计或开发人员严格按照产品产品中常用术语及描述,设计或开发人员严格按照产品词典中的术语词汇来展示文字信息。词典中的术语词汇来展示文字信息。界面设计规范界面设计规范-一致性一致性界面设计规范界面设计规范n 准确性准确性n 显示有意义的出错信息,而不是单纯的程序错误代码。显示有意义的出错信息,而不是单纯的程序错误代码。n 避免使用文本输入框来放置不可编辑的文字内容

32、,不要将输入框当避免使用文本输入框来放置不可编辑的文字内容,不要将输入框当成标签使用。成标签使用。n 使用缩进和文本来辅助理解。使用缩进和文本来辅助理解。n 使用用户语言词汇,而不是单纯的专业计算机术语。使用用户语言词汇,而不是单纯的专业计算机术语。n 高效地使用显示器的显示空间,但要避免空间过于拥挤。高效地使用显示器的显示空间,但要避免空间过于拥挤。n 保持语言的一致性,如保持语言的一致性,如“确定确定”对应对应“取消取消”,“”,“是是”对应对应“否否”。布局布局遵循用户从上而下,自左向右浏览、遵循用户从上而下,自左向右浏览、操作习惯,避免常用业务功能按键排操作习惯,避免常用业务功能按键排

33、列过于分散。多做列过于分散。多做“减法减法”运算,将运算,将不常用的功能区块隐藏,以保持界面不常用的功能区块隐藏,以保持界面的简洁。的简洁。菜单菜单- -保持菜单简洁性及分类的准确性,保持菜单简洁性及分类的准确性,避免菜单深度超过避免菜单深度超过3 3层。层。按钮按钮确认操作按钮放置左边,取消或关闭确认操作按钮放置左边,取消或关闭按钮放置于右边。按钮放置于右边。功能功能- -未完成功能必须隐藏处理,不要置未完成功能必须隐藏处理,不要置于页面内容中,以免引起误会。于页面内容中,以免引起误会。n 排版排版- -所有文字内容,各控件元素间也保持至少所有文字内容,各控件元素间也保持至少1010像素以上

34、的间距像素以上的间距。n 表格数据列表表格数据列表- -字符型数据保持左对齐,数值型右对齐(方便阅读对比),字符型数据保持左对齐,数值型右对齐(方便阅读对比),并统一显示小数位位数。并统一显示小数位位数。n 页面导航(面包屑导航)页面导航(面包屑导航)- -在页面显眼位置应该出现导航栏,让用户知道当前所在页面在页面显眼位置应该出现导航栏,让用户知道当前所在页面的位置的位置n 信息提示窗口信息提示窗口- - 应位于当前页面的居中位置,并适当弱化背景层以减少信应位于当前页面的居中位置,并适当弱化背景层以减少信息干扰,让用户把注意力集中在当前的信息提示窗口。息干扰,让用户把注意力集中在当前的信息提示

35、窗口。系统操作系统操作尽量确保用户在不使用鼠标(只使用键盘)的情况下也可以流畅地完尽量确保用户在不使用鼠标(只使用键盘)的情况下也可以流畅地完成一些常用的业务操作,各控件间可以通过成一些常用的业务操作,各控件间可以通过TabTab键进行切换,并将键进行切换,并将可编辑的文本全选处理。可编辑的文本全选处理。查询检索类页面,在查询条件输入框内按回车应该自动触发查询操作查询检索类页面,在查询条件输入框内按回车应该自动触发查询操作。在进行一些不可逆或者删除操作时应该有信息提示用户,并让用户确在进行一些不可逆或者删除操作时应该有信息提示用户,并让用户确认是否继续操作,必要时应该把操作造成的后果也告诉用户

36、。认是否继续操作,必要时应该把操作造成的后果也告诉用户。表单录入页面,需要把输入焦点定位到第一个输入项。表单录入页面,需要把输入焦点定位到第一个输入项。用户通过用户通过TabTab键可以在输入框或操作按钮间切换,并注意键可以在输入框或操作按钮间切换,并注意TabTab的操作应的操作应该遵循从左向右、从上而下的顺序。该遵循从左向右、从上而下的顺序。数据库设计数据库设计n需求分析需求分析n概念设计概念设计n逻辑设计逻辑设计n物理设计物理设计n实施实施n运行与维护运行与维护n 练习:把下面的练习:把下面的PDLPDL程序代码分别转换成程序流程图、程序代码分别转换成程序流程图、NSNS图、图、PADP

37、AD图。图。n STARTSTARTn IF P THENIF P THEN WHILE q DO WHILE q DOn f f END DO END DO ELSE ELSE BLOCK BLOCK g g n n END BLOCK END BLOCK ENDIF ENDIFn STOPSTOP做为软件工程过程的一个阶段,程序编码是设计的继续。程序设计语言的特性和程序设计风格会深刻地影响软件的质量和可维护性。为了保证程序编码的质量,程序员必须深刻地理解、熟练地掌握并正确地运用程序设计语言的特性。此外,还要求源程序具有良好的结构性和良好的程序设计风格。编码实现编码实现编码实现1.1.编码语

38、言编码语言2.2.编码风格编码风格1. 编码语言编码语言 分为两大类:分为两大类: 低级语言:这两种语言都依赖于相应的计算机硬件。低级语言:这两种语言都依赖于相应的计算机硬件。 机器语言属于第一代语言机器语言属于第一代语言 汇编语言属于第二代语言汇编语言属于第二代语言 高级语言:高级语言: 第三代程序设计语言,如第三代程序设计语言,如BASICBASIC、COBOLCOBOL和和FORTRANFORTRAN等。等。 第四代程序设计语言,如数据库查询语言、程序生成第四代程序设计语言,如数据库查询语言、程序生成器等。器等。编码语言的选择编码语言的选择为使程序容易测试和维护以减少软件的总成本,为使程

39、序容易测试和维护以减少软件的总成本,所选用的高级语言应该有理想的模块化机制,可所选用的高级语言应该有理想的模块化机制,可读性好的控制结构和数据结构。读性好的控制结构和数据结构。为便于调试和提高软件可靠性,应该使编译程序为便于调试和提高软件可靠性,应该使编译程序能够尽可能多地发现程序中的错误。能够尽可能多地发现程序中的错误。为降低软件开发和维护的成本,选用的高级语言为降低软件开发和维护的成本,选用的高级语言应该有良好的独立编译机制。应该有良好的独立编译机制。60n另外,通常要考虑如下因素:另外,通常要考虑如下因素:n应用领域应用领域n软件运行环境软件运行环境n用户需求,特别是性能需求用户需求,特

40、别是性能需求n软件开发人员的知识水平软件开发人员的知识水平61n 项目所属的应用领域常常是首要的标准项目所属的应用领域常常是首要的标准n COBOLCOBOL适用于商业领域适用于商业领域n FORTRANFORTRAN适用于工程和科学计算领域适用于工程和科学计算领域n PrologProlog、LispLisp适用于人工智能领域适用于人工智能领域n SmalltalkSmalltalk、C+C+适用于适用于OOOO系统的开发系统的开发n 有些语言适用于多个应用领域,如有些语言适用于多个应用领域,如C Cn 若有多种语言都适合于某项目的开发时,可考虑选择开发人员若有多种语言都适合于某项目的开发时

41、,可考虑选择开发人员比较熟悉的语言比较熟悉的语言62n选择高级语言还是低级语言选择高级语言还是低级语言n优先选择高级语言优先选择高级语言n开发和维护容易开发和维护容易 n必要时使用低级语言必要时使用低级语言: :低级语言程序低级语言程序效率高效率高n对运行时间和存储空间有过高要求的项对运行时间和存储空间有过高要求的项目,如电子笔记本中的软件目,如电子笔记本中的软件n在某些不能提供高级语言编译程序的计在某些不能提供高级语言编译程序的计算机上开发程序,如单片机上的软件算机上开发程序,如单片机上的软件n大型系统中对系统执行时间起关键作用大型系统中对系统执行时间起关键作用的模块的模块2. 编码风格编码

42、风格 程序实际上也是一种供人阅读的文章,有一个文章的风格问题。应程序实际上也是一种供人阅读的文章,有一个文章的风格问题。应该使程序具有良好的风格。该使程序具有良好的风格。 良好的编码风格体现在良好的编码风格体现在: : 源程序文档化源程序文档化 数据说明数据说明 语句构造语句构造 输入和输出输入和输出 效率效率 1).1).源程序文档化源程序文档化n 标识符的命名标识符的命名n 安排注释安排注释n 程序的视觉组织程序的视觉组织n 符号名的命名做到顾名思义符号名的命名做到顾名思义n 例如,表示次数的量用例如,表示次数的量用TimesTimes,表示总量的用,表示总量的用TotalTotal,表示

43、平均值的用,表示平均值的用AverageAverage,表示和的量用,表示和的量用SumSum等。等。n 采用匈牙利命名规则采用匈牙利命名规则n 夹在程序中的注释是程序员与日后的程序读者之间通信的重要夹在程序中的注释是程序员与日后的程序读者之间通信的重要手段。手段。n 注释决不是可有可无的。注释决不是可有可无的。n 一些正规的程序文本中,注释行的数量占到整个源程序的一些正规的程序文本中,注释行的数量占到整个源程序的1 13 3到到1 12 2,甚至更多。,甚至更多。n 注释分为序言性注释和功能性注释。注释分为序言性注释和功能性注释。n 通常置于每个程序模块的开头部分,它应当给出程序通常置于每个

44、程序模块的开头部分,它应当给出程序的整体说明。的整体说明。n 有关项目包括:有关项目包括:n 有关本模块功能和目的的说明;有关本模块功能和目的的说明;n 主要算法;主要算法;n 接口说明:包括调用形式,参数描述,子程序清单;接口说明:包括调用形式,参数描述,子程序清单;n 有关数据描述:重要的变量及其用途,约束或限制条有关数据描述:重要的变量及其用途,约束或限制条件,以及其它有关信息;件,以及其它有关信息;n 模块位置:在哪一个源文件中,或隶属于哪一个软件模块位置:在哪一个源文件中,或隶属于哪一个软件包;包;n 开发简历:模块设计者,复审者,复审日期,修改日开发简历:模块设计者,复审者,复审日

45、期,修改日期及有关说明等。期及有关说明等。n 功能性注释嵌在源程序体中,用以描述其后的语句或程序段是功能性注释嵌在源程序体中,用以描述其后的语句或程序段是在做什么工作,或是执行了下面的语句会怎么样。而不要解释在做什么工作,或是执行了下面的语句会怎么样。而不要解释下面怎么做。下面怎么做。n 例如,例如, /* ADD AMOUNT TO TOTAL */ TOTAL = AMOUNTTOTAL不好。不好。n 如果注明把月销售额计入年度总额,便使读者理解了下面语如果注明把月销售额计入年度总额,便使读者理解了下面语句的意图:句的意图: /* ADD MONTHLY-SALES TO ANNUAL-T

46、OTAL */TOTAL = AMOUNTTOTALn 要点要点n 描述一段程序,而不是每一个语句;描述一段程序,而不是每一个语句;n 用缩进和空行,使程序与注释容易区别;用缩进和空行,使程序与注释容易区别;n 注释要正确,错误的注解比没有注解更坏。注释要正确,错误的注解比没有注解更坏。n恰当地利用空格,可以突出运算的优先性,避恰当地利用空格,可以突出运算的优先性,避免发生运算的错误。免发生运算的错误。n移行也叫做向右缩格。对于选择语句和循环语移行也叫做向右缩格。对于选择语句和循环语句,把其中的程序段语句向右做阶梯式移行。句,把其中的程序段语句向右做阶梯式移行。使程序的逻辑结构更加清晰。使程序

47、的逻辑结构更加清晰。n 在设计阶段已经确定了数据结构的组织及其复杂性。在设计阶段已经确定了数据结构的组织及其复杂性。为了使程序中数据说明更易于理解和维护,必须注意为了使程序中数据说明更易于理解和维护,必须注意以下几点。以下几点。n 数据说明的次序应当规范化。数据说明的次序应当规范化。n 常量说明常量说明简单变量类型说明简单变量类型说明数组说明数组说明公用数据公用数据块说明块说明n 整型量整型量实型量实型量字符量字符量逻辑量逻辑量n 当用一个语句说明多个变量名时,应当对这些变量按当用一个语句说明多个变量名时,应当对这些变量按字母的顺序排列。字母的顺序排列。n 使用注释说明复杂数据结构:例如使用注

48、释说明复杂数据结构:例如, , 对链表结构和用对链表结构和用户自定义的数据类型户自定义的数据类型n 当多个变量名在一个说明语句中说明时,应当对这些变量按当多个变量名在一个说明语句中说明时,应当对这些变量按字母的顺序排列。字母的顺序排列。 n 例如,把例如,把n integer size, length, width, cost, price integer size, length, width, cost, price写成写成 integer cost, length, price , size, width integer cost, length, price , size, width

49、 n 在设计阶段确定了软件的逻辑流结构,但构造单个语句则在设计阶段确定了软件的逻辑流结构,但构造单个语句则是编码阶段的任务。语句构造力求简单,直接,不能为了是编码阶段的任务。语句构造力求简单,直接,不能为了片面追求效率而使语句复杂化。片面追求效率而使语句复杂化。n在一行内写多个语句在一行内写多个语句, ,会使程序可读性变差。会使程序可读性变差。n例如,有一段排序程序例如,有一段排序程序FOR I:=1 TO NFOR I:=1 TO N1 DO BEGIN T:=I1 DO BEGIN T:=I;FOR FOR J:=IJ:=I1 TO N DO IF AJ1 TO N DO IF AJAT

50、THEN T:=JAT THEN T:=J;IF TI THEN BEGIN WORK:=ATIF TI THEN BEGIN WORK:=AT;AT:=AIAT:=AI;AI:=WORKAI:=WORK;END ENDEND END;n由于一行中包括了多个语句,掩盖了程序的由于一行中包括了多个语句,掩盖了程序的循环结构和条件结构,使其可读性变得很差循环结构和条件结构,使其可读性变得很差。FOR I:=1 TO N-1 DO /改进布局改进布局 BEGIN T:=I; FOR J:=I1 TO N DO IF AJAT THEN T:=J; IF TI THEN BEGIN WORK:=AT;

51、 AT:=AI; AI:=WORK; END END;n 程序编写首先应当考虑清晰性,不要刻意追求技巧性,使程序程序编写首先应当考虑清晰性,不要刻意追求技巧性,使程序编写得过于紧凑。编写得过于紧凑。n 例如,有一个用例如,有一个用Pascal语句写出的程序段:语句写出的程序段:n AI:=AIAT; AT:=AIAT; AI:=AIAT; n此段程序可能不易看懂,有时还需用实际数据此段程序可能不易看懂,有时还需用实际数据试验一下。试验一下。n实际上,这段程序的功能就是交换实际上,这段程序的功能就是交换AIAI和和ATAT中的内容。目的是为了节省一个工作单元。如中的内容。目的是为了节省一个工作单

52、元。如果改一下:果改一下: WORK:=AT WORK:=AT; AT:=AI AT:=AI; AI:=WORK AI:=WORK;就能让读者一目了然了。就能让读者一目了然了。c).c).程序要能直截了当地说明程序员的用意程序要能直截了当地说明程序员的用意n 例如例如nfor ( i = 1; i = n; i+ ) for ( j = 1; j = n; j+ ) Vij ( ij ) * ( ji ) n Vs:n for ( i1; i = n; i+ ) for ( j1; j 多个简单系统n提高软件项目可控性n降低软件开发风险n有效地应对需求变更在迭代过程中,功能的不确定性逐渐减小,

53、我们对功能的描述越来越明确。84何时使用迭代开发?何时使用迭代开发?n 只对希望成功的项目使用只对希望成功的项目使用2004年2月4日,马克扎克伯格在大学的宿舍里鼓捣了一个约会网站 敏捷软件开发过程敏捷软件开发过程n 敏捷不是一个过程,是一类过程的统称。敏捷不是一个过程,是一类过程的统称。n 敏捷方法的两大主要特征:敏捷方法的两大主要特征:n 强调强调“适应性适应性”:对变化快速响应:对变化快速响应n 对对“人人”的关注:人不再是可以替换的零件的关注:人不再是可以替换的零件n 做法:做法:n 快速响应快速响应: :引入迭代式的开发手段引入迭代式的开发手段n 将整个软件生命周期分解为若干个小的迭

54、代周期将整个软件生命周期分解为若干个小的迭代周期n 获取切实有效的客户反馈获取切实有效的客户反馈n 提出提出1212条基本原则条基本原则敏捷开发敏捷开发12条原则条原则1.1.我们最优先要做的是通过尽早的、持续的交付有价值的软件来使我们最优先要做的是通过尽早的、持续的交付有价值的软件来使客户满意。客户满意。2.2.即使到了开发的后期,也欢迎改变需求。敏捷过程利用变化来为即使到了开发的后期,也欢迎改变需求。敏捷过程利用变化来为客户创造竞争优势。客户创造竞争优势。 3.3.经常性地交付可以工作的软件,交付的间隔可以从几个星期到几经常性地交付可以工作的软件,交付的间隔可以从几个星期到几个月,交付的时

55、间间隔越短越好。个月,交付的时间间隔越短越好。4.4.在整个项目开发期间,业务人员和开发人员必须天天都在一起工在整个项目开发期间,业务人员和开发人员必须天天都在一起工作。作。5.5.围绕被激励起来的个体来构建项目,给他们提供所需的环境和支围绕被激励起来的个体来构建项目,给他们提供所需的环境和支持,并且信任他们能够完成工作。持,并且信任他们能够完成工作。敏捷开发敏捷开发12条原则条原则(续续)6.6.在团队内部,最具有效果并富有效率的传递信息的方法,就是面对在团队内部,最具有效果并富有效率的传递信息的方法,就是面对面的交谈。面的交谈。7.7.工作的软件是首要的进度度量标准。工作的软件是首要的进度

56、度量标准。8.8.敏捷过程提倡可持续的开发速度。责任人、开发者和用户应该能够敏捷过程提倡可持续的开发速度。责任人、开发者和用户应该能够保持一个长期的、恒定的开发速度。保持一个长期的、恒定的开发速度。9.9.不断地关注优秀的技能和好的设计会增强敏捷能力。不断地关注优秀的技能和好的设计会增强敏捷能力。 10.10. 简单是最根本的。简单是最根本的。 11.11. 最好的构架、需求和设计出于自组织团队。最好的构架、需求和设计出于自组织团队。 12.12. 每隔一定时间,团队会在如何才能更有效地工作方面进行反省,然每隔一定时间,团队会在如何才能更有效地工作方面进行反省,然后相应地对自己的行为进行调整。

57、后相应地对自己的行为进行调整。极限编程极限编程n 极限编程(极限编程(eXtreme ProgrammingeXtreme Programming,XPXP)是一种软件工程方法)是一种软件工程方法学,是敏捷开发中最富有成效的方法学之一学,是敏捷开发中最富有成效的方法学之一n 由由KentBeckKentBeck在在19961996年提出年提出n 具有强沟通、简化设计、迅速反馈等特点具有强沟通、简化设计、迅速反馈等特点n 适合于规模小、进度紧、需求不稳定、开发小项目的小团队。适合于规模小、进度紧、需求不稳定、开发小项目的小团队。极限编程极限编程n 特点:特点:n XPXP模型是模型是“轻量型轻量

58、型”或或“灵活灵活”的软件过程模型的软件过程模型n 与面向对象语言结合的开发方案与面向对象语言结合的开发方案n “专家协作专家协作”的开发方式,解决难点问题的开发方式,解决难点问题n 重视客户反馈重视客户反馈n 核心有四个要点核心有四个要点( (价值观价值观) ):n 交流交流 n 简单简单 n 反馈反馈 n 勇气勇气 交流交流n开发人员与客户的交流开发人员与客户的交流n开发人员之间的交流开发人员之间的交流n使用结对编程使用结对编程n开发人员与管理人员的交流开发人员与管理人员的交流简单简单n设计的简单设计的简单n编码的简单编码的简单n注释的简单注释的简单n测试的简单测试的简单反馈反馈n客户对软

59、件的反馈客户对软件的反馈n测试代码对功能代码的反馈测试代码对功能代码的反馈n先测试,后编程先测试,后编程勇气勇气n开发人员有接受挑战性任务的勇气开发人员有接受挑战性任务的勇气XP 12个实践个实践1 1、完整团队、完整团队XPXP项目的所有参与者(开发人员、客户、测试人员等)一起工作在一个开放的场所中,他们是项目的所有参与者(开发人员、客户、测试人员等)一起工作在一个开放的场所中,他们是同一个团队的成员。这个场所的墙壁上随意悬挂着大幅的、显著的图表以及其他一些显示同一个团队的成员。这个场所的墙壁上随意悬挂着大幅的、显著的图表以及其他一些显示他们进度的东西。他们进度的东西。2 2、计划游戏、计划

60、游戏计划是持续的、循序渐进的。每计划是持续的、循序渐进的。每2 2周,开发人员就为下周,开发人员就为下2 2周估算候选特性的成本,而客户则根据周估算候选特性的成本,而客户则根据成本和商务价值来选择要实现的特性。成本和商务价值来选择要实现的特性。3 3、客户测试、客户测试作为选择每个所期望的特性的一部分,客户可以根据脚本语言来定义出自动验收测试来表明该作为选择每个所期望的特性的一部分,客户可以根据脚本语言来定义出自动验收测试来表明该特性可以工作。特性可以工作。4 4、简单设计、简单设计团队保持设计恰好和当前的系统功能相匹配。它通过了所有的测试,不包含任何重复,表达出团队保持设计恰好和当前的系统功

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论