软件导论mooc第一章

软件导论mooc第一章:软件概述

1. 软件的定义

软件 = 程序 + 数据 + 文档
程序:计算机可以接受的一系列指令,运行时可以提供所要求的功能和性能。
数据:使得程序能够适当地操作信息的数据结构。
文档:描述程序的研制过程、方法和使用的图文资料

2.软件的特性

①复杂性  ②一致性(不能独立存在,要依附于一定的环境,遵从人为的惯例)
③可变性(不断的修改最终导致软件的退化,从而结束其生命周期)
④不可见性

3.软件工程的产生与发展

  • 3.1软件开发的困难
    ①客户不满意(需求不符合,交付时间,bug)
    ②风险与成本问题
    ③项目过程失控(需求变化频繁,无法预见软件质量,忽视业务价值)
    ④无力管理团队(无法评估开发人员能力及工作进度)

  • 3.2软件工程的诞生
    1968年北大西洋公约组织(NATO)召开国际会议,
    提出“软件工程”概念和术语。

  • 3.3软件工程的发展
    史前时代 (1956﹣1967 )——>瀑布过程模型(-1982)——>质量标准体系(1983﹣1995)

4.软件工程的概念

  • 4.1什么是软件过程
软件工程是 
① 将系统性的、规范化的、可定量的方法应用于软件的开发、运行和维护,
即工程化应用到软件上;
② 对①中所述方法的研究
  • 4.2软件过程的目标
    软件⼯程的目标 —— 创造“⾜够好”的软件

5.软件工程的基本要素

过程(支持软件开发各个环节的控制和管理)——>方法(完成软件开发任务的技术手段)——>工具(为软件开发方法提供自动的或半自动的软件支撑环境

  • 5.1软件开发过程
    软件导论mooc第一章_第1张图片

  • 5.2软件工程方法
    软件导论mooc第一章_第2张图片

6.软件工程开发策略

①软件复用               
②分而治之
③逐步演进*(软件开发是自底向上逐步有序的生长过程,不断进行迭代式增量开发)
					(ps---小步快跑:每走完一步再调整并为下一步确定方向,直到终点)
④优化折中(优化:优化软件的各个质量特性,如运行速度、资源利用、用户体验 
					折中:通过协调各个质量特性,实现**整体质量的最优**)

7.软件质量

软件质量包含①功能质量②结构质量③过程质量

结构质量:{
	代码可测试性
	代码可维护性
	代码可读性
	代码效率:高效管理资源
	代码安全:可预防常见威胁
}

过程质量:{
	软件按时交付
	软件满足预算
	可复用的开发过程,确保交付质量
}

软件导论mooc第一章_第3张图片

8.质量模型
可以了解一下iso9126质量模型

9.软件过程

过程的含义:过程是一组将输入转化为输出的相互关联或相互作用的活动。

过程方法是系统地识别和管理组织内所使用的过程,保证更有效地获得期望的结果。

10.软件过程模型

  • 10.1 瀑布模型
    将基本的开发活动看成是一系列界限分明的独立阶段,这是
    一种计划驱动的软件过程,有利于规范软件开发活动。
    (开发阶段严格按照线性方式进行,每一个阶段具有
    相关的里程碑和交付产品,且需要确认和验证。)

  • 10.2 原型化模型
    原型是一个部分开发的产品,用于加强对系统的理解,有助
    于明确需求和选择可行的设计策略。

  • 10.3 迭代式开发
    将描述、开发和验证等不同活动交织在一起,在开发过程中
    建立一系列版本,将系统一部分一部分地逐步交付

  • 10.4可转换模型
    利用自动化的手段,通过一系列转换将需求规格说明转化为
    一个可交付使用的系统。

软件导论mooc第一章_第4张图片

—————————————————————————————————
附录:mooc课后习题答案
1.软件工程方法是( )。
为了获得高质量软件而实施的一系列活动
为开发软件提供技术上的解决方法
为支持软件开发、维护、管理而研制的计算机程序系统
为了理解问题和确定需求而采取的一些技术和方法

2.下面的( )是正确的。
运行正确的软件就是高质量的软件。
软件质量是在开发过程中逐渐构建起来的。
软件产品质量越高越好,最理想的情况是达到“零缺陷”。
软件质量是由产品的功能、性能、易用性等外在特性决定的。

3.在Garvin多维度模型中,可靠性是指( )。
软件产品提供了让用户产生惊喜的特性
软件实现了用户需要的功能和性能
软件在规定时间和条件下无故障持续运行
软件符合国家或行业的相关标准

4.( )是软件从一个硬件或软件环境转换到另一环境的容易程度。
易用性
可维护性
可移植性
性能

5.下面的( )说法是正确的。
由于软件是产品,因此可以应用其他工程制品所用的技术进行生产
购买大多数计算机系统所需的硬件比软件更昂贵
大多数软件系统是不容易修改的,除非它们在设计时考虑了变化
一般来说,软件只有在其行为与开发者的目标一致的情况下才能成功

6.造成大型软件开发困难的根本原因在于( )。
开发人员缺乏足够的开发经验
对软件开发的资金投入不足
项目开发进度不合理
软件系统的复杂性

7.软件会逐渐退化而不会磨损,其原因在于( )。
软件通常暴露在恶劣的环境下
软件错误在经常使用之后会逐渐增加
不断的变更使组件接口之间引起错误
软件备件很难订购

8.“软件工程”术语是在( )被首次提出。
Fred Brooks的《没有银弹:软件工程中的根本和次要问题》
1968年NATO会议
IEEE的软件工程知识体系指南(SWEBOK)
美国卡内基·梅隆大学的软件工程研究所

9.Ariane 5火箭发射失败的事例告诉我们( )。
系统环境的变化可能影响软件采集数据的精度、范围和对系统的控制
软件后备系统可以通过复制生成
软件重用必须重新进行系统论证和系统测试
选项A和C
选项A、B和C

10.软件工程的基本目标是( )。
开发足够好的软件
消除软件固有的复杂性
努力发挥开发人员的创造性潜能
更好地维护正在使用的软件产品

你可能感兴趣的:(软件导论,软件开发,知识图谱)