软件工程(四)

参考资料:

有哪些软件开发者常用的工具?20款开发工具盘点-阿里云开发者社区

软件开发环境与工具:概念、分类与应用_51CTO学堂_专业的IT技能学习平台

开发环境_百度百科

『软件测试1』你需要了解的软件测试基础知识对于一个软件来说,总会存在各种各样的软件缺陷。因此我们需要通过软件测试来检查软 - 掘金


目录

软件工程(四)

4.4 软件工具与软件开发环境

4.4.1 软件工具(按生命周期分类)

1. 软件开发工具(覆盖分析与设计阶段)

需求分析工具

系统设计工具

编码与构建工具

2. 软件维护与逆向工程工具

版本控制工具(配置管理)

逆向工程工具

代码重构与分析工具

3. 软件管理与项目管理工具

项目计划与进度管理

缺陷追踪与敏捷管理

持续集成工具 (CI/CD)

4.4.2 软件开发环境 (SDE)

1. 软件开发环境概述

2. 环境集成机制

① 平台集成(最底层)

② 数据集成(核心基础)

③ 控制集成 / 界面集成(中间层)

④ 过程集成(最高境界)


4.4 软件工具与软件开发环境

4.4.1 软件工具(按生命周期分类)

软件工具是用于辅助软件开发、维护和管理过程的自动化工具。

按其在软件生命周期中的用途,主要分为以下三类:

1. 软件开发工具(覆盖分析与设计阶段)
需求分析工具

帮助分析师描述需求,生成需求规格说明书。

代表工具:Axure(原型设计)、Visio(绘图)。

系统设计工具

辅助架构设计和详细设计,支持建模。

代表工具:

PowerDesigner(数据库设计、UML建模)、Enterprise Architect(EA)、StarUML。

编码与构建工具

提供代码编写、编译、构建能力。

代表工具:Visual Studio、IntelliJ IDEA、Maven(自动化构建工具)。

2. 软件维护与逆向工程工具
版本控制工具(配置管理)

记录代码的每一次修改历史,支持多人协作与回滚。这是维护期最核心的工具。

代表工具:Git、SVN、CVS。

逆向工程工具

针对无文档的遗留系统,通过分析源代码反向推导出系统的设计模型或数据结构。

代表工具:

Understand(代码静态分析工具)、各类反编译器。

代码重构与分析工具

在不改变软件外部行为的前提下,改善其内部结构,提高可维护性(现代IDE通常自带此类功能)。

3. 软件管理与项目管理工具
项目计划与进度管理

用于制定项目进度表、分配资源、绘制甘特图和关键路径。

代表工具:Microsoft Project。

缺陷追踪与敏捷管理

用于记录Bug的生命周期(新建-修复-验证-关闭),以及管理敏捷开发中的需求池和看板。

代表工具:

Jira(必认准它是缺陷追踪/敏捷管理工具)、禅道、Trello。

持续集成工具 (CI/CD)

自动化地完成代码编译、打包、自动化测试和部署。

4.4.2 软件开发环境 (SDE)

1. 软件开发环境概述
定义

在基本硬件和宿主操作系统的基础上,为支持软件工程的方法学,将一组相关的软件工具按照一定的模式集成在一起,形成的协同工作的环境。

常见形态

狭义上指我们日常使用的 IDE(集成开发环境),如 Eclipse、VS Code;

广义上指企业级的研发协同平台。

2. 环境集成机制

概念 定义 应用场景
环境集成机制 用于实现工具的集成与协同工作 软件开发环境
版本控制工具 用于管理代码的各个版本 软件维护
配置管理工具 用于管理项目中的配置项 软件全生命周期管理
逆向工程工具 用于将机器语言或汇编语言转换为高级语言代码 软件维护与改进

将各种孤立的工具放在一起不能叫“环境”,必须通过集成机制将它们有机结合起来。

环境集成的深度由浅入深分为四个层次:

① 平台集成(最底层)

解决不同工具运行在不同操作系统、不同网络协议下的异构问题。

表现:

让工具都能在同一个基础平台(如相同的OS或虚拟机环境)上稳定运行。

② 数据集成(核心基础)

解决工具之间“数据格式不兼容、信息孤岛”的问题。

表现:

各个工具能够平滑地交换数据。

通常通过建立统一的元数据模型或共享中心数据仓库来实现(比如设计工具画的类图,编码工具能直接读取并生成代码骨架)。

③ 控制集成 / 界面集成(中间层)

解决用户操作体验割裂的问题。

表现:

提供统一的图形用户界面(GUI),各个工具以“插件”或“无缝挂接”的形式存在。

用户不需要频繁切换窗口,在一个界面下就能调用不同的工具。

④ 过程集成(最高境界)

让环境“懂”软件开发流程。

表现:

环境内部嵌入了“软件过程模型”(如瀑布、敏捷)。

系统能根据当前项目所处的阶段,自动激活或禁用相应的工具。

例如,系统规定“未通过代码审查则无法进入构建环节”,过程集成会自动拦截违规操作。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐