第一章 软件危机与软件工程

1.1 软件的定义是什么

计算机软件是与计算机系统操作有关的程序、规程、规则及任何与之有关的文档和数据。

软件的含义 (软件是程序、数据以及文档的完整组合)

研制了软件设计和生产的方法与工具,从而为“文档加程序”

• 文档是软件质的部分

• 程序是文档代码化的表现形式

软件的正确含义:

1.运行时,能提供所要求功能和性能的指令(Instruction) 或计算机      程序(Program)集合。

2.程序能满意地处理信息的数据逻辑(data structure)。

3.程序能满意地按照预定的商业逻辑进行处理。

4.描述程序功能需求以及程序如何操作和使用所要求的文档(Documents).

1.2 软件危机产生的原因有哪些?

产生软件危机有二个方面:

一方面与软件本身的特点有关。

一方面与软件开发与维护的方法不正确有关。

① 忽视软件需求分析的重要性。

② 忽视软件文档的重要性。

Ø 软件是逻辑部件,开发质量较难评价。

Ø 软件规模庞大,有技术问题,也有管理方法问题。

Ø 早期开发的个体化,忽视需求分析。

Ø 对前期工作不能忽视,提高软件质量的关键。

Ø 严重性:在软件开发的不同阶段修改付出的代价(后期比前期高2-3个数量级),软件维护是极端艰巨复杂的工作(占55%-70%)。

1.3 软件开发环境是由什么组成的?(找不到……可能是《软件工程》第25页的内容)

1.4 软件危机与软件工程的关系

为了解决软件危机,既要有技术支持措施(方法和工具),又要有必要的组织管理措施。软件工程正是从管理和技术两方面研究如何更好的开发和维护计算机软件的一门新兴学科。
1.5 软件生命周期包含哪几部分?也就是讲软件开发过程分为哪几个阶段,以及 每个阶段完成的工作(软件生命周期各阶段的基本任务)。

1.问题定义:“要解决的问题什麽?”在问题定义阶段应提出。

① 问题性质报告② 工 程目标和规模报告③ 对系统的实际用户和使用部门进行访问调查,澄清含 糊不清的地方后得到双方满意的文档。

2.可行性研究:关键问题“对于上一个阶段所确定的问题有行得通的解决办法”

① 确定工程规模和目标 ② 估计系统成本和效益。

该阶段实际上是一个工程的核心阶段,对双方都是讨价还价的心理战,直接 关系到整个系统研发的成本与利益。

3. 需求分析:解决的问题“为解决问题,目标系统必须做什麽?”

系统分析员在需求分析阶段必须和用户密切配合,充分交流信息,以得出 经过用户确认的系统逻辑模型。通常用数据流程图,数据字典和简要的算法表示系统的逻辑模型。

需求分析阶段必须交出完整准确的系统逻辑模型经用户确认后,再进入下 一个阶段,应防止和克服急于着手进行具体设计。

4. 总体设计:“应该如何解决这个问题?”,应考虑几种可能的解决方案:

(1)低成本的解决方案:系统只能完成最少必要的工作,不做额外工作。

(2)中等成本的解决方案:除很好地完成预定的任务,使用方便,而且还有附加的额外功能。

(3)高成本的“十全十美”的系统 :该系统具有用户可能希望有的所有功能和 特点。

5. 详细设计:总体设计以比较抽象概括的方式提出了解决问题的办法,详细设计的任务是把解法具体化。具体的任务是设计出程序的详细规格说明,通常用HIPO图(层次图加输入/处理/输出图)或PDL语言(过程设计语言)描述详细设计结果。

6. 编码和单元测试:程序员根据系统要求,选定开发平台把详细设计的结果翻译成选定的语言书写程序,并仔细测试编写的每个模块。

7.综合测试 :通过各种类型的测试使软件达到预定的要求。

集成测试:根据软件结构,把模块按某种选

定的策略装配起来, 装配过程中对

程序进行必要测试。

基本

测试

验收测试:按照规格说明书的规定,对目标系

统进行验收。

8.软件维护:改正性维护、适应性维护、完善性维护、预防性维护

1.6 软件生命周期模型有几种(特点)?类型软件?

① 瀑布模型

特征:活动的输入来自上一活动的输出;完成该项活动的内容;活动的输出

传给下一活动;对活动的实施工作进行评审。

适合:需求明确的任务。

优点:以项目的阶段评审和文档控制为手段有效地对整个开发过程进行指导,

从而保证了软件产品及时交付,并达到预期的质量要求。

缺点:成品时间长;缺乏灵活性。

② 快速原型模型

快速原型模型是为了克服瀑布模型的缺点而提出的,它通过快速构建一个可在计算机上运行的原型系统,让用户试用该原型系统并收集用户反馈意见,获取用户真实需求。(用户界面通常是快速原型的一个关键部分)

原型法的显著特点是,允许用户在系统开发过程中完善其对系统的需求,系统开发时间短、成本低,有效的发挥用户和开发人员的密切配合作用,更好地体现了逐步完善、逐步发展的原则。

主要困难是,由于频繁的需求变化使开发进程难于管理。另外,技术上必须要求处理好原型的集成问题,系统支撑结构和共享数据库结构的规范问题等。

③ 螺旋模型

螺旋模型的基本思想:使用原型及其他方法来尽量降低风险。理解这种模型的一个简便方法,是把它看作在每个阶段之前都增加了风险分析过程的快速原型模型。

螺旋模型的优点:对可选方案和约束条件的强调有利于已有软件的重用,也有利于把软件质量作为软件开发的一个重要目标;减少了过多测试(浪费资金)或测试不足(产品故障多)所带来的风险。

螺旋模型主要适用于内部开发的大规模软件项目

第一章软件危机与软件工程相关推荐

  1. 第一章 软件开发入门引导及概述

    第一章 软件开发入门引导及概述 前言 计算机系统是由硬件和软件组成,所谓硬件是指组成计算机系统的物理设备,包括电子的.机械的.磁的.光的设备的总和. 我们的电脑.手机.电子设备都算一个小的计算机. 而 ...

  2. 一、 软件危机和软件工程

    一. 软件危机和软件工程 软件危机是指落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件与维护过程中出现一系列严重问题的现象. 基于软件危机对于计算机发展的阻碍,1968年,在联邦德国召 ...

  3. 软件设计模式--第一章 软件设计模式基础

    目录 第一章 软件设计模式基础 1.软件设计模式概述 (1)什么是软件设计模式 (2)学习设计模式的意义 (3)软件设计模式的基本要素 (4)GoF的23种设计模式简介 2.UML中的类图 (1)统一 ...

  4. 软件工程(速成)——第一章 软件与软件工程

    一.软件危机 1.Software=Program+Data+Document 2.软件的特点: (1)无形 (2)副本制作简单 (3)无磨损 3.软件危机:是指在计算机软件的开发和维护过程中所遇到的 ...

  5. 软件工程导论第六版 第一章 软件工程学概述知识点总结(上)

    目录 关于20世纪60年代 (选择题考点) 软件危机 软件危机的概念 (填空题考点) 软件危机的表现 (简答题考点) 软件危机产生的原因 (简答题考点) 软件工程的概念 软件工程的七条基本原理 软件生 ...

  6. 【蓝桥杯嵌入式主板(G4)】第一章 软件环境搭建

    在比赛的考场上,自己的电脑是已经安装好了环境的,但是在比赛之前,同学们自己备赛的时候,肯定会用到一些软件,现在,公子带大家安装软件环境. 第一节    安装jre 1,双击jre. 2,点击" ...

  7. 软件工程学导论第一章-软件工程学概述

    软件工程学概述 软件危机 软件危机的介绍 软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题. 软件危机包含两方面的问题:如何开发软件,以满足对软件日益增长的需求.如何维护数量不断膨胀的 ...

  8. 软件工程导论第六版 第一章 软件工程学概述知识点总结(下)

    目录 软件过程 瀑布模型 快速原型模型 增量模型 螺旋模型 喷泉模型 Rational 统一过程 敏捷过程和极限编程 面向对象方法学 简答题 本章练习 软件过程 顺口溜:布 原 增 螺 喷 统 瀑布模 ...

  9. 《软件工程导论》/ 第一章 软件工程学概述 / 1.4软件过程 / 1.4.1瀑布模型

    在20世纪80年代之前,瀑布模型一致是唯一被广泛采用的生命周期模型,现在它仍然是软件工程中应用得最广泛的过程模型.传统软件工程方法学的软件过程,基本上可以用瀑布模型来描述. 一.按照传统的瀑布模型开发 ...

最新文章

  1. c语言关闭其他进程tcp_tcp链接迁移
  2. Centos8 安装并使用Ansible(一)
  3. matlab读取/播放视频的函数(2)
  4. Kaggle入门 (Titanic TensorFlow Softmax)
  5. canny算法的实现(android加载图片,数组写入文件换行)
  6. oracle报609,ORA-609 错误分析及解决方法
  7. 将自己的dcm数据制作成LUNA16数据集提供数据样式。
  8. JPack发布0.5.0
  9. 在线考试系统源码 在线教育源码
  10. 如何查看一个网页源代码的最后更新时间
  11. 80386汇编_寄存器 寻址方式介绍
  12. 金禄电子通过注册:年营收13亿 二股东麦睿明因走私被判刑
  13. win10命令行动态调整网卡优先级
  14. Paypal Express Checkout介绍独立站一种付款选择
  15. TOMCAT假死分析
  16. ASEMI低压降肖特基二极管怎么检测,低压降肖特基有什么优势
  17. HTML入门学习笔记+详细案例
  18. 技术人员如何看待新技术?
  19. 怎样查找某个外文期刊的文献?
  20. 南京大学软件学院2018保研夏令营经验

热门文章

  1. mysql第一章试题_MySQL基础-第一章
  2. MongoDB的客户端管理工具--nosqlbooster 连接MongoDB服务器
  3. 零基础零代码实现可视化报表
  4. 利用OpenCV检测图像中的多个水果
  5. 用python编程、假设一年期定期利率_Python习题选编
  6. Docker USER 指定当前用户
  7. python实现去重_Python列表去重的4种实现方法
  8. 第三篇 第七章气体灭火系统(三)
  9. 传统与深度学习遥感变化监测遥感技术路线与方法
  10. 哒哒哒哒 一些有趣的东西 HihoCoder 1082 CUGOJ 1569