《软件工程——理论、方法与实践》课件第11章.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《《软件工程——理论、方法与实践》课件第11章.ppt》由用户(momomo)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程理论、方法与实践 软件工程 理论 方法 实践 课件 11
- 资源描述:
-
1、1 1第11章 软 件 实 现第11章 软 件 实 现11.1 程序设计语言11.2 编码风格11.3 程序的效率本章小结习题2 2第11章 软 件 实 现11.1 程序设计语言程序设计语言一直在不断地演化和演变,其发展经历了从机器语言到高级语言的过程。计算机问世初期,程序设计语言是与计算机硬件紧密相关的机器语言和汇编语言,编写这种语言程序难度大、效率低,不易于理解且难以调试。3 3第11章 软 件 实 现11.1.1 程序设计语言的特性特定的程序设计语言有一些特定的限制,它们影响着程序员描述和处理问题的方式。程序设计语言应着重考虑程序员易学易用、不易出错,因此程序设计语言须考虑下列特性:(1
2、)一致性(Uniforminy)。(2)二义性(Ambiguity)。(3)紧致性(Compactness)。(4)局部性(Locality)。(5)线性(Linearity)。4 4第11章 软 件 实 现11.1.2 程序设计语言的选择总的来说,程序设计语言的选择需要结合具体问题进行分析评价,下面给出一些可供参考的实用标准:(1)系统用户的要求。(2)程序员的知识。(3)软件可移植性要求。(4)软件的应用领域。5 5第11章 软 件 实 现目前面向对象方法是软件开发的主流方法,因此面向对象语言的选择问题更受关注。开发人员在选择面向对象语言时,应该着重考虑以下一些实际因素:(1)将来能否占主
3、导地位。(2)可复用性。(3)类库和开发环境。(4)其他因素。6 6第11章 软 件 实 现11.2 编 码 风 格11.2.1 命名程序设计过程要涉及到对变量、常量、函数、类、对象等编程元素进行命名。一个变量的作用域越大,它的名字所携带的信息就应该越多。7 7第11章 软 件 实 现下面是一些通用的规则:(1)标识符的命名应当直观,可以望文知义,最好采用英文单词或其组合。(2)标识符的长度应当符合“最小长度下的最大信息”原则,过长的英文单词应该采用一些通用而合理的缩写或者应用领域专业术语的缩写。(3)程序中不要出现仅依靠大小写来区分的相似标识符。(4)程序中不要出现局部变量和全局变量同名的现
4、象,以免引起误解。(5)变量名应当使用“名词”或者“形容词+名词”的形式。(6)函数名应当使用“动词”或者“动词+名词”的形式。8 8第11章 软 件 实 现例11.1 Java命名实例。package org.jr.jzj.editor;import java.awt.*;import javax.swing.*;9 9第11章 软 件 实 现public class LineNumber extends JComponent private final static Color DEFAULT_BACKGROUND=Color.white;private final static Colo
5、r DEFAULT_FOREGROUND=new Color(153,153,204);private final static Color DEFAULT_LINECLR=new Color(192,192,192);private final static Font DEFAULT_FONT=new Font(SansSerif,Font.PLAIN,12);private final static int HEIGHT=Integer.MAX_VALUE-1000000;private final static int MARGIN=5;1010第11章 软 件 实 现 private
6、FontMetrics fontMetrics;private int lineHeight;private int currentRowWidth;private JComponent component;private int componentFontHeight;private int componentFontAscent;1111第11章 软 件 实 现 public LineNumber(JComponent component)if(component=null)setBackground(DEFAULT_BACKGROUND);setForeground(DEFAULT_FO
7、REGROUND);setFont(DEFAULT_FONT);ponent=this;1212第11章 软 件 实 现 else setBackground(DEFAULT_BACKGROUND);setForeground(component.getForeground();setFont(component.getFont();ponent=component;1313第11章 软 件 实 现 componentFontHeight=component.getFontMetrics(component.getFont().getHeight();componentFontAscent=c
8、omponent.getFontMetrics(component.getFont().getAscent();setPreferredWidth(9999);this.setBorder(BorderFactory.createLineBorder(DEFAULT_LINECLR,1);1414第11章 软 件 实 现 public void setPreferredWidth(int row)int width=fontMetrics.stringWidth(String.valueOf(row);if(currentRowWidth 0)this.lineHeight=lineHeigh
9、t;public int getStartOffset()return component.getInsets().top+componentFontAscent;1717第11章 软 件 实 现 public void paintComponent(Graphics g)int lineHeight=getLineHeight();int startOffset=getStartOffset();Rectangle drawHere=g.getClipBounds();g.setColor(getBackground();g.fillRect(drawHere.x,drawHere.y,dr
10、awHere.width,drawHere.height);g.setColor(getForeground();1818第11章 软 件 实 现 int startLineNumber=(drawHere.y/lineHeight)+1;int endLineNumber=startLineNumber+(drawHere.height/lineHeight);int start=(drawHere.y/lineHeight)*lineHeight+startOffset;for(int i=startLineNumber;i=endLineNumber;i+)String lineNumb
11、er=String.valueOf(i);int width=fontMetrics.stringWidth(lineNumber);1919第11章 软 件 实 现 g.drawString(lineNumber,MARGIN+currentRowWidth-width,start);start+=lineHeight;setPreferredWidth(endLineNumber);2020第11章 软 件 实 现11.2.2 注释注释是帮助阅读和理解程序的有效手段,用自然语言或伪码描述。注释说明了程序的功能,特别是在维护阶段,对理解程序提供了明确的指导。2121第11章 软 件 实 现书
12、写注释应该注意以下问题:(1)程序中的注释不宜过多,否则会使人眼花缭乱。(2)不必要注释含义已经十分清楚的代码。(3)修改代码时应该同时修改注释,以保证代码和注释的一致性。(4)注释应该准确易懂,防止出现二义性,错误的注释不但无益而且有害。(5)注释的位置应该与被描述的代码相邻,应该写在程序代码的上方并且和代码左对齐。(6)变量定义和分支语句必须写注释,因为这些语句往往是程序某一特定功能的关键。2222第11章 软 件 实 现例11.2 Java注释实例。package com.lowagie.text;import .MalformedURLException;/*A Watermark i
13、s a graphic element(GIF or JPEG)*that is shown on a certain position on each page.*seeElement*seeJpeg*seeGif*seePng*/2323第11章 软 件 实 现public class Watermark extends Image implements Element /member variables /*This is the offset in x-direction of the Watermark.*/private float offsetX=0;/*This is the
14、offset in y-direction of the Watermark.*/private float offsetY=0;2424第11章 软 件 实 现/Constructors /*Constructs a Watermark-object,using an Image.*paramimagean Image-object*paramoffsetXthe offset in x-direction*paramoffsetYthe offset in y-direction*/2525第11章 软 件 实 现 public Watermark(Image image,float of
15、fsetX,float offsetY)throws MalformedURLException super(image);this.offsetX=offsetX;this.offsetY=offsetY;/implementation of the Element interface 2626第11章 软 件 实 现/*Gets the type of the text element.*returna type*/public int type()return type;/methods to retrieve information 2727第11章 软 件 实 现/*Returns
16、the offset in x direction.*returnan offset*/public float offsetX()return offsetX;2828第11章 软 件 实 现/*Returns the offset in y direction.*returnan offset*/public float offsetY()return offsetY;2929第11章 软 件 实 现11.2.3 源代码版式1适当的空行在源代码中适度地使用空行可以使程序的结构更加清晰,空行分隔一般出现在:源文件中的各个节之间。源文件中的类与类、类与接口之间。方法定义之间。局部变量定义和第一
展开阅读全文