软件工程复习 第一章 概述 软件定义 软件危机 软件三要素
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计算机科学
软件工程复习 第一章 概述 软件定义 软件危机 软件三要素相关推荐
- 软件工程技术--第一章 概述
第一章 软件 操作系统本身就是一个软件,一个系统可以理解为系统软件. 什么是软件? 软件是计算机系统的"思维中枢",它与计算机硬件相互作用,互相配合,从而实现了特定的系统功能. 软 ...
- 编译原理复习 第一章 概述
文章目录 Chapter1 概述 1.1 什么是编译程序 定义 语言 应用 语言处理过程 语言转变系统 编译程序和解释程序比较 1.2 编译过程和编译程序结构 词法分析 语法分析 语义分析 中间代码生 ...
- Linux基础第一章 概述
第一章 概述 1.1 前言 本章讨论系统的概念,从硬件.操作系统角度更加深刻的理解计算机系统,并快速浏览Linux系统提供的服务. 1.2 系统组成 1.3 操作系统和应用程序 操作系统这个词语有二意 ...
- 《Abaqus GUI程序开发指南(Python语言)》——第一章 概述1.1 简单插件实例——创建带孔板有限元模型...
本节书摘来自异步社区<Abaqus GUI程序开发指南(Python语言)>一书中的第1章,第1.1节,作者: 贾利勇 , 富琛阳子 , 贺高 , 周正光 更多章节内容可以访问云栖社区&q ...
- 操作系统王道考研复习——第一章(计算机系统概述)
操作系统王道考研复习--第一章(计算机系统概述) 计算机系统概述 1.1操作系统的基本概念 1.1.1 操作系统的概念 1.1.2 操作系统的特征 1. 并发 2. 共享 3. 虚拟 4. 异步 1. ...
- 计算机网络第一章(概述)
第一章 概述 1.1因特网概述 1.1.1网络.互联网和因特网 网络(Network),由若干结点(Node) 和连接这些结点的 链路(Link) 组成. 多个网络还可以通过路由器互联起来,这样就构成 ...
- 第一章 概述_TCP-IP
第一章 概述 [TCP/IP 详解] 1.1体系结构原则 Internet 体系结构在几个目标的指导下建立的.在 [C88] 中,描述的首要目标是 "发展一种重复利用已有的互联网络的技术&q ...
- 计算机网络 知识点归纳 第一章 概述
第一章-概述 互联网的概述 网络的网络 计算机网络(简称为"网络") 由若干节点(node)和链接这些节点的链路 (Link)组成. 网络中的节点可以是:计算机,集线器,交换机或路 ...
- 数字图像处理:第一章 概述
第一章 概述 数字图象处理是一门关于如何用计算机对图象进行处理的学科,本课程主要讲解基本原理和方法,针对计算机系的学生,强调编程实践和建立图象处理应用系统的方法.推荐的教材与图象编程参考书包括: R. ...
最新文章
- VirtWire 向客服发ticket
- (转)利用libcurl和国内著名的两个物联网云端通讯的例程, ubuntu和openwrt下调试成功(四)...
- Acwing第 8 场周赛【未完结】
- Linux 命令详解(六)Linux 守护进程的启动方法
- lindex.php,Redis学习笔记:命令
- github删除文件_github 仓库中删除历史大文件
- 知识付费阅读小程序源码,前端+后台+代理+分销
- Telephone Calls
- 订阅号、服务号与企业号区别
- day11 内置函数
- 中input宽度_使用HOG对卫星图像中的船舶进行分类
- 【模拟电子技术Analog Electronics Technology 1】——用能带理论理解导体,绝缘体和半导体
- 思科 ASA5505 防火墙放行流量简单配置案例
- 电脑老是弹出vrvedp_m_卸载瑞星的最简单方法 vrvedp_m卸载
- Python“Non-ASCII character 'xe5' in file”报错问题
- git切换远程分支为develop
- 如何在Fcpx中卸载安装效果,标题,转场等FCPX模板插件
- java如何将二进制转换为十进制
- 乘着爱的翅膀—《爱的教育》读后感—吕中琪
- 每个人都至少需要4个邮箱账户(附国内外数十个免费邮箱)
热门文章
- 小说中看到的一些有意思的句子
- 百卓网络获智慧公安实践大奖 助力中国信息化融合新篇章
- read和readFully的区别! .
- 使用Log4j时,配置ConversionPattern(日志显示格式)遇到的问题
- mysql varchar tinytext_mysql列类型char,varchar,text,tinytext,mediumtext,longtext的比较与选择...
- 手工制作二维码,你也可以很专业!
- 流量推广公司是怎么让你获得流量的?
- 【javaScript】Object.prototype.toString.call() 、 instanceof 以及 Array.isArray() 区别与优化层面的比较
- CCF-CSP真题《202209-2 何以包邮?》思路+python满分题解
- ms office word2013教程 - 如何将A文档中的样式复制到B文档中