精华内容
下载资源
问答
  • 软件工程概论
    2022-03-24 10:35:14


    1.1 软件危机

    1.1.1 软件危机

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

    软件危机的两个方面
    1.如何开发软件,以满足社会对软件日益增长的需求
    2.如何更有效地维护数量不断膨胀地已有软件

    软件危机的经典表现:
    1.对软件开发成本和进度的估计常常很不准确
    2.经常出现用户对“已完成”软件产品不满意的情况
    3.软件产品的质量往往达不到要求
    4.软件通常是很难维护的
    5.软件往往没有适合的文档资料
    6.软件成本在计算机系统总成本中所占比例逐年上升
    7.软件开发生产率提高的速度远远不能满足社会对软件产品日益增长的需求

    1.1.2 产生软件危机的原因

    客观原因:
    1.软件缺乏“可见性”,管理控制软件开发过程困难
    2.软件维护意味着修改原有设计,维护较难
    3.软件规模庞大,复杂度高

    主观原因
    1.忽视软件需求分析的重要性
    2.认为软件开发就是写程序
    3.轻视软件维护

    1.1.3 消除软件危机的途径

    1.树立对计算机软件的正确认识
    2.充分吸取借鉴人类工程项目的经验,研究更有效的开发技术和方法
    3.积极开发和使用计算机辅助软件工程(CASE)工具


    1.2 软件工程

    1.2.1 软件工程简介

    软件工程:指导计算机软件开发和维护的一门学科

    软件工程的目的:生产出能按期交付的、在预算范围内的、满足用户需求的、质量合格的软件产品

    软件工程的特性
    1.软件工程关注于大型程序的构造
    2.软件工程的中心课题是控制复杂性
    3.软件产品交付使用后仍然需要经常修改
    4.开发软件的效率非常重要
    5.开发人员和谐的合作是成功开发软件的关键
    6.软件必须有效地支持它的用户
    7.在软件工程领域中通常由具有一种文化背景的人替另一种文化背景的人开发此产品

    1.2.2 软件工程的基本原理

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

    1.2.3 软件工程方法学

    方法学(泛型):在软件生命周期全过程中使用的一整套技术方法的集合

    软件工程方法学三要素:
    1.方法,是完成软件开发各项任务的技术方法,回答“怎样做”的问题
    2.工具,是为运用方法而提供自动的或半自动的软件工程支撑环境
    3.过程,是为了过的高质量软件所需要完成的一系列任务的框架,规定了完成各项任务的工作步骤,回答“何时做”的问题

    1.传统方法学(结构化泛型)
    (1)采用结构化技术(结构化分析、结构化设计和结构化实现)完成软件开发的各项任务。
    (2)把软件生命周期分为若干个阶段,然后顺序完成各个阶段的任务
    (3)每个阶段的开始和结束都是严格的标准,对于任何两个相邻的阶段而言,前一阶段标准就是后一阶段的开始标准。
    (4)在每个阶段结束之前都必须正式地进行严格的技术审查和管理复查

    2.面对对象方法学(面对对象泛型)
    (1)用对象分解取代了传统发方法的功能分解
    (2)把所有对象都划分为类
    (3)对象彼此间仅能通过发送消息互相联系

    1.3 软件生命周期

    在这里插入图片描述
    软件定义时期的任务:
    1.确定软件开发工程的总目标
    2.研究该项目的可行性
    3.分析确定客户对软件产品的需求
    4.估算完成该项目所需的资源和成本
    5.制定工程进度表

    运行维护时期的任务:
    1.软件出错时,应该加以改正
    2.环境改变时,修改软件以适应新的环境
    3.用户有新需求时,应及时改进或扩充软件

    1.4 软件过程

    软件过程定义了运用技术放大的顺序、应该交付的文档资料、为保证软件质量和协调软件变化必须采取的管理措施,以及标志完成了相应开发活动的里程碑。
    通常使用生命周期模型概括地描述软件过程。生命周期模型规定了软件过程包含的各个阶段,以及完成这些阶段的顺序。

    1.4.1 瀑布模型(适合面向过程的软件工程)

    在这里插入图片描述

    一、阶段间具有顺序性依赖性
    顺序性:必须等前一阶段的工作完成后,才能开始后一阶段的工作
    依赖性:前一阶段的输出文档就是后一阶段的输入文档

    二、推迟实现的观点
    瀑布模型在编码前设置了系统分析与系统设计,主要考虑目标系统的逻辑模型
    清楚地区分逻辑设计和物理设计,尽可能推迟程序地物理实现

    三、质量保证的观点
    (1)每个阶段都必须完成规定的文档
    (2)每个阶段结束前都要对完成的文档进行评审,以便尽早发现问题,改正错误

    瀑布模型的主要优点如下:
    1.强迫开发人员采用规范的技术方法
    2.严格地规定了每个阶段必须提交的文档
    3.每个阶段结束前必须正式进行严格的技术审查管理复审

    瀑布模型的主要缺点是:
    1.在可运行的软件产品交付给用户之前,用户只能通过文档来了解未来的产品是什么样的。
    2.开发人员和用户之间缺乏有效的沟通,很可能导致最终开发出的软件产品不能真正满足用户的需求。

    1.4.2 快速原型模型

    在这里插入图片描述
    所谓快速原型模型是快速建立起来的可以在计算机上运行的程序,它所能完成的功能往往是最终产品能完成的功能的一个子集
    原型是软件开发人员与用户沟通的强有力工具,因此有助于所开发出的软件产品满足用户的真实需求。

    快速原型模型主要优点
    1.使用这种软件过程开发出的软件产品通常能满足用户的真实需求
    2.软件产品的开发过程基本上是线性顺序过程

    1.4.3 增量模型(渐增模型)

    在这里插入图片描述
    使用增量模型发发软件时,把软件产品作为一系列增量构件来设计、编码、集成和测试。每个构件由若干个相互协作的模块构成,并且能够完成相对独立的功能。

    增亮模型的主要优点
    1.能在较短的时间内向用户提交可完成部分工作的产品
    2.逐步增加产品功能,从而使用户有较充裕的时间学习和适应新产品,减少一个全新的软件给用户所带来的冲击

    这要求软件工程师有较高的技术水平

    1.4.4 螺旋模型

    在这里插入图片描述
    螺旋模型的基本思想是使用原型及其他方法尽量降低风险。理解这种模型的一个简便方法是把它看做在每个阶段之前都增加了风险分析过程的快速原型模型。
    螺旋模型所描述的软件过程主要适用于内部开发的大型软件项目。

    螺旋模型主要有以下优点:
    1.有利于已有软件的重用
    2.有助于把软件质量作为软件开发的一个重要目标。
    3.减少了过多测试或测试不足所带来的风险。
    4.软件维护与软件开发没有本质区别。

    要求软件开发人员有丰富的风险评估知识和经验

    1.4.5 喷泉模型

    在这里插入图片描述
    喷泉模型时典型的面向对象的软件过程之一
    “喷泉”体现了面向对象软件开发过程迭代无缝的特性。

    1.4.6 Rational 统一过程

    Rational 统一过程是由 Rational 软件公司推出的一种完整而且完美的软件过程。

    Rational 统一过程(RUP)充分体现了下述6条开发经验
    1.采用迭代方式开发软件。
    2.在软件开发的全过程中有效地管理需求
    3.使用基于构件的软件体系结构。
    4.建立软件产品的可视化模型
    5.在软件开发的全过程中严格地验证软件质量
    6.控制软件变更

    在这里插入图片描述
    RUP软件开发生命周期是一个二维的生命周期模型,如图所示。图中纵轴代表核心工作流程,横轴代表时间(划分成4个阶段)。
    RUP强调用迭代递增的方式来开发软件。
    RUP循环遍历多次软件生命周期。每次循环都经历一个完整的软件生命周期,每次循环结束都向用户交付软件产品的一个可运行的版本。

    1.4.7 敏捷过程 与 极限编程

    根据下述4个价值观提出的软件过程统称为敏捷过程。
    1.开发人员的素质及相互间的交互与协作比过程和工具更重要。
    2.可以工作的软件比面面俱到的文档更重要。
    3.与客户的合作比合同谈判更重要。
    4.及时响应变化比死板地遵循计划更重要。

    **极限编程(XP)**是最著名的敏捷过程,其名称中“极限”二字的含义是指把有效的软件开发实践运用到极致。
    在这里插入图片描述

    在这里插入图片描述

    1.4.8 微软过程

    在这里插入图片描述
    微软过程把软件生命周期划分为5个阶段:
    1.策划阶段
    2.设计阶段
    3.开发阶段
    4.稳定阶段
    5.发布阶段

    微软过程的每一个生命周期发布一个递进的软件版本,各个生命周期持续、快速地迭代循环。
    在这里插入图片描述

    更多相关内容
  • 这是博主整理的《软件工程导论》期末复习知识点总结,适合期末复习使用。PDF共21页,内容非常详细清晰,欢迎下载学习。
  • 本文主要讲述了通过软件工程导论的用力模型建模的过程,由艾孜尔江·艾尔斯兰亲自实践并执笔撰著,后续仍有更新,尽情关注! 软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它...
  • 软件工程导论
  • 软件工程导论教学大纲,用于本科生教学。含理论课、实验课大纲及课程考核设计,全面、实用。
  • 软院17级老学长一枚,深知考试前找资料的痛苦,特地整理了一...本软件工程导论课程资料包括:往年真题、慕课题解、网传题库、往年级传下来的题库资料等等。资料较多,大家可以选择性学习,祝大家取得一个好成绩!!!
  • 注意:请使用Mindmaster软件打开.emmx文件进行阅读 面向用户:软件工程专业在读本科生,软件工程初学者,考研者
  • 西北工业大学软件学院软件工程导论
  • 第一章 第一章 一什么就是软件危机它有哪些典型表现为什么会出现软件危机 一什么就是软件危机它有哪些典型表现为什么会出现软件危机 软件危机就是指在计算机软件开发使用与维护过程中遇到得一系列严重问题与难题它...
  • 软件工程导论课程设计(完整,详细)
  • 软件工程导论课件(全)张海藩
  • 实验一:需求分析 17页 实验二:数据库设计 32页 实验三:软件设计 18页
  • 适合软件工程专业的同学进行自己学习,不用花钱买教材。
  • 软件工程导论期末复习总结,自己认为比较重要的内容。软件工程导论期末复习总结,自己认为比较重要的内容。软件工程导论期末复习总结,自己认为比较重要的内容。软件工程导论期末复习总结,自己认为比较重要的内容。...
  • 机票预订系统,能录入旅客的信息(姓名、身份证号码、时间、目的地等),根据旅客需求查询和安排航班。
  • 软件工程导论复习重点总结很全(第六版)
  • 软件工程导论学习辅导.zip
  • 第五章 习题答案 1 为每种类型的模块耦合举一个具体例子 答耦合是对一个软件结构内不同模块之间互连程度的度量耦 合强弱取决于模块间接口的复杂程度 进入或访问某一模块的点以 及通过接口的数据一般模块之间可能的...
  • 软件工程导论》(第6版)1-13章课后习题答案
  • 适合考试期末考复习资料、考研初试复试材料
  • 软件工程概论2.pdf

    2021-10-01 11:09:20
    软件工程概论2.pdf
  • 软件工程导论

    2020-12-17 23:17:23
    21世纪人才最珍贵的就是能力素质,我们为你提供了最实用软件工程导论,欢迎大家下载软件工程导论参考使用...该文档为软件工程导论,是一份很不错的参考资料,具有较高参考价值,感兴趣的可以下载看看
  • 东北大学软件学院软件工程导论课件
  • 软件工程导论习题答案.pdf
  • 课后习题答案
  • 软件工程复习资料.rar,软件工程复习资料,软件工程1.docx,软件工程2.docx,软件工程3.docx,重点复习内容.pdf,软件工程6.docx,软件工程4.docx,软件工程知识点整理.pdf,软件工程5.docx
  • 答案很全,共29页 1.1 举出你所知道的应用软件的例子。 办公软件、游戏软件、财务软件、银行软件、人事管理软件、工资管理软件、学籍管理软件等。
  • 2012年江西师范大学864软件工程导论考研试题.pdf
  • 完整的13章官方原版软件工程导论PPT,张海藩版本

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 21,149
精华内容 8,459
关键字:

软件工程概论