《软件工程概论》第一章核心内容

第一章  软件定义:是计算机系统中与硬件相互依存的另一部分,包括程序、数据和相关文档的完整集合。 软件特性:形态特性、智能特性、开发特性、质量特性、生产特性、管理特性、环境特性、维护特性、废弃特性、应用特性。  软件分类。  (1) 系统软件 (2) 应用软件 (3) 支撑软件 (4) 可复用软件   软件危机的原因:1)缺乏软件开发的经验和有关软件开发数据的积累,使得开发工作的计划很难制定。2)软件人员与用户的交流存在障碍,除了知识背景的差异,缺少合适的交流方法和需求描述工具也是重要的一个原因。3)软件开发过程不规范,缺少方法论和规范的指导,软件难以维护。4)随着软件规模的增大,其复杂性往往会呈指数级升高。5)缺少有效的软件评测手段,提交用户的软件质量差 软件工程的定义:  1.指导软件开发和维护的工程性学科,它以计算机科学理论和其他相关学科的理论为指导,采用工程化的概念、原理技术和方法进行软件的开发和维护,把经过时间考虑而证明是正确的管理技术和当前能够得到的最好的技术方法结合起来,以较少的代价获得高质量的软件并维护  2.软件工程的目标:运用先进的软件开发技术和管理方法来提高软件的质量和生产率,也就是要以较短 周期、较低的成本生产出高质量的软件产品,并最终实现软件的工业化生产。  3.软件的生存周期:软件孕育、诞生、成长、成熟、衰亡的生存过程。由软件定义、软件开发和运行维护三个时期组成。软件定义:解决“做什么”的问题;软件开发:解决“如何做”的问题,分为概要设计、详细设计、编码和测试四个阶段;维护:使软件持久的满足用户的需求。 4.开发过程中的典型文档  a.软件需求规格说明书:描述将要开发的软件做什么。  b.项目计划:描述将要完成的任务及其顺序,并估计所需要的时间及工作量。  c.软件测试计划:描述如何测试软件,确保软件应实现规定的功能,并达到预期的性能。 d.软件设计说明书:描述软件的结构,包括概要设计及详细设计。 e.用户手册:描述如何使用软件  各阶段基本任务:问题定义与可行性研究、需求分析、软件设计、程序编码和单元测试、集成测试和系统测试。  5.软件生存期模型:  瀑布模型。优点:强迫开发人员规范化方法、严格规定每个阶段必须提交的文档、要求每个阶段交出的所有产品必须经过验证。缺点:完全依赖书面规格说明,可能会导致产品与用户需求有差异、只适用于项目开始时需求已确定的情况。需求分析、规格说明、设计、编码、综合测试、维护  快速原型模型。优点:易于满足用户真实需求、已通过与用户的交互验证,能正确描述用户需求、产品开发基本上按线性顺序、规格文档说明正确描述了用户需求,后期错误率和返工率很低、开发人员建立原型 系统时学到的东西有助于减少后期的错误率、快速开发有助于节约成本,原型的用途是获取用户的正真需求。  增量模型。优点:较短时间内能提交有用产品、逐步增加产品有助于用户适应学习、项目失败风险较低、优先级最高的服务首先交付,则系统核心服务接受最多测试,一般不会失败。注意:新的构件加入系统时必须不破坏已开发出的产品、体系结构必须开放,易于向其中加入新构件。  螺旋模型。四个象限:目标设定、风险估计与弱化、开发与验证、计划。优点有利于已有软件的重用,也有助于把软件质量作为开发的一个重要目标、减少了过多测试或测试不足带来的风险、维护和开发之间没有本质区别。缺点:此模型为风险驱动,要求开发人员必须具有丰富的风险评估经验,否则会意识不到风险的出现导致失败。  6.统一过程的6个核心工作流:业务建模、需求、分析与设计、实现、测试、部署  7.统一过程的4个阶段:初始阶段、细化阶段、构造阶段、移交阶段. a.主要关注项目计划和风险评估,其目的是确定是否值得开发目标系统。b.细化阶段关心定义系统的总体框架,目标是:细化初始需求,细化体系结构,监控风险并细化他们的优先级,细化业务案例以及制定项目管理计划。c.构造阶段是建立系统,构造系统的第一个具有操作性的版本,以能够交付给客户进行β测试版本结束。d.移交阶段包含β测试时期,以发布完完整的系统而终止,其目标是确保系统真正满足客户的需求。 

时间: 2024-08-07 00:14:06

《软件工程概论》第一章核心内容的相关文章

软件工程概论第一章概括

第一章题目的名字为概述,听名字就应该知道第一章应该是对事物的一个总结,通读之后,才知道这个事物就是软件工程这个名词. 本章首先介绍了软件这个名词,对软件的种类做了详细的介绍,而后对软件的发展简单的说了一下,并说明了现在软件存在的行业. 其次对软件工程这个词做了详细的介绍,从软件设计的发展以及构造方法的理论方面做了介绍,也对软件工程方面的危机简单的介绍了一下. 最后对于整个软件设计的过程在理论方面详细解释了一下,其中涉及到对于软件质量的重视态度,其中的SWEBOK项目是软件工程的一个重要概括,经过

软件工程概论第一章

本章主要介绍了软件的概念(软件是计算机程序,规程以及运行计算机可能需要的相关文档和数据.程序是计算机设备可以接受的一切指令和说明,为计算机提供所需的功能和性能,数据是事买,概念或指令的结构化表示,能够被设备接受,理解或处理),本章主要介绍了软件的概念(软件是计算机程序.规程以及运行计算机系统可能需要的相关文档和数据.程序是计算机设备可以接受的一切指令和说明,为计算机提供所需的功能和性能. 数据是事实.概念或指令的结构化表示,能够被设备接受.理解或处理.).软件的类型.软件的特性.软件的发展史以及

软件工程概论第一章阅读笔记

在这章中,我对软件工程有了一定的理解. 软件工程是为了解决软件危机而产生的一类学科. 对于软件危机,有如下解释:1 由于软件开发经验.数据难积累,是的开发工作计划难制定 2 程序员与用户难以交流 3 软件开发过程不规范 4 随和软件规模增大,其复杂性指数型增加 5 缺少有效的软件测评手段. 或许有些人会认为,质量和生产率之间是对立的,但事实上这是错误的观点.在正确的软件工程方法的指导下,质量与生产率可以同时提高.由此可见软件工程的重要性.

软件工程概论第一章--概述

本章主要从软件,软件工程,软件工程知识体系和软件工程职业道德规范等方面展开,其中定义了软件:软件是计算机程序,规程以及运行计算机系统可能需要的相关文档和数据.还详细介绍了软件的特性:复杂,不可见,不断变化,大多数软件是定制的,不是通过已有构件组装而成.软件发展的四个阶段和软件危机也做了详细的介绍. 软件工程方面,定义了软件工程:软件工程是将系统的.规范化的.可定量的方法应用于软件开发.运行和维护,即将工程化应用到软件上:对上述的方法的探究.介绍了软件工程的三要素:过程.方法和工具.软件质量的特性

软件工程概论第一章总结

软件是计算机程序,规程以及运行计算机系统可能需要的相关文档和数据.它主要分为两种 一种为通用软件,另一种为定制软件,软件聚有复杂,不可见,不断变化的特性,目前的软件大多数软件都是定制的而不是通过己有的构件组装而成.由于软件的发展出现了软件危机.   提到了软件那就要提一下软件工程,软件工程是将系统性的规范化的可定量的方法应用软件的开发,运行,维护及工程化应用到软件上.软件工程是以关注软件质量为目标,由过程,方法和工具三个要素组成.传统的以功能分析和数据分析为基础的结构化方法带来很多弊端.书中提到

读《构建之法:现代软件工程》第一章有感

在阅读了<构建之法:现代软件工程>第一章绪论后,我软件工程有了一定的了解,同时以一名机械学生为立场也有所感悟. 以前我只是简单的认为软件就是一个应用,你只需要去点击.exe文件就可以使用这个软件.而在阅读了邹欣老师的<构建之法:现代软件工程>后,我懂得软件=程序+软件工程,我们现在不应再停留于软件的用户体验.交互界面,更应该看到软件背后支撑它的程序代码等.软件工程是一个学科交叉的过程,它与许多学科都相关:计算机科学.计算机工程.管理学.数学.项目管理学.质量管理.软件人体工学.系统

软件工程概论第一节课作业

软件工程概论第一节作业 1.网站系统开发需要掌握的技术:       编程语言,编程环境,后期维护       2.本次课堂测试的源程序代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.

浅谈对《构建之法——现代软件工程》第一章的理解

---恢复内容开始--- 一.精读第一章后对专业术语的整理 <构建之法——现代软件工程>一书第一章向我们主要介绍了计算机科学的领域.软件工程与计算机科学的关系.软件的特性以及软件工程的定义与组成部分. 1.通过对第一章的学习,我们了解到了软件的 几种分类: 系统软件:操作系统.设备驱动程序.工具软件等 应用软件:办公软件.通信软件.游戏视频软件等 恶意软件:软件病毒等 以及软件的几种特殊性:1.负责性:2.不可见性:3.易变性:4.服从性:5.非连续性: 2.软件工程与计算机科学的关系 首先,

现代软件工程讨论第一章-第四章

第一章 1.代码如下 #include <iostream> #include <cstdio> #include <time.h> using namespace std; int main(){ srand(time(0)); while(1){ printf("随机生成的一个小学四则运算题目,除法省去余数\n"); int num1 = rand() % 10; int num2 = rand() % 10; int index = rand(