软件开发工具(第2章:软件开发过程及其组织)
一、软件开发的困难
程序员做好软件工作的关键是什么?
关键是两个转换: 第一个转换是用户对软件功能的理解与程序员对软件功能的理解之间的转换。 (不同⾏业的⼈员对于事物的认识⽅法与描述⽅法是不同的。)
第二个转换要解决的是人和机器之间的交流与协调问题
大型软件开发的困难有哪些(一测进 文代新)?
- 一致性的保持成为十分困难的问题
- 测试的困难大大增加:黑箱检验法 “只能证明有错, 不能证明没错”
- 工作进度难以控制
- 文档与代码的协调十分困难
- 版本更新带来的困难
大型软件开发困难的原因(杂志(织)欲(域)变)?
- 大系统的复杂性
- 个人之间的组织与协调
- 各个应用领域之间的差别
- 时间的因素,变化的因素
二、软件开发方法的发展
软件开发各人员的责任?
软件开发方法的发展
- 结构化程序设计
- 软件工程
- 面向对象的程序设计
- 即插即用的程序设计
- 面向开源软件的程序设计
什么是结构化程序设计?
时间:20世纪的60年代末期。 程序的结构分解成三个基本模块, 即:处理单元、循环机制、二分决策机制。
*******************************结构化程序设计***************************
模块的划分应符合哪些要求(功能单一、规模小,模块之间耦合少)?
第一,模块的功能在逻辑上尽可能地单一化、明确化,最好做到一 一对应。
第二,尽可能地减少模块之间的联系及互相影响,对于必需的联系都应当加 以明确的说明。应当尽量避免逻辑耦合,而仅限于数据耦合。
第三,模块的规模应当足够小,以便使它本身的调试易于进行。
实施结构化程序设计的基本思想(一入一出,不GOTO 风格明确编文档。)
1)限制(甚至不用)GOTO语句,禁止超越 模块边界的GOTO语句。
2)子程序尽可能的做到只有一入口、一出口。
3)程序风格应明确。
4)完成有关的文档编撰。
*********************软件工程方法*********************************
软件工程思想是如何产生的?
软件危机的发生; 软件工程产生:使软件生产从程序员的个人劳动提高成为可控制的工程。 软件工程的思想主要集中于加强项目管理者的工作上。
软件危机的发生;把软件的质量寄托于程序员的技能与认真负责是不牢靠的; 从根本上,要想大幅度地提高软件开发的效率和质量,应吸取人们的成功经 验,从组织上和管理的角度加强力量;使软件生产从程序员的个人劳动提高 成为可控制的工程,这就产生了软件工程
软件工程从传统产业工程中吸取了哪些经验(步任标体)?
①对软件工程工作的步骤作出了严格的规定;工作顺序不能颠倒;
②每一个阶段都有各自的明确的任务;
③在质量、表达方式等方面要有统一的,并为人们共同遵守的标准;
④利用有关各方沟通与交流的手段,使参加工作的人们成为一个整体, 共同地完成一项大的工程任务。
*****************************面向对象的程序设计方法****************************
面向对象的程序设计的基本思想
1)客观世界的任何事物都是对象,他们都有一些静态属性和一些相关的操作。
2)对象之间有抽象与具体,群体与个体,整体与部分等几种关系。
3)抽象的、较大的对象所具有的性质,包括静态属性和动态操作,自然地成为 它的子类的性质,这就是所谓的“遗传性”
4)对象之间可以互送消息。
面向对象设计的语言:C++和smalltalk
*********************************即插即用的程序设计方法**************************
即插即用的程序设计的基本思想
应用硬件制造思路来处理大型软件开发工作的方法。
一部分人专门生产软件组件,而另一部分人则构造整个软件的结构,并 且把软件组件插入结构中,以便迅速地完成大型软件的研制工作。
提出即插即用程序设计的基础是面向对象程序设计。
********************************面向开源软件的程序设计方法**************
在什么情况下利用开源软件进行程序设计比较合适
在一些应用面广,流程比较清晰、比较规范的应用领域,开源代码的重用 是比较有把握的。(广清规)
例如,网站的设计确实可以从开源代码中找到比较实用的,略加修改就可 以使用的代码。这无疑是可以节省人力和物力的。
判断能否利用某开源软件的主要依据是对应用领域的充分了解
三、软件开发过程的管理
什么样的软件才是好的软件
1、正确地实现所要求的功能;
2、用户界面友好;
3、具有足够的速度(而不是越快越好);
4、具有足够的可靠性;
5、易于修改。
一个好程序员应具备的条件?
1)具有程序设计所需要的基本知识与技能。
2)对本项目所在的领域有较深入的了解,能够准确地理解用 户的信息需求,正确地把握有关的信息流程与信息处理原则。
3)对于软件开发的技术环境比较熟悉,对所用的语言,有足 够的、实际运用的经验。
如何成为项目组的好成员
一个好的程序员要成为项目组的好成员,必须具有高度的组织纪律性 和团队精神,必须按照统一的原则使用标识符。
一个好的项目组应当具备的条件
第一, 有严格的工作规范;
第二, 人员之间有严格的分工,必须有专门测试人员,有专职的项目负责人;
第三, 每个项目都要事先制定详细的时间表。每一项完成之后都有完整的资料。
转载于:https://www.cnblogs.com/jalja/p/11563259.html
软件开发工具(第2章:软件开发过程及其组织)相关推荐
- 《软件开发工具》要点
2019独角兽企业重金招聘Python工程师标准>>> 1.绪论 2.软件开发过程及其组织 3.软件开发工具的理论基础 4.软件开发工具的技术要素 5.软件开发工具的使用与开发 6. ...
- 【软件开发工具】填空选择,精讲
[软件开发工具]填空选择,精讲 填空 选择 J1 J2 J3,J4 J5 J6 J8 J9 J10 J11 J12 填空 J1 1.第三代程序设计语言一般都是(过程化)语言.填空题 2.进入二十一世纪 ...
- 【03173】2020年8月高等教育自学考试-软件开发工具
一.单项选择题: 1. 区别于一般软件,对软件开发工具而言,下列各项最重要的性能是 A. 效率 B. 响应速度 C. 资源消耗 D. 使用方便 2. 在软件开发过程的信息需求中,属于跨开发周期的信息是 ...
- 软件开发工具【五】 之 软件开发工具的使用与开发
感谢内容提供者:金牛区吴迪软件开发工作室 接上一篇:软件开发工具[四] 之 软件开发工具的技术要素 文章目录 一.购置与开发的权衡 1.购买或自行开发软件与哪些条件有关 2.自行开发软件开发工具的优点 ...
- 使用盗版软件开发工具面临的若干法律问题
一直以来,盗版问题都被认为是阻碍中国软件产业发展的毒瘤.盗版,本应是软件行业中人人得而诛之的一种现象,但是现实情况是,一方面国外软件巨头表面上装作版权卫士,暗中却通过盗版为自己开拓市场:另一方面国内软 ...
- 软件开发工具(第1章:绪论)
一. 软件开发工具的由来 计算机语言和软件开发工具的发展和历史 机器语言(第一代语言):难以记忆的.无意义的.二进 制的字符串 汇编语言(第二代语言)针对难以记忆的.无意义的.二进 制的字符串.人们试 ...
- 自考之——我看《软件开发工具》
<软件开发工具>由理论篇和实践篇构成.实践篇是选取一种详细的软件开发工具Eclipse来进行介绍,帮助我们加深对软件开发工具的理解.在这篇文章里,我就不说这部分内容了. 这里,我主要是对理 ...
- 【03173】2021年10月高等教育自学考试-软件开发工具
一.选择题 下列各项中属于集成化开发工具的是 A.WORDSTAR B.FLOW C.Dictionary / 3000 D.Visual Studio 两种典型的开发环境: Eclipse和Visu ...
- 天翼云从业认证(1.8)了解软件开发的环境、软件基础架构和常用软件开发工具
常用开发环境 软件是一系列按照特定顺序组织的计算机数据和指令的集合. 软件特点 软件开发流程:调研沟通/获取需求.需求分析.产品设计.界面设计.设计原型图.程序编码.测试.打包发布.产品上线 软件开发 ...
- 自考那些事儿(四):软件开发工具(理论篇)
强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan [前言] 本篇是对上篇博文(自考那些事儿:软件开发工具(总述篇))的理论部分进行了细化. 从软件 ...
最新文章
- electron 打包把node代理服务打包进去_用 Node.js 官方镜像打包一个 express 服务
- 在云服务器上持续运行springboot项目
- Oracle数据库的一些常用命令
- MySQL 的实时性能监控利器
- Linux运维问题解决(4)——linux LVM技术 逻辑卷增加 扩容 缩小 删除等操作
- python与java前景-Python与Java相比,其优势在哪?
- [转]关闭不必要端口 让电脑固若金汤
- 给浪费时间找种方法?
- 我的大学专业是计算机英语作文,我的大学计划英语作文(通用5篇)
- DOS那一代的程序员现在都干嘛呢?
- Sphinx制作htmlhelp手册文档(Manual-chm)
- linux u盘启动制作教程,cdlinux u盘启动制作教程
- Python -- 列表解析式习题:九九乘法表、ID号
- 爱宝A-1180热转印条码打印机 打印乱码,对不齐的问题
- java并发小说爬虫,多站点搜索下载,并实现Android客户端开发
- animation和transition的区别及使用
- 【C语言进阶】常见数据格式转换处理的代码实现
- CDS View-Part8Part9Part10Part16 内置函数
- SNMP Private Enterprise Number 申请流程
- 支付宝生活缴费视频课程
热门文章
- 数据结构-栈之二进制转十进制和八进制
- matlab 7.9.0 帮助翻译--size函数
- 机器学习实战(六)——支持向量机
- 买房贷款时为什么银行让客户选等额本息,这是不是个坑?
- 获取 metadata 过程详解 - 每天5分钟玩转 OpenStack(167)
- Eclipse最新版 Neon已发布
- 使用GDI+保存图像为8bpp的灰度图像
- 生产管理erp系统源码_仁和ERP企业管理系统提高生产管理流程
- windows查看usb信息命令_【VPS】Linux VPS查看系统信息命令大全
- URP中的2D Light光照在移动端不生效的问题