软件工程第0章

软件工程第0章

参考书目

《软件工程导论(第6版)》是2013年8月1日清华大学出版社出版的图书,作者是张海藩、牟永敏。本书主要讲述了软件工程的概念、原理和典型的方法学,并介绍了软件项目的管理技术。
本书正文共13章,第1章是概述,第2~8章顺序讲述软件生命周期各阶段的任务、过程、结构化方法和工具,第9~12章分别讲述面向对象方法学引论、面向对象分析、面向对象设计和面向对象实现,第13章介绍软件项目管理。附录讲述了用面向对象方法开发软件的过程,对读者深入理解软件工程学很有帮助,也是上机实习的好材料。1
[外链图片转存失败,源站可能有防盗在这里插入!链机制,建描述]议将图片上https://传(imblog.2nimg.cn/202dEhW1031818095926.jpg#pic_cer18)(ht[tps://img-blog.csdnimg.cn/2021031818095926.jpg#pic_center)]




写作风格说明

在软件工程这个专栏,我将会尽可能围绕知识点进行剖析,主要撰写重难点,不计较细枝末节。重点关注问题是什么,为什么,怎么样?每周一更,一篇文章基本上是参考书目的一章内容,当然,遇到重难点或是篇幅较长的章节将会适当分割。


正文

一、什么是软件工程?

软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。

在现代社会中,软件应用于多个方面。典型的软件有电子邮件、嵌入式系统、人机界面、办公套件、操作系统、编译器、数据库、游戏等。同时,各个行业几乎都有计算机软件的应用,如工业、农业、银行、航空、政府部门等。这些应用促进了经济和社会的发展,也提高了工作效率和生活效率 。2

但更有学科性的解释应该是:为了摆脱“软件危机”的困扰(因为软件危机俨然已经成为了限制计算机系统发展的瓶颈);也就是为了能够在保证质量的基本前提下,能够经济的有效的开发和维护软件,从而形成了软件工程学这一门新兴的学科。

顾名思义,软件工程学包含软件和工程两种思想,二者缺一不可。大部分人会注重软件一侧,闭门造车,不与外界和其他队员沟通,长久下去只学得了软件思维,缺乏了工程思维。我们要学会用工程的思维编程,开发出高质量、经济的、有效运行维护的软件。

二、为什么要学软件工程?

其实在上一个标题里已经提到了为什么要学软件工程——因为“软件危机”。软件危机:(Software Crisis)是早期计算机科学的一个术语,是指在软件开发及维护的过程中所遇到的一系列严重问题,这些问题皆可能导致软件产品的寿命缩短、甚至夭折软件开发是一项高难度、高风险的活动,由于它的高失败率,故有所谓“软件危机”之说。软件危机的本源是复杂、期望和改变。这个术语用来描述正急遽增加之电脑的力量带来的冲击和可能要处理的问题的复杂性。从本质上来说,它谈到了写出正确、可理解、可验证的计算机程序的困难。3

简单来说,软件危机包含两方面的问题。一是如何开发软件,以满足对软件日益增长的需求;二是如何维护已有的不断膨胀的软件。

如何解决软件危机呢?还是软件工程!这就需要我们要以工程思维来开发软件,也就是要以工程的原理、技术、方法以团队合作的形式开发软件。

工程是科学和数学的某种应用,通过这一应用,使自然界的物质和能源的特性能够通过各种结构、机器、产品、系统和过程,是以最短的时间和最少的人力、物力做出高效、可靠且对人类有用的东西。将自然科学的理论应用到具体工农业生产部门中形成的各学科的总称。

团队合作指的是一群有能力,有信念的人在特定的团队中,为了一个共同的目标相互支持合作奋斗的过程。它可以调动团队成员的所有资源和才智,并且会自动地驱除所有不和谐和不公正现象,同时会给予那些诚心、大公无私的奉献者适当的回报。如果团队合作是出于自觉自愿时,它必将会产生一股强大而且持久的力量。4

三、怎么学软件工程?

如何学好一门课,相信大家都有独到的见解。本文中我就分享一些个人认为学习软件工程学这门学科的方法。

第一,夯实基础
(一)计算机基础
1、计算机导论(关于计算机的入门)
2、计算机组成原理、操作系统、计算机网络(计算机专业的三巨头,三大基础重点)
3、程序设计语言(推荐c++或Java,用来实现软件开发)
4、编译原理、数据库等(可以不作为先修课)

(二)工程基础(可以作为后续课程)
1、统一建模语言
2、软件体系结构
3、软件需求
4、软件项目管理

如果时间紧张或者其他原因,可以就只学一门程序设计语言,其他科目暂时放下,然后上手软件工程,但是对于学懂甚至学好软件工程有一定能难度。

第二,运用工程思维
说了千万遍,工程思维是重中之重,因为软件工程开创之初就是为了解决“软件危机”,而工程思维作为其中的关键一环不可缺失。软件工程注重工程应用和工程实践,更多地与实际软件工程项目接轨,定位目标是培养成为一个具备专业技术能力的工程师。如果你要成为一个优秀的软件工程师需要具备工程思维、对软件工程项目的整体认知和全局把控。

第三,上机操作
纸上得来终觉浅,绝知此事要躬行。理论终究还是过于抽象,为了理解和掌握,必须上机操作。勤动手勤思考才能发现不足。

看十遍不如敲一遍,计算机专业就是如此,动手才是王道。


总结

软件工程是一门交叉了计算机科学和工程学的学科,需要我们运用两种思想融会贯通。才能理解并深刻体会其中的魅力。
本篇文章只是粗略地讲了以下软件工程的概念内涵和重要性,以及一些学习的方法。下一篇文章即将开始进入真正的软件工程学第一章——软件工程学概述。


  1. @当当网 ↩︎

  2. @百度百科 ↩︎

  3. @维基百科 ↩︎

  4. @百度百科 ↩︎

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值