【软件工程】----------初识

本文介绍了软件工程的基本概念,包括软件的定义、特点、分类,探讨了软件危机及其解决办法,并概述了软件的发展阶段。软件作为逻辑实体,具有抽象性且无物理磨损,其开发成本高昂,分类包括系统软件、支撑软件和应用软件。软件危机表现为需求不符、效率低等问题,化解危机需要采用现代技术和严格管理。软件经历了从程序设计到软件工程的标准化发展过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

初步接触软件工程,需要对软件这一概念有一个整体的认识,接下来,简要阐述一下关于软件的知识点。

①软件定义

软件是计算机系统中与硬件相互依存的另一部分,它是包括程序数据相关文档的完整集合。

  • 程序是按事先设计好的功能和性能要求执行的指令序列

  • 数据是是程序能正常操纵信息的数据结构

  • 文档是与程序开发,维护和使用有关的图文材料

②软件特点

1.软件是一种逻辑实体,而不是具体的物理实体,因而它具有抽象性
2.软件是通过人们的智力活动,把知识与技术转化成信息的一种产品,是在研制、开发中被创造出来的。
3.在软件的运行和使用期间,没有硬件那样的机械磨损、老化问题。
4.软件的开发和运行经常受到计算机系统的限制,对计算机系统有着不同程度的依赖性。在软件的开发和运行中必须以硬件提供的条件为基础。
5.软件的开发至今尚未完全摆脱手工的开发方式
6.软件的开发费用越来越高,成本相当昂贵
在这里插入图片描述

③软件的分类

功能划分:

  1. 系统软件
    ·操作系统化
    ·数据库管理系统
    ·设备驱动程序
    ·通信处理程序
  2. 支撑软件
    ·文本编辑程序
    ·文件格式化程序
    ·磁盘向磁带向数据传输的程序
    ·程序库系统
    ·支持需求分析,设计,实现,测试和支持管理的软件
  3. 应用软件
    ·工程与科学计算软件
    ·计算机辅助设计/制造软件
    ·系统仿真软件
    ·智能产品嵌入软件
    ·医疗、制药软件
    ·事务管理、办公自动化软件
    ·计算机辅助教学软件

规模划分:

类别参加人员研制期限源程序行数
微型11一4周0.5k
小型11一6月Ik~2k
中型2一51一2年5k~50k
大型5一202一3年50k一100k
甚大型100一10004一5年IM(=1000k)
极大型2000一50005一10年IM一10M

工作方式划分:

  1. 实时处理软件
  2. 分时软件
  3. 交互式软件
  4. 批处理软件

软件服务对象的范围划分:

  1. 项目软件
  2. 产品软件

使用频度划分:

  1. 一次使用
  2. 频繁使用

软件失效的影响划分:

  1. 高可靠性软件
  2. 一般可靠性软件

④软件危机

1、定义

指的是软件开发和维护过程中遇到的一系列严重问题。

2、表现

  • 不符合用户实际需要
  • 生产率低下
  • 质量差
  • 成本和进度预估不准确
  • 可维护性差
  • 文档不完整
  • 昂贵

3、化解危机

(l)用分阶段的生存周期计划严格管理
(2)坚持进行阶段评审
(3)实行严格的产品控制
(4)采用现代程序设计技术
(5)结果应能清楚地审查
(6)合理安排软件开发小组的人
(7)承认不断改进软件工程实践的必要性

⑤软件发展阶段

程序设计阶段 ——50-60年代
程序系统阶段 ——60-70年代(作坊式)
软件工程阶段 ——70年代以后(标准化)

### 西门子S7-200 SMART编程教程与思路 #### 1. 安装与配置环境 为了顺利进行编程工作,需先安装西门子S7-200 SMART编程软件STEP 7 MicroWIN SMART V2.4。此版本由官方推出,专门针对S7-200 SMART系列PLC设计,提供了稳定可靠的编程支持[^1]。 #### 2. 初识界面布局 启动程序后会看到清晰直观的操作界面,主要包括菜单栏、工具栏、项目树以及编辑区等部分。熟悉这些组件有助于提高工作效率并更好地理解整个系统的架构。 #### 3. 创建工程项目 通过新建工程向导可以快速建立一个新的控制项目,在这里可以选择目标设备型号,并设置通信参数等相关选项。这一过程对于后续编写具体功能至关重要。 #### 4. 组织结构规划 合理安排梯形图逻辑(LAD)或其他形式的语言模块是成功实现复杂控制系统的基础之一。建议按照实际应用场景划分不同任务单元,比如输入处理、输出驱动、定时器管理等等。 #### 5. 编写核心算法 利用内置指令集完成特定业务流程的设计,如数据采集、运算处理、条件判断等操作。掌握常用命令的应用技巧能够显著提升编码效率和质量。 ```python # 示例:简单的计数器程序片段(伪代码) IF Rising_Edge(Input_Signal) THEN Counter := Counter + 1; END_IF; // 达到设定值触发动作 IF Counter >= Setpoint THEN Output_Active := TRUE; // 开启输出信号 ELSE Output_Active := FALSE; // 关闭输出信号 END_IF; ``` #### 6. 测试验证效果 编译完成后应立即上传至物理硬件上运行测试,观察实际表现是否符合预期。必要时调整优化直至达到理想状态为止。 #### 7. 文档记录维护 最后不要忘记整理好所有源码及相关说明文档,便于日后查阅修改或是团队协作交流分享经验心得。
评论 45
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值