1.1软件

1.1.1软件的概念

软件=程序(可执行部分)+文档(不可执行部分)+数据

程序:按事先设计的功能和性能需求执行的指令序列
数据:是程序能正常操纵信息的数据结构
文档:与程序开发、维护和使用有关的图文材料

1.1.2软件的特点

1.软件是开发的或者是工程化的,并不是通过制造的
2.软件是简单的拷贝
3.软件会经历多次修改
4.软件的开发环境会影响最终的产品质量
5.软件开发时间和工作量难以估计
6.软件测试非常困难
7.软件不会磨损以及老化,但会退化和废弃
8.软件需要维护,维护可能会产生新的问题
6.软件开发进度几乎没有客观衡量标准(但是并不代表没有衡量标准)

1.1.3软件的双重作用

1.软件本身是一种产品
2.软件可以作为开发其他产品的工具

1.1.4软件的分类

1.根据软件的功能:
a.系统软件
b.支撑软件
c.应用软件

2.根据软件的服务对象:
a.项目软件
b.产品软件

1.1.5其他

软件发展速度块的原因:
1.计算需求(适应新的计算环境)
2.业务需求(实现新的业务)
3.嵌入需求(扩展软件,满足系统交互)
4.架构需求(适应新的网络环境)

1.2软件危机

1.2.1软件危机的概念

在计算机软件的开发和维护过程中所遇到的一系列严重问题。
例如:1.项目超出预算 2.项目超过计划完成时间 3.软件运行效率很低 4.软件质量差 5.软件通常不符合要求 6.项目难以管理并且代码难以维护 7.软件不能交付

1.2.2软件危机的产生原因

(1)软件自身特点(客观原因):
a、软件是逻辑部件,缺乏可预见性
b、软件维护困难
c、软件越来越庞大复杂,需要分工协作
(2)软件开发方法不正确(主观原因):
a、需求分析不充分或者存在错误
b、开发的过程不规范
c、不注重文档工作,软件难以维护
d、缺少软件评测手段

1.2.2消除软件危机的途径

1.软件工程的方法
2.对计算机软件有一个正确的认识:程序!=软件
3.软件开发不是个体的任务而是团队的合作
4.推广新的方法和工具

1.3软件工程

1.3.1软件工程的定义

(1)应用系统的、规范的、可度量的方法来开发,运行和维护软件,即把工程应用到软件

1.3.2软件工程的目标

在给定的时间和预算内,按照用户的需求,开发易修改、高效、可靠、可维护、适应力强、可移动、可重用的软件。

1.3.3软件工程的三要素

方法、工具、过程
方法:是完成软件开发的各项任务的技术方法,为软件开发提供“如何做”的技术。
工具:为运用方法而提供的自动的或半自动的软件工程的支撑环境。
过程:是为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤,如何将软件工程方法与软件工具相结合,合理、及时地进行软件开发。

1.3.4软件工程的发展过程

第一代:传统软件工程(结构化方法学六十年代末-七十年代)将软件工程纳入工程化的轨道。
第二代:对象工程(面向对象方法学八十年代中期-九十年代)面向对象的分析与设计。
第三代:过程工程(八十年代中期开始)提高软件生产率,保证软件质量的关键,“软件过程”是软件开发和维护中的管理和支持能力,形成软件过程工程。
第四代:构建工程(九十年代起)可复用构件

1.3.5软件工程的七原则

1.使用阶段性生命周期计划的管理
2.进行连续的验证
3.保证严格的产品控制
4.使用现代编程工具/工程实践
5.保持清晰的责任分配
6.保证更少但更精的开发人员
7.保持过程改进

1.3.6软件工程VS计算机科学

软件工程复习 第一章 概述 软件定义 软件危机 软件三要素相关推荐

  1. 软件工程技术--第一章 概述

    第一章 软件 操作系统本身就是一个软件,一个系统可以理解为系统软件. 什么是软件? 软件是计算机系统的"思维中枢",它与计算机硬件相互作用,互相配合,从而实现了特定的系统功能. 软 ...

  2. 编译原理复习 第一章 概述

    文章目录 Chapter1 概述 1.1 什么是编译程序 定义 语言 应用 语言处理过程 语言转变系统 编译程序和解释程序比较 1.2 编译过程和编译程序结构 词法分析 语法分析 语义分析 中间代码生 ...

  3. Linux基础第一章 概述

    第一章 概述 1.1 前言 本章讨论系统的概念,从硬件.操作系统角度更加深刻的理解计算机系统,并快速浏览Linux系统提供的服务. 1.2 系统组成 1.3 操作系统和应用程序 操作系统这个词语有二意 ...

  4. 《Abaqus GUI程序开发指南(Python语言)》——第一章 概述1.1 简单插件实例——创建带孔板有限元模型...

    本节书摘来自异步社区<Abaqus GUI程序开发指南(Python语言)>一书中的第1章,第1.1节,作者: 贾利勇 , 富琛阳子 , 贺高 , 周正光 更多章节内容可以访问云栖社区&q ...

  5. 操作系统王道考研复习——第一章(计算机系统概述)

    操作系统王道考研复习--第一章(计算机系统概述) 计算机系统概述 1.1操作系统的基本概念 1.1.1 操作系统的概念 1.1.2 操作系统的特征 1. 并发 2. 共享 3. 虚拟 4. 异步 1. ...

  6. 计算机网络第一章(概述)

    第一章 概述 1.1因特网概述 1.1.1网络.互联网和因特网 网络(Network),由若干结点(Node) 和连接这些结点的 链路(Link) 组成. 多个网络还可以通过路由器互联起来,这样就构成 ...

  7. 第一章 概述_TCP-IP

    第一章 概述 [TCP/IP 详解] 1.1体系结构原则 Internet 体系结构在几个目标的指导下建立的.在 [C88] 中,描述的首要目标是 "发展一种重复利用已有的互联网络的技术&q ...

  8. 计算机网络 知识点归纳 第一章 概述

    第一章-概述 互联网的概述 网络的网络 计算机网络(简称为"网络") 由若干节点(node)和链接这些节点的链路 (Link)组成. 网络中的节点可以是:计算机,集线器,交换机或路 ...

  9. 数字图像处理:第一章 概述

    第一章 概述 数字图象处理是一门关于如何用计算机对图象进行处理的学科,本课程主要讲解基本原理和方法,针对计算机系的学生,强调编程实践和建立图象处理应用系统的方法.推荐的教材与图象编程参考书包括: R. ...

最新文章

  1. VirtWire 向客服发ticket
  2. (转)利用libcurl和国内著名的两个物联网云端通讯的例程, ubuntu和openwrt下调试成功(四)...
  3. Acwing第 8 场周赛【未完结】
  4. Linux 命令详解(六)Linux 守护进程的启动方法
  5. lindex.php,Redis学习笔记:命令
  6. github删除文件_github 仓库中删除历史大文件
  7. 知识付费阅读小程序源码,前端+后台+代理+分销
  8. Telephone Calls
  9. 订阅号、服务号与企业号区别
  10. day11 内置函数
  11. 中input宽度_使用HOG对卫星图像中的船舶进行分类
  12. 【模拟电子技术Analog Electronics Technology 1】——用能带理论理解导体,绝缘体和半导体
  13. 思科 ASA5505 防火墙放行流量简单配置案例
  14. 电脑老是弹出vrvedp_m_卸载瑞星的最简单方法 vrvedp_m卸载
  15. Python“Non-ASCII character 'xe5' in file”报错问题
  16. git切换远程分支为develop
  17. 如何在Fcpx中卸载安装效果,标题,转场等FCPX模板插件
  18. java如何将二进制转换为十进制
  19. 乘着爱的翅膀—《爱的教育》读后感—吕中琪
  20. 每个人都至少需要4个邮箱账户(附国内外数十个免费邮箱)

热门文章

  1. 小说中看到的一些有意思的句子
  2. 百卓网络获智慧公安实践大奖 助力中国信息化融合新篇章
  3. read和readFully的区别! .
  4. 使用Log4j时,配置ConversionPattern(日志显示格式)遇到的问题
  5. mysql varchar tinytext_mysql列类型char,varchar,text,tinytext,mediumtext,longtext的比较与选择...
  6. 手工制作二维码,你也可以很专业!
  7. 流量推广公司是怎么让你获得流量的?
  8. 【javaScript】Object.prototype.toString.call() 、 instanceof 以及 Array.isArray() 区别与优化层面的比较
  9. CCF-CSP真题《202209-2 何以包邮?》思路+python满分题解
  10. ms office word2013教程 - 如何将A文档中的样式复制到B文档中