《软件工程课程总结.doc》由会员分享,可在线阅读,更多相关《软件工程课程总结.doc(25页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-date软件工程课程总结软件工程课程总结课程总结本课程是一门介绍应用软件开发的概述性的课程,系统讲授了应用软件的相关开发过程,和所应用的技术。课程讲授了9章的内容,包括产品、软件工程与软件过程,软件需求工程、分析建模、设计工程、软件体系结构设计、用户界面设计、构件级设计和软件测试技术等。1、软件产品 计算机软件是一种特殊的逻辑产品,其为在计算机上运行的各种程序、数据及其说明程
2、序的各种文档;软件承担着双重角色,软件是一个产品,同时又是产品交付使用的载体;软件是逻辑的而不是有形的,软件是基于计算机的系统元素,因此软件具有与硬件完全不同的特征;软件产品有着特有的产品分类方法;在计算机软件开发中所遇到的一系列无法完全解决的问题,导致了软件危机或软件苦恼的产生;在软件开发过程中,由于软件产品开发的特性导致了一些神话的产生,这些软件神话误导了人们,对软件项目管理者、客户和开发人员都带来了严重的问题,了解相关情况可以使我们能以正确的态度对待软件开发工作;由于软件产品的特殊性,软件工程从业人员的职业道德和行为准则显得更加重要。2、软件工程与软件过程 软件工程是由有创造力的、有组织
3、的人在定义成熟的软件过程中进行的,该过程适合于软件开发人员建造的产品和产品的市场需求;软件工程的定义:建立和使用一套合理的工程原则,以便获得经济的软件,这种软件是可靠的,可以在实际机器上高效地运行。软件工程过程是一个为建造高质量软件所需要完成的任务的框架,是建造软件产品的一组活动及其结果。通用过程框架目的:交流-项目启动、需求获取及其任务集合计划-项目评估、进度安排、项目跟踪等建模-分析模型和设计模型构造-代码生成和软件测试部署-产品交付、技术支持、用户反馈等及其相应的任务集合。3、软件工程过程模型,是指能够覆盖软件工程的过程、方法和工具以及软件工程的一般阶段的开发策略。过程模型的选择待建造软
4、件的特点、所采用的方法与工具、以及需要的控制和交付的产品。瀑布模型,增量过程模型增量模型、RAD模型,演化过程模型原型模型、螺旋模型,面向对象软件工程过程模型统一软件开发过程。4、需求工程 基于计算机的系统工程:在了解系统之前,匆忙建造技术元素,无疑将导致使客户失望的错误。在关注树木之前,先了解森林;基于计算机的系统:元素的集合或排列,这些元素在一起通过处理信息完成某些预定义的目标;系统元素软件、硬件、人员、数据库、文档和规程;启动一个系统工程 发现领域过程、领域分析、识别协作系统、发现系统需求、将结果提交给客户;系统建模:评估系统构件及其相互关系。5、软件工程实践 理解问题(交流和分析)、计
5、划解决方案(计划与建模软件设计);实施解决方案(构造代码生成);检查结果的精确度(构造成部暑软件测试、质量保证、用户技术支持)6、软件需求收集与分析 构建一个软件系统最困难的部分是确定构建什么。其他的软件开发工作,不会像这部分工作一样,在出错之后如此严重地影响随后实现和系统,并且导致在以后进行的修补会如此困难;“我知道你相信你已经理解了你认为我所说的内容,但是我并不能肯定你已认识到你所听到的并不是我所想要的”。7、软件需求分析的工作活动 起始建立对拟开发软件(待解决的问题)的基本理解 导出问题的范围、问题的理解、问题的变化; 精化开发精确的技术模型,说明软件的功能、行为和约束 协商确定合理的系
6、统目标和需求优先级 规格说明给出对软件系统功能和性能的描述,给出影响系统开发的约束; 确认 需求管理8、软件的需求诱导需求诱导原则 需求定义需求是关于系统(软件系统)将要完成什么工作的一段描述语句,它们必须经过所有相关人员的认可,其目的是彻底解决客户的问题; 需求诱导原则(与客户的交流沟通活动)倾听、有准备的沟通、需要有人推动、最好当面沟通、记录所有决定、保持通力协作、聚焦并协调话题、采用图形表示、继续前进原则、谈判双赢原则; 软件需求的过程启动首次提问、一组加深理解并使客户能够表达其关于解决方案的感觉的问题、关于效率的“元”问题。9、软件需求的导出 质量功能部署正常的需求、期望的需求、令人兴
7、奋的需求。 功能性需求和非功能性需求功能性需求,描述系统为用户或其他系统提供的服务;非功能性需求,系统开发过程必须遵守的约束 。10、用户场景与分析建模用户场景(usecase)构建分析模型数据模型、功能模型、行为模型11、需求确认与规约12、分析建模分析建模使用文档和图表形式的组合,以相对容易理解的方式描绘数据、功能和行为的需求,并直接评审其正确性、完整性、一致性。分析建模原则:原则1:必须描述和理解问题的信息领域原则2:必须定义软件将实现的功能 原则3:作为外部事件的结果,必须描述软件的行为原则4:描述信息、功能和行为的模型必须通过问题的划分,以层次的方式揭示细节原则5:分析过程应从要素信
8、息移向实现细节13、分析建模的任务集合评审需求扩展和细化用户场景信息建模(数据对象描述与数据建模)功能建模行为建模用户接口分析和建模评审所有模型,考察其正确性、完整性和一致性14、用户场景建模:开发用例;场景建模数据建模:数据对象描述数据字典,数据建模数据对象、属性和关系,数据模型实体关系图(ERD)功能建模和信息流:信息流模型(DFD),信息流与功能建模行为建模状态变迁图(STD)15、设计的原则与概念设计是将要建造的某种事物的有意义的工程表示。软件设计创建软件的表达或模型,提供了软件数据结构、体系结构、接口和软件构件的设计细节提供了软件系统实现所必须的工作基础。对设计良好的软件而言,坚固是
9、指程序不应含有任何妨碍其功能的缺陷;适用则是程序符合开发目标;赏心悦目意味着使用程序的体验是愉快的。设计原则设计过程不应该受“隧道视野”的限制;设计对于分析模型应该是可跟踪的;设计不应该从头做起;设计应该缩短软件和现实世界中问题的“智力距离”;设计应表现出一致性和集成性设计的构建应该适应变更设计的构建,应该使得即使遇到异常的数据、事件或操作条件时也能够平滑、轻巧地降级;设计不是编码,编码也不是设计;在创建设计时就应该能够评估质量,而不是在事情完成以后;应该评审设计以减少概念性(语义性)错误。16、设计的概念抽象、求精、模块化 设计文档描述设计工作的整体范围、说明数据设计、体系结构设计、接口设计
10、、构件设计、需求交叉引用、软件测试、设计约束、补充说明17、软件体系结构设计设计建模原则原则1:设计可追溯到分析模型原则2:经常关注待构建系统的框架原则3:数据设计与功能设计同等重要原则4:设计接口(内部接口和外部接口)原则5:用户界面必须符合最终用户要求原则6:功能独立的构件级设计原则7:构件之间、构件与外部环境之间松散耦合原则8:设计模型应易于理解原则9:设计以迭代方式进行,每一次迭代,设计者应尽力简化问题。体系结构设计为软件开发提供了系统的整体视图,并保证系统开发人员能正确地得到需要的系统;软件体系结构设计涉及两个方面数据设计:表示体系结构的数据构件,程序体系结构:关注于软件程序结构、构
11、件的性质以及交互表示。软件体系结构设计将需求分析中的数据、功能和行为模型中的元素,以及软件数据体系结构的设计,最终映射为软件系统的构件组织结构。18、构件级设计 构件级设计也称为过程设计,它在数据设计、体系结构设计和接口设计之后进行,其意图是将设计模型翻译为可以运行的软件 。 构件级设计是使用某些能够易翻译成源代码的中间表示(如,图形的,表格的或基于文本的)来表示过程设计。 构件级设计的目标是要保证不仅能够完成翻译任务,而且能够不在开始时引入错误,即在过程设计中避免错误的产生。19、用户界面设计 用户界面可以说是基于计算机的系统或产品的最重要的元素。如果界面的设计很糟糕,可能会严重地阻碍用户使用系统的计算处理能力。 一个弱的界面可能导致一个很好和可靠实现的应用的失败 三个重要的原则指导有效的用户界面设计,置系统于用户控制之下,减少用户的记忆负担,保持界面一致。20、软件测试技术 软件测试的目的,就是在系统交付客户之前能够发现(和改正)尽可能多的错误。 白盒测试又称“玻璃盒测试”,白盒测试注重于程序控制结构 黑盒测试也称为行为测试,黑盒测试注重于确认功能需求 -
限制150内