软工总结(15—20)——软件实现

2024-08-26 04:58
文章标签 实现 总结 15 软件 20 软工

本文主要是介绍软工总结(15—20)——软件实现,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

         完成了软件的详细设计,就表示完成了软件的过程性描述,接下来就进入软件编码阶段。
        所谓编码,指的就是把详细阶段的设计用某种语言转换为计算机能够识别的程序,是软件实现的一个重要环节。简单的说,编码的任务就是为每一个模块编写程序,即将详设计的结果转换为代码。
         而我接下来总结的不是如何去具体编写代码,而是如何编写程序,如何从提高软件的质量和可维护性角度,讨论在编码阶段所要解决的主要问题:程序设计语言的选择原则;程序设计风格;软件代码审查。
          程序设计语言是人和计算机进行通信的一个重要的工具,语言选择的正确与否直接影响到开发的难度和软件的质量。所以,程序设计的第一项首页工作就是语言的选择。
          在选择语言之前首先要了解语言的分类和各类语言的功能。语言按照级别可以分为两大类:低级语言和高级语言。 (1)低级语言包括机器语言和汇编语言,低级语言使用复杂、繁琐、费时,但是在实现与硬件系统的接口部分时任然采用他,因为它已于实现、实现效率高。(2)高级语言的特点是在一定程度上与具体机器无关,并且易于实现、易用、易维护。
            虽然不同的程序设计语言,在其各自的用途和实现上有很大的区别,但是他们之间的基本组成成份大同小异。基本成分有(1)数据成分,用于描述程序锁涉及的数据。如:声明的变量、声明的数据类型等。(2) 运算成分,用于包含程序中锁包含的运算。如:初始化的运算、算数表达式、逻辑表达式、赋值语句等。(3)控制成分,用于描述运算中所包含的控制。如:选择、顺序、循环。(4)传输成分,用以表达程序中数据的传输。如:数据的输入和输出。
           了解了语音的分类和组成,接下来就要到了选择语言的部分了。如何选择合理的选择语言,让软件的开发过程更顺利,今后的维护更方便。这就要从软件、硬件和人员三方面入手综合考虑来进行选择。(1)软件:要考虑项目的应用领域、如要开发网页用HTML语言比较方便、开发数据库用sql语言比较合适;要考虑算法和计算复杂度,对于计算较多的考虑用FORTRAN语言 ;要考虑数据结合的复杂性,如;高级语言显然比低级语言更解决复杂的问题。(2)硬件:性能因素,例如实时系统对相应速度有特殊要求,就应该选择汇编语言、C语言等;软件执行环境:例如在嵌入式系统中,软件开发语言多为C、C++、JAVA。(3)人员:开发人员的熟练的技术和用户要求。而语言的发展,也是开发语言选择的判断准则之一,有的软件开发也能要考虑日后的升级、所以要选择高级些的语言。这里要注意的是,软件开发选择的语言只是软件的主语言,并不是不可以用别的语言了。例如:主功能用的是高级语言,但是接口可能就用汇编语言。
           程序实际上也是一种供人阅读的文章,只不过他不是用自然语言而是用程序设计语言编写的。米老师也说过,代码不是用来运行的,是用来给别人看的。因此代码的风格尤为重要,讨论代码的风格,是力图从编码原则的角度来探讨提高程序的可读性、改善程序的质量的方法和途径。代码的风格可以从源程序文件和输入输出技术两方面讨论。(1)源程序文件:从图中可以看出其实就是米老师前一段时间讲的《标准程序员的编程规范》、利用匈牙利标记法标记和驼峰法标记变量、注释代码、代码的缩进等。总的思想就是全心全意为人民服务,方便别人阅读代码。(2)输入和输出技术:尽量单输入、单输出;输入和输出的格式保持一致,输入和输出尽可能集中安排等。这里只要记住一句话,编的代码要方便别人阅读。
           代码编写完毕以后就要进入代码审查的阶段了,这是需要注意的是,代码审查不等于验收系统。它的重点是代码,而不考虑功能和系统结构如何。代码审查的目的是帮助开发团队是编码风格标准化,并确保实施最佳的代码实践。
           总结:可能是我们现在技术的原因,在编写程序的是时候不会去考虑太多怎样让别人去更好的理解自己的代码,而是怎样能实现怎样来。但是今后再编代码的时候就要向标准的程序员靠近了,因为我们不可能一个人编程序。要想更好的与别人合作,写的代码更好的和别人的代码相容。就必须是自己的编码风格标准化。


这篇关于软工总结(15—20)——软件实现的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

hdu1043(八数码问题,广搜 + hash(实现状态压缩) )

利用康拓展开将一个排列映射成一个自然数,然后就变成了普通的广搜题。 #include<iostream>#include<algorithm>#include<string>#include<stack>#include<queue>#include<map>#include<stdio.h>#include<stdlib.h>#include<ctype.h>#inclu

【C++】_list常用方法解析及模拟实现

相信自己的力量,只要对自己始终保持信心,尽自己最大努力去完成任何事,就算事情最终结果是失败了,努力了也不留遗憾。💓💓💓 目录   ✨说在前面 🍋知识点一:什么是list? •🌰1.list的定义 •🌰2.list的基本特性 •🌰3.常用接口介绍 🍋知识点二:list常用接口 •🌰1.默认成员函数 🔥构造函数(⭐) 🔥析构函数 •🌰2.list对象

【Prometheus】PromQL向量匹配实现不同标签的向量数据进行运算

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全栈,前后端开发,小程序开发,人工智能,js逆向,App逆向,网络系统安全,数据分析,Django,fastapi

让树莓派智能语音助手实现定时提醒功能

最初的时候是想直接在rasa 的chatbot上实现,因为rasa本身是带有remindschedule模块的。不过经过一番折腾后,忽然发现,chatbot上实现的定时,语音助手不一定会有响应。因为,我目前语音助手的代码设置了长时间无应答会结束对话,这样一来,chatbot定时提醒的触发就不会被语音助手获悉。那怎么让语音助手也具有定时提醒功能呢? 我最后选择的方法是用threading.Time

Android实现任意版本设置默认的锁屏壁纸和桌面壁纸(两张壁纸可不一致)

客户有些需求需要设置默认壁纸和锁屏壁纸  在默认情况下 这两个壁纸是相同的  如果需要默认的锁屏壁纸和桌面壁纸不一样 需要额外修改 Android13实现 替换默认桌面壁纸: 将图片文件替换frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.*  (注意不能是bmp格式) 替换默认锁屏壁纸: 将图片资源放入vendo

C#实战|大乐透选号器[6]:实现实时显示已选择的红蓝球数量

哈喽,你好啊,我是雷工。 关于大乐透选号器在前面已经记录了5篇笔记,这是第6篇; 接下来实现实时显示当前选中红球数量,蓝球数量; 以下为练习笔记。 01 效果演示 当选择和取消选择红球或蓝球时,在对应的位置显示实时已选择的红球、蓝球的数量; 02 标签名称 分别设置Label标签名称为:lblRedCount、lblBlueCount