构建之法现代软件工程第一章

1.1 软件=程序+软件工程

程序=数据结构+算法

软件工程的目标是开发出足够好的软件,而非完美的软件。

基础知识领域:计算机基础、数学基础、工程基础。

程序:指的是源程序,就是一行行的代码。它们是建立在数据结构上的一些算法。程序还要对数据进行操作这些数据有些是静态的,有些是动态的。

软件构建:一个复杂的软件不但要有合理的软件架构、软件设计与实现,还要有各种文件和数据来描述各个程序文件之间的依赖关系、编译参数、链接参数、这些都是软件构建的过程

配置管理:有些程序要配置不同的界面,运行在中文、英文或其他语言的操作系统上;有些程序还有32位版本、64位版本等。

质量保障:有一系列的工具、流程和文档来保证程序的正确性,这些工具(也是软件)、流程应该达到很高的质量,才能保证开发出来的软件的质量。

需求分析:把合适的需求梳理出来,然后逐步展开后续工作,如设计(软件架构)、实现(写数据结构和算法)、测试,到最后发布软件。

程序理解:软件团队的人员也会流动,新的成员要尽快读懂已有的程序,了解程序的设计,这叫程序理解

软件维护:软件在运行过程中还会出这样那样的问题,也许我们要时不时给软件打一个补丁,或者维护众多的服务,团队的新老成员要-起修复 各种各样的问题,这叫软件维护

用户体验:一个好的软件,即使功能和同类软件区别不大,但却会让人感觉到非常好用。这就是软件的用户体验

国际化和本地化:软件还要处理不同语言、不同地区的用户对界面和功能的不同需求,这叫做软件的国际化和本地化

软件开发的不同阶段: 1.玩具阶段 2.业余爱好阶段 3.探索阶段 4成熟的产品阶段

1.2 软件工程是什么

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

1.2.1软件的特殊性

1.复杂性   2.不可见性   3.易变性   4.服从性   5非连续性

软件还有其他特性:

·有许多不同的程序设计语言、软件工具和软件开发平台
·存在许多不同的软件开发流程
·软件团队中存在许多不同的角色
·软件既可以存储在磁带上,也可以存储在 CD/DVD上

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

计算机科学偏理论研究,是追求那种理想化、完美的真理,各个学科会独立深入研究并出成果;

软件工程偏向实践,和人的行为、社会的需求息息相关。因为要对不可抗的现实因素折衷,会融合各个领域的知识去实现实际的问题。

1.2.3 软件工程的知识领域

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

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

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

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

用户满意度:需要满足客户的需求,使用期间没有BUG,效率高。

可靠性:软件稳定,关键时刻靠得住。

软件流程的质量:团队要有一个分工明确的合作,按时交付软件。

可维护性:出了问题方便解决。

1.3  练习与讨论

2.

(1)效能分析工具VSTS怎么使用?

(2)极限编程是什么?

(3)调用关系树是什么?

(4)软件的开发流程是固定不变的吗?

(5)设计软件是团队人员之间如何有效的分工?

3.

社交软件       QQ、微信、微博

服务类软件   去哪儿旅行 、高德地图、淘宝、京东

娱乐软件       腾讯视频、抖音、王者荣耀、QQ音乐、bilibili、斗鱼

学习软件       百度翻译 、CSDN、超级课程表

(1)洞悉用户的需求  目标是盈利   赚取现金提供服务

(2)应用商店   大一   提供了便利的服务

(3)通过版本的更新  在应用商店升级

(4)提供优惠活动 

原文地址:https://www.cnblogs.com/changheng/p/11483074.html