软件工程第一次作业
1软件=程序+软件工程
(1) 程序=数据结构+算法
(2) 软件工程实现可以采用的语言和工具:Excel,C/C++,C#,VB,Unix Shell,Emacs,Powershell/VBScript,JavaScript,Perl,Python.
(3) 源程序:一行行的代码,它是建立在数据结构上的算法。
(4) 专业术语:
软件架构(Software Architecture)、
软件设计与实现(Software Design,Implementation and Debug)、
源代码管理(Source Code Control)、
配置管理(Software Configuration Management)、
质量保障(Quality Assurance)、
软件测试(Test)、
需求分析(Requirement Analysis)、
程序理解(Program Comprehension)、
软件维护(Software Maintenance)、
服务运营(Service Operation)、
软件的生命周期(Software Life Cycle ,SLC)、
软件项目的管理(Project Management)、
用户体验(User Experience)、
国际化和本地化(Globalization&Localization)
(5) 软件构件的过程:构建不仅仅是cc和link命令,一个复杂的软件不但要有合理的软件构架、软件设计与实现、还要有各种文件和数据来描述各个程序之间的依赖关系、编译关系、链接关系等。
(6) 推论:软件=程序+软件工程
扩展推论:软件企业=软件+商业模式
(7) 软件开发的不同阶段
① 玩具阶段
② 业余爱好阶段
③ 探索阶段
④ 成熟的产业阶段
1.2软件工程是什么
① 软件工程是系统的、有序的、可量化的方法应用到软件的开发、运营和维护上的过程。
② 软件工程包括:软件需求分析、软件设计、软件构建、软件测试和软件维护。
③ 软件开发的流程目的:为了提高软件开发、运营、维护的效率,并提高软件的质量、用户满意度、可靠性和软件的可维护性。
2.软件的特殊性
1) 复杂性(Complexity)
2) 不可见性(Invisibility)
3) 异变性(Changeability)
4) 服从性(Conformity)
5) 非连续性(Discontinuity)
3.计算机科学和软件工程的不同侧重点
计算机科学 |
软件工程 |
发现和研究时间长、客观的真理 |
短期的实际结果 |
理想化的 |
对各种因素的折衷 |
确定性、完美性、通用性 |
对不确定性和风险的管理,足够好,具体的应用 |
各个科学独立深入研究、做出成果 |
关注和应用各个相关科学的知识,解决问题 |
理论的统一 |
百花齐放的实践方法 |
强调原创性 |
最好的、成熟的实践方法 |
形式化,追求简明的公式 |
在实践中建立起来的的灵感和直觉 |
正确性 |
可靠性 |
(1) 软件工程的知识领域;
生命周期—软件需求、软件设计、软将构建、软件测试、软件维护
专门领域—软件配置管理、软将工程管理、软件工程过程、软件工程模型和方法、软件质量
理论基础—计算基础、数字基础、工程基础
(2) 软件工程的目标:用户满意度,可靠性,软件流程的质量,可维护性
教材P18-2
问题
① 通过翻阅第一张就觉得很陌生,软件工程是什么,软件工程又跟工程有什么区别。
② MSF跟软件工程有什么区别
③ 软件工程的主要目的是为了实现什么
④ Spec跟软件工程之间是什么关系
⑤ PM的具体任务是什么,在软件工程中起到什么作用
教材P18-3
学习软件:知米背单词、百词斩、百度文库、运动世界校园
社交软件:QQ、微信、微博
网页软件:QQ浏览器
生活软件:美团、饿了吗
购物软件:淘宝、支付宝、唯品会、拼多多、微店、小红书
办公软件:QQ邮箱、智联招聘、WPS、58同城
视频软件:快手、抖音、腾讯视频、芒果TV、爱奇艺、优酷、网易云音乐
游戏软件:开心消消乐、和平精英
工具软件:计算器、手电筒、指南针、电话本、手机管家
出行软件:百度地图、滴滴出行
① 成为他们的客户:通过他们的推广知道的
② 他们的目标是为了盈利,很少一般分是为了推广他们的产品
③ 如何使用软件:大部分软件都是通过软件商城下载,少一部分是手机自带
④ 时间:高中的时候
⑤ 感觉:用了几年比较方便,也给我带来了乐趣。
⑥ 处理Bag和更新:都是通过软件商城更新
⑦ 同行一类软件之间竞争:是通过用户对他们的使用率,和推广的方式。