码迷,mamicode.com
首页 > 其他好文 > 详细

软件开发工具 第二章 软件开发过程及其组织

时间:2014-08-18 12:58:12      阅读:257      评论:0      收藏:0      [点我收藏+]

标签:使用   文件   数据   问题   代码   工作   时间   管理   

第二章 软件开发过程及其组织

为了对付“软件危机”,先后提出了结构化程序设计方法、软件工程的方法、面向对象的方法、即插即用的程序设计方法、面向互联网平台和开源软件的程序设计。

1.软件开发的基本问题及解决办法。

对程序员来说,做好软件的关键是做好两个转换:

第一个:从用户对软件的理解到程序员对软件功能的理解的转换

第二个:从程序员的理解到程序的实现

为保证第一个转换:尽可能利用标准化的方法编写程序设计任务书,用明确的语言或图形、表格,把程序要处理的信息、格式、来源、去向、存储、处理等清楚地表达处理,作为双方共同理解。

为保证第二个转换:提高程序员的知识水平和实际经验

补充:原型工具 web系统  Axure Rapid prototyping

2.大型软件项目开发中的困难有哪些?产生的原因是什么?

困难:

1)一致性的保持比较困难

2)测试的困难比较大

3)工作进度难以控制

4)文档与代码的协调比较困难

5)版本更新带来的困难

困难产生的原因:

1)大系统的复杂性

2)个人之间的组织与协调

3)各领域之间的差异

4)时间、变化的因素

3.大型软件开发中设计的角色,他们承担的工作?

1)用户:提出需求、验收软件、使用软件、提出修改要求等

2)程序员:编程、写文档、调试自己程序、向项目负责人提交成果

3)项目负责人:分析用户需求形成设计方案、向程序员分配任务、验收程序员的成果、对整个软件联调、向用户交付使用、接收与分析用户的修改要求、等等。

4)计算机硬件:运行

4.结构化的程序设计思想与方法:

基本思想:把程序机构分解成三种基本模块:处理单元、循环机制、二分决策机制,并保证模块的划分符合“结构良好”的要求:

1)模块的功能在逻辑上尽可能单一化、明确化。

2)模块之间的联系及影响尽可能少

3)模块的规模应足够小,易于调试。

模块的划分采用“自顶向下”的方法,不管项目多大,都采取自上而下、逐步分解的办法,画出系统结构图,直到最底层模块达到要求为止。

结构化设计的原则:

1)限制或禁止使用goto语句。

2)子程序一个入口、一个出口

3)程序风格尽量明确、清晰,增加注释,代码书写层次结构,变量名一定要有意义。

4)编程的同时完成文档编写。

缺点:增大了子程序工作量,增加了编程中的麻烦与琐碎的工作,降低了程序运行效率。

5.软件工程的基本思想和方法:

软件工程的基本思想源于传统工程,要想大幅度提高软件的开发效率和质量,从组织和管理的角度加强力量,使软件生产从程序员的个人劳动提高为有组织、可控制的工程。

软件工程的实施方法:

首先,对软件开发的工作过程进行规范。

第一阶段,需求分析。了解结构和功能,掌握组织或管理者的需求,弄清信息流通的实际情况。(业务流程)

第二阶段,分析设计。进行功能分解及数据分析,完成数据处理过程和数据库的逻辑设计。

第三阶段:编程阶段。编码实现功能

第四阶段:测试阶段:对文档做测试。

第五阶段:使用及维护。使用过程中发展问题再改。

标标准化方面从两个方面探索:

1)表达方式的标准化,统一规格的流程图、数据字典等。

2)对工作的质量及检查制定标准,比如ISO9001标准。

 

6.面向对象程序设计的基本思想。

基本思想:

1)客观世界的任何事物都是对象。每个对象都有静态的属性(成员变量)和相关的操作(方法)。作为一个整体,对象不必对外公开这些属性与操作,就是“封装性”。

2)对象之间有抽象与具体、群体与个体、整体与部分等几种关系。

3)继承性

4)对象之间可以传递消息,通过参数。

面向对象程序设计语言反映的思想方法越来越接近人们的思维方式,摒弃了“自顶向下”和“自底向上”的争论,把对于复杂系统的认识归结为对一批对象及其关系的认识。

7.即插即用程序设计的基本思想。基于组件的开发。

在面向对象程序设计方法的基础上提出来的。基本思想是用制造硬件的思路来生成软件。一部分人专门生产软件组件,一部分人设计整体软件结构。

实际实现不那么简单。标准化问题困难。软件部件的提供方式问题。

8、面向开源软件的程序设计思想:

随着开源软件的发展,利用开源软件进行程序设计,越来越普遍。在实际应用中,一些应用面广、流程比较清晰、比较规范的应用领域,开源代码的重用是比较有把握的,比如网站的设计**CMS、论坛。织梦cms;JSPXMS;PHPCMS;

应用领域比较复杂多样,使用开源软件还需仔细权衡。

一方面对应用领域充分了解;二方面开源软件的质量。

9.什么样的软件是好软件

1)正确实现了所要求的功能,准确给出预定的输出结果

2)用户界面友好,符合用户的使用习惯和知识水平

3)具有足够的速度(不是越快越好)。

4)具有足够的可靠性,能够在各种干扰下保持正常工作。

5)程序易读、结构良好、文档齐全,易于修改。

10.评价单个程序员的指标?

1)具有程序设计所需要的基本知识和技能。

2)对于本项目所在的那个领域有比较深入的了解。

3)对软件开发的技术环境比较熟悉,软硬件环境。特别是使用的编程语言,和实际经验。

11.作为项目组的一员,应该遵守哪些要求?

1)保证严格在本模块内操作,不适用干扰其他模块的命令或函数

2)严格按照总体设计的要求传递参数

3)在公用的文件或数据库操作时,必须按照规定、统一格式去操作。

4)使用标示符时,遵守项目组的统一要求和规范。

5)严格按照统一的要求编写文档。

6)尽量保持程序的风格一致。

12.一个好的项目组应该具备哪些条件?

好的项目组是在长期工作中逐渐形成的,根据衡量项目组的CMM 模型,一个好的项目组应该具备的条件如下:

1)有严格的、成文的工作规范和文档标准,而且为全体成员所熟知,并切实得到遵守。

2)人员之间有严格的分工,除了程序员外,必须有专门的秘书,专门的测试人员,特别要有专职的,不参与具体编程的项目负责人。

3)每个项目都要事先制定详细的进度表,并且严格执行每一项目完成之后都有完整的资料,并得到妥善保存。一旦需要修改或更新版本时可以立即使用。

补充:

CMM能力成熟度模型:

 

题型:填空、选择2-3分,一个简答题。7分左右。

 

软件开发工具 第二章 软件开发过程及其组织,布布扣,bubuko.com

软件开发工具 第二章 软件开发过程及其组织

标签:使用   文件   数据   问题   代码   工作   时间   管理   

原文地址:http://www.cnblogs.com/sidecore/p/3919248.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!