软件工程作业一

发布 2021-05-05 19:15:28 阅读 2447

软件与其他工程学科所产生的制品有什么根本的区别?

1、首先,软件是人类思维和智能延伸的产物,其数据、状态和逻辑关系的组合以及人类思维的复杂性和不确定性导致它本身具有极高的复杂性;

2、软件是不可见的,是抽象的、逻辑化和形式化的。

3、软件还具有可变性,有用的软件需要不断地修改和扩展,但是频繁的修改可能导致软件的退化。

4、软件的开发在很大程度上依然是手工作坊的,难以实现工程化的生产。

2. 软件工程是以系统的、可控的、有效的方式产生高质量的软件,请说明你对“高质量软件”含义的理解。

软件质量是软件产品与明确的和隐含的需求相一致的程度,它通常由一系列的质量特性来进行描述,包括正确性、可靠性、有效性、可用性、复用性、可维护性、可移植性等。例如,除了要求软件正确运行之外,人们可能还希望软件运行的响应时间符合要求、软件使用方便快捷、程序**易于理解等,而“程序**易于理解”往往是一种用户没有明确提出的需求,但却是影响软件演化的重要因素。

软件质量是比较主观的,不同的人有不同的看法,不同的人有不同的影响.而这不同的客户包括:最终用户,客户验收的测试员,客户交流的主管,客户管理者,开发公司.对于用户来说的软件质量是比较常用的软件质量。这里的软件质量是指软件的性能,软件的易用性,健壮性,兼容性,安全性以及配套的的软件文档等。

概括地说,软件质量就是“软件与明确地和隐含地定义的需求相一致的程度”。具体地说,软件质量是软件符合明确叙述的功能和性能需求、文档中明确描述的开发标准、以及所有专业开发的软件都应具有的隐含特征的程度。

影响软件质量的主要因素,这些因素是从管理角度对软件质量的度量。可划分为三组,分别反应用户在使用软件产品时的三种观点。正确性、健壮性、效率、完整性、可用性、风险(产品运行);可理解性、可维修性、灵活性、可测试性(产品修改);可移植性、可再用性、互运行性(产品转移)。

那什么才是一个高质量的软件呢?高质量的软件应具有以下特性:

1、满足用户的需求。这是最重要的一点,一个软件如果不能够满足用户的需要,设计的再好,采用的技术再先进,也没有任何的意义。所以这一点非常的朴实,但却是软件质量的第一个评判标准。

2、合理进度、成本、功能关系。软件开发中所有的管理都是围绕着这几个要素在做文章的,如何在特定的时间内,以特定的成本,开发出特定功能的软件。三者之间存在一种微妙的平衡。

在planning xp一书中,专门有一个章节讨论它们。一个高质量的软件的开发过程中,项目成员一定能够客观的对待这三个因素,并通过有效的计划、管理、控制,使得三者之间达成一种平衡,保证产出的最大化。

3、具备扩展性和灵活性,能够适应一定程度的需求变化。当今的社会已经变成一种变化速度极快的设计了。变化就会对软件产生冲击,所以一个质量优秀的软件,应该能够在一定程度上适应这种变化,并保持软件的稳定。

4、能够有效的处理例外的情况。写过软件的人都知道,实现主体功能的工作量其实不大,真正的工作量都在处理各种例外。所以,一个软件如果能够足够的强壮、足够的鲁棒,能够承受各种的非法情况的冲击,这个软件就是高质量的。

5、保持成本和性能的平衡。性能往往**于客户的非功能需求,是软件质量的一个重要的评价因素。但是性能问题在任何地方都存在,所以需要客观的看待它。

例如,一段性能不错的**可能可读性很差,这就需要进行平衡,如果这段**的性能是整个软件的关键,那么取高性能而舍弃可读性,反之则取可读性而舍弃高性能。一个优秀的软件能够保持成本和性能之间的平衡。

6、能够可持续的发展。很少有软件组织只开发一个软件的,所以,一个优秀的软件在开发完成后,可以形成知识沉淀,为软件组织的长期发展贡献力量。这是一个优秀的软件应该要能够做到的。

3. 有人认为“软件工程”过于耗费时间,并且妨碍开发人员的编程效率。”你是否认同这种观点?请阐述理由。

答案要点:这一观点是不正确的。

软件开发远只是编程,管理不当导致的混乱、工作重复、交流不畅等才是大多软件项目效率低下的主要原因。虽然直接编程在开发前期看来效率高,但是不完整的、不清晰的或错误的需求和设计将导致在开发后期反复地修改程序,反而降低了整个开发效率,其质量也无法保证,甚至导致软件开发最终失败的结果。

软件工程是帮助人们在有限的时间、金钱预算和人力、物力资源的约束下开发出质量尽量高的软件的一系列理论和工具,虽然它在编程之外的工作上花费了大量的时间,但所耗费的时间与精力并不像其表面上所看起来的那样冗余与低效,而是从总体上做好整个体系的设计与把握,全方位地规划开发过程,对节省成本、提高效率、保证最终产品质量起到了事半功倍的作用。

软件工程的意义。

2023年,standish group针对系统开发成功的研究表明,所有的开发项目中有32%的项目在它们结束之前被中止。此外多于一半的软件项目花费的成本相当于原来预算的2倍。只有42%的软件项目完成时达到了预期的范围和功能,事实上,许多系统只完成了部分预期的需求。

因此,软件的开发是一个很困难的活动,要求很仔细的计划和执行。

软件工程就是在这样的背景下,由许多计算机科学家经过多方面的探索和总结而成形的。目前发展十分迅速近二十年来计算机软件已经成为现代科学研究和解决工程问题的基础,以及管理部门,生产部门,和服务行业中的关键因素,渗透到了各个领域,成为当今世界不可缺少的一部分。

展望二十一世纪,软件仍将成为驱动任何事情从基础教育到遗传工程取得新进展的动力。

学习研究工程化的软件开发方法,使开发过程更加规范。

软件工程(software engineering)的框架可概括为:目标、过程和原则。

(1)软件工程目标:生产具有正确性、可用性以及开销合宜的产品。正确性指软件产品达到预期功能的程度。

可用性指软件基本结构、实现及文档为用户可用的程度。开销合宜是指软件开发、运行的整个开销满足用户要求的程度。这些目标的实现不论在理论上还是在实践中均存在很多待解决的问题,它们形成了对过程、过程模型及工程方法选取的约束。

(2)软件工程过程:生产一个最终能满足需求且达到工程目标的软件产品所需要的步骤。软件工程过程主要包括开发过程、运作过程、维护过程。

它们覆盖了需求、设计、实现、确认以及维护等活动。需求活动包括问题分析和需求分析。问题分析获取需求定义,又称软件需求规约。

需求分析生成功能规约。设计活动一般包括概要设计和详细设计。概要设计建立整个软件系统结构,包括子系统、模块以及相关层次的说明、每一模块的接口定义。

详细设计产生程序员可用的模块说明,包括每一模块中数据结构说明及加工描述。实现活动把设计结果转换为可执行的程序**。确认活动贯穿于整个开发过程,实现完成后的确认,保证最终产品满足用户的要求。

维护活动包括使用过程中的扩充、修改与完善。伴随以上过程,还有管理过程、支持过程、培训过程等。

(3)软件工程的原则是指围绕工程设计、工程支持以及工程管理在软件开发过程中必须遵循的原则。

正是由于这些的存在,软件工程才成为了软件开发必不可少的一部分。

《软件工程》作业一

软件工程 作业一。得分。一。填空题 在括号内填入正确答案 每空2分,共18分 1.软件工程学的内容可包括结构环境。管理。规范等。2.软件生存周期一般可分为问题定义设计测试。运行与维护阶段。3.可形性研究的目的是。4.系统流程图是的传统工具。二。判断题 正确的用 表示,错误的用 x 表示 每题2分,共...

软件工程作业一

作业一。根据以下内容描述,结合自己的经验 知识,完成以下各题。作业以word文档的方式提交到网盘。用画图软件画图后粘贴到word中。网盘名 usxjsj 21cn 密 jsj311 假设某学校的请假流程为 学生填写请假单 请假单实体如下图所示 班主任审批 请假单要交给任课教师 辅导员可对请假单进行汇...

软件工程作业

题目4 operating systems 操作系统 我们通过移动时代最流行的两大操作系统来分析他们的特点。谷歌 andriod 苹果 ios 日前,市场调研机构发布了 2017 年第一季度智能 踪报告,通过该报告我们了解到,苹果依然是目前全球第二大智能手机厂商,具备ios的iphone 所占的市场...