目录1.学习目的 (2)1.1用途 (2)1.2要求 (2)2.学习态度 (2)3、学习内容 (3)4、学习心得 (5)5.自我评价 (6)6.学习成果 (7)软件工程课程总结1.学习目的1.1用途在本学期的软件工程课程中我们大略学习了软件的开发过程,需要哪些工具,具体建模模式和方法以及这些模型和方法是如何实现软件的某一功能的,让我们在脑海里形成了系统的关于软件开发的流程图,为今后的关于软件工程的学习打下基础,同时为我们开发软件带来方便。
通过这学期以来的学习,虽说课本中的很多内容仍不能清晰地理解掌握,但对于软件工程确实也有了更明晰系统的概念和理解,同时也在老师授课下对许多以前未所听闻的开发软件和开发方法如UML模型等有了初步的了解,深感这是一门博大精深而十分有用的学问,需要我们认真进一步地学习。
1.2要求关于软件工程的学习,我对自己的要求是:①掌握老师课堂上指出的重点内容,并在课后通过各种手段作一定的深入了解。
②认真记下重要的笔记,保证按时完成老师交代的作业并及时上交,同时检查自己是否仍有不懂的知识。
③积极和同学讨论自己对于书本中一些方法、模型的理解和感受。
④上课不旷课逃课,不迟到早退。
2.学习态度在这个学期的《软件工程》这一门课程的学习中,我的学习态度端正,从没有旷课逃课、请假、迟到早退等行为,上课认真记下老师讲过的重点知识的笔记,下课也和朋友讨论刚学的模型和方法如瀑布模式、增量模式、用例图的画法、活动图的作用等,受益良多。
也有按时完成老师布置的作业并及时上交给老师检查。
但是有一点让我惭愧的是,我的课外阅读量太少,对软件的了解仍然有待加强,在今后的学习中,我一定会加强这方面的阅读并好好的运用在软件开发中。
3、学习内容软件的定义:软件是能够完成预定功能和性能的可执行的计算机程序和使程序正常执行所需要的数据,加上描述程序的操作和使用的文档。
软件的特征:①软件有对硬件不可缺失的依赖。
②软件有不同与硬件的生产流程。
软件不是制造出来的,而是开发出来的。
硬件生产的最大成本是复杂的制造工艺,而软件的最大成本则是分析与设计。
③软件有不同与硬件的生命过程。
包括:磨合期、正常使用期、老化期。
软件危机:①软件开发成本、进度失控。
②软件质量不能获得有效保证。
③软件不能满足用户应用需要。
④软件可维护性差。
软件生存周期:一个软件从定义到开发、使用和维护,直到最终被弃用,要经历一个漫长的时期,通常把软件经历的这个漫长的时期称为生存周期。
软件的生存周期可分为三个阶段:软件定义期、软件开发期、运行维护期。
瀑布模式:是传统的软件开发模式,其中的“瀑布”是对这个模式的形象表达,由山顶倾泻下来的水,自顶向下、逐渐细化。
其特点是:线性化过程;分为分析、设计、编码、集成等几个阶段,并且各阶段逐级推进,不允许跨越。
里程碑管理;阶段评审;文档驱动;简洁便于工程应用的线性化过程步骤,并可以通过里程碑管理机制而使项目进程量化。
其明显的优点就是没个阶段结束前都要对所完成的阶段成果进行评审,这使得软件的错误能够在个阶段内尽早发现并尽早解决,总的来说瀑布模式具有良好的质量保证机制,有很强的生命力。
原型进化模式:对软件进行直接模拟或仿真,只需要分析用户的需求框架后进行原型创建,再根据用户的使用评价对原型系统进行逐步细化与完善,通过版本更新逐步满足用户对于软件的多方面需要。
增量模式:开发过程有三个任务域,分别是设计结构、开发构件和集成系统,它既有完善的工程管理机制,又能适应用户需求变更,有利于质量的监控,并且各局部基于构件构造,有利于逐步构建与完善;由于先交付核心构件可利于降低项目的技术风险。
软件项目管理:①软件项目组,组建优秀的团队可以开发出高质量的软件产品。
任务开发团队要求小而精,成员大多在8人以内,主要成员有项目组长、开发人员、资料管理员和软件测试员。
②项目组管理机制:民主分权制、主程序员负责制、置业项目经理负责制、层级负责制。
③项目计划是为了使软件开发各项工作有秩序地进行,包括任务分配和进度安排,甘特图和任务网络图是用来描述进度计划的工具。
项目计划书可以作为软件开发的工作指南。
④项目成本估算,由于项目有来自各方面的成本包括工资开支、场地费、差旅费、设备费和资料费等,但是软件主要是对人力成本的估算,常用的方法有程序代码成本估算法等。
⑤风险管理包括很多不确定的风险因素,如计划风险、管理风险、需求风险、技术风险、人员风险、产品风险、用户风险和商业风险等等,而风险管理的主要任务是:风险识别、风险评估、和风险防范。
⑥软件文档管理,软件文档是工程模式软件开发的成果体现。
按照软件文档形式分类包括正式文档和非正式文档;按照国家标准分类包括可行性分析报告、项目开发计划、需求规格说明书、测试计划、概要设计说明书、数据库设计说明书、详细设计说明书、模块开发卷宗、用户操作手册、系统维护手册、测试分析报告、系统试运行计划、开发进度月报、项目开发总结报告。
按照软件文档被使用范围分类包括技术文档、管理文档和用户文档。
⑦软件配置管理:包括配置规划、软件变更控制、软件版本控制和质量控制计划。
⑧软件质量管理:包括质量标准、质量计划、质量保证、质量指标。
计算机系统由硬件、软件、数据资源、网络资源、使用系统的人等诸多元素。
有三种典型的计算机体系结构:①主机结构,主机集中了全部智能,并依靠终端接口与外部设备连接。
②Client/Server结构,智能分布于服务器与客户机,并依靠网络连接成系统,其中,服务器处于核心位置,提供被动核心服务;客户机处于边缘位置,可主动访问服务器,寻求服务支持。
③Browser/server结构,可适应互联网远程交互的特殊结构,基于Web服务器构建。
需求分析:系统开发前期需求分析很重要,它是为了有效解决用户问题的需要进行的一项工程活动,所需要考虑的需求问题是功能需求、数据需求、性能需求和接口需求,开发者承担分析任务,核心是用户。
其步骤有三个:①获取客户需求,客户泛指某个人或机构部门等,一般方法是调查,包括访谈、座谈、问卷、跟班和收集资料,需求规约可表达用户的软件价值。
②建立需求模型,它是用户需求的图解,一些常用的模型有:业务树图、用例图、活动图。
分别用于结构化需求建模、系统业务举例和反映系统工作流程。
③进行需求验证,要验证的主要内容有:有效性验证、一致性验证、完整性验证、现实性验证和可检验性验证。
结构化分析建模:它是建立在需求规约基础上的,对软件问题进行全面解说,包括四个方面:①数据建模,它与数据库设计密切相关,ER图涉及实体、关系、属性等图形元素,在业务层面建立数据库概念模型,一般用于前期的建模构想。
②功能建模,是对系统数据加工的图解,数据流程图是常用的建模工具,涉及数据接口、数据处理、数据流、数据存储等图形元素,用于描述系统数据加工细节。
③行为建模,行为模型用于说哦名软件系统与环境的交互,状态转换图常用的软件行为建模工具涉及状态、事件等图形元素。
⑤数据字典,是用于定义软件的元素,使软件元素获得严肃的、详密的、精确的规格说明。
需求分析模型中的数据、功能、行为等诸多方面的元素,都有必要通过数据字典给予细节说明,以达到对系统较完整全面的规格定义。
基于UML对象面向对象分析建模:UML是统一建模语言,有统一的语法、语义和语用规则,其建模过程的特点是:用例驱动、以构架为中心和增量迭代,通过包实现对模型的有效的一体化管理。
包括三部分:①用例建模,它面向用户需求的,能够反映系统的用户价值,用例图的基本元素有用例、参与者、交流;用例之间有泛化、延伸和包含关系。
②活动建模,活动图用于描述系统动态过程,主要图形元素有:活动、转换、起点、终点、判断、并发、同步、泳道等。
可描述高层业务级活动,涉及整个业务流程,针对每个用例活动建模,反映用例内部活动细节。
③类分析建模,这里就只考虑实体类,实体类所代表的数据相互之间通常有一定的关系,依靠这种关系可形成有组织的程序数据结构。
实体类之间的主要数据关系有:关联、聚类、泛化。
4、学习心得在《软件工程》的学习中,我了解了什么是“软件危机”,透过软件工程于解决“软件危机”的重要性、软件工程三条重要线索、软件工程知识体系函括内容及软件工程各类生存期模型,我对软件工程思想及“工程化”软件开发的流程有了较系统的了解。
透过软件工程的起源,我认识到:实现软件工业的产业化,软件工程必须是真正意义上的工程化。
从软件开发三条线索(开发、管理、改进)来看,软件开发的过程必须规范化,软件开发各阶段都必须形成相应文档,编码必须依照通用可读性严格遵照编程规范;软件项目管理的核心是项目规划和项目跟踪控制,保证软件工程开发的成功完成,软件开发流程的规范化在软件项目中有着重要的作用,通过不断地优化和规范过程,企业可以提高软件生产能力。
从需求分析到维护,透过软件的开发流程具体实施的学习,我对软件项目开发的流程也有了更深的理解,例如通过需求设计报告、概要设计报告、详细设计报告三份作业的完成虽然很不完善,但仍让我对需求分析建模和设计中用到的方法有了更好的理解并熟悉了三份文档的格式。
同时,这门课更正我不少的错误观念:比如编码规范问题,以前我总觉得个人写的程序只要能运行不管别人看不看得懂,注释可有可无,想法越独特代码量越少或内存损耗越小就越好,学了这门课才理解这样的代码可读性很差,通用性不好,维护起来很不方便,代码的可读通用性重要性不亚于正确性和运行效率;以前除了代码的源文件其他文档都不甚重要,学了这门课才知道软件开发中每一阶段都有文档的产生,其管理与应用也是一门大学问。
此外,这门课程里讲授了很多我以前从未接触过的方法和软件如UML 模型、visio的强大绘图建模功能、project的项目规划与跟踪作用等等,这些知识不仅能应用于软件工程,也能应用于其他的很多领域,这门课结束了,但这些方面学习我还将继续的。
5.自我评价我觉得在这门课程的学习中,我很认真。
我按照自己对自己的要求认真执行。
对老师课堂上指出的重点内容在课后作了详细的复习,并通过各种手段作了一定的深入了解。
认真记下了重要的笔记,按时完成了老师交代的作业并及时上交,同时检查自己是否仍有不懂的知识。
积极和同学讨论自己对于书本中一些方法、模型的理解和感受,加了自己对知识的理解。
也做到了上课不旷课逃课,不迟到早退。
同时,我还觉得学习这门课让我很快乐,虽然遇到过很多难题,有过很多的疑惑,但最后都在老师和同学的帮助中化解了,软件工程是我最喜欢的科目之一,其他科目中系统工程和软件工程可以相辅相成,我也很喜欢。
在短短十六周十六节课的学习中,我对软件开发的开发模式、模块划分、模型构建等过程有了深入的了解。
以前不知道模型是什么,总以为建模是一件特别无聊又耗时间的事,但是在学习了软件工程后,我才终于认识到模型是多么有趣的东西。