C++编码实践-2 需求是什么

2024-09-04 22:48
文章标签 c++ 实践 编码 需求

本文主要是介绍C++编码实践-2 需求是什么,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本节开始讨论需求,经过这个需求我们开始一步步编码。


1.  需求概述

以二进制格式显示一个文件的内容,如hello.txt的内容为:

Hello, world!

则显示出如下内容:

48 65 6C 6C 6F 2C 20 77 6F 72 6C 64 21

2. 用户需求

以上需求可以看作是原始的用户需求,这种需求只能表达出用户最关键的一部分需求。姑且将以上需求转化为下面的设计需求:

对于任意(格式)的一个文件,以十六进制格式的码流显示出该文件的内容。

3. 需求分析

对需求分析的程度,或需求分析的质量,通常受以下两方面的制约:

  • 用户/需求方:提出需求的用户的表达能力
  • 开发者/供应方:(通常会理解成需求分析师)TA对该领域的技能知识,简称领域知识

通常,以上两种角色的知识领域存在着巨大的鸿沟,用户往往只能表达出大概的、模糊的需求,而开发者则因为业务领域的欠缺,则往往只能理解用户表达的需求中的一部分。如此,如果在开发过程中两者缺乏有效的沟通,开发者闭门造车的交付件(产品)可能根本无法满足最终用户(包括最终的消费者)的需求。


注1:关于沟通不足导致的后果,可以参考经典的tree swing cartoon:


注2:关于软件开发的困难,请参考《人月神话》:



注3:如何避免沟通导致的各种问题?现在的软件业大都采用了敏捷软件开发。这方面的图书非常多,比如:

硝烟中的Scrum和XP



注4:和敏捷相结合,一本很好的书是:用户故事与敏捷方法。




=======================

本节简单讨论了需求相关的一些故事,推荐了几本书,下一节将开始C++编码,开始敏捷之旅。

这篇关于C++编码实践-2 需求是什么的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1137254

相关文章

C++中全局变量和局部变量的区别

《C++中全局变量和局部变量的区别》本文主要介绍了C++中全局变量和局部变量的区别,全局变量和局部变量在作用域和生命周期上有显著的区别,下面就来介绍一下,感兴趣的可以了解一下... 目录一、全局变量定义生命周期存储位置代码示例输出二、局部变量定义生命周期存储位置代码示例输出三、全局变量和局部变量的区别作用域

C++中assign函数的使用

《C++中assign函数的使用》在C++标准模板库中,std::list等容器都提供了assign成员函数,它比操作符更灵活,支持多种初始化方式,下面就来介绍一下assign的用法,具有一定的参考价... 目录​1.assign的基本功能​​语法​2. 具体用法示例​​​(1) 填充n个相同值​​(2)

MySQL 迁移至 Doris 最佳实践方案(最新整理)

《MySQL迁移至Doris最佳实践方案(最新整理)》本文将深入剖析三种经过实践验证的MySQL迁移至Doris的最佳方案,涵盖全量迁移、增量同步、混合迁移以及基于CDC(ChangeData... 目录一、China编程JDBC Catalog 联邦查询方案(适合跨库实时查询)1. 方案概述2. 环境要求3.

Linux进程CPU绑定优化与实践过程

《Linux进程CPU绑定优化与实践过程》Linux支持进程绑定至特定CPU核心,通过sched_setaffinity系统调用和taskset工具实现,优化缓存效率与上下文切换,提升多核计算性能,适... 目录1. 多核处理器及并行计算概念1.1 多核处理器架构概述1.2 并行计算的含义及重要性1.3 并

全面掌握 SQL 中的 DATEDIFF函数及用法最佳实践

《全面掌握SQL中的DATEDIFF函数及用法最佳实践》本文解析DATEDIFF在不同数据库中的差异,强调其边界计算原理,探讨应用场景及陷阱,推荐根据需求选择TIMESTAMPDIFF或inte... 目录1. 核心概念:DATEDIFF 究竟在计算什么?2. 主流数据库中的 DATEDIFF 实现2.1

c++ 类成员变量默认初始值的实现

《c++类成员变量默认初始值的实现》本文主要介绍了c++类成员变量默认初始值,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录C++类成员变量初始化c++类的变量的初始化在C++中,如果使用类成员变量时未给定其初始值,那么它将被

C++中NULL与nullptr的区别小结

《C++中NULL与nullptr的区别小结》本文介绍了C++编程中NULL与nullptr的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编... 目录C++98空值——NULLC++11空值——nullptr区别对比示例 C++98空值——NUL

C++ Log4cpp跨平台日志库的使用小结

《C++Log4cpp跨平台日志库的使用小结》Log4cpp是c++类库,本文详细介绍了C++日志库log4cpp的使用方法,及设置日志输出格式和优先级,具有一定的参考价值,感兴趣的可以了解一下... 目录一、介绍1. log4cpp的日志方式2.设置日志输出的格式3. 设置日志的输出优先级二、Window

Spring WebFlux 与 WebClient 使用指南及最佳实践

《SpringWebFlux与WebClient使用指南及最佳实践》WebClient是SpringWebFlux模块提供的非阻塞、响应式HTTP客户端,基于ProjectReactor实现,... 目录Spring WebFlux 与 WebClient 使用指南1. WebClient 概述2. 核心依

MyBatis-Plus 中 nested() 与 and() 方法详解(最佳实践场景)

《MyBatis-Plus中nested()与and()方法详解(最佳实践场景)》在MyBatis-Plus的条件构造器中,nested()和and()都是用于构建复杂查询条件的关键方法,但... 目录MyBATis-Plus 中nested()与and()方法详解一、核心区别对比二、方法详解1.and()