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

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

时间: 2024-10-08 18:13:41

构建之法现代软件工程第一章的相关文章

构建之法学习(第一章 概论)

初读邹欣老师的<构建之法>,却发现并没有像其它大多数软件工程教材一样偏重理论知识,而是大量引用实例,将实践与理论相结合,一改原本的空洞.乏味,反而更多的是趣味性. 通过对于第一章的自我学习,总结了一些知识点: 1.软件=程序+软件工程 程序=数据结构+算法    程序,就是指的源程序,是可执行代码.软件构建,构建成机器能懂的可执行代码,要有合理的软件架构,软件设计与实现,还要有各种文件和数据来描述各个程序文件之间的依赖关系,编译参数,链接参数等等. 软件工程是把系统的.有序的.可量化的方法应用

构建之法 完成教材第一章P18第4题

Games.Moblie Apps.OS (1)这些软件开发者是怎么说服你(陌生人)成为他们的用户的?他们的目标都是盈利么?他们的目标都是赚取用户现金么么?还是别的? 与其说开发者说服我们成为他的用户,不如说是这些软件吸引着我们.当然他们的目标大多是赚钱盈利,但很少是赚取用户现金.就拿Games来说,好的游戏的产生是可以带动一个行业,电子竞技,开发者有的根本不用说服我们,大家都会争相进入这个行业或者单纯玩玩游戏同朋友们一起. (2)这些软件是如何到你手里的(邮购,下载,互相拷贝)?当你上几年级?

《构建之法》的第一、二章学习

<构建之法>的第一章,这一章介绍了软件工程与计算机科学的关系.软件的特性,还向我们详细介绍了软件工程的定义与组成部分. 在第一节当中,本书为我们介绍了软件的生命周期,包括构建管理.源代码管理.软件设计和测试.项目管理等等.在这一节当中,我们要记住三个推论:程序=数据结构+算法.软件=程序+软件工程.软件企业=软件+商业模式.第二节围绕"软件是什么"展开话题,为我们讲解了软件的特殊性.软件工程与计算机科学的关系.软件工程的知识领域和目标. 在第二章当中,<构建之法>

浅谈对《构建之法——现代软件工程》第一章的理解

---恢复内容开始--- 一.精读第一章后对专业术语的整理 <构建之法——现代软件工程>一书第一章向我们主要介绍了计算机科学的领域.软件工程与计算机科学的关系.软件的特性以及软件工程的定义与组成部分. 1.通过对第一章的学习,我们了解到了软件的 几种分类: 系统软件:操作系统.设备驱动程序.工具软件等 应用软件:办公软件.通信软件.游戏视频软件等 恶意软件:软件病毒等 以及软件的几种特殊性:1.负责性:2.不可见性:3.易变性:4.服从性:5.非连续性: 2.软件工程与计算机科学的关系 首先,

《构建之法》第四章读后感--软件工程

<构建之法>第四章读后感--两人合作 1.代码风格很重要,因为良好的代码风格,有益于两人的合作甚至多人的合作. 个人认为 : 良好的代码风格的培养就是 多去阅读别人的优秀代码 ,用于提高并且培养自己的代码风格. 2.关于结对编程的重要性 2.1 结对编程能提高设计质量与代码质量 2.2 结对有益于学习交流 3.如何结对编程 3.1 主动参与讨论,提出设计方案或者问题的解决方案 4.代码的复审 复审可以提高代码质量,优化项目性能.

读《构建之法-现代软件工程》前三张后感

刚开学的第一天,学校发下了书本,有六本书,当时会在上这门课的头一天晚上去看看书本的内容,去大概了解这门课程.其中有一门课程的书吸引了我,感觉这本书和其他的教科书有所不同,它不像其他书一样那么的死板,除了公式,就是理论,没什么奇特的地方.而这本书却很奇特,它不但吸引了我,还让我觉得很有趣,这本书是邹欣老师写的一本书,一本胜似小说的书,平时爱看小说的我,就开始喜欢上了这本书,这本有关软件工程的小说书. 到现在,老师也上了好几次课,我们也对软件工程有了一些初步的了解,而软件工程这本书,我也大概的看完了

《构建之法》第三章学习心得

这周我学习了<构建之法>第三章,讲述了软件工程师的成长.软件系统的绝大部分模块都是由个人开发或维护的.在软件工程的术语中,这些单个的成员叫做Individ-ual Contributor(IC).IC在团队中的流程是怎么样的呢?以开发人员为例,流程如下. 1.通过交流.实验.快速原型等方法,理解问题.需求或任务 2.提出多种解决办法并估计工作量 3.其中包括寻找以前的解决方案,因为很多工作是重复性的 与相关角色交流解决问题的提案,决定一个可行的方案 执行,把想法变成实际中能工作的代码,同时验证

构建之法现代软件工程(第五次)

构建之法现代软件工程(第五次) 这周我阅读了<构建之法>第六第七章 敏捷开发的原则: (1)尽早并持续地交付有价值的软件以满足顾客的需求: (2)敏捷流程欢迎需求的变化,并利用这种变化来提高用户的竞争优势: (3)经常发布可用的软件,发布间隔可以从几周到几个月,能短则短: (4)业务人员和开发人员在项目开发过程中应该每天共同工作: (5)以有进取心的人为项目核心,充分支持信任他们: (6)无论团队内外,面对面的交流始终是最有效的沟通方式: (7)可用的软件是衡量项目进展的主要指标: (8)敏捷

20179215 《构建之法》第三章

<构建之法>第三章 读书笔记 ?本章为软件工程师的成长,主要介绍了评价软件工程师水平的主要方法,技能的反面,TSP对个人的要求. 一.个人能力的衡量与发展 ?软件开发流程:软件开发流程包括团队的流程,也包括个人的流程 ?软件系统的绝大部分模块都是由个人开发或维护的.在软件工程的术语中,我们把这些单个的成员叫做Individ-ual Contributor(IC).IC在团队中的流程如下. 通过交流.实验.快速原型等方法,理解问题.需求或任务 提出多种解决办法并估计工作量 其中包括寻找以前的解决