软件开发工具-第二章.ppt_第1页
软件开发工具-第二章.ppt_第2页
软件开发工具-第二章.ppt_第3页
软件开发工具-第二章.ppt_第4页
软件开发工具-第二章.ppt_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

1、软件开发过程及其组织,臧丽2.1软件开发中的困难,一、软件开发的基本知识 1、软件开发过程的两个转换:首先是从用户的理解到程序员的理解,其次是从程序员的理解到程序的实现。,2、两个转换的基本情况:第一个转换是用户对软件功能的理解和程序员对软件功能的理解之间的转换。保证这一转换顺利完成的手段就是利用尽可能标准化的方法编写程序设计任务书,用明确的语言或图形、表格,把程序要处理的信息的内容、格式、来源、去向、存储与处理清楚的表达出来,作为双方共同的理解。,第二个转换所要解决的是人和机器之间交流与协调问题:人和机器之间在思维方式、工作方式上都有许多根本区别。做好第二个转换的关

2、键在于程序员的知识水平与实际经验。3、对于单个程序员来说,做好软件工作的关键是以上两个转换。,二、大型软件开发中的困难(大题),当程序的规模超出一个人的力量范围时,一系列新的、更难以克服的困难就出现在人们的面前了。(1)一致性的保持成为十分困难的问题。(2)测试的困难大大增加。名词水波效应:当我们修改程序的某一处错误时,由于没有充分考虑到这一修改对相关部分带来的影响,结果出现新的错误。黑箱检验方法(只能证明程序有错而不能证明程序没错),(3)工作进度难以控制。(与其他工作相比,大型软件开发中的进度控制是非常困难的)(4)文档与代码协调十分困难。(文档包括:功能说明书、总体设计、各模块的设计任务

3、书、每个部分的研制报告、测试报告,直到最终的验收报告和给使用者的用户手册)(5)版本更新带来的困难。(大量的工作在于审核与回顾)总之,如果说单个程序员的软件开发工作面临的困难是一分的话,那么多人参加的大型软件开发工作面临的困难将是十分的,或者更多。,三、困难产生的原因,原因是复杂的、多方面的,不能得意地归结为程序员或软件工作者的弱点:首先,这些困难来自大系统的复杂性。其次,许多具有主动性的个人之间的组织与协调本身也会带来大量的困难。另外,各个应用领域之间的差别也导致这些困难的加重。最后,时间的因素、变化的因素也给软件开发工作带来许多困难。软件危机的研究与克服,是当代人类思想发展的前沿课题之一。

4、,2.2软件开发方法的发展,软件开发的方法:结构化程序设计、软件工程方法、面向对象的方法、即插即用的程序设计方法、可视化设计编程,2.2软件开发方法的发展,软件开发过程中的角色和任务:2223角色: 任务:用户: 提出要求、验收、使用、要求修改项目负责人: 分析需求、向程序员分配任务、验收程序员的工作成果(代码和文档)、对这个软件进行联调程序员: 编写程序和文档、调试自己的程序、向项目负责人提交成果计算机: 无,一、结构化程序设计:,1、程序结构与设计的技术一书中关于好的程序结构的各种看法:(1)它能够保证程序正常地,按照功能说明书运行;(2)它具有灵活性,没有错误,即使有了错误也能够很快地改

5、正;(3)它的文档齐全,一旦需要变更,很容易找到应当改动的地方;(4)它运行速度快;(5)它在经济上能够保证投资很快地得到回报。,2、程序的结构分解成三种基本模块:处理单元、循环机制、二分决策机制。问题的关键在于合理地划分模块 3、模块的划分应当符合以下三条基本的要求:(1)模块的功能在逻辑上尽可能地单一化、明确化,最好做到模块与任务的一一对应,即每一个模块实现一项明确的任务,反之每项任务仅由一个模块来完成。(凝聚性)(2)模块之间的联系及互相影响尽可能地少,对于必需的联系都应当加以明确的说明,如参数传递,共享文件的内容民格式等。(各种联系及相互影响称为耦合,应当尽量避免逻辑耦合,而仅限于数据

6、耦合。),(3)模块的规模应当足够小,以便使它本身的调试易于进行。如果一个软件能够分解成满足上述三条原则的模块,那么它就可以称为有良好结构的软件,能够避免前面所讲的各种问题。实施这种方法应当采取自顶向下的方法。自上而下、逐步分解的办法。,4、结构化程序设计的基本思想 24,a限制甚至不用GOTO语句,绝对禁止超越模块边界的GOTO语句 b子程序尽可能做到只有一个入口、一个出口 c程序设计应当尽量明确、清晰,包括适当的注释,书写格式体现层次结构,变量名称尽量具有逻辑意义 d程序编写的同时完成文档编辑,不拖时,结构化程序设计方法主要是为程序员服务的。 结构化程序设计方法的缺点:增大了程序工作量,增

7、加了编辑中的麻烦与琐碎的工作,并且降低了程序的运行效率。但这种是为保证软件的可靠、准确度与易于修改付出的代价。,二、软件工程的方法,1、工程思想的核心有两点:标准化的表达方法与规范化的工作步骤。2、软件工程的产生背景:由于软件危机的发生,人们认识到,把软件的质量寄托于各个程序员的技能与认真负责上是不牢靠的、危险的、不现实的。(P25) 3、软件开发工作中需要加强的两个方面一方面,对工作的步骤作出了严格的规定。每一个阶段都有各自明确的任务、明确的起点、明确的终点,特别是要有确切的、可以检查的成果。另一方面,在质量、表达方式等方面要有统一的、为人们共同遵守的标准。,4、对软件开发工作过程进行规范化

8、:,第一阶段,需求分析,也可以称之为企业模型建立阶段。任务:了解企业的结构与功能,掌握组织及管理者的信息需求,弄清信息流通的实际情况。 第二阶段,分析与设计阶段,任务:进行功能分解及数据分析,完成处理过程及数据库的逻辑设计。 第三阶段,编程阶段,任务:完成具体的程序编写工作。 第四阶段,测试阶段,任务:对已有的代码进行认真的检测与试用。 第五阶段,作用及维护阶段,任务:组织使用者有效地作用,并及时检查与修正发现的错误。,5、标准化方面主要从两个方面去探索:一方面是表达方式的标准化。另一方面是对工作的质量及检查制订标准。 6、软件工程的思想主要集中于加强项目管理者的工作,对程序员关系不大。完全的

9、工程化还远远没有做到。,三、面向对象的方法,面向对象的程序设计(OOP)的基本思想可以归纳为以下四点:(1)客观世界的任何事物都是对象,它们都有一些静态属性,也都有一些有关的操作。(封装性)(2)对象之间有抽象与具体、群体与个体、整体与部分等几种关系。(3)抽象的、较大的对象所具有的性质包括静态属性和动态操作,自然地成为它的子类的性质。(遗传性),(4)对象之间可以互关消息,这一消息可以是传送一个参数,也可以是使这个对象开始某个操作。摒弃了持续许久的自顶向下和自底向上的争论,把对于复杂系统的认识归结为对一批对象及其关系的认识。面向对象的程序设计语言使用软件工作进一步向用户靠近,这对于计算机应用

10、深入到各个领域是十分有利的。,四、即插即用的程序设计(是在面向对象的程序设计方法的基础上提出来的),1、基本思想:一部分人专门生产软件组件(相当于芯片),而另一部分人则设计软件的结构(相当于计算机结构),并且把软件组件插入这个结构,以便迅速地完成大型软件的研制工作。2、即插即用的程序设计的实现有一定的困难首先,标准化的问题就十分困难其次,软件部件的提供方式也是问题。,五、可视化程序设计:,是指用图标、图像、图表,甚至随手画的素描等可视化的元素来编制程序。运用可视元素时所用的技术手段:(1)指点与卡嗒(2)删剪与粘贴(3)拖拉与扔下,2.3软件开发过程的管理,对于软件开发来说,核心是质量问题。一

11、、什么样的软件才是好的(好软件的评价准)(重要的简答)(1)正确地实现所要求的功能,准确地给出预定的输出结果;(2)用户界面友好,符合实际用户的使用习惯与知识水平;(3)具有足够的速度(而不是越快越好),能在符合用户要求的时间限度内,给出所要求的处理结果;(4)具有足够的可靠性,能够在各种干扰下保持正常的工作;(5)程序易读,结构良好,文档齐全,从而保证系统易于修改。,二、好程序员与好项目组,1、单个程序员的主要的指标(P29)(1)具有程序设计所需要的基本知识与技能,如关于数理逻辑的知识与训练,关于各类数据结构的概念及处理方法等;(2)对本项目所在的领域有较深入的了解,从而能够准确地理解用户

12、的信息需求,正确地把握有关的信息流程与信息处理原则;(3)对于软件开发的技术环境比较熟悉,包括硬件设备、软件环境和网络环境,特别是对所用的语言,应当有足够的、实际运用的经验。以上三个条件基本上能保证程序员单独地承担软件开发任务。,2、项目组的一员必须严格遵循:,(1)保证严格地在本模块范围内操作,决不要使用可能干扰其它模块的命令或函数;(2)严格按总体设计的要求和理解去传递参数值,决不要随意修改其内容或含义;(3)在对公用的文件或数据库进行存取时,必须完全地、准确地按统一规定的格式去操作,决不能擅自改变;(4)在使用标识符时,应按照统一的原则,尽量使用易于看出逻辑含义的名称。特别是涉及公用数据

13、及参数的时候。,(5)严格按照统一的要求编写文档,在内容、格式、表达方式、符号使用上遵循项目组的统一规定; (6)尽量保持程序风格的一致。总之,项目组的成员,必须放弃自己的某些自由去接受项目组的限制和约束,服从项目组的管理。必须具有高度的组织和团队精神。,三、怎样建立一个好的项目组,CCM模型。一个好的项目组应当具备以下几个条件 (1)有严格的、成文工作规范和文档标准,而且应当为全体成员所熟知,并且切实得到遵 (2)人员之间必须有严格的分工,除了程序员之外,必须有专门的秘书,必须有专门的测试人员,特别是要有专职的、不陷入具体编程的项目负责人。 (3)每个项目都要事先制定详细的时间表,并且得到严格招待。每一项目完成之后都有完整的资料,并得到妥善保存,一旦需要修改或更新版本时可以立即使用。,练习,试述软件组件的概念 什么是对象? 试述结构化程序设计的要点 试述结构化程序设计的要点 工程化思想的要点是什么? 软件工程的基本方法是什么? 面向对象的程序设计方法

温馨提示

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

评论

0/150

提交评论