码迷,mamicode.com
首页 > 其他好文 > 详细

《现代软件工程—构建之法》第一章整理

时间:2019-09-08 22:15:46      阅读:123      评论:0      收藏:0      [点我收藏+]

标签:科学技术   组成   学习习惯   腾讯   体系   密码学   学习   芒果   交互   

 

 

1.1软件=程序(数据结构+算法)+软件工程

 

软件企业=软件+商业模式

 

软件开发的四个阶段1、玩具阶段

                                          2、业余爱好阶段

                                          3、探索阶段

                                          4、成熟的产业阶段

 

1.2 软件工程是什么

 

软件工程:把系统的、有序的、可量化的方法应用到软件的开发、运营和维护上的过程。

 

软件工程包括的领域:软件需求分析、软件设计、软件构建、软件测试、软件维护

 

软件工程相关学科:计算机科学、计算机工程、管理学、数学、项目管理学、质量管理、软件人体工学、系统工程、工业设计和用户体验设计。

 

软件:软件是可以运行在计算机及电子设备中的指令和数据的有序集合

 

软件分类: 1、系统软件

                    2、应用软件

                    3、恶意软件 

 

1.2.1软件特殊性:

1、复杂性(Complexity)

2、不可见性(Invisiblity)

 3、易变性(Changeability)

 4、服从性(Conformity)

 5、非连续性(Discontinuity)

 

软件其他特性:有许多不同的程序设计语言、软件工具和软件开发平台

 

                         存在许多不同的软件开发流程

 

                    软件团队中存在许多不同的角色

 

                    软件既可以存储在磁带上,也可以存储在CD/DVD上


 

1.2.2软件工程与计算机科学的关系

 

中国大陆的高校生大致讲的计算机软件机构:

(1)计算机科学与技术系或学院

 

(2)软件学院

 

(3)软件工程系、软件工程学院

 

计算机科学偏理论领域:计算机理论、信息和编码理论、算法和数据结构、形式化方法、程序设计语言

 

计算机科学技术偏实践领域:

 

计算机体系结构、并行计算和分布式系统、实时系统和嵌入式系统、操作系统、计算机网络、科学计算、安全和密码学、人工智能、计算机图形学、计算机视觉、多媒体、数据库和大规模数据处理

万维网、自然语言处理和语音、人机交互、软件工程

 

计算机科学和软件工程的不同侧重点

计算机科学

软件工程

发现和研究长期的客观的真理

短期的实际结果(具体的软件会过时)

理想化的 

对各种因素的折衷

确定性,完美,通用性

对不确定性和风险的管理,足够好,具体的应用

各个学科独立深入研究,做出成果

关注和应用各个相关的学科的知识,解决问题

理论的统一

百花齐放的实践方法

强调原创性 

最好的、成熟的实践方法

形式化,追求简明的公式

在实践中建立起来的灵感和直觉

正确性

可靠性

 

 

 

1.2.3软件工程的知识领域

 

生命周期:软件需求,软件设计,软件构建,软件测试,软件维护

 

专门领域:软件配置管理,软件工程管理,软件工程过程,软件工程模型和方法,软件质量

 

理论基础:计算基础,数学基础,工程基础

 

1.2.4软件工程的目标——创造“足够好”的软件

 

用户满意度:用户在使用时发现了软件的很多问题,影响了用户使用软件的效率。

 

可靠性:某个软件经常会崩溃,某个操作系统会时不时死机,某个网站往往在最需要的时候登不上去。

 

软件流程的质量:软件团队和开发流程的问题太多,导致团队成员无法互相协作,按时交付软件。这也可以说是软件团队的Bug。

 

可维护性:某个软件太难维护了,按下葫芦起了瓢,修复了一个问题,另一个问题又出来了。也没有足够的文档,维护人员需要更多的资金和时间来维护这个软件,甚至建议推倒重写。

*******************************************************************************************************************************************************************************************************************************

*******************************************************************************************************************************************************************************************************************************

P18-2

不懂的问题

1、 书中第82页 两人合作问题 固然两个人组成一个小团体可以发表自己的想法意见,把两个人所期望的进行交流,好的方面,两个人想法一致 可以共同进行项目实现,但是不好的方面,每个人都有各自不同的期望值 想法可能也背道而驰,那么就会面临团体解体危机,从而浪费更多精力和时间,所以在实现项目开发过程中是自己独立完成自己想要得到的项目成果还是应该找人合作,如果找人合作进行项目开发怎样能减少磨合时期,怎样能避免解体危机,共同完成双方都满意的项目?

2、书中第118页 敏捷的问题 领导说要采用敏捷的开发流程,就是没有计划、没有文档,马上写代码,随时发牢骚,这种方式真的会像书上所说有诸多有利影响吗?我认为撇开工作人员实作技术不谈,要找到清楚项目开发流程、知道每位项目成员的工作内容、职责范围、并清楚项目目标、项目需要的开发人员并不是很容易,那么如果上述条件无法达成,又怎么确定运用敏捷开发方式后,所有项目方向都是正确的,如果出现错误,岂不是浪费时间精力?

3、书中第234页 开发阶段的日常管理 是闭门造车的好 还是 自由交流的好。我认为在项目开发中如果封闭开发 一个人的思想未免有些单一,有些项目需求可能做不到全免分析, 但是如果自由交流 团员们可能会有各种随机任务,自我时间管理可能会受到影响,影响项目进程,所以在项目开发过程中是封闭开发的好还是通过相互交流开发的好?

4、 书中第261页说 大部分软件工程师主要关心的是软件效率,但这只是用户体验设计很小的一部分 那么如果将来我们从事软件开发方面的工作,作为软件工程师 应该以代码的软件效率和软件可读性为主还是以注重用户的体验为主呢?

5、书中第309页 测试的角色要独立出来吗?我看书中第二章说单元测试必须由最熟悉代码的人(程序的作者来写),因为代码的作者最了解代码的目的、特点和实现的局限性 但是书中309页说软件团队中应该有独立测试角色,如果真的单独分出一个独立测试角色,由不太熟悉此项目的工作人员进行独立测试会不会增加测试难度?

 

 

*******************************************************************************************************************************************************************************************************************************

*******************************************************************************************************************************************************************************************************************************

P18-3

我手机中的软件分类:

学习软件:扇贝英语背单词、文都直播、有道翻译官、百度网盘、番茄ToDo

运动软件:keep、运动世界校园

社交软件:QQ、微信、微博、知乎

影音软件:芒果tv、优酷视频、爱奇艺、腾讯、网易云音乐

购物软件:淘宝、京东商城

 

1、百度网盘:

下载原因:高三放假,想要看某部电视剧(vip可提前看)同学推荐百度网盘app 可免费找资源转存到百度网盘,进行观看。

是否是盈利性软件:是,有的大文件普通用户没有足够空间来存储 ,需充值超级会员,才能够获取足够空间存储大文件。

对百度网盘的评价:起初下载百度网盘只是因为想要看电视剧,但这并不是我成为百度网盘忠实用户的主要原因 主要原因是 上大学之后,更重要的是学生要有自主学习能力,而百度网盘可以成为这样一个媒介,学生可以通过各种渠道获得学习资源(例如高数课程、英语四六级课程),找到自己喜欢的老师,进行听讲,从而提升自己公共课或专业课等的能力,所以我认为百度网盘是一个很好的学习软件和视频播放软件。

 

2、番茄ToDo

下载原因:同学推荐 手机娱乐性app太多 学习自制力不强 番茄ToDo可以辅助学生增强“学习自制力” ,学霸模式可以严格管理玩手机情况还可以设置白名单(学习过程中可能需要用的app),白名单并不会被阻止运行,大大提升学习效率。

是否是盈利性软件:是,购买季度卡可以无限次添加“习惯事项“,而普通用户只能使用两次等vip和普通用户的权限问题。

对番茄ToDo的评价:可以添加自己的代办集,以及了解自己学习的统计数据,记录自己的专注天数 培养学习习惯 所以我认为番茄ToDo是一个可以帮助学生更有效率学习的一款app,暂时我认为唯一不足的是:苹果ios系统没有权限设置白名单,如果在开启学霸学习过程中想要查找些资料番茄ToDo可能认为你没有专注学习,从而阻止你打开想要用来查资料的某软件。

 

 

 

 

 

《现代软件工程—构建之法》第一章整理

标签:科学技术   组成   学习习惯   腾讯   体系   密码学   学习   芒果   交互   

原文地址:https://www.cnblogs.com/lzcl/p/11488477.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!