您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > 软件工程学习总结和体会(自己总结)
软件工程I课程考核报告学号:1115115285姓名:王瑞博专业:软件工程班级:11软工软件一班指导教师:李生南阳理工学院软件学院2013年5月成绩评阅人软件工程课程学习总结以前从没学过软件工程这门课,只是听学长学姐们说过,这是一门很深奥的课程,据说是有工程师称号的高手才摆弄的东西。学过之后才发现,其实这门课真的很高深,就连老师也说他也有很多问题还没有解决呢。下面我就谈谈我个人在本学期学习中一些总结和体会,希望对为学习本课程的人有一些帮助。一、软件工程基础什么是软件工程呢?软件工程是一类求解软件的工程,为了克服软件危机,人们研究和借鉴工程学的原理和方法,形成了一门新的学科—软件工程学。目前比较认可的一种定义是:软件工程是为了研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何让把经过时间考证而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。从以上这些关于软件工程的定义,我们可以对软件工程这门工程学科有一个全面的整体性认识。软件工程学的主要内容包括:1、软件开发方法(需求分析、设计、编程、测试和维护);2、软件工具(泛指开发一切帮助开发软件的软件);3、软件工程环境(以软件工程为依据,支持典型软件生产的系统);4、软件工程管理学(对软件工程生存期内的各个阶段的活动进行管理)。(一)软件工程的三要素和基本目标1、软件工程以关注软件质量为目标,由过程、方法和工具三要素组成。(1)软件工程过程:在软件工具的支持下所进行的一系列软件工程活动,它是将技术层结合在一起的凝聚力,使得计算机软件能够合理地和及时地开发出来,是生产一个最终能满足需求且达到工程目标的软件产品所需要的步骤。(2)软件工程方法:完成软件开发任务的技术方法,它依赖于一组基本原则,这些基本原则控制了每一技术区域,且包含建模活动和其他描述技术。软件工程方法学主要包括传统方法(结构化方法)和面向对象方法。(3)软件工程工具:是对过程和方法提供了自动的或半自动的支持。软件工程三个要素之中软件工程过程是基础,方法是实现过程的技术,工具为过程和方法提供自动化或半自动化支持。三者以有组织的质量保证为核心。2、软件工程的目标是提高软件的质量与生产率,最终实现软件的社会化大生产。(二)软件工程原理软件工程专家学者们总结了开发软件的经验,提出了软件工程的7条基本原理。这7条原理被认为是确保软件产品质量和开发效率的原理的最小集合,又是相互独立、缺一不可、相当完备的最小集合。这7条原理是:1、用分阶段的生命周期计划严格管理。这是吸取前人的教训而提出来的,在整个软件生命周期中应指定并严格执行6类计划:项目概要计划、里程碑计划、项目控制计划、产品控制计划、验证计划、运行维护计划。2、坚持进行阶段评审。软件的质量保证工作不能等到编码结束之后再进行,应坚持进行严格的阶段评审,以便尽早发现错误。评审过程应该包括完成者在内的各种不同角色的人参与,利用人的差异提高评审质量。3、实行严格的产品控制。开发人员最痛恨的事情之一就是改动需求。但是实践告诉我们,需求的改动往往是不可避免的。这就要求我们要采用可续的产品控制技术来顺应这种要求。也就是要采用变动控制(基准配置管理)。当需求变动时,其他各个阶段的文档或代码也随之变动,以保证软件的一致性。4、采纳现代程序设计技术。采用先进的技术既可以提高软件开发的效率,又可以减少软件维护的成本。5、结果应能清楚地审查。软件是一种看不见、摸不着的逻辑产品。软件开发小组的工作进展情况可见性差,难以评价和管理。为了更好地进行管理,应根据软件开发的总目标及完成期限,尽量明确地规定开发小组的责任和产品标准,从而使所得到的标准能清楚地审查。6、开发小组的人员应少而精。开发人员的素质和数量是影响软件质量和开发效率的重要因素,应该少而精。有以下原因:(1)高素开发人员的效率比低素质开发人员的效率要高几倍到几十倍,开发工作中犯得错误也少的多。(2)当开发小组为N人时,可能的通信信道为N(N-1)/2,可见随着人数N的增大,通信开销将急剧增大。7、承认不断改进软件工程实践的必要性。这是基于上述六条基本原理的总结和归纳。(三)软件的生存周期一个软件从定义到开发、使用和维护,直到最终被弃用,要经历一个漫长的时期,通常把软件经历的这个漫长的时期称为生存周期。软件的生存周期可分为八个阶段:①问题定义;②可行性研究;③需求分析;④总体(概要)设计;⑤详细设计;⑥编码与单元测试;⑦综合测试;⑧软件维护等。(四)软件开发模型瀑布模式:是传统的软件开发模式,其中的“瀑布”是对这个模式的形象表达,由山顶倾泻下来的水,自顶向下、逐渐细化。其特点是:线性化过程;分为分析、设计、编码、集成等几个阶段,并且各阶段逐级推进,不允许跨越。里程碑管理;阶段评审;文档驱动;简洁便于工程应用的线性化过程步骤,并可以通过里程碑管理机制而使项目进程量化。其明显的优点就是没个阶段结束前都要对所完成的阶段成果进行评审,这使得软件的错误能够在个阶段内尽早发现并尽早解决,总的来说瀑布模式具有良好的质量保证机制,有很强的生命力。原型进化模式:对软件进行直接模拟或仿真,只需要分析需求框架后进行原型创建,再对原型系统进行逐步细化与完善,通过版本更新逐步满足用户对于软件的多方面需要。增量模式:开发过程有三个任务域,分别是设计结构、开发构件和集成系统,它既有完善的工程管理机制,又能适应用户需求变更,有利于质量的监控,并且各局部基于构件构造,有利于逐步构建与完善;由于先交付核心构件可利于降低项目的技术风险。螺旋模式:是一种可较好的规避开发风险过程的模式,项目是基于任务的螺旋式推进,每个螺旋由内之外分别是需求分析、软件设计、系统集成、验证与交付。(五)软件的开发过程1、需求分析:系统开发前期需求分析很重要,它是为了有效解决用户问题的需要进行的一项工程活动,所需要考虑的需求问题是功能需求、数据需求、性能需求和接口需求,开发者承担分析任务,核心是用户。其步骤有三个:①获取客户需求,客户泛指某个人或机构部门等,一般方法是调查,包括访谈、座谈、问卷、跟班和收集资料,需求规约可表达用户的软件价值。②建立需求模型,它是用户需求的图解,一些常用的模型有:业务树图、用例图、活动图。分别用于结构化需求建模、系统业务举例和反映系统工作流程。③进行需求验证,要验证的主要内容有:有效性验证、一致性验证、完整性验证、现实性验证和可检验性验证。2、概要设计:是对需求规格说明书中提供的软件系统逻辑模型进行进一步的分解,从而建立软件系统的总体结构和各个子系统之间、各个模块之间的关系,定义各子系统接口界面和各功能模块的功能描述等。3、详细设计:将概要设计产生的功能模块进一步细化,形成可编程的程序模块,设计其具体细节,并设计模块的单元测试计划。阶段产品:详细设计规格说明和单元测试计划等。4、实现:包含编码和单元测试。(详细介绍在课本79页)阶段产品:可运行并通过单元测试的程序和详细的单元测试报告等。5、综合测试:包含组装测试和验收测试。(详细介绍在课本79页)阶段产品:(1)满足概要设计要求、可运行的软件系统和源程序。(2)组装测试报告。(3)可供用户使用的软件产品。(六)用例模型1、UML简介UML是统一建模语言,有统一的语法、语义和语用规则,其建模过程的特点是:用例驱动、以构架为中心和增量迭代,通过包实现对模型的有效的一体化管理。包括三部分:①用例建模,它面向用户需求的,能够反映系统的用户价值,用例图的基本元素有用例、参与者、交流;用例之间有泛化、延伸和包含关系。②活动建模,活动图用于描述系统动态过程,主要图形元素有:活动、转换、起点、终点、判断、并发、同步、泳道等。可描述高层业务级活动,涉及整个业务流程,针对每个用例活动建模,反映用例内部活动细节。③类分析建模,这里就只考虑实体类,实体类所代表的数据相互之间通常有一定的关系,依靠这种关系可形成有组织的程序数据结构。实体类之间的主要数据关系有:关联、聚类、泛化。2、使用StartUML绘制用例图StartUML是一款开放源码的UML开发工具,由韩国公司主导开发。用例图包含了角色、用例、以及角色和角色、用例和用例、角色和用例之间存在的关系。具体绘制的方法和步骤详见课本257页。二、个人感想《软件工程》课程强调概念和知识的理解和掌握,侧重软件项目的分析、设计、实现和维护的基本技能。比较注意“点”和“面”的结合。是一门理论性较强的学科。对于理论性太强的学科,把握起来真的很困难。书上列举很很多不错的例子,本书既可以当有趣的故事书来读,又可以当教科书来用,由此可见编者的水平有多高啊!我们这门课的老师水平也很高,我对他的印象真的很好,这是一位好老师,也是一位负责的老师。最近听一个大四的学长说他软件工程没怎么学,现在答辩文档的组织能力和代码的规范都不合格,他很是为此发愁,因此更要要好好学习这门课程。这学期一晃又过去了,总感觉什么东西也没学到。不过我感觉还是过的很充实的,因为我每天都会到社团里学习,总有让自己忙碌的事情,学好还是学不好的关键不是在于老师还是其他的外界因素,主要还是看自己的。我相信:希望就在明天!1一月二月三月产品名称数量金额利润产品名称数量金额利润产品名称数量金额利润合计合计合计四月五月六月产品名称数量金额利润产品名称数量金额利润产品名称数量金额利润合计合计合计下午13:00—17:00B.实行不定时工作制的员工,在保证完成甲方工作任务情况下,经公司同意,可自行安排工作和休息时间。3.1.2打卡制度3.1.2.1公司实行上、下班指纹录入打卡制度。全体员工都必须自觉遵守工作时间,实行不定时工作制的员工不必打卡。3.1.2.2打卡次数:一日两次,即早上上班打卡一次,下午下班打卡一次。3.1.2.3打卡时间:打卡时间为上班到岗时间和下班离岗时间;3.1.2.4因公外出不能打卡:因公外出不能打卡应填写《外勤登记表》,注明外出日期、事由、外勤起止时间。因公外出需事先申请,如因特殊情况不能事先申请,应在事毕到岗当日完成申请、审批手续,否则按旷工处理。因停电、卡钟(工卡)故障未打卡的员工,上班前、下班后要及时到部门考勤员处填写《未打卡补签申请表》,由直接主管签字证明当日的出勤状况,报部门经理、人力资源部批准后,月底由部门考勤员据此上报考勤。上述情况考勤由各部门或分公司和项目文员协助人力资源部进行管理。3.1.2.5手工考勤制度3.1.2.6手工考勤制申请:由于工作性质,员工无法正常打卡(如外围人员、出差),可由各部门提出人员名单,经主管副总批准后,报人力资源部审批备案。3.1.2.7参与手工考勤的员工,需由其主管部门的部门考勤员(文员)或部门指定人员进行考勤管理,并于每月26日前向人力资源部递交考勤报表。3.1.2.8参与手工考勤的员工如有请假情况发生,应遵守相关请、休假制度,如实填报相关表单。3.1.2.9外派员工在外派工作期间的考勤,需在外派公司打卡记录;如遇中途出差,持出差证明,出差期间的考勤在出差地所在公司打卡记录;3.2加班管理3.2.1定义加班是指员工在节假日或公司规定的休息日仍照常工作的情况。A.现场管理人员和劳务人员的加班应严格控制,各部门应按月工时标准,合理安排工作班次。部门经理要严格审批员工排班表,保证员工有效工时达到要求。凡是达到月工时标准的,应扣减员工本人的存休或工资;对超出月工时标准的,应说明理由,报主管副总和人力资源部审批。B.因员工月薪工资中的补贴已包括延时工作补贴,所以延时工作在4小时(不含)以下的,不再另计加班工资。因工作需要,一般员工延时工作4小时至8小时可申报加班半天,超过8小时可申报加班1天。对主管(含)以上管理人员,一般情况下延时工作不计加班,因特殊情况经总经理以上领导批准的延时工作,可按以上标准计加班。3.2.2.2员工加班应提前申请,事先填写《加班申请表》,因无法确定加班工时的,应在本次加班完成后3个工作日内补填《加班申请表》。《加班申请表》经部门经理同意,主管副总经理审核报总经理批准后有效。《加班申请表》必须事前当月内上报有效,如遇特殊情况,也必须在一
本文标题:软件工程学习总结和体会(自己总结)
链接地址:https://www.777doc.com/doc-2861375 .html