2021-09-06

软件工程基础 第一章

#1.1.1软件工程危机概述
软件工程危机的概念和特征
软件危机是指20世纪60年代在计算机软件的研发,运行,维护和管理过程中,出现一系列严重问题的现象
软件危机的特征主要体现在7个方面
(1)在软件系统运行过程中,经常出现功能,性能等严重问题或故障
(2)软件产品的质量,可靠性和安全等方面,时常不能达到标准要求。软件产品质量难以保证,甚至在开发过程中被迫中断
(3)软件开发管理差,对成本和进度难以估计
(4)系统时常出现无法维护,升级或更新的问题
(5)开发效率低,无法满足应用快速发展与更新升级的实际需要
(6)研发成本难以控制,在总成本中所占比不断大幅上升
(7)软件开发没有标准,完整统一规范的文档资料。软件不仅只是程序,还应当有一套规范的文档资料和售后服务
2.软件危机产生的原因
软件危机产生的主要原因包括6个方面
(1)软件开发的规模、复杂度和需求量都在不断
增加。
(2)软件(系统)需求分析与设计不完善、有欠缺,致使软件开发、维护和管理或文档出现问题。
(3)没有按照工程化方式运作,开发过程无统一标准、准则和规范方法。
(4)研发人员之间或同用户相互交流沟通不够或文档资料不完备。
(5)软件测试调试不规范、不细致,提交的软件质量不达标。
(6)在软件运行过程中,忽视了正常有效的维护和管理。
3.解决软件危机的主要措施包括3个方面

(1)技术方法。运用软件工程的技术、方法和标准进行规范。
(2)开发工具。选用先进高效的软件工具,采取切实可行的实施策略。
(3)组织管理。研发机构需要组织高效、管理制度和标准严格规范、职责明确、质量保证有力、团结互助、齐心协力,注重文档及服务。

1.1.2软件工程的发展过程

软件工程发展经历了程序设计阶段,程序系统阶段,软件工程阶段和创新完善软件工程4个阶段,各阶段的典型技术如下所示在这里插入图片描述
1.传统软件工程的发展也经历了四个重要阶段
1.传统软件工程
传统软件工程也称为第一代软件工程,是指软件工程产生的初期。20世纪60年代末到70年代,开发软件主要采用“生产作坊”方式,随着软件需求量、规模及复杂度的快速增加,相继出现了软件皿知识拓展开发效率低、成本高、进度及质量失控等各种难以解决的软件工程技术软件问题,大量无标准规范开发的低劣软件涌入市场,导的发展致出现了“软件危机”且不断加重,传统开发方式已无法适应软件开发的需要,致使产生了软件工程。
2.对象工程
对象工程也称为第二代软件工程。20 世纪80年代中期到90年代,以Smalltalk为代表的面向对象的程序设计语言相继推出,使面向对象的方法与技术得到快速发展。从20世纪90年代起,研究的重点从程序设计语言逐渐发展到面向对象的分析与设计技术,形成了一种完整的软件开发方法和系统的技术体系,其后出现了许多面向对象的开发方法,使面向对象的开发技术和方法逐渐得到完善和推广。
3.过程工程
过程工程也称为第三代软件工程。随着计算机网络等信息技术的快速发展和广泛应用,软件的规模、复杂度、开发时间和开发人员持续快速增加,致使软件工程开发、维护和管理的难度不断加大。在软件开发的实践过程中,软件企业和研发人员逐渐认识到**:保证软件质量、提高软件生产效率的关键是对“软件过程”的有效管理和控制,从而提出了对软件项目管理的计划组织、质量保证.成本估算.软件配置管理等技术与策略.逐步形成了软件过程工程。
4.构件工程
构件工程(Component Engineering)也称为
第四代软件工程**。20 世纪90年代起,基于构件(模块)的开发方法取得重要进展,软件系统的开发可利用已有的可复用构件进行修改集成,而无须从头开始编程构建,从而解决了提高软件研发效率和质量、降低成本的重大问题。面对复杂的操作系统控制的桌面系统,需要兼顾各种异构网络、数字通信与交互和先进的应用软件的综合需求。计算机体系结构从主机环境转变为分布式的客户机/服务器等环境。计算机辅助软件工程(Computer Aided Software Engineering ,CASE)将软件工具和代码生成器进行集成,为很多软件系统提供了高效且可靠的解决方案,专家系统和人工智能软件的应用更加广泛,模拟人脑的人工神经网络软件开拓了信息处理的新途径,云计算、并行处理、网络技术、虚拟技术、多媒体技术和现代通信技术等新技术、新方法改变了人们原有的工作方式。

1.2软件及软件工程概述

#1.2.1软件的概念,特点和分类
11.软件的相关概念
软件(Software)是计算机及手机等终端设备运行的指令、数据和资料与服务的集合,包括指令程序、数据、相关文档和完善的售后服务的完整集合。具体可以表示为
软件=程序十数据十文档十服务
其中,数据是信息的表达方式和载体,是使程序正常进行信息处理的结构及表示。文档(Document)是与程序开发、维护及使用有关的技术数据和图文资料。服务主要指对各种软件用户的服务,包括提供软件产品使用说明书推销服务及售后技术,支持等。软件分为系统软件、支撑软件(开发环境)和应用软件。其中,应用软件也称为信息系统(Information System),是指由一系列相互联系的部件(程序模块)组成的,为实现某个业务处理目标对数据进行输人、处理、存储、输出、反馈和控制的集合。
2.软件的主要特点
软件的主要特点如下
(1)智能性。软件是人类智能劳动的产物、代替和延伸。程序、流程、算法、数据结构等需要通过人的思维进行设计、编排和组织。
(2)抽象性。软件属于逻辑实体,而非物理实体,无形性和智能性致使软件难以认识和理解。在研发过程中,需要进行逻辑设计和组织,运用抽象思维和方法。人们只能通过用户界面来与软件交互,其丰富内涵被蕴含在计算机内部,使软件具有高度的抽象性。(3)人工方式。软件的开发、维护及管理设置等方面,很难完全脱离手工方式。(4)夏杂性和系统性。软件开发和运行经常受计算机等终端系统的限制,软件的开发和运行必须依赖于软件环境。大中型软件是由多种要素组成的有机整体,具有显著的系统特性。软件具有确定的目标、功能、性能、结构和要素。(5)泛域性。软件应用很广泛,在信息化中可服务于各个领域、行业和层面。(6)智能复制性。软件成本相对比较昂贵,软件是人类智能创造性的特殊产品。而复制和推广的费用一般较低,并可以借助复用技术进行软件开发再利用。(7)非损及更新性。各种软件不存在物理性磨损和老化向题,但可以退化,需要及时进行更新升级。
3.软件的主要分类
1)按照软件功能划分。可以分为3种。
①系统软件。如操作系统、设备驱动程序等。②支撑软件。协助用户开发的工具软件,如编译程序、程序库、图形软件包等。
③应用软件如企业业务管理软件、CAD/CAM软件、CAI软件、图书管理信息系统学生成绩管理信息系统等。
(2)按照软件规模划分按照软件规模(源代码行)、参与研发人数、研制时间,可以将软件分为微型、小型、中型、大型、超大型5种
.(3)按照软件工作方式划分。通常可以分为4种:实时处理软件分时软件交互式软件、批处理软件。
(4)按照软件服务对象的范围划分。可以分为如下类型。
①项目软件。主要由企事业客户委托研发机构进行开发的软件。
②产品软件。通常由软件开发机构进行研发,然后提供给市场。
(5)按照软件运行的终端设备划分。可以分为服务器软件、计算机软件、手机软件、机器人软件和其他嵌人设备(电子化设备)软件等。此外,还可按照软件使用频度或软件失效的影响等方面进行划分。手机软件从开发的角度,可以分成应用软件、用户界面、操作系统、底层与设备驱动和通信协议等.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用python中的pymsql完成如下:表结构与数据创建 1. 建立 `users` 表和 `orders` 表。 `users` 表有用户ID、用户名、年龄字段,(id,name,age) `orders` 表有订单ID、订单日期、订单金额,用户id字段。(id,order_date,amount,user_id) 2 两表的id作为主键,`orders` 表用户id为users的外键 3 插入数据 `users` (1, '张三', 18), (2, '李四', 20), (3, '王五', 22), (4, '赵六', 25), (5, '钱七', 28); `orders` (1, '2021-09-01', 500, 1), (2, '2021-09-02', 1000, 2), (3, '2021-09-03', 600, 3), (4, '2021-09-04', 800, 4), (5, '2021-09-05', 1500, 5), (6, '2021-09-06', 1200, 3), (7, '2021-09-07', 2000, 1), (8, '2021-09-08', 300, 2), (9, '2021-09-09', 700, 5), (10, '2021-09-10', 900, 4); 查询语句 1. 查询订单总金额 2. 查询所有用户的平均年龄,并将结果四舍五入保留两位小数。 3. 查询订单总数最多的用户的姓名和订单总数。 4. 查询所有不重复的年龄。 5. 查询订单日期在2021年9月1日至9月4日之间的订单总金额。 6. 查询年龄不大于25岁的用户的订单数量,并按照降序排序。 7. 查询订单总金额排名前3的用户的姓名和订单总金额。 8. 查询订单总金额最大的用户的姓名和订单总金额。 9. 查询订单总金额最小的用户的姓名和订单总金额。 10. 查询所有名字中含有“李”的用户,按照名字升序排序。 11. 查询所有年龄大于20岁的用户,按照年龄降序排序,并只显示前5条记录。 12. 查询每个用户的订单数量和订单总金额,并按照总金额降序排序。
06-03
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值