软件工程第一次作业
一
第一章 概论
1.1
软件=程序+软件工程
程序=数据结构+算法
软件企业=软件+商业模式
一个复杂的软件不但要有合理的软件架构,软件设计与实现,还要有各种文件和数据来描述各个程序之间的依赖关系,编译参数,链接参数等等,这些都是软件构建的过程。
我们用一系列的工具来保障程序的正确性,保证开发出来的软件质量,这叫做质量保障。
软件开发的基本阶段:1玩具阶段
2 业余爱好阶段
3探索阶段
4成熟的产业阶段
1.2软件工程是什么
软件工程是把系统的有序的可量化的方法应用到软件的开发,运营和维护的过程上。
软件工程包括下列领域:软件需求分析,软件设计,软件构建,软件测试和软件维护。
(1)软件工程的难题: 1复杂性:软件可以说是人类创造的最复杂系统类型
2不可见性:软件工程师能直接看见源代码,但是源代码不是软件本身
3易变性:软件看上去很容易修改
4服从性:软件不能独立存在,它总要运行在硬件上面
5非连续性:输出很小的变化会引起输出上很大的变化
(2)软件工程与计算机科学的关系
计算机科学 | 软件工程 |
发现和研究长期的,客观的真理 | 短期的实际结果(具体的软件会过时) |
理想化的 | 对各种因素的折衷 |
确定的,完美,通用性 | 对不确定性和风险的管理,足够好,具体的应用 |
各个学科独立深入研究,做出成果 | 关注和应用各个相关学科的知识,解决问题 |
理论的统一 | 百花齐放的实践方法 |
形式化,追求简明的公式 | 在实践中建立起来的灵感和直觉 |
正确性 | 可靠性 |
强调原创性 | 最好的成熟的实践方法 |
(3)软件工程的知识领域
生命周期 | 软件需求,软件设计,软件构建,软件测试,软件维护 |
专门领域 |
软件配置管理,软件工程管理,软件工程过程, 软件工程模型和方法,软件质量 |
理论基础 | 计算基础,数学基础,工程基础 |
(4)软件工程的目标
创造足够好的软件包括要做到:用户满意度
可靠性
软件流程质量
可维护性
二 P18.2
1.当用户需求与软件功能发生了冲突怎么去解决?
2.当两人合作时,怎么才能够保证构建软件的高效性,如何去合理的分配两人的任务?
3.怎么才能作为一个好的工程师,在团队中找到自己的定位,发挥自己的最大用处?
4.作为一个工程师,是加强自己的个人能力重要还是与团队不停地磨合,配合团队工作重要?
5.如何能够高效的找出BUG并且修改BUG,如何提高修改BUG的效率?
三 软件分类
购物软件:淘宝,京东,毒
游戏软件:王者荣耀,弹弹岛
视频软件:腾讯视频,爱奇艺视频,抖音,斗鱼视频
学习软件:百度网盘,网易有道词典,WPS