软件开发工具-第二章
第二章:
软件开发过程及组织:
软件开发的困难:
1.软件开发的基本问题对于单个程序员来说:
第一个转换,用户对软件功能的理解与程序员对软件功能的理解的转换。
第二个转换,程序元的理解到程序员的实现人和机器的交流与协调的问题。
大型软件开发中的困难?困难产生的原因?
1.一致性的保持称为十分困难的问题。
- 测试的困难大大的增加
- 工作的进度难以控制
- 文档与代码的协调的十分困难
- 版本更新带来的困难。
版本控制
困难的原因?
1.大系统的复杂度
2.个人之间的组织与协调
3.各个应用领域之间的差别导致困难的加重
4.时间的因素,变化的因素。
四个角色:用户,项目负责人,程序员,硬件四个角色
用户:提出需求,验收,使用,要求修改。
程序员任务比较明确,编写程序,文档,调试自己的程序,向项目负责人提交工作成果
项目负责人:分析用户提出的需求设计方案。他承担着分析需求,向程序员分配任务,验收程序员的工作,经过调试的模块交付给项目负责人,最终的软件交付给用户。
硬件:运行,试运行。
负责修改已投入运行程序的人是。程序员。
1.结构化程序设计:
1.程序结构分解成三种基本模块:处理单元,循环机制,二分决策机制。
2.结构良好的要求
1。模块的功能在逻辑上尽可能的单一化,明确
2. 模块间的联系及相互影响尽可能的少。
3.模块的规模应当足够小,便于调试。
模块划分的方法:自顶向下逐步分解,直到最底层的模块达到要求为止。
实施原则:
1.限制甚至不用GOTO语句,绝对禁止超越模块边界的GOTO语句。
2.子程序尽可能做到只有一个入口一个出口。
3。程序风格应尽量明确,清晰,包括适当增加注释,书写格式体现层次结构,变量名称的选用尽量具有逻辑意义等。
4.在程序编写的同时完成有关的文档编辑,不要拖延时间。
使用范围:主要是为程序员服务的。
缺点:增大了程序的工作量,增加了编程中的麻烦与琐碎的工作,降低了程序的运行效率。
优点:保证软件的可靠性,准确性,易于修改。
2.软件工程的方法:
基本思想:借鉴传统工程的思想,从软件开发的经验中归纳出和相应的工作步骤和交流标准,从而保证软件开发的进度与质量。
IBM的ad/cycle把软件开发过程划分成五个阶段
1.第一个阶段,需求分析
第二个阶段,分析与设计
第三个阶段,编程阶段
第四个阶段,测试阶段
第五个阶段,使用及维护
.标准化方面
1.表达方式的标准化,如统一规格的数据流程图,数据字典,模块结构图。
2.对工作的质量及检查制定标准,在一定的时候做一定的检查。
使用范围:加强项目管理者的工作。
主要面向项目管理者。
3.面向对象的程序设计方法:
1.客观世界的任何事物都是对象,它们都有一些静态属性,作为一个整体,这些对象不必对外公开这些属性与操作,这就是封装性。
2。对象之间有抽象与具体,群体与个体,整体与部分等几种关系。这些关系构成对象概念之间的网络结构。
3.抽象的较大的对象所具有的性质,包括静态属性,动态操作,自然地称为它的籽类的性质,不必加以重复说明或规定,这就是遗传性。
4.对消息之间可以传送消息,这一消息可以是传送一个参数,也可以是使这个对象开始某个操作。
面向对象 摒弃了自顶向下,自底向上的争论。
4即插即用的程序设计方法。
基本思想,用制造硬件的思路来生产软件,一部人专门生产软件组件,
存在的困难,标准化的问题,软件部件的提供方式。
5.面向开源软件的程序设计。
利用开源软件进行程序设计。
1.对应用领域充分了解。
2.开源软件的指令,包括文档和代码的规范程度。
四:软件开发的过程管理。
1.什么样的软件才是好的。
1.正确的实现所要求的功能,准确地给出预定的输出结构。
2.用户界面友好,符合实际用户的使用习惯和知识水平
3.具有足够的速度,能在符合用户要求的时间限定。
4.具有足够的可靠性,能够在各种干扰下保持正常的工作。
5。程序易读,结构良好,文档齐全,从而保证系统易于修改。
2.好程序元与好项目组。
好的程序员组成的项目组,并不会自然称为好项目组,成为一个好程序与成为一个项目组的好成员并不不是完全相同。
就单个程序员来说,主要的指标有:
1.具有程序设计所需要的基本知识与技能,如关于树立逻辑的知识,各类数据结构的概念。
2.对本项目所在那个领域有较深入的了解。
3.对于软件开发的技术环境比较熟悉,包括硬件设备,软件环境。网络环境。
项目组的一员一下几点必须严格遵守
1.保证严格在本模块内操作,据不要使用可能干扰其他模块的命令或函数。
2.严格按总体设计的要求和理解去传递参数值,绝不要随意修改其内容或含义。
3.对公用的文件或数据库进行存取时,必须完全地,准确滴,按统一规定的格式去掉改变。
4,在使用标识符时,应按照统一的原则尽量使用易于看出逻辑含义的名称。
5.严格按照统一的要求编写文档,在内容格式表达方式,符号使用上遵循项目。
6.尽量保持代码风格的一致,如注释行,行首空格的使用等。
怎样建立一个好的项目组?
1.有严格的重温的工作规范和文档标准
2.人员之间有严格的分工。
3.每个项目都要实现制定详细的时间表每一个项目完成之后都要完整的资料。