软件工程第一次作业

计算机专业术语:

1.1软件=程序+软件工程

  1. 程序=数据结构+算法
  2. 软件企业=软件+商业模式
  3.    
                         
  4. 源程序:一行行的代码,是建立在数据结构上的一些算法。
  5. 软件工程第一次作业_第1张图片

     

     

  6. 软件构建过程=代码+静态数据+软件架构+软件设计与实现+描述各软件之间依赖关系、编译参数、连接参数的文件和数据。
  7. 源代码管理(配置管理):保证软件在源代码修改过程中质量提高,为某种需求写特殊代码,根据程序要求配置不同的界面和版本。
  8. 质量保障:用一系列高质量的工具保证、流程和文档来保证程序的正确性,才能保证开发出来的软件的质量。具体验证过程—软件测试。
  9. 需求分析——设计(软件构架)——实现(写数据结构和算法)——测试——发布软件
  10. 程序理解:软件团队的新成员需要尽快读懂已有程序,了解程序的设计。
  11. 软件维护(服务运营):团队的新老成员要一起修复软件运行过程中出现各种问题。
  12. 软件的生命周期:程序理解+软件维护;这一周期中,有人得负责——软件项目的管理。
  13. 用户体验:与数据结构、算法没有直接关系,让人觉得是否好用。
  14. 软件的国际化和本地化:处理不同语言、不同地区的用户对界面和功能的不同需求。
  15. 软件工程概念:1968年首次提出。
  16. 软件开发阶段:玩具阶段——业余爱好阶段——探索阶段——成熟的产业阶段

1.2软件工程是什么

  1. 软件工程:把系统的、有序的、可量化的方法应用到软件的开发、运营和维护上的过程。
  2. 软件工程包括:软件需求分析、软件设计、软件构建、软件测试和软件维护。
  3. 软件工程相关学科:计算机科学、计算机工程、管理学、数学、项目管理学、质量管理学、软件人体工学、系统工程、工业设计和用户体验设计。
  4. 软件开发流程:开发、运营、维护软件的过程中的技术、做法、习惯和思想体系;目的——为提高软件开发、运营、维护的效率,并提高软件的质量、用户满意度、可靠性和软件的可维护性。

1.2.1软件的特殊性

  1. 软件:可以运行在计算机内及电子设备中的指令和数据的有序集合。
  2. 软件开发的本质特性:复杂性,不可见性,易变性,服从性,非连续性。
  3. 没有银弹(No  Silver  Bullet)——非本质的、临时的特性不能决定软件工程的本质问题。

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

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

计算机科学

软件工程

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

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

理想化的

对各种因素的折衷

确定性、完美、通用性

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

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

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

理论的统一

百花齐放的实践方法

强调原创性

最好的、成熟的实践方法

形式化,追求简明的公式

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

正确性

可靠性

1.2.3软件工程的知识领域

  1. 软件工程的三大类基础知识:计算基础,数学基础和工程基础。
  2. 软件工程的知识领域和理论基础

生命周期

软件需求,软件设计,软件构建,软件测试,软件维护

专门领域

软件配置管理,软件工程管理,软件工程过程,软件工程模型和方法,软件质量

理论基础

计算基础,数学基础,工程基础

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

  1. Bug:软件的行为和用户的期望值不一样
  2. 用户满意度:使用中发现软件的问题,影响用户使用软件的效率
  3. 可靠性:软件是否经常崩溃,操作系统会不会经常死机。
  4. 软件流程的质量:软件团队和开发流程是否有太多问题,导致团队成员无法互相协作,按时交付软件。
  5. 可维护性:是否问题太多,太难维护。

 

P18-2:

  •      我看了第二章2.4节“设计有实际意义的软件工程作业”,作者和老师认为学生常写的“图书管理系统”是不具有实际意义的软件中的翘楚。但我还是不懂,我的困惑是:在我有限的软件相关知识中,“图书管理系统”,已经符合一部分的实际需求,可以实际运行了,并且在此基础上进行一些功能的增加,就可以满足日常需求了,为什么还被认为是没有实际意义呢?
  •       我看了第三章的3.5“练习与讨论”中的第一题“选哪种医生”。书上已经给出答案-很多软件项目是用a(边看书,边手术),b(创新意识,想出新技术,马上实验)这样的方式搞出来的,也有一些人走d(无文凭和认证,号称有秘方)这条路。但我不明白c(很熟练,一边开刀,一边聊天)这条路,在我的认知里,虽然创新很重要,但也应该先将基础打牢,不然很难进行下一步,但是a这条路,不就显得基础较薄弱了吗?并且,真的有像c中所说的,万能的程序代码吗?
  •      我看了第十章10.3.2“功能说明书的模板”,其中有一句话“盲目地套用最全面的模板,对项目有很大的副作用”。一般来说,模板会涉及到项目的所有内容,这样来看,最全面的模板应该和项目无限贴近才对,为什么会说是有副作用?
  •      我看了第十四章的14.1.2“软件工程的质量”中,软件项目的可见性很差,在项目完成之前,项目无法演示,那如何确定项目中是否存在bug,难道要等到项目完成后统一寻找bug吗?那不会很麻烦吗?
  •      我看了第十五章的15.1.7中的“招数:修复bug的门槛逐渐提高”中,bug修复门槛越来越高,先修复影响巨大的bug,其他优先级较低的先放在一边,这样的话,由于目前bug不会影响其他,但是在项目的后续编写中不会有影响吗?甚至不是会影响到用户体验度吗?

 

P18-3:

手机软件分类

社交通讯

QQ、微信

音频播放

腾讯视频、优酷视频、酷狗音乐、哔哩哔哩

教育学习

流利说、词根词缀词典、星火英语、网易有道词典、豆果美食、慕课网

便捷生活

高德地图、美团、淘宝

 1.      网易有道词典

  • 在软件商店搜索英语学习相关软件时,软件排名较高,评论较好,所以选择下载;软件目标是为语言学习提供良好平台;他们的盈利一部分是向用户收取会员费用,另一部分也是提供付费网课,由用户自行选择,还有一部分是广告费用。
  • 在软件商店下载有道词典,是在高二的时候,对这个软件的使用感觉一直不错。
  • 由用户向软件方提供反馈,软件在应用商店发布新版本。
  • 相较于同类型的其他软件,有道词典的语言学习范围更广。

2.       豆果美食

  • 网上查询美食相关软件,推荐率较高,所以选择下载;软件目标是为美食学习提供良好平台;他们的盈利一部分是广告费,另一部分是在美食商城选取食材的费用。
  • 在软件商店下载豆果美食,是在大三的时候,对这个软件的使用感觉很好,菜谱很多。
  • 由用户向软件方提供反馈,软件在应用商店发布新版本。
  • 相较于同类型的其他软件,在豆果美食学习菜谱,基本免费。

3.       哔哩哔哩

  • 朋友推荐,所以下载这个软件;软件目标是为二次元相关提供平台;软件盈利基本是广告费用,会员费用,商城费用,以及直播平台的费用。
  • 在软件商店下载哔哩哔哩,是初二的时候;二次元相关,以及一些学习视频都可以在软件里搜索到。
  • 由用户向软件方提供反馈,软件在应用商店发布新版本。
  • 相较于同类型的其他软件,在哔哩哔哩既可以学习,又可以娱乐,并且观看视频没有广告。

 

你可能感兴趣的:(软件工程第一次作业)