实验一:软件工程准备
项目 | 内容 |
---|---|
班级课程博客链接 | 20级卓越班 |
此次作业链接 | 实验一软件工程准备 |
我的课程学习目标 | (1)学习博客园软件开发者学习社区使用技巧和经验。 (2)了解Github的基本操作。 |
本次作业在哪些方面帮我实现学习目标 | (1)了解与掌握了博客园的基本使用 (2)熟练了Github的基本操作 (3)阅读了现代软件工程构建之法,为软件工程的学习做准备 |
任务1:填写调查问卷
- 填写并提交了调查问卷
任务2:在博客园平台注册个人博客账号和加入班级博客
任务3:注册Github账号
- 已注册Github账号
- 开源和Github的相关概念:
- 开源项目托管平台:用于免费存放开源项目源代码的网站
- Github是全球最大的开源项目托管平台,因为只支持 Git 作为唯一的版本控制工具,故名 GitHub。
任务4:点击链接填写博客园账号与github账号的链接
- 已填写账号
任务5:构建之法与博客首秀
1.软件工程是什么? |
- 相关概念:
- 把系统的,有序的,可量化的方法应用到软件的开发,运营和维护上的过程。
- 软件工程包括下列领域:软件需求分析,软件设计,软件构建,软件测试和软件维护。
- 软件工程和下列学科相关:计算机科学,计算机工程,管理学,数学,项目管理学,质量管理学,软件人体工学,系统工程,工业设计和用户体验设计。
- 软件开发流程:人们在开发,运营,维护软件过程中有很多技术,做法,习惯和思想体系。软件工程把这些相关的技术和过程同一到一个体系中,叫“软件开发流程”。软件开发流程的目的是为了提高软件开发,运营,维护的效率,并提高软件的质量,用户满意度,可靠性和软件可维护性。
2.什么是软件及软件的特殊性? |
- 软件:
- 软件可以是运行在计算机及电子设备中的指令和数据的有序集合。软件有各种分类方法,以下是其中一中:
系统软件:操作系统,设备驱动程序,工具软件等
应用软件:用户使用它们来完成工作
恶意软件:软件病毒等
- 软件可以是运行在计算机及电子设备中的指令和数据的有序集合。软件有各种分类方法,以下是其中一中:
- 软件的特殊性:
- 复杂性(Complexity):软件可以说是人类创造的最复杂的系统类型,软件的各个模块之间有各种显性或隐性的依赖关系,随着系统的成长和模块的增多,这些关系的数量往往以几何级数的速度增长.
- 不可见性(Invisibility):工程师是“看”不到自己的源代码如何具体地在用户的机器上被执行的
- 易变性(Changeability):人们自然地期待软件能在下面两种情况下“改变”: a) 让软件做新的事情;b) 让软件适应新的硬件
- 服从性(Conformity):软件不能独立存在,它总是要运行在硬件上面,它要服从系统中其他组成部分的要求,它还要服从用户的要求、行业系统的要求
- 非连续性(Conformity):输入上很小的变化,会引起输出上极大的变化
3.软件工程的目标是什么? |
- 软件的Bug多少可以直接衡量一个软件的开发效率、用户满意度、可靠性和可维护性。例如:
- 用户满意度:用户使用时发现了很多Bug,影响了用户使用软件的效率
- 可靠性:某个软件经常会崩溃,某个操作系统会时不时死机
- 软件流程的质量:软件团队和开发流程的问题太多,导致团队成员无法互相协作,按时交付软件。
- 可维护性:某个软件很难维护,修复了一个问题,另一个问题又出来了。也没有足够的文档,需要更多的资金和时间来维护这个软件
- 什么是Bug呢?
- 简单来说,软件的行为和用户的期望值不一样,就叫Bug。
- 目标具体是付出什么?
- 付出较低开发成本,达到要求的功能,取得较好的性能;开发的软件易于移植,只需较低的维护费用,能按时完成开发任务,及时交付使用;开发的软件可靠性高等。