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

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

时间: 2025-01-08 12:33:53

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

阅读构建之法第一章有感

今天阅读了构建之法第一章,感觉到自己其实玩具的阶段都不到,离研究阶段更是差的有段距离.了解到程序其实只是一个藏在你电脑里的数据结构加算法,要想成为软件还得经历软件工程这一阶段,软件工程便是把系统的.有序的,可量化的方法应用到软件开发,运营和维护上的过程中.首先我要进行软件需求分析,一个成功的软件是要有市场需求作为背景的,没有需求你做的软件就是无用的东西,有了需求然后我们对软件进行设计使之安全 可行 基本满足市场的需求.然后我们便对我们的软件进行测试.最后软件在用户手中运行,但是十全十美的软件是不

构建之法第一章

本章为概论,主要讲解计算机科学的领域.软件工程和计算机科学的关系.软件的特性.软件工程的定义与组成部分等内容. 一.软件: 程序=数据结构+算法 软件=程序+软件工程 软件工程的核心部分: 1.构建管理 2.源代码管理 3.软件设计 4.软件测试 5.项目管理 软件开发有玩具阶段.业余爱好阶段.探索阶段.成熟的产业阶段等四个阶段. 二.软件工程: 软件具有复杂性.不可见性.易变性.服从性.非连续性等. 计算机科学与软件工程的区别(侧重点) 计算机科学: 1.发现和研究长期的.客观的真理 2.理想

构建之法第一章读后感

首先,文章对于程序.用户需求.工程等等概念用了阿超给儿子编写的一个出题程序来分别解释了个中的含义,尤其是程序和工程的区别,程序大概就是用很多语言或工具编写的一个简单能实现目标要求的一行行代码,而工程就是在这个程序的基础上不断满足用户的需求.修复程序的bug.提供后续维护等服务. 需求分析:梳理需求,逐步展开后续工作,如设计(软件架构).实现(写数据结构和算法),测试,发布软件 软件=程序+软件工程(软件企业=软件+商业模式) 软将工程的核心部分:构建管理.源代码管理.软件设计.软件测试.项目管理

构建之法 第一章 概论

软件与程序的区别,恐怕就是实用性与理想性的区别.软件=程序+软件工程:程序=数据结构+算法.我们现在学的,只是后者的构成,而从理想迈向实用的最关键的一步,就是软件工程. 1.概念 1)软件构建:除了代码和静态数据,还有各种文件和数据来描述各个程序文件之间的依赖关系等: 2)源代码管理/配置管理:保证代码的平台兼容性.配置兼容性等: 3)质量保障(软件测试):保证软件的质量在修改过程中可以不断提高,或者至少可以保持: 4)项目管理:软件维护和服务运营 5)生命周期:以上称为软件的生命周期SLC 2

读构建之法 第一章:概论

软件=程序+软件工程 软件企业=软件+商业模式 工程师的宗旨是:我构建,故我在 程序在这里指的是源程序,就是一行行的代码,它们是建立在数据结构上的一些算法.程序对数据进行操作,工程师把它们构建为机器能懂的可执行代码.构建不仅仅是cc和link命令,一个复杂的软件不但要有合理的软件架构.软件设计与实现,还要有各种文件和数据来描述各个程序文件之间的依赖关系.编译参数.链接参数,等等.这些都是软件构建的过程.      软件工程:和软件开发活动(构建管理.源代码管理.软件设计.软件测试.项目管理)相关

构建之法第一章总结

软件工程是把系统的,有序的,可量化的方法应用到软件的开发,运营和维护上.软件工程包括:软件需求分析,软件构建,软件设计,软件测试和软件维护. 首先,从软件二字理解,软件是可以运行在计算机上及电子设备中的指令和数据的有序集合.软件以下特性:复杂性,不可见性,易变性,服从性,非连续性.这些特性让软件开发变得有点困难,软件可以说是人类创造的最复杂的系统类型.其次,工程通常是指创造性地运用科学原理,设计和实现建筑,机器,安装或生产过程,或者是在实践中使用一个或多个上述实体,或者是实现这些实体的过程.根据

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

任务1.计算机专业术语    1.1 软件+程序+软件工程       “程序=数据结构+算法” 程序是指源程序,是一行行代码,它是建立在数据结构的一些算法上面的. “软件=程序+软件工程” 一个复杂的软件不但要有合理的软件架构 (Software Architecture).软件设计与实现(Software Design,Implementation and Debug),还要有各种文件和数据来描述各个程序之间的依赖关系.编译参数等,这     也就软件构建的过程. 源代码管理(Source

现代软件工程—构建之法》第一章 中出现的计算机专业术语

现代软件工程-构建之法>第一章 中出现的计算机专业术语 1.软件 2.程序 3.软件工程 4.二叉树 5.遍历算法 6.数据结构 7.算法 8.应用软件 9.软件服务 10.源程序 11.软件架构 12.软件设计与实现 13.依赖关系 14.编译参数 15.链接参数 16.构建 17.源代码管理 18.配置管理 19.质量保证 20.软件测试 21.需求分析 22.程序理解 23.软件维护 24.服务运营 25.软件的生命周期 26.软件项目的管理 27.用户体验 28.国际化和本地化 29.A

构建之法第一、二、十六章

<构建之法>第一.二.十六章疑问 我通过阅读发现这是一本十分有趣的书.不同于别的书的晦涩难懂,<构建之法>利用浅显易懂的语言,贴近生活的例子向我们讲述了软件工程的内容. 第一章  概论 软件=程序+软件工程 扩展:软件企业=软件+商业模式 软件工程是把系统的.有序的.可量化的方法应用到软件的开发.运营.和维护上的过程.软件的特殊性有a.复杂性 b.不可见性 c.易变性 d.服从性 e.非连续性.软件工程与计算机科学的区别:计算机科学中与实践相关的部分,都和数据以及其他学科发生关系:

《现代软件工程构建之法》读后感

通过本学期学习的<现代软件工程构建之法>,让我们对于软件工程有了深刻的了解.基于上学期学习的<软件工程>,延伸了我们的知识.配合本学期<软件的测试>让我们懂得了本书的重要性. 本书共分十七章,结合本学期学习的<软件测试>我们对于本书主要从测试入手.本书有关于单元测试的简要介绍,有关于个人开发的流程,两人合作的代码规范和审查,团队的模式和开发流程,还有软件的分析和设计方法,软件各种的测试方法,运用的测试工具等.就我目前只能了解这些,当然还有跟多,还要我们细细体