做任何事情都要讲究一个方法,好的方法可以起到事半功倍的效果,提高我们的做事效率。在我们身边,有的人做事效率很高,处理事情井井有条;有的人做事效率就比较低下,处理事情拖拖拉拉。做事效率低下的人不代表他们的工作能力就差,而是没有一个好的做事方法,来指导他们如何去处理各类事情。

在20世纪初,伯利恒钢铁公司的创始人查尔斯·施瓦布为了提高团队的工作效率,约见了当时颇有名望的工作效率顾问艾维·李,谋求提高团队工作效率的方法。艾维·李经过细致调研后,给出了提高团队工作效率的方法:

1、每天列出一张数目不超过六项的待办事项清单;

2、给清单上的待办事项按照重要程度排序;

3、按照排序依次处理清单上的待办事项;

4、清单上的待办事项如果当天没有完成,没完成的事项放入第二天的待办事项清单,待办事项数目依然不能超过六项;

5、每天重复上述过程。

施瓦布和他的团队在工作中使用这个方法后,取得了非常好的效果,工作效率得到很大提升,这就是方法的作用。

什么是系统开发方法?

开发软件项目是一个非常复杂的过程,涉及到开发团队(研发人员)、用户(最终使用软件的人)、软件功能、硬件(运行软件的计算机、服务器、手机等)、数据(数据库、音视频、图片、文档等)、网络(网络协议、互联网)等众多相关资源。

大多数开发者最初拿到的仅仅是招标书、合同、项目基本需求等文档,这些文档对软件功能和资源的需求描述都是对现实问题域的描述,不能直接映射到在计算机中可运行的软件结构,而且现实问题域的内容在团队沟通中也会出现大问题,团队成员对问题域的理解可能不尽相同,导致开发出的软件功能,与招标书、合同规定的软件要求会有较大差异。

最好的方法是细化招标书、合同、项目基本需求等文档提出的软件功能和资源需求,并通过模型、工具和技术将文档中实现的问题域,映射为可以被编程语言识别的软件结构,这个映射过程就是项目的开发方法,也称为系统开发方法。

系统开发方法提供完成系统开发生命周期每一步的详细指导,包括具体的模型、工具、技术。系统开发方法呈现出来就是一些文档,这些文档规定了在项目开发过程中具体要做的工作。例如,项目开发遵循的过程、如何建立需求和设计模型,如何书写文档等等。

什么是模型?

模型是现实世界中事务的表示和抽象。一些模型在外观上类似于真实产品,如飞机模型、汽车模型等等;一些模型使用绘图进行描述,如图纸、AutoCAD建筑模型等;一些模型则是抽象的数学符号,如数学公式等。在建筑设计中,建筑工程师使用AutoCAD绘制大量不同的建筑模型,因此要成为一名建筑工程师需要学会创建和使用各种模型。

对于软件开发来说,建立软件模型也非常重要。软件模型虽然不像飞机模型和建筑模型那样标准或精确,但也需要通过模型能够明确表达出软件的功能、过程、系统结构、数据结构、输入与输出等内容。大多数的软件模型是图形模型,包括使用公认的符号和惯例画表示图,这些模型统称为图表,流程图也是一种软件模型,用流程图可以表示软件程序模块的逻辑结构。

常用的软件模型有流程图、数据流图(DFD)、实体-联系图(ER)、结构图、用例图、类图、顺序图、部署图。用于管理软件开发过程的一些模型有PERT图、甘特图、组织层次图等。

什么是工具?

软件模型需要借助工具来绘制和生成,就像建筑模型需要用AutoCAD来绘制一样。工具也许是创建图表的简单绘图程序,也许包括一些存储关于项目信息的数据库应用程序,例如Visio绘图程序、Microsoft Project项目管理程序等等。有些工具是为软件开发而专门设计的,如程序员比较熟悉的Eclipse、Microsoft Visual Studio等集成开发环境(IDE),集成开发环境提供了许多工具帮助程序员进行编程,例如代码编辑器、上下文相关帮助和调试工具。

什么是技术?

技术是一组方法的组合,这组方法可以帮助开发者完成软件开发活动或任务。例如软件测试技术贯穿整个软件开发生命周期、对软件产品进行验证和确认。软件测试技术包括回归测试法、压力测试法、性能测试法等多种测试方法的组合。

小结

1、方法如何把模型、工具和技术组合在一起呢?方法包括一组用来完成软件开发每一阶段活动的技术。这些活动包括完成各种模型以及其它文档和交付资料。开发者使用软件工具来帮助他们完成这些活动。下图给出了方法、模型、工具和技术之间的关系。

2、技术和方法的关系。技术和方法的关系是我中有你,你中有我。在开发方法中包含了多个技术,在每个技术中又包含了多个方法。易学中的阴阳图给出了很好的解释,图中阴阳双鱼象征阴阳之间本为一体,然相互对立,互动消长,你中有我,我中有你。

软件工程——认识方法、模型、工具和技术相关推荐

  1. 一文讲透需求管理(方法+模型工具)

    需求管理能力是衡量产品经理能力的一个重要指标.因为需求是产品的基石,只有选取恰当的方法进行需求分析及管理,才能更好的构建产品方案,从而输出精准的产品定义. 结合本人学习和自身经验,打算将需求管理分&q ...

  2. 软件工程包括三个要素:方法、工具和过程

    知识点记录: 软件工程包括三个要素:方法.工具和过程. 软件工程方法为软件开发提供了"如何做"的技术.它包括了多方面的任务,如项目计划与估算.软件系统需求分析.数据结构.系统总体结 ...

  3. 软件工程结构化建模的方法和工具_计算机科学与技术专业自考-软件工程

    软件危机? 随着计算机的广泛应用,软件生产率,软件质量远远不能满足社会发展的需求,成为社会,经济发展的制约因素,称之为软件危机 软件工程的目的? 其目的是倡导以工程的原理,原则和方法进行软件开发,以期 ...

  4. 软件工程结构化建模的方法和工具_2020年6月——北京大学《软件工程》笔记

    1软件工程概述 一.软件的定义 计算机系统种的程序及其文档. 程序:计算机任务的处理对象和处理规则的描述. 文档:为了便于理解程序所需要的阐明性资料. ●软件是无形的.不可见的逻辑实体 ●软件是设计开 ...

  5. 《大话软件工程—需求分析与软件设计》,给出了分析与设计过程中需要的理论、方法、工具和标准

    □ 做好一款软件从哪里开始呢?→ 客户需求的调研: □ 一款软件的价值高低由哪个环节决定呢?→ 软件的分析与设计: □ 软件顺利完成开发靠什么?→ 高效的项目管理: □ 软件开发的主要角色?→ 客户. ...

  6. 软件工程结构化建模的方法和工具_软件工程导论复习题

    软件工程复习题 一.单选题 1.软件开发的结构化设计(SD)方法,全面指导模块划分的最重要原则应该是( c ) A模块高内聚 B模块低耦合 C模块独立性 D程序模块化 2.软件工程方法的提出起源于软件 ...

  7. 软件工程结构化建模的方法和工具_软件工程概述(遥感院童鞋自取)

    完整版pdf:http://www.northgis.cn/download/ 目录 ref="https://http://zhuanlan.zhihu.com/write#_Toc962 ...

  8. 【软考软件评测师】第十章节 软件工程之开发模型与方法

    [软考软件评测师]第十章节 软件工程之开发模型与方法 第十章节 软件工程之开发模型与方法 [软考软件评测师]第十章节 软件工程之开发模型与方法 第一部分 知识点集锦 1.瀑布模型 2.螺旋模型 3.增 ...

  9. 软件工程理论方法与实践

    第一章. 概述  软件是人类思维的杰作,并成为人类现代生活的催化剂.今天软件遍布整个世界,在生物工程.现代通信.宇宙探索.商务处理.工业控制等方面发挥出巨大的威力,并推动了商业.科学和工程领域的跨越式 ...

最新文章

  1. FFmpeg 与媒体文件关系
  2. AI+IOT战火升级:未来人工智能抢人大战
  3. 谁把20岁上下的你给洗脑了
  4. java基础之 “==”和“ equals”以及instanceof的区别
  5. 猜字游游戏,while执行10次(Python)
  6. C++语言函数重载详解和示例
  7. php读取pdf文件乱码_PHP 读取PDF文件内容之PdfParser
  8. 2.9_double_link_list_双链表
  9. 三个优秀的PyTorch实现语义分割框架
  10. 操作系统—死锁的避免
  11. MYSQL单列索引和组合索引分析
  12. json字符串中的大括号转义传到后台_string.format格式化字符串中转义大括号“{}”...
  13. paip.python错误解决20
  14. Java spring boot 开发中控Live10R指纹采集器linux(指纹登录系统)
  15. window远程桌面无法复制粘贴文件到本地
  16. 电脑qq微信等软件可以上网,浏览器无法上网,电脑浏览器提示代理服务器连接失败
  17. 计算机主板反复启动,主板无限重启怎么回事
  18. 【接口篇 / Wan】(5.2) ❀ 04. 多条宽带冗余 ❀ FortiGate 防火墙
  19. 关于解决NAT 类型显示“Teredo 无法获得资格”的一个案例
  20. C语言 单引号 双引号问题

热门文章

  1. 如何在android模拟器中安装apk
  2. ATL 线程池的使用
  3. 极大似然估计的渐进正态性
  4. 巧用枚举CommandBehavior关闭SqlDataReader联接数据库时的conn.open状态
  5. pip install scrpy 报错: command 'gcc' failed with exit status 1
  6. Golang——数据类型转换(Sprintf、Format、Append方式转换)
  7. mysql 查看索引命中_请问下如何在Mysql中where与orderBy后在命中索引?
  8. oracle如何自定义类型,Oracle 自定义类型
  9. 量子计算机迷宫,一个简单的例子,带你读懂量子计算机
  10. 数据结构的基本概念和抽象数据类型