《系统分析与设计》___Homework1


1、软件工程的定义

      ~~~~~      软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。

2、解释导致 software crisis 本质原因,表现,述说克服软件危机的方法

      ~~~~~      软件危机的本质原因在于落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列严重问题,再加上用户需求不明确,缺乏正确的理论指导,软件开发规模越来越大,软件开发复杂度越来越高等等因素也大大提高了软件危机的发生。
主要表现在这几个方面:
1.软件开发进度难以预测,再加上拖延工期几个月甚至几年的现象并不罕见,这种现象降低了软件开发组织的信誉。
2.软件开发成本难以控制,实际成本比预算成本高出一个数量级,这种情况出现的很多。
3.为了赶进度和节约成本所采取的一些权宜之计又往往损害了软件产品的质量,从而不可避免地会引起用户的不满。
4.开发人员和用户之间很难沟通、矛盾很难统一。往往是软件开发人员不能真正了解用户的需求,而用户又不了解计算机求解问题的模式和能力,双方无法用共同熟悉的语言进行交流和描述。
5.在双方互不充分了解的情况下,就仓促上阵设计系统、匆忙着手编写程序,这种"闭门造车"的开发方式必然导致最终的产品不符合用户的实际需要。
6.软件产品难以维护,软件产品本质上是开发人员的代码化的逻辑思维活动,他人难以替代。除非是开发者本人,否则很难及时检测、排除系统故障。
~~
那么有哪些方法可以克服上面所提到的这些难题呢?
1.在软件开发过程中研制和使用软件工具,用以辅助进行软件项目管理与技术生产,还将软件生命周期各阶段使用的软件工具有机地集合成为一个整体,形成能够连续支持软件开发与维护全过程的集成化软件支援环境,以期从管理和技术两方面解决软件危机问题。
2.软件标准化与可重用性尽量避免重用劳动,一定程度上缓解软件危机的出现。

3、软件生命周期

软件生命周期是软件的产生直到报废或停止使用的生命周期。
软件生命周期几个常见的模型有:瀑布模型、V-W模型、快速应用开发模型、原型模型、增量/演化/迭代模型、螺旋模型、喷泉模型、基于构件的开发模型、Rational统一过程模型。
一般软件生命周期经历:计划、分析、设计、编码、测试、运行、维护。
下面我们来看看几个常见的模型流程图:

  • 瀑布模型
    在这里插入图片描述
  • V模型在这里插入图片描述
  • W模型在这里插入图片描述
  • 原型模型
    在这里插入图片描述

4、SWEBoK 的 15 个知识域(An Overview of the SWEBOK Guide 请中文翻译其名称与简短说明)

1.软件需求

      ~~~~~      软件需求是(1)用户解决问题或达到目标所需条件或权能(Capability)。 (2)系统或系统部件要满足合同、标准、规范或其它正式规定文档所需具有的条件或权能。 (3)一种反映上面(1)或(2)所述条件或权能的文档说明。它包括功能性需求及非功能性需求,非功能性需求对设计和实现提出了限制,比如性能要求,质量标准,或者设计限制。

2.软件设计

      ~~~~~      软件设计是从软件需求规格说明书出发,根据需求分析阶段确定的功能设计软件系统的整体结构、划分功能模块、确定每个模块的实现算法以及编写具体的代码,形成软件的具体设计方案。

3.软件构造

      ~~~~~      软件构造是一系列相关的抽象模式,用于指导大型软件系统各个方面的设计。各个组件之间的连接则明确和相对细致地描述组件之间的通讯。在实现阶段,这些抽象组件被细化为实际的组件,比如具体某个类或者对象。在面向对象领域中,组件之间的连接通常用接口_(计算机科学)来实现。

4.软件测试

      ~~~~~      描述一种用来促进鉴定软件的正确性、完整性、安全性和质量的过程。换句话说,软件测试是一种实际输出与预期输出之间的审核或者比较过程。软件测试的经典定义是:在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。

5.软件维护

      ~~~~~      软件维护(Software maintenance)是一个软件工程名词,是指在软件产品发布后,因修正错误、提升性能或其他属性而进行的软件修改。

6.软件配置管理

      ~~~~~      软件配置管理(Software Configuration Management,SCM)是一种标识、组织和控制修改的技术。软件配置管理应用于整个软件工程过程。在软件建立时变更是不可避免的,而变更加剧了项目中软件开发者之间的混乱。SCM活动的目标就是为了标识变更、控制变更、确保变更正确实现并向其他有关人员报告变更。从某种角度讲,SCM是一种标识、组织和控制修改的技术,目的是使错误降为最小并最有效地提高生产效率。

7.软件工程管理

      ~~~~~      软件工程管理是对软件项目的开发管理。换句话说就是对整个软件生命周期的一切活动进行管理。

8.软件工程过程

      ~~~~~      软件工程过程是将用户需求转化为软件所需的软件工程活动的总集。这个过程可能包括投入、需求分析、规格说明、设计、实施、验证、安装、使用支撑和文档化,还可能包括短长期的修复和升级以满足用户增长的需求。

9.软件工程模型和方法

      ~~~~~      软件工程模型也称软件开发模型。它是指软件开发全部过程、活动和任务的结构框架,通过该模型能清晰、直观地表达软件开发全过程,明确地规定要完成的主要活动和任务,它奠定了软件项目工作的基础。
软件工程方法为软件开发提供了 “如何做” 的技术,软件工具为软件工程方法提供了自动的或半自动的软件支撑环境。

10.软件质量

      ~~~~~      软件质量是“反映实体满足明确的和隐含的需求的能力的特性的总和”。具体地说,软件质量是软件符合明确叙述的功能和性能需求、文档中明确描述的开发标准、以及所有专业开发的软件都应具有的和隐含特征相一致的程度。从管理角度对软件质量进行度量, 可将影响软件质量的主要因素划分为三组,分别反应用户在使用软件产品时的三种观点:正确性、健壮性、效率、完整性、可用性、风险(产品运行);可理解性、可维修性、灵活性、可测试性(产品修改);可移植性、可再用性、互运行性(产品转移)。

11.软件工程职业实践

      ~~~~~      软件工程职业实践是每一个软件工程师都具备软件工程专业应具备的专业知识的情况下进行做一些实际的问题,运用所学的知识去解决、完成一些这方面的问题的一个实践过程。

12.软件工程经济学

在软件开发、运行和维护全过程中,为满足用户的成本、质量、时间、效益需求而采用的工程经济方法的全体称为软件工程经济学。

13.计算基础

      ~~~~~      计算基础涵盖了为软件工程实践提供必要计算背景的基本主题。所涵盖的主题包括问题解决技术、抽象、算法和复杂性、编程基础、并行和分布式计算基础、计算机组织、操作系统和网络通信。

14.数学基础

      ~~~~~      数学基础涵盖了为软件工程实践提供必要数学背景的基本主题。所涉及的主题包括集合、关系和函数,基本命题和谓词逻辑,证明技术,图和树,离散概率,语法和有限状态机,以及数论。

15.工程基础

      ~~~~~      工程基础涵盖了为软件工程实践提供必要工程背景的基本主题。涵盖的主题包括经验方法和实验技术,统计分析,测量和度量,工程设计,模拟和建模,以及根本原因分析。

5、简单解释 CMMI 的五个级别

1.初始级:工作方式处于救火的状态,不断的应对突如其来的危机。
2.受管理级:需求管理,项目策划,项目监督和控制,供方协定管理,测量和分析,过程和产品质量保证,配置管理。
3.已定义级:需求开发,技术解决,产品集成,验证,确认,组织过程聚焦,组织过程定义,组织培训,集成项目管理,风险管理,决策分析和决定。
4.定量管理级:组织过程性能,定量项目管理,通过以下工作实现过程制度化。
5.持续优化级:组织革新和部署,原因分和决定。

6、用自己语言简述 SWEBok 或 CMMI

那我大概地讲一下自己对CMMI的理解吧。
      ~~~~~      CMMI全称是Capability Maturity Model Integration(是软件能力成熟度集成模型),这个模型是由卡耐基梅隆大学、美国国防部、美国国防工业协会共同研制的。研制这个模型的目的是为了帮助软件企业对软件工程过程进行管理和改进,增强开发与改进能力,从而能按时地、不超预算地开发出高质量的软件。CMMI为改进一个组织的各种过程提供了一个单一的集成化框架,新的集成模型框架消除了各个模型的不一致性,减少了模型间的重复,增加透明度和理解,建立了一个自动的、可扩展的框架。因而能够从总体上改进组织的质量和效率。CMMI主要关注点就是成本效益、明确重点、过程集中和灵活性四个方面。所以这个模型对于现在的软件企业以及国家层面的一些软件开发工程来说非常重要的,软件工程管理、开发等方面解决了不少的难题,提高了工程的效率,节约成本。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值