软工课程笔记(一):初识软件工程

课程链接:学堂在线:软件工程 - 清华大学 - 学堂在线 

软件工程的基本标准:以经济有效的方法开发高质量(”足够好“)的软件。


一、软件的定义及本质特征

1.1定义

        软件是软件工程的研究对象,也是软件工程的产品形态与客观存在。

        软件 = 程序+数据+文档,对于用户是一系列实现各种功能的图形化界面,对于计算机内部由各种代码实现不同功能,需要操作各种数据,为了后续维护和开发以及方便用户使用,需要描述技术、实现细节的开发文档,和系统使用的用户文档。

1.2软件的本质特征(造成软件开发困难的基本原因)

  • 可变性:具有随需而变的特性。
  • 一致性:依附于运行环境,面向用户适应技术和系统,接口可变性。
  • 复杂性:繁琐,消耗资源较多,给开发管理和质量保证带来很多困难。
  • 不可见性:软件不具有空间的形体特征、源代码并不是软件本身、软件运行时无法保证代码执行透明。

二、软件工程的发展历程及目前面临的主要挑战

2.1 发展历程

  • 史前时代(56~67):软件开发没有系统方法,设计是在人脑中完成。
  • 瀑布过程模型(68~82):提出概念和结构化开发方法。
  • 质量标准体系(83~95):面向对象,软件过程和标准体系改进。
  • 互联网(至今):团队协作、迭代和增量开发、快速交付高质量软件。

2.2 开发面临的挑战

  • 客户不满意:功能冗杂、交付日期拖沓、使用Bug较多。
  • 项目过程失控:紧跟客户需求吃力、无法预见软件交付质量、盲从流程,忽视客户业务价值。
  • 风险与成本能力:开发团队专注技术,忽视风险、无能预测成本导致超出预算
  • 无力管理团队:无法评估开发人员能力及工作进度、困扰与提高团队能力和效率。

三、 软件工程的基本概念及组成要素

3.1 基本概念

        软件工程是一种专业化软件开发的方法,是将系统性的、规范化的、可定量的方法应用于软件的开发、运行和维护,即工程化应用到软件上。并且对该方法进行研究。

3.2 软件工程的基本要素

  • 过程:支持软件开发各个环节的控制和管理(问题定义->需求开发->软件设计->软件构造->软件测试)

  • 方法:完成软件开发任务的技术手段(面向过程->面向对象->构建->服务)

  • 工具:为软件开发方法提供自动或半自动的软件支撑环境(需求开发->软件设计->软件构造->软件测试->软件维护->开发管理)

四、开发基本策略

        软件复用->分而治之->逐步演进->优化折中


小结

        本节内容介绍了软件和软件工程的各个特征和概念。整体感觉上软工这门学科是非常重实践的,而且从课程里1.6节CEO讲话里可以看出,一个优秀的软工团队需要较强的团队协作能力,项目结构化和可量化的能力,这点对于后续组队完成团队项目应该较为重要。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值