Ⅰ 软件工程该学习些什么
书的话,如果是入门,我推荐《C++入门经典》(第三版),这本书由浅入深,章节安排很合理。楼上各位提到的《C++ Primer》这本我觉得不适合初学者,因为章节安排不是循序渐进的。至于谭浩强的书,我没看过他写的C++,所以不做评论。但是我看过他写的C语言的书,被人称之为“方言版的C语言”,虽然好懂,但是不标准的写法甚至错误的写法,懂了又有何用。如果是有C++基础了,那么,可以看《C++编程思想》、《C++编程规范》等等。其实学习的重点放在哪里那是根据个人习惯及熟练程度而定,不要太看重,多看看书,你会有所体会的。但是,注意,一次主攻一本书,不能杂,另外的书只能当做参考。上面提到的几本书我都有电子版的,你提供邮箱,我可以发给你。反正我都是看的电子版的,毕竟正版书太贵了,盗版也难找到。
程序设计重在实践。编写代码不用太急,慢慢来,从简单的写起,我不建议首先进行手写,那样没实际意义,即使再简单,拿到计算机上去跑,然后逐步修改并添加功能。就拿我当初看到 vector 这个东西时来说吧,我觉得 push_back() 这个成员函数很好用,所以我就写了那么两三行,只是为了看看 push_back() 这个成员函数的作用。所以,我觉得,书上的代码在最开始没必要完整的写一遍,因为那些可能涉及到还没有看到的内容。看到了新东西,就可以简单的自己去验证一下那么一点小功能,像这样小的东西写多了自然就熟悉了,之后写稍微长的代码就更熟练。同时,对于书上的一些代码,先不要急这自己独立写出来,毕竟别人写书的,对于出版出来的代码应该是经过精心设计的,其中很可能就用到一些技巧,刚开始写不出很正常,主要是因为不熟练。
慢慢的,当你对于C++中的新东西有个比较清楚的认识后(不用急着记住每个新东西),你可以将以前自己用C写过的代码改成C++方式,比如,一般的数组用vector代替,C风格的字符串用C++中的 string 类型替代,这样写出C++版本的代码。如果以前用C写过得东西不多,你可以将书上的习题来练习。写多了,熟悉了,以后写代码就逐渐转变成C++的代码风格。由于C++标准库很强大,所以,以前很多C代码都可以修改得更精简,看起来更舒服!
到了后面的高级内容,开始可以就简单的将书上完整的代码抄写一遍(不是手写),然后进行一定得调试。此时候要注意的不是代码的具体功能,而是其中代码风格。比如,类,注意构造函数,析构函数该怎样写,成员的对外可见性如何写,等等。创造的话,如果看完了类,并且懂得类书写的基本风格,那么,你可以用自己的方法写出一个 vector 类,当然,此时不需要处理异常,不需要完整的实现标准版本的功能,就实现诸如 push_back(), size(), empty()等功能,然后用自己写的类进行别的操作。之后,诸如deque,list等等都可以用自己的方法实现。同时,这时候写的代码也可以留作以后逐步完善,等你非常牛逼时候,就写出了不逊色于标准库的代码了。
总之,我认为,不因为写那么两三行代码拿到电脑上去跑就嫌麻烦,多在实际中跑自己写的代码,由简单的写起,由两三行写起。C++对于C来说有很多新东西,每看到一个,就自己写写去验证,一个一个来,慢慢的组合那些小的细节以实现更多功能。此时,不要太看重算法,数据结构,就像英语,学习语法时,我们主要学应用语法造句,而不是学造文章,文章是之后的事。这只是个学习的先后次序问题
最后,代码风格一定要标准规范,可以附加看看《C++编程规范》等。不懂的问题及时在书上或者到网上搜查。
Ⅱ 软件工程中几种常用的软件开发方法的概述和比较
分享到:
收藏推荐 软件开发方法的研究在软件工程中是很重要的一个方面。程序设计方法研究的是小规模程序设计,而软件开发方法则是研究在大规模软件的开发过程中如何组织、管理人员和资源、指导人们开发软件系统的方法,本文对一些常用到的软件开发方法做一个概述和比较。(反复);④真正实现。 (3)优点:适应用户需求的模糊不清和多变。 (4)局限性:必须有一定的工具和环境做为支撑的条件。结构化分析与设计方法(sA/sD) (l)基本思想:自顶向下按功能划分系统,逐步求精问题解,将软件开发过程看做是软件生命周期,建立瀑布模型。 该方法由DeMarco和You记。n公司提出并逐步使之完善。 (2)基本步骤:分析~设计~编码~测试~运行/维护 (3)优点:应用时间长、简单、直观、易于接受,已有了一定的应用基础并开辟了应用市场。 (4)局限性:功能经常要变,难于适应变化要求;后期发现的错误维护代价太高;不支持开发的反复。
Ⅲ 软件工程的三大要素
软件工程包括三个要素:方法、工具和过程。
软件工程方法为软件开发提供了“如何做”的技术。它包括了多方面的任务,如项目计划与估算、软件系统需求分析、数据结构、系统总体结构的设计、算法过程的设计、编码、测试以及维护等。
软件工具为软件工程方法提供了自动的或半自动的软件支撑环境。目前,已经推出了许多软件工具,这些软件工具集成起来,建立起称之为计算机辅助软件工程(CASE)的软件开发支撑系统。CASE将各种软件工具、开发机器和一个存放开发过程信息的工程数据库组合起来形成一个软件工程环境。
软件工程的过程则是将软件工程的方法和工具综合起来以达到合理、及时地进行计算机软件开发的目的。过程定义了方法使用的顺序、要求交付的文档资料、为保证质量和协调变化所需要的管理、及软件开发各个阶段完成的里程碑。
软件工程是一种层次化的技术。任何工程方法(包括软件工程)必须以有组织的质量保证为基础。全面的质量管理和类似的理念刺激了不断的过程改进,正是这种改进导致了更加成熟的软件工程方法的不断出现。支持软件工程的根基就在于对质量的关注。 ...
Ⅳ 大学本科软件工程专业的所有课程及课程学习的重点内容概要
软件工程学的主要内容是软件开发技术和软件工程管理.
软件开发技术包含软件工程方法学、软件工具和软件开发环境;软件工程管理学包含软件工程经济学和软件管理学。
专业简介:是计算机领域发展最快的学科分支之一,国家非常重视软件行业的发展,对软件人才的培养给予了非常优惠的政策。本专业培养掌握计算机软件基本理论知识,熟悉软件开发和管理技术、能够在计算机软件领域中从事软件设计、开发和管理的高级人才。
2、 主修课程:该专业除了学习公共基础课外,还将系统学习离散数学、数据结构、算法分析、面向对象程序设计、现代操作系统、数据库原理与实现技术、编译原理、软件工程、软件项目管理、计算机安全等课程,根据学生的兴趣还可以选修一些其它选修课。
3、 毕业去向: 除考取国内外名牌大学研究生外,主要毕业去向是计算机软件专业公司﹑信息咨询公司﹑以及金融等其它独资、合资企业。
Ⅳ 软件工程概要设计说明怎么写
网络一下吧,很多模板的。
Ⅵ 软件工程论文摘要
我在得瑟说理吧发过这样的问题
Ⅶ 软件工程要学什么呀
它涉及到程序设计语言,数据库,软件开发工具,系统平台,标准,设计模式等方面。
在现代社会中,软件应用于多个方面。典型的软件比如有电子邮件,嵌入式系统,人机界面,办公套件,操作系统,编译器,数据库,游戏等。同时,各个行业几乎都有计算机软件的应用,比如工业,农业,银行,航空,政府部门等。这些应用促进了经济和社会的发展,使得人们的工作更加高效,同时提高了生活质量。
软件工程师是对应用软件创造软件的人们的统称,软件工程师按照所处的领域不同可以分为系统分析员,软件设计师,系统架构师,程序员,测试员等等。人们也常常用程序员来泛指各种软件工程师。
软件工程的主要课程:
外语、高等数学、线性代数、高等代数、电子技术基础、离散数学、计算机引论(C语言)、数据结构、C++程序设计、汇编语言程序设计、算法设计与分析、计算机组成原理与体系结构、数据库系统、计算机网络、软件工程、软件测试技术、软件需求与项目管理、软件设计实例分析、CMM/ISO9000等。
软件工程(SoftWare Engineering)的框架可概括为:目标、过程和原则。
(1)软件工程目标:生产具有正确性、可用性以及开销合宜的产品。正确性指软件产品达到预期功能的程度。可用性指软件基本结构、实现及文档为用户可用的程度。开销合宜是指软件开发、运行的整个开销满足用户要求的程度。这些目标的实现不论在理论上还是在实践中均存在很多待解决的问题,它们形成了对过程、过程模型及工程方法选取的约束。
(2)软件工程过程:生产一个最终能满足需求且达到工程目标的软件产品所需要的步骤。软件工程过程主要包括开发过程、运作过程、维护过程。它们覆盖了需求、设计、实现、确认以及维护等活动。需求活动包括问题分析和需求分析。问题分析获取需求定义,又称软件需求规约。需求分析生成功能规约。设计活动一般包括概要设计和详细设计。概要设计建立整个软件系统结构,包括子系统、模块以及相关层次的说明、每一模块的接口定义。详细设计产生程序员可用的模块说明,包括每一模块中数据结构说明及加工描述。实现活动把设计结果转换为可执行的程序代码。确认活动贯穿于整个开发过程,实现完成后的确认,保证最终产品满足用户的要求。维护活动包括使用过程中的扩充、修改与完善。伴随以上过程,还有管理过程、支持过程、培训过程等。
(3)软件工程的原则是指围绕工程设计、工程支持以及工程管理在软件开发过程中必须遵循的原则。
Ⅷ “软件工程”到底是什么,谁能简要概括一下开发app算是软件工程的一部分吗不知道在大学到底该不该
软件工程是系统学习软件的结构、需求分析、算法、代码、测试及运营管理等的理论技术及工程相关知识,是一门应用很强的专业,但很多人都会误认为就是培养程序员的专业,这都是误解了或没有认识到它的重要性。相关专业有计算机科学与技术、数学、物理、信息等。app就是一个手机软件,是运用了软件工程的方法和工具开发的一个产品。如果你对软件开发很有兴趣可以选这个这个专业,当然也可以选择计算机、信息及相关性专业,也可以从事软件开发的。
Ⅸ 概要设计与详细设计的区别
概要设计与详细设计的区别如下:
1、概要设计的主要任务是把需求分析得到的系统扩展用例图转换为软件结构和数据结构。设计软件结构的具体任务是:将一个复杂系统按功能进行模块划分、建立模块的层次结构及调用关系、确定模块间的接口及人机界面等。数据结构设计包括数据特征的描述、确定数据的结构特性、以及数据库的设计。显然,概要设计建立的是目标系统的逻辑模型.
2、详细设计是软件工程中软件开发的一个步骤,就是对概要设计的一个细化,就是详细设计每个模块实现算法,所需的局部结构。在详细设计阶段,主要是通过需求分析的结果,设计出满足用户需求的嵌入式系统产品。
3、概要设计阶段通常得到软件结构图 ,详细设计阶段常用的描述方式有:流程图、N-S图、PAD图、伪代码等 。
4、详细设计阶段就是为每个模块完成的功能进行具体的描述,要把功能描述转变为精确的、结构化的过程描述。
(9)软件工程概要扩展阅读
设计是把一种设想通过合理的规划、周密的计划、通过各种感觉形式传达出来的过程。人类通过劳动改造世界,创造文明,创造物质财富和精神财富,而最基础、最主要的创造活动是造物。设计便是造物活动进行预先的计划,可以把任何造物活动的计划技术和计划过程理解为设计。
设计(Design)是为构建有意义的秩序而付出的有意识的直觉上的努力。更详细的定义如下:
第一步:理解用户的期望、需要、动机,并理解业务、技术和行业上的需求和限制。
第二步:将这些所知道的东西转化为对产品的规划(或者产品本身),使得产品的形式、内容和行为变得有用、能用,令人向往,并且在经济和技术上可行。(这是设计的意义和基本要求所在)