![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
软件工程课程
文章平均质量分 91
StuG_III
XD
展开
-
第十三章 - 软件过程管理与改进
定义软件企业组织需要建立一个统一的、明确定义的组织级软件过程,使得所有的项目遵照执行,同时在实用执行中不断地改进和完善组织级过程体系。CMMI是一个企业级的软件开发过程模型和质量标准,提供了一个组织级的管理模型、标准、改进框架。软件过程框架形成一个包含CMMI、PSP和TSP三者的严密的整体, 本章重点阐述以此为基础的组织级的软件过程体系。能力成熟度模型/CMMI与过程改进(*)由卡内基梅隆大学软件工程研究所(SEI)负责研发,并形成了一套系统的评估标准,也为软件公司提供了认证的标准和路线原创 2021-03-11 15:51:38 · 364 阅读 · 0 评论 -
第十二章 - 软件项目级管理
软件配置管理软件配置管理(Software Configuration Management,SCM)是一种标识、组织和控制修改的技术,贯穿于整个软件生命周期。版本管理版本管理主要包括两个方面的工作:一方面要规范化不同开发人员之间的合作方式,必须能够保证一个人的工作不会被其它人意外的覆盖;另一方面是要确保每个人工作的对象是当前需要的版本而且能够为后续开发提供基础。累进式的开发过程可能随时有一些新想法和实现,但随后又被抛弃掉,这就需要有方便回到先前工作状态的机制。版本管理系统的核原创 2021-03-11 15:33:00 · 358 阅读 · 0 评论 -
第十一章 - 软件测试
重点在软件度量和测试方法上测试技术(分类、 策略)软件测试定义使用人工或自动的手段来运行或测定某个软件系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。软件测试通常被认为只是开发后期的一次性活动,但实际上,应该与整个开发流程紧密地融为一体。敏捷思想的普及使软件测试得到了前所未有的重视,它也是项目成功必不可少的基石。测试用例(Test Case)是为某个特殊的测试目标而编制的一组测试输入、执行条件及预期结果,以便测试某个程序路径或核实软件是否满足某个特定需求。.原创 2021-03-11 14:36:51 · 541 阅读 · 0 评论 -
第十章 - 交互设计
交互设计定义软件的可用性决定了整个项目的成与败,即使一个在功能上正确的软件但不具备直观的可操作性,通常用户也是很难接受的。本章针对可用性、可操作性等概念进行介绍性的讲解,以使人们能够在某种程度上对它们进行理解并能够对其进行验证。首先对可用性的背景从不同方面进行了概述,然后逐步细化的讨论了可用性需求的形成及其描述,最后给出对可用性进行验证的方法。主要考虑广泛使用的ISO 9241中的110部分。110对话原则:任务适合性交互系统在支持用户完成任务时应适合任务,即功能和对话是基于任务特征,而不原创 2021-03-11 13:46:41 · 354 阅读 · 0 评论 -
第九章 - 实现技术
不要求写程序, 但要能看懂程序总的来说,这章没啥重点,看起来比较轻松(主要是分布式的内容在OS中讲过)实现技术的定义实现阶段的一个首要任务就是构造合适的程序架构以使得所有的用户需求能够在未来的系统中得到满足和体现。从设计到代码的转换过程不仅具有针对算法过程的实现,同时还要考虑到每个具体项目的 约束条件。与实现相关的关键技术:数据管理策略和方法、数据持久化、XML、领域特定语言(DSL)、模型驱动架构(MDA)、重构(Refactoring)等。非功能性需求的实现由于非功能性需求涉及的.原创 2021-03-11 13:41:00 · 1038 阅读 · 0 评论 -
第八章 - 设计优化
设计的“味道(smell)”/软件异味僵化性:隐藏的设计关联性导致对文档或代码进行小的修正却埋下了不可预期的隐患,这将导致系统的改动困难重重。脆弱性:在进行一个改动时,可能会导致程序许多没有概念关联的地方出现问题。顽固性:分离设计中包含的有价值的部分并进行重用的付出和风险是巨大的。粘滞性:在添加新功能时只是在现有代码的基础上拼凑代码,不愿意也不敢去触碰现有代码,不对代码重构,导致原有设计的破坏和退化。不必要的复杂性:设计人员预测需求的变化,为过多的可能性做准备,致使设计含有了绝不会用到的内容,无原创 2021-03-11 13:20:46 · 638 阅读 · 0 评论 -
第七章 - 类的详细设计
该部分在实际应用中很重要,当然考试也将其作为重点内容进行考察。详细设计的定义详细设计是以概要设计说明书作为基础,完成各模块的算法设计、用户界面设计以及数据结构设计的细化等。对于开发者来说详细设计的主要工作就是在每个类的方法中补充对应的业务实现。类中方法的设计,使用状态图对类的行为,使用OCL对类的实现细节进行准确定义。详细设计的主要活动为每个模块进行详细的算法设计。用某种图形、表格、语言等工具将每个模块处理过程的详细算法描述出来。为模块内的数据结构进行设计。对于需求分析、概要设计确定.原创 2021-03-11 11:21:29 · 5164 阅读 · 0 评论 -
第六章 - 代码生成
个人认为全章都是重点正向工程/逆向工程代码生成考虑设计方案向实际运行方式的转变过程,即由概要设计产生出对应的程序代码框架的过程。工程化的设计方法将导致程序代码具有更好的可实现性、更好的可维护性和可修改性以及更好的可扩展性。先对类图到可运行程序的基本转换过程进行概要的说明,然后考虑对其优化和细化的过程。逆向工程逆向工程的作用是将代码的修改反向映射回类图的设计中,从而在设计与代码实现之间保证一致性。逆向工程的一种特殊的情况是设计图纸完全由代码生成。逆向工程使得所有的开发都可以在CAS.原创 2021-03-10 23:51:55 · 203 阅读 · 0 评论 -
第五章 - 类的分析与设计
定义对未来系统的功能进行总体上的概括并使用UML的类图进行表达。在开始阶段粗略的对模型进行构建,后续再通过迭代逐级具体化,是一个逐步求精的设计过程。初始类图要覆盖所有需求的功能,并通过优化尽量保持业务结构的稳定,然后通过修订和丰富细节逐渐过渡到详细设计,并最终转化为成功的物理实现。基本类的确定设计阶段的主要任务是从需求分析阶段的规格说明出发,对系统进行模型表示并优化。面向对象的概要设计首先寻找系统中参与业务处理的对象和类。然后使用类图(Class Diagram)将系统中不同的类抽象出来原创 2021-03-10 17:05:21 · 5080 阅读 · 0 评论 -
第四章 - 软件架构的构建
定义软件架构也称为软件体系结构。软件架构为软件系统提供了一个结构、行为和属性的高级抽象,由构成系统的元素的描述、这些元素的相互作用、指导元素集成的模式以及这些模式的约束组成。软件架构不仅指定了系统的组织(Organization)结构和拓扑(Topology)结构,并且显示了系统需求和构成系统的元素之间的对应关系,提供了一些设计决策的基本原理。软件架构的“4+1”视图模型如何表示软件架构,即如何对软件架构建模。根据建模的侧重点不同,可以将软件架构的模型分为五种:结构模型、框架模型、动态模型原创 2021-03-10 14:53:27 · 502 阅读 · 0 评论 -
第三章 - 需求分析
需求分析定义需求分析的目标就是搞清楚用户真正想要的系统是什么以及存在哪些约束条件。需求分析是软件开发的输入,“垃圾入,垃圾出”,所谓“失之毫厘,谬以千里”。需求分析的挑战:分析人员借助各种手段熟悉、了解和掌握相关的业务领域,解决方案需要经过思考和分析每个人包括领域专家们对于系统的全局都是一个局部,很难预知哪些领域信息会对以后的开发产生影响客户的想法毫无征兆的变化用户需求与系统需求由客户为主导制定的需求文档称为用户(业务)需求由开发者为主导制定的需求文档称为系统需求系统需求是对原创 2021-03-09 22:55:49 · 2847 阅读 · 0 评论 -
第二章 - 软件开发过程
软件生命周期与开发过程软件开发过程(software development process)又叫做软件开发生命周期(software development life cycle, SDLC),是软件产品开发的任务框架和规范,又可以简单的称为软件生命周期及软件过程。可重复的、可预测的过程能够提升软件生产的效率和质量。(过程改进)生命周期是软件开发的宏观上的框架,软件过程则涉及到软件开发的流程等管理细节,在框架稳定的前提下允许对软件过程进行裁剪。4种不同类型的生命周期:顺序式、迭代式、增量式以及敏原创 2021-03-09 15:52:44 · 808 阅读 · 1 评论 -
第一章 - 软件工程概述
软件危机软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。原因:技术原因(软件规模,复杂度),管理原因(缺乏理论指导过分依靠个人,对用户需求没有完整准确的认识)如何克服软件危机 :软件工程消除软件危机的途径对计算机软件正确认识。推广使用开发软件成功的技术和方法,研究探索更好更有效的技术和方法,消除错误概念和做法。开发和使用更好的软件工具。对于时间、人员、资源等需要引入更加合理的管理措施。软件工程正是从技术和管理两方面研究如何更好地开发和维护计算机软件的一门新兴学科。原创 2021-03-09 10:54:33 · 238 阅读 · 1 评论