做电脑系统开发需要什么_系统开发用什么电脑
1.嵌入式系统开发需要学习什么?
2.嵌入式Linux系统开发环境搭建
3.软件开发需要学什么
计算机系统开发的流程如图所示:
计算机系统开发步骤包括:
1、制定开发计划,根据用户对系统功能的要求和业务管理的需要,在充分分析当前省级界线信息管理系统开发和设计的技术与平台的基础上,确定本系统的技术方案和开发计划,为系统的建设和实施提供一个基本的概要方案。
2、系统调研与需求分析,调研考察与用户需求分析是系统设计成功的关键,这个过程就是客户将系统要完成的工作描述给系统设计者;另外,客户的业务流程要描述给系统设计者。从技术角度为客户提高系统的档次。总之,客户与系统设计者要充分交流思想,最后要达成一致。
3、功能设计,在系统需求调研分析的基础上,对系统的功能进行设计、组织和安排,确定系统中各项业务功能的具体实施情况,以及每项功能需要实现的具体内容。
4、系统设计,系统设计的主要任务包括系统组织结构设计、系统数据库设计、系统功能和实现方式的设计、系统用户界面设计等,也包括系统应用中的软硬件结构组织设计。
5、系统编码与实现,系统的设计书是一种可操作性描述,接下来就是根据该设计书的数据结构及软件流程进行程序编码;同时要对系统软件进行采购以便建立起相应的开发环境。完成系统服务器的配置和应用服务的启动,保证系统的正常运行。
6、集成阶段,当各子系统样机已实现并经测试后,这些样机必须组合到一起成为一个完整的可运行的系统。
扩展资料开发一种能提供期望服务的高可信计算机系统是一个复杂的工程化过程,通常包括需求、 设计、 实现、 集成四个阶段为使系统达到期望的可信程度。
计算机系统可信性是描述系统所提交服务的性质的一种定性量度,用于表征系统可提交用户有足够理由依赖的期望服务能力。
系统提交的服务是指所有由用户察觉到的系统行为,可信性作为一种定性量度需根据不同应用来对其属性具体化或定量化。
典型的可信性定性/定量量度包括:可靠度、可用度、安全度。可维修度、可测性、完整性等。
百度百科-计算机系统开发
嵌入式系统开发需要学习什么?
1.首先热爱这个专业。只有这样,才会从抽象的理论中找到实实在在的快乐。如果?
不热爱她,或者只因为这是个热门专业,那么极力要求放弃这个专业,因为计算机是 一把双刃剑,学好了会飞黄腾达,学不好毕业后会极其痛苦,高不成低不就,没有发 展潜力,如同学英语专业的人到了美国一样。?
2.不要用功利眼光对待这个学科,这绝对不是点点鼠标就能挣钱的专业。不要去想做网站 挣钱,不要想靠点击率增加广告,这个在4年前已经过时,如果现在仍然这么想,千万别 说出来,因为会觉得很土。计算级专业的成就感总是伴随着身体上的痛苦而来,肩周 炎,颈椎病,眼睛干涩,掉头发,腰椎间盘突出,关节炎
3.搞明白计算机“科学”与“技术”的含义。做网页,做,做flash,玩游戏,上网, 听歌,录mp3,搞**字幕,装windows,改注册表,为软件皮肤……这通通不叫计算机科学 与技术,如果是计算机的学生,会做以上事情,那是应该的,不会做,也没什么丢人 的,需要的不是让别人称作“高手”。?
4.明确最终的专业方向是软件还是硬件。方向是网络?网络不是专业方向。网络是最优 秀的软件工程师、最优秀的硬件工程师与最优秀的通信工程师的智慧结晶。如果是软件 方向,请在学精一揽子数学、数据结构、算法设计、数值分析、汇编语言、操作系统、 编译原理、数据库原理、软件工程之类课程后,仔细的听一听硬件课程,软 件工程绝对不是背背就能过的课,计算机理论可能是一个人就能研究出来,软件工程是成 千万网软件工程师几十年来失败的教训凝结成的结晶,请认真听课。不要问应该学什么 语言,计算机专业的人必须具备任何语言1小时上手的能力,最起码要在10分钟把"hello world"做出来。如果说有必须学的两种语言,那他们是c++与java,学他们不是在学语言, 而是在学thinking in c++,thinking in java,一个是软件的基础理论,一个是面向对象。
软件开发是根据用户要求建造出软件系统或者系统中的软件部分的过程。软件开发是一项包括需求捕捉、需求分析、设计、实现和测试的系统工程。软件一般是用某种程序设计语言来实现的。通常采用软件开发工具可以进行开发。软件分为系统软件和应用软件,并不只是包括可以在计算机上运行的程序,与这些程序相关的文件一般也被认为是软件的一部分。 软件设计思路和方法的一般过程,包括设计软件的功能和实现的算法和方法、软件的总体结构设计和模块设计、编程和调试、程序联调和测试以及编写、提交程序。
1计划
对所要解决的问题进行总体定义,包括了解用户的要求及现实环境,从技术、经济和社会因素等3个方面研究并论证本软件项目的可行性,编写可行性研究报告,探讨解决问题的方案,并对可供使用的资源(如计算机硬件、系统软件、人力等)成本,可取得的效益和开发进度作出估计,制订完成开发任务的实施计划。
2分析
软件需求分析就是对开发什么样的软件的一个系统的分析与设想。它是一个对用户的需求进行去粗取精、去伪存真、正确理解,然后把它用软件工程开发语言(形式功能规约,即需求规格说明书)表达出来的过程。本阶段的基本任务是和用户一起确定要解决的问题,建立软件的逻辑模型,编写需求规格说明书文档并最终得到用户的认可。需求分析的主要方法有结构化分析方法、数据流程图和数据字典等方法。本阶段的工作是根据需求说明书的要求,设计建立相应的软件系统的体系结构,并将整个系统分解成若干个子系统或模块,定义子系统或模块间的接口关系,对各子系统进行具体设计定义,编写软件概要设计和详细设计说明书,数据库或数据结构设计说明书,组装测试计划。在任何软件或系统开发的初始阶段必须先完全掌握用户需求,以期能将紧随的系统开发过程中哪些功能应该落实、采取何种规格以及设定哪些限制优先加以定位。系统工程师最终将据此完成设计方案,在此基础上对随后的程序开发、系统功能和性能的描述及限制作出定义。
3设计
软件设计可以分为概要设计和详细设计两个阶段。实际上软件设计的主要任务就是将软件分解成模块是指能实现某个功能的数据和程序说明、可执行程序的程序单元。可以是一个函数、过程、子程序、一段带有程序说明的独立的程序和数据,也可以是可组合、可分解和可更换的功能单元。模块,然后进行模块设计。概要设计就是结构设计,其主要目标就是给出软件的模块结构,用软件结构图表示。详细设计的首要任务就是设计模块的程序流程、算法和数据结构,次要任务就是设计数据库,常用方法还是结构化程序设计方法。
4编码
软件编码是指把软件设计转换成计算机可以接受的程序,即写成以某一程序设计语言表示的“源程序清单”。充分了解软件开发语言、工具的特性和编程风格,有助于开发工具的选择以及保证软件产品的开发质量。
当前软件开发中除在专用场合,已经很少使用二十世纪80年代的高级语言了,取而代之的是面向对象的开发语言。而且面向对象的开发语言和开发环境大都合为一体,大大提高了开发的速度。
5测试
软件测试的目的是以较小的代价发现尽可能多的错误。要实现这个目标的关键在于设计一套出色的测试用例(测试数据与功能和预期的输出结果组成了测试用例)。如何才能设计出一套出色的测试用例,关键在于理解测试方法。不同的测试方法有不同的测试用例设计方法。两种常用的测试方法是白盒法测试对象是源程序,依据的是程序内部的的逻辑结构来发现软件的编程错误、结构错误和数据错误。结构错误包括逻辑、数据流、初始化等错误。用例设计的关键是以较少的用例覆盖尽可能多的内部程序逻辑结果。白盒法和黑盒法依据的是软件的功能或软件行为描述,发现软件的接口、功能和结构错误。其中接口错误包括内部/外部接口、资源管理、集成化以及系统错误。黑盒法用例设计的关键同样也是以较少的用例覆盖模块输出和输入接口。
6维护
维护是指在已完成对软件的研制(分析、设计、编码和测试)工作并交付使用以后,对软件产品所进行的一些软件工程的活动。即根据软件运行的情况,对软件进行适当修改,以适应新的要求,以及纠正运行中发现的错误。编写软件问题报告、软件修改报告。
一个中等规模的软件,如果研制阶段需要一年至二年的时间,在它投入使用以后,其运行或工作时间可能持续五年至十年。那么它的维护阶段也是运行的这五年至十年期间。在这段时间,人们几乎需要着手解决研制阶段所遇到的各种问题,同时还要解决某些维护工作本身特有的问题。做好软件维护工作,不仅能排除障碍,使软件能正常工作,而且还可以使它扩展功能,提高性能,为用户带来明显的经济效益。然而遗憾的是,对软件维护工作的重视往往远不如对软件研制工作的重视。而事实上,和软件研制工作相比,软件维护的工作量和成本都要大得多。
在实际开发过程中,软件开发并不是从第一步进行到最后一步,而是在任何阶段,在进入下一阶段前一般都有一步或几步的回溯。在测试过程中的问题可能要求修改设计,用户可能会提出一些需要来修改需求说明书等。
嵌入式Linux系统开发环境搭建
嵌入式系统开发就是对于除了电脑之外的所有电子设备上操作系统的开发,开发对象有手机,掌上电脑,机电系统等。
嵌入式系统开发流程:
第一步:建立开发环境
操作系统一般使用Redhat Linux,选择定制安装或全部安装,通过网络下载相应的GCC交叉编译器进行安装(比如,arm-linux-g、arm-uclibc-g),或者安装产品厂家提供的相关交叉编译器;
第二步:配置开发主机
配置MINICOM,一般的参数为波特率115200 Baud/s,数据位8位,停止位为1,9,无奇偶校验,软件硬件流控设为无。在Windows下的超级终端的配置也是这样。MINICOM软件的作用是作为调试嵌入式开发板的信息输出的监视器和键盘输入的工具。配置网络主要是配置NFS网络文件系统,需要关闭防火墙,简化嵌入式网络调试环境设置过程。
第三步:建立引导装载程序BOOTLOADER
从网络上下载一些公开源代码的BOOTLOADER,如U.BOOT、BLOB、VIVI、LILO、ARM-BOOT、RED-BOOT等,根据具体芯片进行移植修改。有些芯片没有内置引导装载程序,比如,三星的ARV17、ARM9系列芯片,这样就需要编写开发板上FLASH的烧写程序,可以在网上下载相应的烧写程序,也有Linux下的公开源代码的J-FLASH程序。如果不能烧写自己的开发板,就需要根据自己的具体电路进行源代码修改。这是让系统可以正常运行的第一步。如果用户购买了厂家的仿真器比较容易烧写FLASH,虽然无法了解其中的核心技术,但对于需要迅速开发自己的应用的人来说可以极大提高开发速度。
第四步:下载已经移植好的Linux操作系统
如MCLiunx、ARM-Linux、PPC-Linux等,如果有专门针对所使用的CPU移植好的Linux操作系统那是再好不过,下载后再添加特定硬件的驱动程序,然后进行调试修改,对于带MMU的CPU可以使用模块方式调试驱动,而对于MCLiunx这样的系统只能编译内核进行调试。
第五步:建立根文件系统
下载使用BUSYBOX软件进行功能裁减,产生一个最基本的根文件系统,再根据自己的应用需要添加其他的程序。由于默认的启动脚本一般都不会符合应用的需要,所以就要修改根文件系统中的启动脚本,它的存放位置位于/etc目录下,包括:/etc/init.d/rc.S、/etc/profile、/etc/.profile等,自动挂装文件系统的配置文件/etc/fstab,具体情况会随系统不同而不同。根文件系统在嵌入式系统中一般设为只读,需要使用mkcramfs genromfs等工具产生烧写映像文件。
第六步:建立应用程序的FLASH磁盘分区
一般使用JFFS2或YAFFS文件系统,这需要在内核中提供这些文件系统的驱动,有的系统使用一个线性FLASH(NOR型)512KB~32MB,有的系统使用非线性FLASH(NAND型)8MB~512MB,有的两个同时使用,需要根据应用规划FLASH的分区方案。
第七步:开发应用程序
可以放入根文件系统中,也可以放入YAFFS、JFFS2文件系统中,有的应用不使用根文件系统,直接将应用程序和内核设计在一起,这有点类似于μC/OS-II的方式。
第八步:烧写内核
根文件系统和应用程序,发布产品。
....................................................................................................................................................
................................................................
还有怎么学习嵌入式呢,我刚才看到一篇很不错的文章,是一个专科生介绍自己如何自学嵌入式,并找到嵌入式的工作,里面介绍了他的学习方法和学习过程,希望对你有帮助。
先做个自我介绍,我07年考上一所很烂专科民办的学校,学的是生物专业,具体的学校名称我就不说出来献丑了。09年我就辍学了,我在那样的学校,一年学费要1万多,但是根本没有人学习,我实在看不到希望,我就退学了。
退学后我也迷茫,大专都没有毕业,我真的不知道我能干什么,我在纠结着我能做什么。所以辍学后我一段时间,我想去找工作,因为我比较沉默寡言,不是很会说话,我不适合去应聘做业务。我想应聘做技术的,可是处处碰壁。
一次偶然的机会,我才听到嵌入式这个行业。那天我去新华书店,在计算机分类那边想找本书学习。后来有个女孩子走过来,问我是不是读计算机的,有没有兴趣学习嵌入式,然后给我介绍了一下嵌入式现在的火热情况,告诉我学嵌入式多么的有前景,给我了一份传单,嵌入式培训的广告。听了她的介绍,我心里痒痒的,确实我很想去学会一门自己的技术,靠自己的双手吃饭。
回家后,我就上网查了下嵌入式,确实是当今比较热门的行业,也是比较好找工作的,工资也是相对比较高。我就下决心想学嵌入式了。于是我去找嵌入式培训的相关信息,说真的,我也很迷茫,我不知道培训是否真的能像他们宣传的那样好,所以我就想了解一段时间再做打算。
后来,我在百度知道看到一篇让我很鼓舞的文章,是一个嵌入式高手介绍没有基础的朋友怎么自学入门学嵌入式,文章写的很好,包含了如何学习,该怎么学习。他提到一个方法就是看视频,因为看书实在太枯燥和费解的,很多我们也看不懂。这点我真的很认同,我自己看书往往看不了几页。
我在想,为什么别人都能自学成才,我也可以的!我要相信自己,所以我就想自学,如果实在学不会我再去培训。
主意一定,我就去搜索嵌入式的视频,虽然零星找到一些嵌入式的视频,但是都不系统,我是想找一个能够告诉我该怎么学的视频,一套从入门到精通的视频,一个比较完整的资料,最好能有老师教,不懂可以请教的。
后来我又找到一份很好的视频,是在IT学习联盟网站推出的一份视频《零基础嵌入式就业班》(喜欢《零基础嵌入式就业班》的可以复制 sina.lt/qKh 粘贴浏览器地址栏按回车键即打开)。里面的教程还不错,很完整,可以让我从基础的开始学起。视频比较便宜。
下面介绍下我的学习流程,希望对和我一样完全没有基础的朋友有所帮助。
收到他们寄过来的光盘后,我就开始学习了,由于我没有什么基础,我就从最简单的C语言视频教程学起,话说简单,其实我还是很多不懂的,我只好请教他们,他们还是很热心的,都帮我解决了。C语言我差不多学了一个礼拜,接下来我就学了linux的基本命令,我在他们提供linux虚拟机上都有做练习,敲linux的基本命令,写简单的C语言代码,差不多也就三个礼拜。我每天都在不停的写一些简单的代码,这样一月后我基本掌握了C和linux的基本操作。
接下来我就去学习了人家的视频的培训教程,是整套的,和去参加培训没有多大的区别,这一看就是两个月,学习了ARM的基本原理,学习嵌入式系统的概念,也掌握了嵌入式的环境的一些搭建,对linux也有更深层次的理解了,明白了嵌入式应用到底是怎么做的,但是驱动我只是有一点点的了解,这个相对难一点,我想以后再慢慢啃。
这两个月,除了吃饭睡觉,我几乎都在学习。因为我知道几乎没有基础,比别人差劲,我只能坚持努力着,我不能放弃,我必要要靠自己来养活自己,必须学好这门技术,然后我就把不懂的问题总结记下来,这样慢慢积累了一段时间,我发现自己真的有点入门了。
最后的一个月,我就去看关于实践部分的内容,了解嵌入式项目具体的开发流程,需要什么样的知识,我就开始准备这方面的知识,也就是学习这方面的视频,同时他们建议我去找了找一些嵌入式面试的题目,为自己以后找工作做准备。我就到网上找了很多嵌入式的题目,把他们理解的记下来,这样差不多准备了20天左右
我觉得自己差不多入门了,会做一些简单的东西了。我就想去找工作看看,于是我就到51job疯狂的投简历,因为我学历的问题,专科没有毕业,说真的,大公司没有人会要我,所以我投的都是民营的小公司,我希望自己的努力有所回报。没有想过几天过后,就有面试了,但是第一次面试我失败了,虽然我自认为笔试很好,因为我之前做了准备,但是他们的要求比较严格,需要有一年的项目经验,所以我没有被选中。
后来陆续面试了几家公司,终于功夫不负有心人。我终于面试上的,是在闵行的一家民营的企业,公司规模比较小,我的职务是嵌入式linux应用开发,做安防产品的应用的。我想我也比较幸运,经理很看重我的努力,就决定录用我,开的工资是3500一个月,虽然我知道在上海3500只能过温饱的生活,但是我想我足够了。我至少不用每天都要靠父母养,我自己也能养活自己的。我想只要我继续努力,我工资一定会翻倍的。
把本文写出来,希望能让和我一样的没有基础的朋友有信心,其实我们没有必要自卑,我们不比别人笨,只要我们肯努力,我们一样会成功。
假如你喜欢嵌入式的话就努力学习吧。
软件开发需要学什么
由于嵌入式的系统运行的是嵌入式Linux,所以需要有一台以Linux为操作系统的PC机与它进行通讯、连接,以便进行调试。
虚拟机系统搭建普通做法是在PC机上安装虚拟机系统(比如VirtualBox),在虚拟机系统中建立一台虚拟电脑,在虚拟电脑上安装Linux操作系统(比如Ubuntu)。
Linux平台选择一般嵌入式开发需要的环境是指定的,你应当向老师了解要搭建哪种Linux平台,Ubuntu能用否?因为许多开发环境的搭建说明是依赖这些平台的,每个平台的操作小有差异,请了解清楚后再动手吧。
Keil类软件开发Keil类软件一般是运行在PC机Windows操作系统下的,用于开发嵌入式的裸奔程序(即没有操作系统的),用于开发和调试Linux系统比较麻烦,有时根本无法进行。
软件开发是一项庞杂而充满挑战性的工作。软件的开发需要多种技能,涉及多个领域。以下是软件开发中的一些必备技能。
1.编程语言:编程语言是软件开发的一个基础,掌握一到多个编程语言对开发工作至关重要。流行的编程语言包括Java、Python、C++、C#等。与编程语言相对的是按访问控制进行的后期编程,如可配置性框架和低代码平台。
2.算法和数据结构: 在软件编程中,使用算法和数据结构可以有效地提高程序的性能和效率。掌握数据结构和算法可以让程序的执行速度更快,消耗的资源更少。
3.数据库: 除了编写代码,软件开发人员还需要掌握数据库管理。了解数据库系统的操作和管理是软件开发的一个重要方面,可以帮助程序员更好的设计和使用数据存储机制。
4.操作系统和网络通信:软件开发人员还需要了解操作系统和计算机网络,因为程序运行的环境是在计算机上,并在网络上运行。了解操作系统和网络通信可帮助软件开发人员更好地管理程序。
5.团队合作和沟通:在软件开发的过程中,程序员与其他开发人员合作需要较高的沟通和协作能力。软件开发人员应该能够有效地沟通和协调,使得程序开发过程较好的进行。
以上这些是软件开发所必须的基本技能。此外,软件开发需要了解更多的技能和领域,例如测试、安全、WEB开发等众多领域。软件开发是一个不断发展和改进的过程,随着新需求、新技术和新的市场机会的出现,软件开发人员需要开发新的技能,并不断更新和改进自己的工作方式。
总之,成为一名优秀的软件开发人员需要具备广泛的技能和能力,包括编程语言、算法和数据结构、操作系统和网络通信、数据库和团队合作和沟通等等。只有不断的学习、实践和优化,才能成为一名出色的软件开发人员。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。