ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

【软件工程与UML】第1章 笔记和练习题

2022-03-11 13:34:51  阅读:210  来源: 互联网

标签:练习题 模型 面向对象 软件工程 设计 开发 软件 UML


基本概念

软件 = 程序 + 数据 + 文档

软件的特点

  • 抽象性:软件是一种逻辑实体
  • 可复制性:软件是通过人们智力活动,把知识和技术转化为信息的一种产品。
  • 不会磨损:
  • 依赖性:软件的开发和运行经常收到计算机系统的限制。在软件开发中提出软件移植问题,软件的可移植性作为衡量软件质量的因素之一
  • 开发效率低:软件开发尚未摆脱手工方式,依然有大量重复性劳动
  • 开发费用高:

软件危机

在计算机软件开发和维护过程中遇到的一系列严重问题

  • 开发出来的软件往往与用户的需求有偏差
  • 往往在看到最终产品交付时,用户才真正明确自己的需求
  • 软件没有最终交付时用户如何了解开发进展的情况
  • 系统难以维护和扩展,经常重复开发类似功能
  • 开发团队内部使用了不同的技术,在交流时常常有障碍
  • 项目延期,实际成本高于高估成本

消除软件危机的途径

  • 正确认识软件
  • 加强管理
  • 使用软件工具

软件工程的定义

软件工程 = 管理 + 技术

软件工程的目标

初级目标:在预算内如期完成

高级目标:良好的结构,较好的可维护性,扩展性,通用性,扩展性,重用性

软件工程基本原理

分阶段的生命周期计划严格管理

坚持进行阶段评审

严格实行产品控制

……

  • 立项阶段(建设单位)
  • 系统分析和设计(设计单位)
  • 实现(施工单位)
  • 测试(单位合作)
  • 运行维护(维护人员)

软件开发生命周期

计划、设计、开发、运行维护 四大阶段

  • 问题定义
  • 可行性论证及其软件计划
  • 需求分析
  • 总体设计
  • 详细设计
  • 编码和单元测试
  • 综合测试
  • 运行/维护

练习题

一、 选择题

1.软件开发生命周期包括:(1)开发,(2)设计、(3)计划和(4)运行维护4个时期,其正确的执行顺序是( B )。

A. 1,2,3,4

B. 3,2,1,4

C. 2,3,4,1

D. 4,2,3,1

2、关于UML,下面说法正确的是( D )

A UML是一种面向对象的建模方法。

B UML是一种形式化的语言,使用UML建立的模型可被计算机编译执行。

C UML是一种面向对象的编程语言。

D UML是一种面向对象的建模语言,但不是建模方法。

二、简答题

1、请列举出至少四种常见的软件开发过程模型,并简述其核心思想,说明其优缺点。

(1)建造-修补模型

优点:项目完成速度快,设计编码过程简单,方便

缺点:没有开发文档,不利于后期维护,产品质量不能保证,进行维护相当困难,而且发生回归错误的机会也相当大

适用范围:适用于不用任何维护的小程序

(2)瀑布模型

核心思想:阶段性评审和验证

优点:每一阶段结束时都要给出完整文档(为项目提供按阶段划分的检查点)

缺点:缺乏灵活性,工作量繁琐,工期长(项目各个阶段之间极少有反馈,只有在项目生命周期后期才能看到结果)

适用范围:对于经常变化的项目而言,该模型不使用

(3)快速原型模型

核心思想:借用已有系统作为原型模型

优点:项目完成速度快(减少软件需求不明确带来的风险)

缺点:产品质量不会高(所选用的开发技术和工具不一定符合主流的发展,快速建立起来的系统结构加上连续的修改可能导致产品质量低下)

适用范围:需要迅速确定系统的基本需求,发现问题,消除误解,开发者与用户充分协调

(4)螺旋模型

核心思想:强调风险分析

优点:风险过大时能及时止损、开发出来的产品质量高(设计上灵活,可以在各个阶段变更。以小的分段构建大型系统,使成本计算变得简单容易,客户始终参与每个阶段的开发,保证项目不偏离正确方向及项目的可控性)

缺点:开发周期长,需要大量经费(建设周期长,经常出现软件开发完毕后与当前的技术水平有较大的差距,无法满足当前用户的需求问题)

适用范围:特别适合大型复杂系统,对于最近开发的项目,在需求不明确的情况下,便于风险控制和需求变更

(5)增量模型

核心思想:从核心(基本功能)开始开发

优点:用户可以跟进项目(增大投资的早期回报)

缺点:只是对构件迭代(要求开放的结构,可能退化为建造-修补模型)

适用范围:后期不确定因素很多的情况

(6)迭代模型

核心思想:渐进式模型

优点:每个环节都会迭代,风险更小,优化程度更高(降低了一个增量上的开发风险,如果开发人员重复某得迭代,损失的只有这一个迭代的花费)

缺点:开发周期长,需要大量经费(还未被广泛应用)

适用范围:适合于****用户需求容易有变化的高风险项目

(7)喷泉模型

核心思思:各开发步骤可以反复迭代,逐步深化

优点:各个阶段没有明显的界限,开发人员可以同步进行开发,可以提高软件的开发效率,节省开发时间

缺点:开发过程中需要投入大量的开发人员,因此不利于项目的管理。该模型要求严格管理文档,使得审核难度加大。随时可能加入各种信息、需求与资料的情况下,审核难度尤其大

适用范围:适合于面向对象的开发过程

2、什么是UML

(云记P43)UML:是统一建模语言(Unified Modeling Language)

这是一种通用的可视化面向对象的建模语言,适用于对任何面向对象的事物的建模。

3、什么是软件危机,软件危机的影响是什么

在计算机软件开发和维护过程中遇到的一系列严重问题

  • 开发出来的软件往往与用户的需求有偏差
  • 往往在看到最终产品交付时,用户才真正明确自己的需求
  • 软件没有最终交付时用户如何了解开发进展的情况
  • 系统难以维护和扩展,经常重复开发类似功能
  • 开发团队内部使用了不同的技术,在交流时常常有障碍
  • 项目延期,实际成本高于高估成本

4、结构化程序设计与面向对象的程序设计之间的关系

结构化程序设计是进行以 模块功能处理过程设计 为主 的 详细设计的 基本原则

面向对象技术是对计算机的结构化方法深入、发展和补充,在保障进行良好的计算机软件的需求设计的同时,也需要尽可能实现利用低成本来开发出高质量的应用软件的目标(面向对象的程序设计 的 设计原理)

面向对象出现以前,结构化程序设计是程序设计的主流,结构化程序设计又称为面向过程的程序设计。(面向对象的程序设计 的 设计优点)

三、 操作题

在自己的电脑上练习StarUML的安装和基本设置

image.png

标签:练习题,模型,面向对象,软件工程,设计,开发,软件,UML
来源: https://www.cnblogs.com/mllt/p/softwareC1.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有