软件开发工具(第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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/248091.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据可视化(BI报表的开发)第四天

练习题: 先找出字符串 ‘8587263747153203552943982’ 中出现次数最多的数字及次数,然后去重后并排序(不准使用sort),使得到结果为 ‘0123456789’。 要求1:找到出现最多的数字和出现的次数 // 1、找出出…

Swift傻傻分不清楚系列(二)数据类型

本页包含内容: 整数整数范围IntUInt浮点数类型安全和类型推断数值型字面量数值型类型转换整数转换数整数和浮点数转换类型别名布尔值 整数 整数就是没有小数部分的数字,比如42和-23。整数可以是有符号(正、负、零)或者无符号&…

Python打卡第四周

这一周鸽了好久, 因为最近在准备比赛。课程一直没跟上。。。 今天整理完本周的知识之后休息一周复习之前的 好了。 上总结 第一天 装饰器定义函数bar,在foo中调用 # def foo(): # # print(in the foo) # # bar() # # foo()def bar():print(in th…

网络经济与企业管理(第 1 章:企业管理概论)

一、企业的概念 什么是企业? 1.企业以市场为导向,以价值增值作为经济活动的目的 2.企业是从事商品生产和流通的经济组织 3.企业经营过程中要自主经营、自负盈亏、独立核算和承担风险,具有法人资格的基本经济单位 企业发展的三个时期&#xff…

js高级 — ES6

ECMAScript 6 目标:学习完 ES6 可以掌握方便后续的开发,未来工作中大量使用 ES6 开发 ECMAScript 6 介绍ECMAScript 6 新增语法内置对象的扩展ECMAScript 6 降级处理(学习完node再讲) 1. ECMAScript 6 介绍 ES – ECMAScript …

Swift傻傻分不清楚系列(三)元组与可选类型

本页包含内容: 元组可选nilif 语句以及强制解析可选绑定隐式解析可选类型错误处理断言 元组 元组(tuples)把多个值组合成一个复合值。元组内的值可以是任意类型,并不要求是相同类型。 下面这个例子中,(404, "Not…

去死吧!USB转串口!!!

首先,这个题目有两种歧义:1、USB转232串口(严格说就是这种)! 2、USB转USART串口(通常都是这么叫,认为就是这,理论上是错误的,歧义所在)! USB转TTL…

IDEA微服务项目的application.yml没有绿色叶子的解决办法

1.今天在写微服务项目的时候成功入坑,那么问题是啥呢?接下来和我一起走入bug的世界吧,让我们看看究竟是怎么回事。 *问题描述    1.application.yml是灰色的小格子 2.实在难看 *需要解决的最终结果 1.有绿色的小叶子 解决方案上图 1. 2. …

Ajax — 第一天

上网的目的 本质目的:浏览和消费资源 资源:文字、图片、音频、视频…资源存在哪里:服务器上 服务器的概念 是负责存放和对外提供资源的电脑。它的性能比普通的计算机好太多了 客户端 获取和消费资源的电脑,叫做客户端。 我…

linux 查看进程

1.ps 各字段含义 如果让程序始终在后台执行,即使关闭当前的终端也执行(之前的&做不到),这时候需要nohup。 该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。关闭中断后,在另一个终端jobs已经无法看到后台…

Swift傻傻分不清楚系列(四)基本运算符 o_O!???

本页包含内容: 术语赋值运算符算术运算符组合赋值运算符比较运算符三目运算符空合运算符区间运算符逻辑运算符 运算符是检查、改变、合并值的特殊符号或短语。例如,加号()将两个数相加(如 let i 1 2)。更…

网络经济与企业管理(第 2 章:企业战略管理)

一、战略的性质与类型 什么是战略:企业发展的谋划 企业战略的三个层次: 企业总体战略:又称经营战略,是企业整体运营的指导思想事业层战略:又称竞争战略、业务层次战略、SBU战略, 指导具体战略经营单位。职能…

Ajax — 图书管理

注意&#xff1a;本项目基于 jQuery 文件下进行的 Ajax 请求项目&#xff0c;需要映入jQuery文件&#xff01; <body style"padding: 15px;"><!-- 添加图书的Panel面板 --><div class"panel panel-primary"><div class"panel-h…

vue动态加载组件

vue动态加载组件&#xff0c;可以使用以下方式 <component :is"propertyname" v-for"tab in tabs"></component> :is必须是指向data里面的变量&#xff0c;如果使用is"proname"&#xff0c;那么is指向的名称&#xff0c;必须在compo…

Swift傻傻分不清楚系列(五) 字符串和字符

本页包含内容&#xff1a; 字符串字面量初始化空字符串字符串可变性字符串是值类型使用字符连接字符串和字符字符串插值Unicode计算字符数量访问和修改字符串比较字符串字符串的 Unicode 表示形式 String是例如"hello, world"&#xff0c;"albatross"这样…

错误: 找不到或无法加载主类 com.leyou.LeyouItemApplication Process finished with exit code 1...

在IDEA的使用过程中&#xff0c;经常断掉服务或者重启服务&#xff0c;最近断掉服务重启时突然遇到了一个启动报错&#xff1a; 错误&#xff1a;找不到或无法加载主类 猜测&#xff1a;1&#xff0c;未能成功编译&#xff1b; 尝试&#xff1a;菜单---》Build---》Rebuild Pro…

Ajax — 第二天

Ajax-02 今天内容&#xff1a; 安装浏览器插件 聊天机器人案例 Form表单提交 模板引擎&#xff08;新的概念&#xff0c;难点&#xff09; 两个案例 Chrome浏览器插件安装 安装步骤 下载插件的网站&#xff1a; https://www.gugeapps.net/ 无需扫码 http://www.cnplu…

PC办公必备软件

Everything &#xff1a;基于名称快速定位文件和文件夹https://www.voidtools.com/zh-cn/ Notepad &#xff1a; a free (as in "free speech" and also as in "free beer") source code editor and Notepad replacement that supports several languagesh…

Swift傻傻分不清楚系列(六)集合类型

本页包含内容&#xff1a; 集合的可变性&#xff08;Mutability of Collections&#xff09;数组&#xff08;Arrays&#xff09;集合&#xff08;Sets&#xff09;字典&#xff08;Dictionaries&#xff09; Swift 语言提供Arrays、Sets和Dictionaries三种基本的集合类型用来…

在.NET Core中使用DispatchProxy“实现”非公开的接口

原文地址&#xff1a;“Implementing” a non-public interface in .NET Core with DispatchProxy 原文作者&#xff1a;Filip W. 译文地址&#xff1a;https://www.cnblogs.com/lwqlun/p/11575686.html 译者&#xff1a;Lamond Lu 简介 反射是.NET中一个非常强大的概念&#x…