软件工程学概述

右丶羽 右丶羽     2022-09-05     723

关键词:

(1) 什么是软件危机,具体表现,消除软件危机的途径(*)

软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题

答:“已完成”的软件不满足用户的需求;开发进度不能保障;软件开发成本和进度难以准确估算;软件产品的质量没有保证,软件常常是不可维护的。

  1.    开发成本和进度难以估算和控制,大大超过预期
  2. 用户对已完成的软件不满意,需求分析不够充分
  3. 软件产品的质量难保证
  4. 软件维护困难
  • 难以改正错误
  • 难以增加新功能
  1. 软件通常没有配套文档资料
  2. 软件成本占计算机系统总成本中比例逐年上升
  3. 软件开发生产率提升,落后于计算机普及速度。

产生软件危机原因

  一是软件的特点

  二是软件开发与维护的方法不当

 

 

消除软件危机的途径

  1. 消除错误的“软件就是程序”观

    正确的软件概念是: 软件=程序+文档+数据

  1. 强调团队协作:软件开发应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目,个人英雄主义没有作为
  2. 使用实践中总结出来的成功的技术
  3. 发展更好的软件工程工具。

 

(2) 软件工程概念,定义,三要素(方法、工具、过程)(*)

软件=程序+文档+数据

软件工程是采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理方法和先进软件开发技术结合起来,运用到软件开发和维护过程中,来解决软件危机。

   实际上 软件应该是程序、数据及相关文档的完整集合

       其中程序是能够完成预定功能和性能的可执行的指令序列;数据是使程序能够适当地处理信息的数据结构;文档是开发、使用和维护程序需要的图文资料。

  • 方法
    完成软件开发任务所遵循的技术原理(理论、思想),回答“怎样做”的问题;
  • 工具
    自动的或半自动的,践行方法的操作支撑环境(如CASE工具);
  • 过程
    为了获得高质量的软件,所需完成的一系列任务框架,它规定了完成各项任务的工作序列。

 

(3) 软件生命周期时期,阶段划分,(*)

指一个软件从提出开发要求开始到该软件报废为止的整个时期。

进一步可将软件的生命周期划分为可行性研究、需求分析、设计、编码、测试、集成、维护阶段。

  5阶段划分:需求定义;设计;编码;测试;维护

 

 

(1) 软件工程方法学的概念,内涵,要素,主要的范型

  • 传统方法学

ü  采用结构化技术(SA、SD、SP)

ü  对软件生命周期划分阶段,按顺序完成各阶段任务

ü  每个阶段开始和结束都有严格标准,相邻的两个阶段,前一阶段的结束标准即为后一阶段的开始标准

ü  每阶段结束前都需要进行正式而严格的技术审查和管理复审

 

 

ü  强调自顶而下顺序地完成软件开发各阶段的任务

——基于瀑布模型

 

  • 面向对象方法学

ü  把对象(Object)作为融合了数据及对数据的操作行为的统一的软件构件。

ü  对象彼此间通过消息传递协同工作,共同完成系统的功能

ü  把相关对象分类(Class)

ü  借鉴自然界的遗传变异的特性,提炼出继承及多态机制,有效提高软件构件重用性及改善软件系统结构,从而提高了软件生产效率及可维护性。

 

 

ü  主动多次反复迭代的演化过程

——基于迭代模型

 

(2) 软件过程概念,各种软件过程模型和特点(瀑布,快速原型,螺旋)

软件过程——为获得高质量软件所需完成的一系列任务的框架,它规定了完成各项任务的工作步骤  

 

软件生命周期模型——从软件项目需求定义之中软件经使用后废弃为止,跨越整个生存期的系统开发、运作和维护所实施的全部的过程、活动和任务的结构框架。

模型

优点

缺点

瀑布模型

文档驱动

系统可能不满足客户的需求

快速原型模型

关注满足客户需求

可能导致系统设计差、效率低,难于维护

增量模型

开发早期反馈及时,易于维护

需要开放式体系结构,可能会设计差、效率低

螺旋模型

喷泉模型

风险驱动

迭代 无缝 适合OO

风险分析人员需要有经验且经过充分训练

瀑布模型

特点

(1)阶段间具有顺序性和依赖性

(2)推迟实现的观点

(3)质量保证的观点

 

快速原型模型

特点

快速原型模型的第一步是快速建立一个能反映用户主要需求的原型系统让用户

在计算机上试用它通过实践来了解目标系统的概貌。

 

螺旋模型

特点

螺旋模型的基本思想是使用原型及其他方法来尽量降低风险。理解这种模型的一

个简便方法是把它看作在每个阶段之前都增加了风险分析过程的快速原型模型

软件开发概述编程语言概述

http://www.cnblogs.com/hellokitty1/p/4032990.html程序语言的发展: 机器语言 汇编语言 高级语言   软件开发的基本步骤:分析问题,建立数学模型。 确定数据结构和算法。 编制程序。 调制程序。  ... 查看详情

软件工程学概述

(1)什么是软件危机,具体表现,消除软件危机的途径(*)软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题答:“已完成”的软件不满足用户的需求;开发进度不能保障;软件开发成本和进度难以准确... 查看详情

刷题面筋-测开-软件测试概述/对测试的理解/对测试岗位的认识

目录概述1-软件测试概述2-测试用例概述3-测试分类概述4-软件质量评估=======================================================概述简单认识软件测试,可以从四个方面理解软件测试概述测试用例概述测试分类概述软件质量评估=====================... 查看详情

课程概述及团队简介

课程概述:软件工程是计算机专业的一门重要的专业基础课,它对于培养学生的软件素质,提高学生的软件开发能力与软件项目管理能力具有重要的意义。但是,软件的开发是一个很困难的活动,要求很仔细的计划和执行。课程... 查看详情

软件工程学概述

软件工程:以开发工程的方法指导软件开发方法学:通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也成为范型软件工程方法学包含三个要素:方法、工具和过程 课外拓扑----OS/3601964年,IBM发布了S... 查看详情

软件测试概述基本介绍

目录1.软件测试概述1.1软件测试定义1.2软件缺陷的案例1.3Bug起源以及Bug类型1.4软件缺陷的严重程度和优先级1.5软件测试的目的和关键问题1.6软件测试的原则1.7软件开发与软件测试1.8.软件测试的过程模型1.9测试用例本课程主要介绍... 查看详情

软件工程学概述

1.软件危机a.软件工程关注于大型程序的构造b.软件工程的中心课题是控制复杂性c.软件经常变化d.开发软件的效率非常重要e.和谐的合作是开发软件的关键f.软件必须有效地支持它的用户g.在软件工程领域中通常由具有一种文化背... 查看详情

软件测试概述

1.缺陷的表现软件未实现产品说明书中要求实现的功能软件出现了产品说明书中制定不会出现的错误软件超出实现了产品说明书中提到的功能软件未实现产品说明书中虽未说明明确指出但应该实现的目标软件难以理解、不易使用... 查看详情

软件测试概述

 一.软件测试历史1972年举行第一次软件测试会议1979年给我软件测试经典定义1996年提出软件测试成熟度模型TMM,TDD2009年前谷歌/微软测试高管提出探索式测试理论 二.软件测试的定义1.早期定义:软件测试是对程序能够按预... 查看详情

软件工程之软件概述

一、软件特点无形性(抽象性),比如人的大脑为硬件,软件则是大脑产生的思想。 二、软件分类   1.功能划分(1)系统软件:系统软件是计算机系统的必要成分,它跟计算机硬件紧密配合,以使计算机系统的各... 查看详情

软件工程学概述(代码片段)

1.1软件危机介绍软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题典型表现–开发+维护1.对软件开发成本和进度的估计常常很不准确2.用户对“已完成的”软件不满意的现象时常发生3.软件产品的质量往... 查看详情

软件工程学概述(代码片段)

1.1软件危机介绍软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题典型表现–开发+维护1.对软件开发成本和进度的估计常常很不准确2.用户对“已完成的”软件不满意的现象时常发生3.软件产品的质量往... 查看详情

软件测试概述

• 不论软件的生产者还是软件的使用者,均生存在竞争的环境中:软件开发商为了占有市场,必须把产品质量作为企业的重要目标之一,以免在激烈的竞争中被淘汰出局。用户为了保证自己业务的顺利完成,当然希望选用... 查看详情

ubunutppa源概述

Ubuntu自带的“软件”应用,可以安装海量软件,既包括发行者支持的软件、社区支持的软件,也包括专有驱动和版权软件。有时,我们需要的软件通过这些渠道仍然无法找到。这时,可以到PPA软件源中查找、安装相关软件。PPA是... 查看详情

软件质量模型概述

软件质量模型简介软件测试的目的就是为了“验证产品质量是否满足用户的需求”。但是搞清楚,用户的需求并不是一件容易的事,因此在软件测试行业发展的漫长历史中,需要一种方式能够积累广大测试工程师的经验。这里的... 查看详情

软件质量模型概述

软件质量模型简介软件测试的目的就是为了“验证产品质量是否满足用户的需求”。但是搞清楚,用户的需求并不是一件容易的事,因此在软件测试行业发展的漫长历史中,需要一种方式能够积累广大测试工程师的经验。这里的... 查看详情

java面向对象编程概述

一、01.软件开发经历周期:软件分析:分析问题领域,了解客户的需求软件设计:确定软件的总体结构,把整个软件系统划分为大大小小的多个子系统,设计每个子系统的具体结构软件编码:用选定的编程语言来编写程序代码,... 查看详情

软件测试概述

一、测试是什么  1、找bug,就是查找软件测试错误的过程  2、加深对软件的认知,使软件更适合用户的使用  3、测试工作——执行测试    a、参与需求评审、计划测试流程、书写测试方... 查看详情