首页 > 代码库 > 软件开发工具 第二章 软件开发过程及其组织
软件开发工具 第二章 软件开发过程及其组织
第二章 软件开发过程及其组织
为了对付“软件危机”,先后提出了结构化程序设计方法、软件工程的方法、面向对象的方法、即插即用的程序设计方法、面向互联网平台和开源软件的程序设计。
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分左右。