下面是小编精心整理的软件工程导论作业,本文共8篇,仅供参考,大家一起来看看吧。

篇1:软件工程导论作业
Chapter1
1.1 什么是软件危机?它有哪些典型表现?为什么会出现软件危机?
答: 软件危机是指在计算机软件开发和维护过程中所遇到的一系列的严重问题。
它的典型表现:1.软件开发成本高,成本难以控制。2.研究周期长,软件开发进度难以控制,周期拖得很长。3.正确性难以保证,软件质量差,可靠性难以保证。4.软件维护困难,维护人员和维护费用不断增长。5.软件发展跟不上硬件的发展和用户的要求。
它出现的原因一方面是由于软件生产本身存在着复杂性,另一方面是与软件开发所使用的方法和技术有关。软件不同于硬件,它是计算机系统中的逻辑部件而不是物理部件。管理和控制软件开发工程相当困难,软件是规模庞大,而且程序复杂性将随着程序规模的增加而呈指数上升。目前相当多的软件专业技术人员对软件开发和维护还有不省糊涂观念,在实践过程中或多或少地采用了错误的方法和技术,这是使软件问题发展成为软件危机的主要原因。
1.2 什么是软件工程?它有哪些本质特性?怎样用软件工程消除软件危机?
答:软件工程是将系统化的,规范化的,可度量的方法应用于软件开发,运行和维护的过程,即将工程化应用于软件中。
它的本质特性:1.软件工程关注于大型程序的构造 2.软件工程的中心课题是控制复杂性 3.软件经常化 4.开发软件的效率非常重要 5.和谐地合作是开发软件的关键 6.软件必须有效地支持它的用户 7.在软件工程领域中是由一种文化背景的人替具有另一种文化背景的人创造产品。
基本原理: 1.用分阶段的生命周期计划严格管理 2.坚持进行阶段评审 3.实行严格的产品控制 4.采用现代程序设计的技术 5.结果应能清楚地审查 6.开发小组的人员应该少而精 7.承认不断改进软件工程实践的必要性。
1.3 什么是软件?它有什么特点?
答:软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据结构及其相关文档的完整集合。
它的特点是:1.抽象而非具体 2.开发而非制造 3.退化而非磨损 4.定制而非基于构件 5.不可见 6.复杂 7.易改变 8.易复制
1.4 什么是软件过程?它与软件工程方法学有何关系?
答:软件过程是为了开发出高质量的软件产品所需完成的一系列任务的框架,它规定了完成各项任务的工作步骤。
软件过程定义了运用技术方法的顺序,应该交付的文档资料,为保证软件质量和协调软件变化必须采用的管理措施,以及标志完成了相应开发活动的里程碑。软件过程是软件工程方法学的3个重要组成部分之一。软件工程的基础是软件过程。
1.5 什么是软件生命周期模型?试比较瀑布模型、原型模型、增量模型和螺旋模型的优缺点,说明每种模型的适用范围。
答:软件生命周期模型是软件开发全部过程,活动和任务的结构框架,它能直观表达软件开发全过程,明确规定要完成的主要活动,任务和开发策略。也叫软件开发模型。
瀑布模型 优点:有利于大型软件开发过程中人员的组织,管理,有利于软件开发方法和工具的研究,从而提高了大型软件项目开发的质量和效率。
缺点:1,开发过程一般不能逆转,否则代价太大 2.实际的项目开发很难严格按
照该模型进行 3.客户往往很难清楚地给出所有的需求,而该模型却要求如此 4.软件的实际情况必须到项目开发的后期客户才能看到,这要求客户有足够的耐心。
适用范围:1.用户的需求非常清楚全面,且在开发过程中没有或变化很少 2.开发人员对软件的应用领域很熟悉 3.用户的使用环境非常稳定 4.开发工作队用户参与的要求很低。
原型模型 优点:1.可以得到比较良好的需求定义,容易适应需求的变化 2.有利于开发与培训的同步 3.开发费用低,开发周期短且队用户更友好。
缺点:1.客户与开发者对原型的理解不同 2.准确的原型设计比较困难 3.不利于开发人员的创新
适用范围:1.对所开发的领域比较熟悉而且有快速的原型开发工具 2.项目投标时,可以以原型模型作为软件的开发模型 3.进行产品移植或升级时,或对已有产品原型进行客户化工作时,原型模型非常合适。
增量模型 优点:1.采用增量模型的优点是人员分配灵活,刚开始不用投入大量的人力资源
2.如果核心产品很受欢迎,则可增加人力实现下一个增量 3.可先发部分功能给客户,对客户起到镇静剂的作用。
缺点:1.并行开发构件有可能遇到不能集成的风险,软件必须具备开放式的体系结构 2.增量模型的灵活性可以使其适应这种变化的能力大于优于瀑布模型和原型模型,但也很容易退化为边做边改模型,从而使软件过程的控制失去整体性。
适用范围:1.进行已有产品升级或新版本开发,增量模型是非常适合的 2.对完成期限严格要求的产品,可以使用增量模型 3.对所开发的领域比较熟悉而且已有原型系统,增量模型也非常适合。
螺旋模型 优点:1.实际上的灵活性,可以再项目的各个阶级进行变更 2.以小的分段来构建大型系统,是成本计算变得简单容易 3.客户始终参与每个阶段的开发,保证了项目不偏离正确方向以及项目的可控性 4.随着项目推进,客户始终掌握项目的最新消息,从而是他或她能够和管理层有效地交互。
缺点:1.采用螺旋模型需要具有相当丰富的风险评估经验和专门知识,在风险较大的项目开发中,如果未能够及时标识风险,势必造成重大损失 2.过多的迭代次数会增加开发成本,延迟提交时间。
适用范围:只适合于大规模的软件项目。
1.6 怎么理解软件工程的概念及其意义?
答:软件工程是一门将理论和知识应用于实践的工程,它借鉴了传统工程的原则和方法,以求高效地开发高质量软件。它是一种层次化技术。
意义:从历史上讲,软件工程的作用,是为了克服上个世纪60年代出现的软件危机,这种危机表现为软件开发的成本大、进度慢、维护难和质量得不到保障。从当前来讲,软件工程的作用,就是告诉人们怎样去开发软件和管理软件。具体地讲,它表现在与软件开发和管理有关的人员和过程上。
1.7 软件过程的通用过程框架包含哪两类活动?
答:一类是框架活动,还有一类是保护性活动。
1.8 描述基于构件开发的思想以及目前的发展情况。
答:基于构件开发强调将被设计的系统分解成功能的或逻辑的构件,构件用定义好的接口进行通信。
它是现在软件复理论实用化的研究热点,在构件对象模型的支持下,通过复用已有的构件,软件开发者可以“即插即用”地快速构造应用软件,这样即可以节省时间和经费,提高工作效率,也可以产生更加规范,更加可靠的应用软件。
1.9 请简要说明 RUP 的9 个规程(disciplines)及之间关系?
答:RUP的9个规程为:业务建模,需求,分析与设计,实现,测试,部署,配置与变更管理,项目管理以及环境。
对于一个大型项目,RUP九个规程的活动不可或缺,但对于有些项目可能不需要经过所有九个规程,在项目开发时需要对这些规程涉及的活动做具体的裁剪,以适应具体项目的开发需要。
1.10 说明面向切面编程的特点,有什么优势?
答:该范型以一种称为切面的语言构造为基础,切面是一种新的模块化机制,用来描述分散在对象、类或函数中分离出来可以大大增强程序的模块性。
优势:他把特定领域问题的代码从业务逻辑中独立出来,业务逻辑的代码中不再含有针对特定领域问题代码的调用,业务逻辑同特定领域问题的关系通过切面来进行封装,维护。 优势:面向切面编程的特点是针对业务处理过程中的切面提取,所面对的是处理过程中的某个步骤或阶段,以获得逻辑过程中各部分之间低耦合性的隔离效果,降低了耦合性。
1.11 模型驱动工程中 MDA 的基本思想是什么?
答:MDA的基本思想是系统的功能性是用合适的规约语言以平台无关的模型的方式定义,然后为实际的实现翻译到一个或多个平台相关的模型上。
Chapter2
2.1 描述面向对象的基本概念和思想。
答:面向对象是一种以对象为基础,以事件或消息来驱动对象执行处理和程序设计技术。 面向对象的基本思想是认为客观实体和实体之间的联系构成了现实世界的所有问题,而每
一个实体都可以抽象为对象。
2.2 面向对象分析设计的基本思路和过程是怎样的?
答:分析过程主要包括理解、表达和验证。设计是把分析阶段得到的需求转变成符合成本和质量要求的、抽象的系统实现方案的过程。
过程:识别系统的用例和角色,进行系统分析并抽象出类,设计系统并设计系统中的类及其行为。
2.3 面向对象程序设计中的概念主要包括哪些?分别阐述其主要思想。
答:对象:封装了数据和操作这些数据的代码的逻辑实体。
类:具有相同类型的对象的抽象。
封装:保证软件部分具有优良的模块性的基础。
继承:让某个类型对象获得另一个类型的对象特征。
多态:使不同内部结构的对象可以共享相同的外部接口,减少代码复杂度。
动态绑定:多态实现的具体形式,将一个过程调用与相应代码链接起来的行为。 消息传递:使得对现实世界的描述更容易。
方法:定义一个类可以做的,但不一定去做的事。
2.4 描述 UML 的主要概念和历史。
答:UML是统一建模语言,用来对软件密集系统进行可视化建模的一种语言。UML为面向对象开发系统的产品进行说明、可视化、和编制文档的一种标准语言。
历史:Rumbaugh和Booch将Booch93和OMT-2统一起来,发布了UM0.8;后经过Booch,Rumbaugh和Jacobson的共同努力,发布了UML0.9和UML0.91,并将UM重命名为UML。,Rational组织成立了UML合作者联盟,以完善、加强和促进UML的定义工作。启动了UML2.0标准的制定工作。
2.5 RUP 是什么?应用RUP 对软件开发有什么意义?
答:RUP(Rational Unified Process)是统一软件开发过程,是一个面向对象且基于网络的程序开发方法论。
应用RUP为软件开发提供了一个模版,使得软件开发过程规范化,统一化。
Chapter3
3.1 为什么要进行业务建模?业务建模适用什么场合的软件项目开发?
答:进行业务建模的原因:业务人员、IT技术的业务知识、IT技术知识彼此之间存在着较大的差异,而规模较大的软件开发项目是不太可能让所有参加项目的IT技术人员都先熟悉
业务知识而再进行开发的,所以需要通过“业务建模”将“业务需求”准确地转换为IT技术人员所熟悉的“软件需求”。
适用场合:规模较大的软件项目开发。
3.2 业务建模可以分哪些工作流进行?
答:评估业务状态、描述当前业务、定义业务、探索流程自动化、开发领域模型。
3.3 什么是领域模型?与业务模型的关系是什么?
答:领域模型:领域模型是描述业务用例实现的对象模型。它是对业务角色和业务实体之间应该如何联系和协作以执行业务的一种抽象。领域模型从业务角色内部的观点定义了业务用例。该模型为产生预期效果确定了业务人员以及他们处理和使用的对象(“业务类和对象”)之间应该具有的静态和动态关系。它注重业务中承担的角色及其当前职责。这些模型类的对象组合在一起可以执行所有的业务用例。
关系:开发领域模型是一个备选活动,领域模型是业务分析模型中独立的一部分,注重于说明对于业务领域很重要的概念、产品、可交付成果和事件。这样一个模型仅描述业务中的重要信息,并不包括人员承担的职责。
3.4 什么是系统上下文?明确目标系统的上下文有什么意义?
答:系统上下文:指的是目标系统、与之交互的用户和外部系统。
意义:业务建模作为软件需求的前一阶段,了解目标系统的上下文是很有必要的,便于确定目标组织和业务范围。
3.5 什么是业务涉众?业务涉众可能来自哪些方面?
答:业务涉众:所有跟目标业务有利害关系的人。
方面:可能来自目标组织内部及目标组织外部且跟目标组织有关系的人和组织。
3.6 什么是业务愿景?怎么理解业务愿景的重要性?
答:业务愿景:定义业务建模工作所针对的一组目标。
重要性:要了解组织的业务过程,对业务进行建模,首先必须理解组织的共同愿景,业务建模时期的重要任务就是确定项目涉众的共同愿景,而了解最有影响力的涉众的愿望和目标是非常重要的环节。所以业务愿景对整个业务建模过程来说是十分关键和重要的。
3.7 业务建模的作用是什么?哪些人和组织是潜在的业务执行者?
答:作用:
(1)了解目标组织(将要在其中部署系统的组织)的结构和机制;
(2)了解目标组织中当前存在的问题并确定潜在改进的可能性;
(3)确保客户、最终用户、开发人员和其他各方就目标组织达成共识;
(4)导出支持目标组织所需的系统需求;
(5)了解要部署的软件系统将如何融入组织。
潜在的业务执行者:客户、合作伙伴、供应商、权威机构(法律、法规等制订机构)、子公司、所有者和投资者、业务以外的信息系统等。
3.8 结构化业务用例的三种关系是什么?
答:三种关系:包含关系、扩展关系、泛化关系。
3.9 业务用例的包含与扩展关系、包含与泛化的区别是什么?
答:包含与泛化的区别:(1)对于用例泛化关系,子用例的执行取决于父用例(重用部分)的结构和行为,而在包含关系中,基本用例的执行只取决于包含用例(重用部分)所执行的功能的结果。(2)在泛化关系中,子用例的用途和结构是相似的,而在包含关系中,重用同一个包含用例的基本用例可能有完全不同的用途,但需求执行相同的功能。
包含与扩展的区别:(1)包含关系:如果基本用例的某个部分代表一个功能,而业务用例只依赖于本功能的结果,而不是产生结果的方法,那么可以将这部分分离出来,形成一个附加用例。使用包含关系,将附加部分明确包含于基本用例中。包含关系将基本用例和包含用例连接起来。
(2)扩展关系:如果基本用例的一部分是可选的,或对于理解该用例的主要目的来说不是必需的,那么可以将这部分分离出来,形成一个附加用例,以简化基本用例的结构。利用扩展关系,将附加部分隐含地包含于基本用例中。扩展关系将扩展用例与基本用例连接起来。
3.10 业务分析模型的作用是什么?与业务用例模型的之间是什么关系?
答:作用:业务分析模型描述通过与业务系统、业务工作者和业务实体交互来实现业务用例。它充当了为了执行业务用例而所需业务系统、业务工作者和业务实体之间的相关和协作方式的抽象。它还定义了在执行业务用例时由业务执行者调用的外部业务服务。
关系:业务用例模型是从与客户和业务流程对应的业务执行者和业务用例的角度,对业务进行描述。业务用例模型包括工作流程说明,此说明确定完成了那些工作。所以业务用例模型描述在业务执行者和业务之间发生了什么,对于业务结构或如何实现业务用例不作任何假设。而业务分析模型就是用于描述如何执行业务用例,并具体定义业务提供的服务,内部业务工作者及其使用的信息,将它们的结构化组织描述为独立的单元,定义业务工作者如何通过交户来实现业务用例中所描述的行为。
3.11
(c)
2. 以医院为研究对象,请描述医生、病历的性质分别是( )
(a) business actor、business worker
(b) business worker、business actor
(c) business actor、business entity
(d) business worker、business entity
3.12 综合案例分析-餐厅点菜业务分析
某餐厅的点菜服务流程与规范如下:
1.递上菜单
(1)客人入座后,服务员询问客人需要什么茶水。准备好茶水后,按“女士优先,先
宾后主”的原则从右边为客人斟上茶水。
(2)将菜单打开第一页,按照“女士优先”原则,用双手从客人右侧将菜单送至客人 手中,然后站在客人斜后方能观察客人面部表情的地方,上身微躬。
2.推荐介绍酒店菜品
(1)在客人点菜前,服务员应留有时间让客人翻看菜单。
(2)在客人翻看菜单时,应及时向客人简单介绍菜单上的菜,回答客人的询问。
(3)向客人介绍厨师长今日特别推荐的菜品、其他的特色菜、畅销菜和高档菜等菜品, 并介绍其样式、味道、温度和特点。
3.接受点菜
(1)服务员先在点菜单上记下日期、本人姓名及台号、就餐人数等。
(2)客人点菜时,应注视客人,听清客人点的菜名,适时帮助客人选择菜品和主动推 介菜品,准确地记录菜名。
(3)对于特殊菜品,应介绍其特殊之处,并问清客人所需火候、配料及调料等。
(4)若客人用餐时间较紧,点的菜需时间较长,则应及时向客人征求意见;若有客人 点相同的菜式,如汤和羹或两个酸甜味型的菜时,应有礼貌地问客人是否需要更换菜式。
(5)若客人有特殊要求,应在点菜单上清楚注明,并告知传菜服务员。
4.复述点菜内容
(1)客人点菜完毕后,服务员应清楚地重复一遍所点菜品内容,并请客人确认。
(2)复述完毕后,在点菜单的右上角写明当时的时间,以便查询。
(3)收回菜单并向客人致谢,同时请客人稍等,说明大致的等候时间。
5.分送点菜单
(1)服务员将点菜单的第一联送至收银处。
(2)将点菜单的第二联送至厨房。
(3)将第三联给客户,第四联交给传菜员、值台服务员留底备查。
根据案例的描述,请你完成下列任务:
1. 分析餐厅的点菜业务,建立点菜业务模型。
这项业务的业务涉众:外部涉众:客人,
内部涉众:服务员,收银处,厨房,值台服务员
分析点菜业务模型:
业务执行者为:客人
业务用例是:入座,推荐菜品,点菜,确认内容,分送菜单,上菜
2. 用活动图描述客人点菜的活动。
3. 分析点菜业务模型,找出有哪些业务工作者和业务实体,并用交互图来说明之间的通信和交互关系。
业务工作者为:服务员,收银处,厨房,值台服务员
业务实体为:菜单,点菜单
Chapter4
4.1 需求的类别有哪些?
答:需求可分为功能性需求和非功能性需求。
功能性需求规定了系统无需考虑物理约束而必须能够执行的动作,描述支持用户目标、任务或活动的系统行为(功能或服务)。
非功能性需求是功能性需求之外的需求,包含质量和约束,它们仅仅说明系统或系统环境的属性。
4.2 怎么理解文中 Fred Brooks 关于需求的那段话?
构建软件系统最难的部分是确定要构建什么(即系统需求)。相比其他工作,如果这个工作做错,会严重影响将产生的系统,也更难在以后矫正。
答:需求工作对于整个软件系统来说是非常重要的,它是实现和测试的先启阶段,需求建模解释如何理清涉众的请求及如何把这些请求转化为一组需求工作产品,确定要建系统的范围,提供系统必须做的详细要求。此阶段是后续工作以及整个系统的基础和关键,一旦这个阶段出现问题,将会直接影响到后续工作的正常顺利进行,而如果想要在以后改,代价是非常大的,并且也难纠正。
4.3 系统用例模型可以描述什么方面的需求?补充规约主要补充哪方面的需求?
答:系统用例模型可以描述设计软件系统方面的`需求,参与者与软件系统的交互,在系统用例说明中书写足够详细的事件流。
补充归约主要补充那些无法在用例中记录的需求。包括:捕捉无用例归约的功能性需求,捕捉系统资量,捕捉约束,捕捉符合性需求,捕捉文档需求。
4.4 什么是系统执行者?如何寻找潜在的系统执行者?
答:系统执行者:是指与目标系统交换数据的任何对象,是在系统之外,透过系统边界与系统进行有意义交互的任何事物。执行者可以是用户、外部硬件或其它系统。
寻找潜在的系统执行者:首先可以从业务模型中去查找,那些业务执行者和业务工作者是潜在的系统执行者。如果没有做业务建模,那可以回答以下问题:哪些用户组需要系统帮助来执行它们的任务?执行系统最明显的主要功能需要哪些用户组?要求哪些用户组执行次要功能,如系统维护和管理?哪些外部硬件或软件系统会与新系统交互吗?是否有事情在预定的时间自动发生?
满足一个或多个上面这些范畴的任何个人、小组或事物有可能就是执行者。
4.5 如何理解系统执行者与业务执行者、业务工作者的关系?
答:业务执行者是指某人或某物与业务进行交互时所担任的角色,它是指在业务之外和业务交互的人、组织或事物。
业务工作者代表在业务中进行操作的人、软件或硬件的抽象。它代表业务中的一个或一组角色。
系统执行者:是指与目标系统交换数据的任何对象,是在系统之外,透过系统边界与系统进行有意义交互的任何事物。执行者可以是用户、外部硬件或其它系统。
关系:系统执行者是针对软件系统来说明的,而业务执行者和业务工作者是针对业务来说明的,系统执行者和业务执行者含义相似,只是所在的描述范畴不一样。
4.6 请分析用例中的包含关系和扩展关系的相似与区别?
答:相似:都是如果用例包含的一段行为片段可以用于其他用例,则将这段行为片段归到“包含用例”或“扩展用例”中,形成一个新的用例,原始用例就成为基本用例,对“包含用例”和“扩展用例”分别有包含关系和扩展关系。
区别:(1)扩展用例是可选的,而包含用例不是可选的;(2)基本用例没有扩展用例是可以完成的,但没有包含用例则不能完成;(3)扩展用例的执行是有条件的,而包含用例没有;(4)扩展用例会改变基本用例的行为,而包含用例不会。
4.7 简单说明把用例组织到包中有什么好处。
答:用例包是用例、执行者、关系、图和其他包的集合,可以通过将用例模型分成更小的部分来结构化用例模型。这样可以使得具有大量元素的用例模型中的用例结构化,同一包中的用例彼此之间都有某种关系,更加清楚明了,便于以后模型的分析和使用。
4.8 用例详细描述中有哪三种事件流,分别表示什么场景?
答:三种事件流:主事件流、分支事件流和异常事件流。
主事件流:在描述正常过程时列出执行者和系统之间相互交互或对话的动作序列。当这种对话结束时,执行者也达到了预期的目的。
分支事件流:也可促进成功地完成任务,但它们代表了任务的细节或用于完成任务的途径的变化部分。
异常事件流:不符合用例流正常或基本行为,引起任务不能顺利完成。
4.9 什么是软件需求规约(SRS)?
答:软件需求规约是分析任务的最终产物,通过建立完整的信息描述、详细的功能和行为描述、性能需求和设计约束的说明、合适的验收标准,给出对目标软件的各种需求。
4.10 如何理解界面原型在需求建模中作用?
答:可以处理模糊需求,开发者和用户可充分通信,降低开发风险。
静态界面原型:供分析人员与用户进行进一步交流和沟通,通过这种可视化方法,使双方逐步就明确系统需求达成共识。
交互式界面原型:便于用户可以操作,展示实际系统效果。
4.11 选择题
1. 如图4.11-1所示. A1 、A2 和A3 是什么? (单选题)( C)
(a) role
(b) Actress
(c) Actor
(d) User
2. 如图4.11-1中,下面哪个语句是正确的? (多选题) ( BCD) (a) A3 可以使用UC4 与系统交互。
(b) Al 可以使用UCl 和UC4 与系统交互。 (c) A3, Al 与A2 不同。
(d) UC3 是没有步骤的抽象用例。
3. 如图4.11-1 所示,下面哪个语句是正确的? (多选题)(CD ) (a) UC5 是UC4 的补充部分。 (b) UC4 是UC5 的可选部分。 (c) UC1 是没有用的。
(d) UC2 是UC4 的可选部分。 (e) UC4 是UC2 的补充部分。
4.12 综合案例分析-餐厅智能移动终端无线点菜系统需求
根据第 3 章的练习3.11 综合案例分析的业务描述,来分析点餐系统的需求。
现在该餐厅为了提高管理效率,避免在点菜过程中出现掉单、飞单,错单、舞弊等现象,计划采用智能移动终端无线点菜系统。 无线点菜系统的要求: 1. 即时点菜
服务员随时随地地使用智能掌上电脑系统,为顾客点菜、加菜,系统自动将数据传到后台和分布在厨房与前台的打印机上。打印机立刻打印所点的菜单。 2. 无需布线
系统前台使用无线网络与掌上电脑技术,使前台使用者可以在营业大厅内随意走动,自由的使用系统为顾客服务,无需在大厅中布置任何网络线路,从而避免影响餐厅的整体环境。 3 操作简单
系统采用 B/S 结构,前台使用智能移动终端如智能手机、平板电脑做客户端,所有的操作都是笔触式和手写输入,操作要方便,适宜于任何服务人员使用。 4. 超长传送
传送距离可达 100 米,室外传送距离可送300 米。 根据案例的描述,请你完成下列任务:
1. 建立无线点菜系统的用例模型(找出所有的系统 Actor 和Use Case);
用例模型
系统Actor:服务员、客户、经理
Use case:点菜服务、自助点菜、统计
2. 对用例进行详细描述,包括前置条件、后置条件,以及各事件流,并用泳道图画出用例对应的事件流。 前置条件:
服务员有掌上电脑系统,厨房与前台有打印机,在传输距离之内 后置条件:
打印机打印所点菜单 事件流: 主事件流: 1.顾客点菜;
2.服务员用掌上电脑及菜单; 3.厨房和前台打印机打印菜单 分支事件流: 无
异常事件流:
步骤2后步骤3未接收,无法打印,返回步骤
2
3).打印菜单用例描述: 用例名称:打印菜单
用例描述:打印点菜内容 参与者 :打印机 前置条件:点菜完成
后置条件:打印机打印菜单给后台,厨房和前台 主事件流:1.系统发送点菜单至打印机
2.打印机接收菜单 3.打印机打印菜单 分支事件流:无 异常事件流:无 泳道图:
Chapter5
5.1 如何理解分析与设计的联系?
答:“分析”是指“做什么”,强调对问题的调研而不是如何确定解决方案,重点集中在需求和应用领域上;而“设计”指“怎么做”,强调的是问题的逻辑解决方案,即系统怎样才能满足需求,重点转移了要产生软件的结构上。但由于分析与设计是把用户需求转化为实现的桥梁,分析和设计自始至终可以用相同的技术和类似的表示方法,它们之间的界限很难划清,且没有太多意义。
5.2 分析设计包括哪些工作流程?
答:分析和设计过程是一个不断迭代优化的过程。
包括:执行体系结构合成;定义候选体系结构;优化体系结构;分析行为;设计构件;设计数据库;服务识别;服务规范。
5.3 分析建模的元素分哪几类?具体是什么? 答:分析建模的元素分为四大类,分别是: (1)基于场景元素:
这类元素包括:用例文本、用例图、活动图和泳道图等; (2)面向流的元素:
这类元素包括数据流图、控制流图、处理叙述等; (3)基于类的元素:
这类元素包括类图、分析包、CRC模型、通信图等; (4)行为的元素:
这类元素包括状态图、顺序图等。
5.4 分析模型的静态模型的用途是什么?静态模型的元素有哪些?
答:用途:通过分析,可以将业务需求模型和系统需求模型转化为系统可以处理的对象模型,并给出对象的基本属性和对象间相互关系。
分析模型中静态模型主要的元素是基于类的元素,包括: 分析包:模型中的包,表示层次结构。 类:模型中的类,由包所拥有。 关系:模型中的关系,由包所拥有。
图:模型中的类图、协作(通信)图,由包所拥有。
5.5 动态模型的类被分为哪三类?分别在系统中承担什么职责? 答:边界类、控制类和实体类。
边界类:是用来对系统环境及其内部工作之间的交互建模的类。这样的交互涉及转换和转移事件,并注释系统表示中的更改(例如界面)。
控制类:是用于对特定于一个或一些用例的控制行为建模的类。 实体类:是用来对必须存储的信息及关联行为建模的类。
5.6 按照设计模型的不同层次和功能,设计元素可以分哪些方面?
答:(1)体系结构元素;(2)构件级元素;(3)接口/界面元素:用户界面、构件接口、系统接口;(4)数据元素:数据库设计、数据结构设计;(5)部署级元素。
5.7 软件模式有哪三个层次?分别说明之。
答:一般地,软件模式可划分为三个层次:体系结构模式,设计模式和代码模式。
体系结构模式:描述软件系统里的基本的结构组织或纲要。体系结构模式提供一些事先定义好的子系统,指定它们的责任,并给出把它们组织在一起的法则和指南。
设计模型:提供一种提炼子系统或软件系统中的构件或者两者之间关系的纲要设计。设计模型描述普遍存在的在相互通讯的构件中重复出现的结构,这种结构解决在一定的背景中的具有一般性的设计问题。
代码模型:也称“成例”、实现模式。是较低层次的模式,并与编程语言密切相关。代码模型描述怎样利用一个特定的编程语言的特点来实现一个构件的某些特定的方面或关系。
5.8 什么是软件体系结构?简述软件体系结构的设计重要性。
答:软件体系结构:是具有一定形式的结构化元素,即构件的集合,包括处理构件、数据构件和连接构件。处理构件负责对数据进行加工,数据构件是被加工的信息,连接构件把体系结构的不同部分组组合连接起来。这一定义注重区分处理构件、数据构件和连接构件,这一方法在其他的定义和方法中基本上得到保持。
重要性:软件体系结构设计是高阶层的设计,定义了包(子系统),包括包之间的依赖关系和主要的通信机制。自然清晰和简单的结构是目标,避免几乎没有依赖或双向依赖。
5.9 试说明软件体系结构的演变过程。
答:(1)单机系统:是指只需装在一台电脑上,同时只能一个用户使用的系统,没有服务器概念,很多早期的软件都是单机系统,与分布式系统区别。
(2)客户机/服务器(两层)结构:由服务器提供应用(数据)服务,多台客户机进行连接。
(3)浏览器/服务器(B/S)结构:在当前Internet/Intranet领域,“浏览器/服务器”结构是非常流行的客户机/服务器结构。这种结构最大的优点是:客户机统一采用浏览器,这不仅让用户使用方便,而且使得客户机不存在安装维护问题。
(4)三层结构:三层结构的客户机/服务器模型是一种先进的协同应用程序开发模型,不是物理上,而是逻辑上将客户机/服务器系统中各种各样的部件划分为三“层”服务,它们共同组成一个应用程序,这三层服务包括:数据访问层、业务逻辑层和表示层。
5.10 如何理解体系结构风格和模式的本质?
答:体系结构风格:定义了结构组织模式的系统族,用来表达一组协作的约束,使得对公共约束的特征进行沟通变得更加容易,被用作一种进行抽象的方法,而不是代表一种个性化的设计。
体系结构模式:是对某类问题域给出的一套软件结构的解决方案,描述了软件系统基本的结构化组织方案,是处理特定问题的高效、成熟的模板。
5.11 什么是软件框架?与模式的区别是什么?
答:软件框架:软件开发过程中提取特定领域软件的共性部分形成的体系结构,不同领域的软件项目有着不同的框架模型。
区别:模式提供一种思想方法的指导,应用模式的指导,可以帮助设计人员做出一个优良的设计方案,达到事半功倍的效果。但模式不体现为程序,如MVC是一种体系结构的模式,对于同一软件体系结构,可以通过多种框架来实现。如Struts是实现MVC模式的著名框架,但不是唯一的。
5.12 RUP 的4+1 视图分别是什么? 答:概括而言,RUP的4+1视图是: (1)逻辑视图:设计的对象模型。
(2)进程视图:捕捉设计的并发和同步特征。
(3)实现视图:描述了在开发环境中软件的静态组织结构。
(4)部署视图:描述了软件到硬件的映射,反映了分布式特征。
(5)用例视图:该视图是其他视图的冗余(因此“+1”)。它包含用例和场景。
5.13 什么是设计模式?
答:设计模式:是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。
5.14 简要说明类的详细设计分哪几步来实现?
答:(1)使用设计模式和机制:使用适合设计的类或功能、符合项目设计指南的设计模式和机制。
(2)创建初始设计类:为指定为此任务输入的分析类创建一个或多个初始设计类,并指定跟踪依赖关系。包括设计边界类、设计实体类和设计控制类。
(3)定义属性:类的属性为类实例提供信息存储,并经常用于代表类实例的状态。类本身保持的任何信息都是通过其属性完成的。
(4)确定持久类:需要在永久介质上存储其状态的类被称为持久类。
(5)定义操作:类的操作是类的行为特征或动态特征,表示类提供的服务。 (6)定义方法:方法制定操作的实现。
(7)定义状态:对于一些操作,操作的行为取决于接受者对象所处的状态。
5.15 什么是实体类与持久类?说说两者之间区别与联系。
答:实体类:在分析期间,代表被操纵的信息单元。它们往往是被动的、持久的,并且可能被确定并与持久性分析机制相关联。
持久类:需要在永久介质上存储其状态的类。
区别和联系:持久类是针对于hibernate对数据库的映射来说的,持久类=实体类+xml或注解配置;而实体类就是一个javabean类,有属性,get、set方法,以及一些简单处理的方法。
5.16 开发物理数据库设计的详细步骤有哪些?
答:(1)定义域;(2)创建初始物理数据库设计元素;(3)定义引用表;(4)创建主键和唯一性约束;(5)定义数据和参照完整性实现规则;(6)将数据库设计反向规范化来为性能进行优化;(7)优化数据访问;(8)定义存储器特征;(9)设计存储过程来将类行为分发给数据库。
5.17 进行界面设计时分析用户的特征有什么作用?
答:描述某些(人类)用户的特征,这些用户将与系统交互来执行当前迭代中考虑的需求。要重点描述主要用户,因为交互的大部分涉及这些用户。该信息对于下面的后续步骤很重
要。
与系统分析人员协作,确定是否需要对用户(主要的执行者)描述做出更改,来反映特征描述。
5.18 选择题
1. 如图5.18-1 所示.A 、B 和C 是什么对象? (单选题)(D) (a) A 是实体.B 是控制.C 是边界 (b) A 是边界.B 是实体.C 是控制 (c) A 是实体,B 是边界, C 是控制 (d) A 是控制,B 是实体.C 是边界 (e) A 是边界.B 是控制,C 是实体 (f) A 是控制,B 是边界.C 是实体
2. 在UML图中,哪个图用于显示在对象之间传送的消息? (多选题)( CE) (a) 活动图 (b) 对象图 (c) 通信图 (d) 状态机图 (e) 顺序图 (f) 部署图
3. 下面不是设计模型相关的?(单选题)( D) (a)architecture (b) data
(c) interfaces (d) project scope
5.19 综合案例分析-餐厅PDA 无线点菜系统分析与设计
根据第 4 章餐厅PDA 无线点菜系统的需求,请分析设计相关系统。包括 1. 找出主要的概念实体,画出实体类图。
2. 画出系统分析动态模型中的顺序图(要体现边界类、控制类和实体类之间通信内容)。 3. 从上面的顺序图中解析出实体类的操作,画出初步的设计类图。 4. 选择B/S结构,为系统设计相应的界面。 5. 设计相应的数据库表结构
答:1.主要的概念实体:客人,点菜单,点菜记录,打印机,服务员,菜品分类
实体类图:
2.
3.实体类操作:1)客人: 输入已点菜品
2)点菜记录:记录已点菜品();确认点菜记录();发送点菜记录() 3)打印机:打印点菜记录()
类图:
4.界面:
5.数据库表结构:
.01.05
篇2:软件工程专业导论论文
软件工程专业导论论文
摘要:针对浙江省服务外包软件业的发展与高校在软件工程专业特色培养之间的矛盾,分析浙江工业大学计算机科学与技术学院在以“服务外包”为特色的软件工程专业建设方面的优势,提出以强化“服务外包”特色,培养复合型、实用型软件工程高级技术人才为目标的优势专业建设总体规划和主要建设方案。
关键词:优势专业;服务外包;软件工程;建设方案
高校毕业生专业结构失衡,与社会对计算机应用需求及最新科技发展脱轨,是目前在计算机类专业人才培养中遇到的主要问题之一。近年来,随着浙江省和长三角地区信息产业的蓬勃发展,高素质软件人才,特别是软件服务外包产业的人才缺口正在不断加大。针对这一现象,浙江工业大学经过认真的市场调研、认证和规划后提出要以培养软件“服务外包”人才为突破口,强化建设具有“产学研用结合办学,分层分类精细培养”特色的软件专业,培养具有“宽口径、厚基础、强个性、善创新”的应用创新型软件工程人才,这对缓解实际需求矛盾,提高人才培养质量,优化专业结构具有十分重要的意义。
1 服务外包专业建设
1.1 服务外包产业在浙江省的发展状况
作为现代服务业的一个重要组成部分,服务外包产业具有以下特点:信息技术含量高、附加值大、国际化水平高、环境污染少、能耗低、人力资源密集。浙江省的服务外包产业目前正处于刚起步的重要阶段。浙江省服务外包合同的执行总额约为110亿美元,其中杭州市作为浙江省“中国服务外包示范城市”,其20离岸服务外包合同的执行总额达到了15.5亿美元,在全国21个示范城市中位居第四。服务外包区域发展逐渐形成以杭州市为中心,宁波、嘉兴、金华、绍兴、台州、湖州等共同发展的新格局。年浙江省服务外包企业达到1480家,其中新增企业670家,增幅位居全国前列,同时,服务外包从业人员也达到了18万人。
《浙江省服务外包产业“十二五”发展规划》明确指出:浙江省要建设成为全国服务外包产业发展的先进省份,并打造出“浙江服务”的整体品牌。该规划确定了“至全省服务外包合同执行总额突破200亿美元”的经济目标,且至20浙江省服务外包从业的人数预计达到30万人,同时年均新增的直接就业人数将会突破3万人。
服务外包产业是人才驱动型产业。计算机类专业作为高校开设普及率较高的专业,在服务外包软件人才的培养上还存在巨大的缺口。随着产业的发展,服务外包实用型人才要具有复合型、跨行业、外语沟通能力强的特点,其人才数量远远不能满足需求。为保持该产业的持续发展,加快转变经济发展方式,促进经济转型升级,国家有关部门先后制定了一系列推动高校计算机学院培养服务外包人才的政策,从而进一步提升高校毕业生的综合能力、就业率和就业质量。
1.2 培养服务外包行业人才的优势
为适应软件服务外包产业的发展需求,浙江工业大学计算机科学与技术学院软件工程专业已申请建立以“服务外包”为特色的浙江省高等学校优势专业,且在服务外包行业人才培养上有以下优势。
1)已建立创新型人才培养模式。
计算机科学与技术学院正在积极地以国家级人才培养模式创新实验区(技术与艺术相结合的数字媒体跨学科人才培养模式创新实验区)的建设为契机,探索实践产学“双螺旋”驱动的高质量软件人才培养,以工程实践与创新能力为核心,从而形成特色鲜明的软件工程创新型人才培养模式。
2)具有高水平专、兼职教师队伍。
浙江工业大学软件工程专业已经建成了一支由专任教师、企业兼职教师、软件领域知名教育与学术专家组成的120多人的教师队伍。
3)共建了教学改革与实践教学联合体。
浙江省教育厅和杭州市高新技术产业开发区共建软件学院,并共同成立了浙江工业大学软件学院校企合作委员会。该委员会拥有理事单位近70家,会员单位包括众多国内外知名IT企业。在此基础上,校企共建了教学改革联合体,共同确定了人才培养目标、课程体系、课程教学内容。学校专职教师与企业教师共同承担课程教学。学生的实习和毕业设计等实践环节全部进入企业进行。
4)已建成软件工程专业核心精品课程。
根据软件工程课程体系框架,学校已建成1门国家级精品课程、4门省级精品课程及5门校级精品课程,其中核心学科基础课程(如C++程序设计、数据结构、数据库原理及运用、计算机网络基础等)已全部建成省级精品课程。
5)专业人才培养质量和社会认可度高。
浙江工业大学软件工程专业已培养了6届毕业生,共1590人,其中有600人进入服务外包企业就职。专业教学效果良好,获得用人单位的极大认可。还有一批学生获得了国际国内多项高水平的奖项。例如,ACM队在世界总决赛上获前20名,ACM队获得亚洲预选赛3金1银的成绩,并再次人选全球总决赛。在第三届中国大学生服务外包创新创业大赛中,计算机科学与技术学院选派的两支队伍均突破重重选拔,晋级决赛答辩环节,分别获得了二等奖和三等奖的不菲战绩。
2 专业特色规划和建设思路
经过多次论证,浙江工业大学计算机科学与技术学院软件工程专业将总体规划设定为:经过特色专业的建设,以先进的教育思想和理念为指导,以培养软件“服务外包”人才为突破口,强化“产学研用结合办学,分层分类精细培养”的专业特色,在人才培养模式创新、教学团队建设、课程与资源建设、教学方法改革、实践教学与平台建设、教学管理以及国际合作等方面取得标志性的教学成果,将浙江工业大学软件工程专业打造成实训基地完备、师资力量雄厚、教学质量一流、课程体系先进、专业特色鲜明、行业和社会评价优良的特色专业,建设成省内一流、国内知名的复合型、实用型软件工程高级技术人才的培养基地和国内外具有一定影响的计算机软件产学研基地。
2.1 “产学研用”结合办学 校企联合将教学改革与实践教学相联合,共同确定人才培养目标、课程体系、课程教学内容,学校专职教师与企业教师共同承担课程教学;同时将学生的实习和毕业设计等实践环节全方位嵌入企业项目,通过任务驱动、案例驱动、项目驱动,让学生融入教师科研和企业工程项目,做到做中学,学致用,形成产学研用结合办学的特色。
2.2 分层分类精细培养
学校以培养软件“服务外包”人才为突破口,在人才培养模式改革、研究型教学方法改革、课程建设和实践平台建设中,坚持以软件研发实践和创新能力的培养为核心,强化个性,分层分类精细培养复合型、实用型软件工程高级技术人才。
3 优势专业建设总体方案
3.1 完善人才培养方案
学院根据“夯实基础、拓宽口径、强化个性、善于创新”的指导思想,采用多层次、多方向、宽口径的课程教学体系,进一步完善专业教育学分制和产学研一体化联合培养方案;采用“嵌入式人才培养模式”,对学生进行“定制式”培养,包括软件服务外包知名企业实施联合培养和服务外包培训班等形式;完善专业主修方向及多个辅修方向相结合的机制,引进国外优秀师资和系列双语教学课程,制定对日服务外包和对欧美服务外包两种计划,提供相当数量的选修课程。
3.2 构建特色专业的课程体系
学院加强学科基础教学,与服务外包企业联合构建“服务外包联盟”,共同确立多层次的课程体系;提供新型、实用的学科方向课和新技术讲座;搭建软件服务外包实训基地、创业孵化中心;开设各类大型实验、软件工程综合实习等实践环节强化实践训练。实行的新课程体系由软件工程领域的核心课程、引进国际先进的课程、校企合作联合开发的面向服务外包课程组成。图1所示为软件工程专业课程体系。
我们要着重加强实践教学在课程体系中的比重,增加实用性课程和实践环节的比重,增加项目实践的时间,扩展服务外包案例分析教学内容,同时着力强化“分段制、融入型”实习,明确产学研在教学上的合作机制,提升设计性、综合性实验课程比例,提高毕业设计水平。
3.3 改革课程教学内容,加强新教材建设
学院对现有的课程内容进行改革,并根据历年来学生对教材的反馈情况以及教师教材的使用情况,精心选择优秀教材。教材由同课程的多名教师讨论决定,并由课程团队责任教师进行把关,要保证教材内容时刻跟随相关产业和领域的发展。学院还组织教师积累经验,结合软件服务外包编写教材。教材内容要反映产业和领域发生的.变化。此外,学院还引进相应的国外原版教材,通过双语教学提高学生对最新软件开发理论和技术的了解,提高外语应用能力,培养能在国际化环境中工作的高层次软件专业人才。
3.4 改革教师培养和使用机制,加强教师队伍建设
学校秉承建设专、兼职教师队伍相结合的方针及特色,完善学科带头人、专业负责人制度,以培养骨干教师和中青年学科带头人为重点,通过引进、培养、补充等多种方式,建设精干高效、富有活力、素质良好、结构优化的高素质专职教师队伍。另外,学校还加强面向服务外包方向的师资培训,增强校内教师指导专业技术能力,重点培育教学骨干、教学带头人、教学名师、教学团队。
学校从国内外知名服务外包软件企业的高层主管和技术骨干、国内外相关学科中聘任兼职教师,聘请外国知名专家、学者授课或讲座,保证专业建设始终与社会需求接轨,提升专业培养质量。
3.5 完善实践教学及实习基地建设
在学校的传统教学实验室的基础上,我们通过校企合作和校企共建教学改革与建设联合体,形成“服务外包联盟”,建立服务外包企业实验基地、校内实习基地和软件园的开放式实践基地,开展创业创新预孵化基地、大学生服务外包创业预孵化基地的建设,做好实验室建设规划和“服务外包校内实训中心”建设工作,形成专业良好的实践教学条件。
此外,学院还会完善分层分类的专业实验教学体系的建设。图2所示为分层分类多元化的实验教学方法。由此看出,该教学体系着重专业实验教学中复合型、实用型人才的工程实践能力培养,依据学科基础技能、专业基本技能、专业综合技能和工程实践能力划分层次,采用课内实验、综合实践、课程设计、开放项目、科研创新项目、科研勤工、学科专业竞赛等课内外结合形式,划分实验班、一体化专业、服务外包专业模块班等不同学生对象,依托实验教学体系实施分层分类精细化培养,采取任务驱动、问题驱动、案例驱动和项目驱动4种基本方法,适应不同实验课程的需要,实施多元化的实验教学方法。
3.6 加强学竞赛平台的建设,完善学生科技创新体系
学院举办课程竞赛,开展自主实验,积极组织、鼓励学生参加各种校内外科技竞赛,通过加强竞赛网站建设和赛事承办,进一步加深校企合作模式,加大宣传力度,让更多的高校和企业参与竞赛的各项活动,突出产学研用相结合培养软件工程人才的特色,进一步完善学生科技创新体系,促进学生参与创新创业,获得更多更好的成绩。
学院借助浙江工业大学在后ACM竞赛中3年获得进入全球总赛的契机,加强了ACM竞赛的平台建设,完善了教练团队和集训制度,鼓励学生通过竞赛和国际联系,通过人选全球总决赛和全球名校的学生平等竞争,取得佳绩,彰显浙江工业大学专业建设人才培养成效。
3.7 教学管理与运行机制的研究与建设
学院针对服务外包专业建设,建立和完善相应教学管理组织、教学质量保证体系,通过完备的规章制度和教学规范,以及对规章制度执行情况的例行监督和反馈机制,有效管理教学,提高教学质量。
(1)建设由政府职能部门、行业管理部门、有代表性的企业和学校主管部门组成的专业建设顾问组,成立软件服务外包专业建设咨询委员会,指导专业建设的定位与方向。
(2)建设以杭州骨干软件企业为主组成的校企合作委员会,共建服务外包实践基地,完成学生实习和毕业设计的教学工作。
(3)建设由国际国内知名软件技术教育专家、软件设计与开发专家组成的教学指导与教师培养委员会,联合服务外包企业,指导课程体系、课程内容的建设和教师队伍的建设。
4)进行服务外包教学管理、教学工作规范、实习环节质量评定方法和监督反馈机制的建设。
4 结语
针对计算机人才培养质量与社会需求和最新科技发展脱轨问题,笔者详细分析了服务外包产业在浙江省的发展状况及浙江工业大学计算机科学与技术学院在服务外包行业人才培养中的优势,提出了以培养软件“服务外包”人才为突破口,强化建设具有“产学研用结合办学,分层分类精细培养”特色的软件专业,培养具有“宽口径、厚基础、强个性、善创新”的应用创新型软件工程人才的方案。通过今后几年的不断努力实践,我们希望能取得软件工程专业建设的成效,满足社会对软件人才的需求,并为其他高校软件工程人才的培养和专业建设起到示范和带动作用。
篇3:学习软件工程导论后的心得体会
这门课的作用就是,在你真正见过猪以前,先教你怎么吃猪肉,怎么骑着猪跑。
软件工程导论所讲述的内容,其实并没有很多人想象中的那么重要。就像是一本教你如何游泳的书。确实是一种非常重要的技能,但实际上你如果不看书,在水里扑腾几天也就会了,只是姿势不那么标准,游不了那么快。学会游泳非常重要,但其实并不是说你要学会这本书有多么重要。
他的内容大部分都是一些总结出来的经验和方法。如果没有真正的试验过,很难有切身的体会。比如说你如果没经历过整天用zip压缩当天代码保存的工作,就不会知道版本控制有多么重要。还有那些设计模式。比如Singleton,你也许会说,用个全局变量,只生成一个对象不就可以了。自己写小项目固然可以,但软件工程作为一种“工程”,是很难一个人包揽全部工作的。你要多项目之间配合,要多人维护同一部分代码。你要有一种确定的手段,来保证你这个类只有一个对象。所以把它提炼出来,总结成一种模式。
至于学习上,除了完成规定的学习目标外。我认为学过这门课,至少应该了解一个项目中会有哪些分工,大概是如何运行的。各种设计模式的话,了解一下就可以了。只要你以后在工作中,能记起来有这么个东西,这种情况下,某种模式可能比较合适,具体细节到时候再查就行了。
这门课自己也说,是门导论而已。介绍一下你以后可能遇到的坑,以后再遇到那个填那个好了。
篇4:学习软件工程导论后的心得体会
谈到机械工程先来讲讲机械,中国的机械发展有着悠久的历史,五千年前的纺织机械、晋朝时期的连机锥和水碾、西汉时期的指南车和鼔车、东汉的地震仪、秦始皇时期的铜车马„„国外机械的产生要追溯到18世纪初,第一次工业革命产生蒸汽机和一些以蒸汽机为动力的近代机械的雏形,再到19世纪代左右的第二次工业革命,内燃机的产生带来了新的动力机械,开始了机械的迅猛发展。从机械和社会的发展来看,一个社会机械水平越高,生产力水平越强。现代社会也是一样,机械是现代社会进行生产和服务的六大要素(人、资金、信息、能量、材料和机械)之一,机械工业是国民经济的支柱工业之一,是社会生产力发展水平的重要标志。综上可见,机械是一个国家发展、民族复兴的重要保证。
机械社会发展中的地位如此之高,那机械工程呢? 机械工程是运用数学、物理等基础理论和有关机械方面的专门知识,结合生产实际经验,经济有效地解决在设计、研究、制造和运行各种机械中遇到的实际问题。从定义上可以看出,机械工程是一个系统性的全面的工程,可以尽可能合理的创造和最大化的利用机械。可见,在21世纪这样一个充满市场竞争和需要不断创新的时代,机械工程运用的好与不好,往小一点说,直接关系到一个企业的存亡问题,往大一点说,直接决定了一个国家机械工业方面的软实力。机械工程对国家发展如此之重要,对于未来希望成为工程师的大学生的我来说,没有理由不好好的了解机械工程。
机械工程包含机械工程中的力学、机械设计、机械制造技术、机电一体化技术和车辆工程。每个部分都有其特定的理论
工程中力学包含:理论力学、流体力学、材料力学、震动力学、计算力学。这些力学是进行机械设计和制造的基础,学好这些理论才能知道运动以怎样的机构传递,能量以怎样的机器传递。
机械设计包含了很多的设计方法,除去传统设计方法不说,现代设计方法包含:优化设计、可靠性设计、有限元分析、并行设计、绿色设计、创新设计、模块化设计和反求设计。其中有限元分析、绿色设计和反求设计令我印象深刻。利用电脑软件对设想的机械部件进行有限元分析,可以确保设计的合理性和可利用行,如此以来,可以在不做出模型的情况下就可以清楚的了解结构的性能,节约了时间不说更节约了大量的人力、物力财力。在绿色设计方面,美国的废旧汽车利用可谓楷模,报废汽车再利用率达到了百分之九十五,再利用零部件重量超过旧车的总重量的百分之七十五,可以说节约了大量的资源,对环境有了一个很好的保护,这点反观我的祖国,确实有必要学习一下,我国现在汽车每年的购买量都在大幅度上涨,随之而来的必然会有大量的报废汽车,这是新的产业,也是一个新的经济增长点,不但节约资源保护环境,还可以促进经济增长,真是一举两得的好事啊。这些设计方法中,最让我眼睛一亮的要数“反求设计”,二战战败国日本就是运用这种方法,以“一代引进,二代国产化,三代改进口、四代占领国际市场”方针,迅速的崛起为世界第二大经济体。日本的成果是对这种方法实质的最好诠释,中国也在使用这种方法,不过是歪曲了的,只顾模仿不懂得吃透他人的技术再创新,是中国科学技术落后与发达国家的一个重要因素。模仿不可怕,可怕的是照搬照套!用好“反求设计”实现“比他人做得更好”。
机械制造技术包含两方面含义:
1、指用机械加工零件的技术;
2、指制造某种机械的技术。在制造技术方面,先进制造技术显得更适合现代化,通过将多方面的技术进行交叉、融合和集成,综合应用于产品全生命周期的制造过程,可以更经济更有效率更好的制造出适应市场需求的产品。特别是三维打印技术,可以通过电脑造型,再通过3D打印机打印出模型来观察产品的合理性和可用性,方便效率高。
最后谈谈机电一体化技术,机器人现在是各个国家研究的热门项目,每个国家都希望在这方面领先全球,机器人就是典型的利用了机电一体化技术的产品,是机械和电子的有机结合。从20世纪中后期,机电一体化就代表了现代机械工程的发展方向,产生了众多高新机械产品,如:火箭、卫星、宇宙飞船、航空母舰、深海探测器。可见,机电一体化的前景非常不错,不过要想学好这么技术,作为机械专业的学生来说,就有必要好好的学学计算机和信息类的知识,毕竟机电一体化中电子占了很大的比重,为了自己未来的发展,也为了赶上现代化的机械工程方向,我要努力的学好机械专业课的同时,多涉猎一些电子类的书籍,为未来的发展奠定基础。
篇5:学习软件工程导论后的心得体会
在前不久的几周里,刚刚结束了“软件工程导论”课程的学习。这门课程带给了我很大的启发,让我对软件工程这一新兴学科有了全面的,深刻的认识。卢苇老师精彩的讲演,同学们积极地提问与回答,都带给了我深刻的认识。下面是我在学完该课程后的一些启发。
一、我对软件行业的认识
众所周知,计算机已经是现代人生活的必需品。无论是工作、学习、生活、娱乐,我们的生活每时每刻都能见到它的踪影。大到航天飞机的研制,原子弹、氢弹的引爆,笑道一个小小的电子表,都需要会软件会变成的人来研制它,让其工作。所以,伴随着计算机而生的的潜在市场是十分巨大的,无数因此成功的公司便是印证,无论是乔布斯的“苹果”,还是比尔盖茨的微软,亦或是马克·扎克伯克的facebook,都获得了世人的肯定。他们的成功被人称道,但是不可否认的是他们的成功是建立在如此巨大的市场空间上的。所以,首先软件行业有着充足的市场。
其次是我国的软件力量。我们国家面临着一个良好的社会的环境,社会安定,政府稳定,特别是当前经济发展迅速,法制建设不断完善,高新技术领域突飞猛进。但是由于法律制度不完善,并且从业人员普遍创新的意识不够完善等等多方面的因素,我国的市场并非特别乐观。我们都能清晰地看到许许多多成功的企业都未做到完全的创新,如“淘宝网”便是借鉴“亚马逊”网站,而“人人网”也与facebook有极大的相似度,而腾讯更是众所周知的山寨之王。但是换个角度看看,这正说明,我国的软件具有极大地潜力,在未来的几年,几十年之间,我国的软件行业必会重新洗牌,涌现出强大的软件企业,而我们,也一定有机会实现自己的软件梦。
第三是我国软件行业的人员构成。我国的软件行业目前主要还是中低素质人员构成。打不风程序员,他们没有系统的、完整的学习整个软件工程的知识,仅仅靠自学或者短期学习,掌握到部分的、片面的知识就已经进入从业阶段,这样的学业使他们不能够胜任自己的工作。而高端的软件从业人员相比较而言是相对稀少的,所以我国的软件行业并未真正崛起。我们急需那样的高端人才,而这些人才,便是现在我们学院所努力培养的。
二、我对我们学院软件工程专业的认识
IT行业是随着电子信息产业的发展而逐步发展起来的,并且日益得到完善。IT行业的平稳增长必然会带来软件工程师需求的增长,目前随着IT产品出现的技术融合,市场需求的巨大和专业人才的缺乏,由此可知,软件行业还是比较乐观的。但软件行业需要的也是复合型人才,软件工程师需要掌握更多的编程语言。
北京交通大学软件学院是经教育部批准的国家示范性软件学院。学院成立于2月,是为适应我国经济结构战略性调整的要求和软件产业发展对人才的迫切需求,实现我国软件人才培养的跨越式发展而建立的。学院充分发挥学校的计算机学科优势和 IT 企业资源综合优势,利用已有的办学与市场资源,与国内外著名的 IT 企业开展合作,在管理体制、运行机制、教育思想与理念、人才培养方案与课程体系、教学模式与方法、产学研合作等领域大胆创新,已探索出一条有效地培养“国际化、工业化、高层次、复合型” 软件人才的办学之路。
作为教育部批准的全国36所示范性软件学院和学校教育体制改革与办学机制创新的试验田,北交大软件学院承载着学校的殷切期望。作为国家重要的软件人才培养基地,在管理体制、运行机制、教育思想与理念、人才培养方案与课程体系、教学模式与方法、产学研合作等领域大胆创新,探索出一条有效地培养“国际化、工业化、高层次” 软件人才的办学之路,推出了“2+1+1”人才培养模式。作为一名北京交通大学软件学院的靴子,我感到十分自豪。
三、我未来的职业规划
在学习完院长的导论课后,我对自己的直接规划产生了很深的想法并且做出了很大的改变。首先,我一定要努力完成大学的学业。在大学一年级,我要认真地完成专业课程,努力学好c语言和java的课程,同时扩大自己的知识面,多多学习一些有关软件方面的知识,不断地充实自己。
在大学
二、三年级,我要注重学习Java基础知识、多学习项目开发经验,了解项目开发业务知识,并在学习中掌握DB2数据库的SQL语句的复杂查询以及管理操作,并深入学习了解struts、hibernate、spring相关操作。同时在大三结束之前,我要至少了解并熟悉2门编程语言,如.net、C++、PHP;并学习掌握nOracle、MS-SQL数据库管理操作;掌握软件开发各个阶段的基本技能,如市场分析, 可行性分析, 需求分析, 结构设计, 详细设计, 软件测试等。如果有时间的话,还要学习管理方面的相关知识,由技术型向管理型方面的转移。我要多多锻炼自己的能力,不论待人接物,还是进行演练,都要积极参见,努力争取较大的提升。
在大学四年级,学校会安排比较多的实习,到那时候,就要好好工作,发挥自己前三年学到的知识,努力完成自己的毕业实习,最后,优秀地完成自己的大学学业。如果能够,我将选择继续深造,可以通过保研,考研等等许多途径,努力获得研究生的资格。同时,就业也是一个不错的选择,但是不论考研还是工作,我都要一如既往地补充自己,不断提高自己的专业水平。在工作时,我会优先选择私人的,创意性比较强的公司,从中积累经验,并且努力奋斗,成为复合型人才,我便可凭此进入大公司或者帮助自己的公司变得更加强大和成功,最后成为IT行业中优秀的一员。
四、总结
卢苇教授的“软件工程导论”真的让我获益良多,对于软件工程专业有了深刻的了解,对自己以后的道路的安排也有了深刻的认识。上课的日子总是很快,不知不觉中遍结了课,我感到如梦初醒,因为我们才敲开软件知识的大门。路漫漫其修远兮,吾将上下而求索。不经历风雨怎能见彩虹。我要时刻保持一颗清醒的头脑,随时为自己的目标而奋斗。其实,每个人心中都有一幅画,描述着理想、信念、追求、抱负;每个人心中都有一片森林,承载着鸟语花香的甜蜜、阴森恐惧的彷徨。一个人,若要获得成功,必须拿出勇气,付出努力、拼搏、奋斗、成功。机遇不同情眼泪的忧伤、不相信颓废的绝望,只期待爱打拼、时刻准备着的人。
篇6:学习软件工程导论后的心得体会
初学软件工程第一周的时候以为只是纯粹的理论课毫无用处,其实不然。深入了解之后发现它对程序的设计,错误的检测以及软件测试,编写方面有不可磨灭的便捷好处。开发一个软件时,对原定的系统模型和目标的现实以及系统完成后所带来的效益的预判断,可以明确开发与否,否则就是浪费人力,物力以及时间。
以下是所学过程中的知识点:
(1) 软件危机:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
所以若要解决软件危机,既要有技术措施(方法和工具),又要有必要的组织和管理措施,软件工程正是从管理和技术两方面研究如何更好得开发和维护计算机软件的一门新兴学科。
软件工程是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术、和方法来开发与维护软件。
软件工程方法学包含3个要素:方法、工具和过程。
(2)软件生命周期:软件定义、软件开发和运行维护
软件开发阶段: 问题定义,可行性研究, 需求分析,总体设计, 详细设计,编码和单元测试,综合测试,软件维护。
软件维护主要任务:是使软件持久的满足用户的需要。
软件过程目的:为获得高质量软件所需要完成的一系列任务的框架,规定了完成各项任务的工作步骤。
其中:可行性分析:技术可行性,经济可行性,操作可行性
(3) 判定表和判定树能够清晰地表达出各种动作之间的对应关系
软件项目管理的范围主要集中于4P上,即:People人员、Project项目和progress过程和product产品
第一个软件生命周期,瀑布型生命周期
程序设计:低耦合高内聚
(4) 学会画程序流图,SC图,ER图,DFD图,顺序图以及协作图。学会读图,可以独立完成相关计算题。
篇7:学习软件工程导论后的心得体会
我们没有进行过系统化软件设计的教育和学习,对如何进行软件的开发基本上就是想什么写什么。根本没有过系统化的设计。比如需求分析,可行性研究等。更不知道用什么模型来设计软件。这在我们以后的工作中是完全不行的,没有系统化的设计,是不可能满足客户的需求的。
胡老师让我们分组进行软件互换的形式来进行软件的修改。其实胡老师就是想让我们了解以后工作中,软件是如何设计的和制作的。对于以前的编程,我们只能按照自己的想法,想一步做一步。根本没有系统化的设计。通过对软件工程导论这门课程的学习,一遍学习一遍实验,实践与理论相结合。开始其实我根本不理解各种图的作用,觉得它们根本没有用,就是照猫画虎,没有任何的实际意义。但是通过后面的学习和理解,对他们有了独特的理解和想法。比如对uml来说。它是一种标准化交流的语言,它可以让开发人员与客户之间轻松的交流。用图的形式向客户展示软件设计的流程,从中传递信息。简单的说就是客户和设计人员交流的手段。
这学习,不管是实验小组的实验还是老师您要求的程序,基本都是我一个人做的,所以对各种图还是比较了解和掌握的。虽然对实验报告的制作感觉到十分的吃力,工作量很大,但是还是通过几个晚上的专心学习和制作,最后还是完成了。但是好多图画的还是很有问题,没有真正的完全理解和掌握。但是在后面的学习和复习中,有了更正。
下面我对实验进行一下总结。首先是实验一结构化分析和设计,主要理解DFD图,数据字典,ERD图和问题描述进行设计和学习。DFD图主要分为三个方面,数据的源点,数据流和数据存储。它将信息流和数据从输入移动到输出的工程中所经受的变化。简单的说就是主体,动作和数据单元的问题。接下来是数据字典,主要进行软件操作单元的数据定义,格式化和功能说明。然后就是ERD图,根据短信系统的问题描述,可得到软件实体,从而得到此图。其次是实验二和三面向对象分析和设计。主要进行用例图,场景描述,初始化类图,协作图的制作。先是从需求到业务用例图,根据客户需求(也就是我们软件的需求)画出用例图。它的作用其实就是描述该实现什么业务或者说是功能。接下来就是场景描述,简单来说就是软件实际的操作的某个步骤的具体说明。跟着就是初始化类图,重要作用就是显示系统有哪些实体,实体的具体操作,实体间的关系。然后就是协作图,主要作用是针对某个软件的功能,进行交互过程的解释,简单来说就是具体业务的具体操作,而且是所有涉及到的操作。动态模型和静态模型的建立,在面向对象的系统中,业务流程表现在为对象之间的交互,对动态模型和静态模型分析和总结,从而产生顺序图。面向对象设计就是对实体类进行定义和说明,所有的类都是跟软件里的类相对应。就是真正的类。最后就是实验三编码和测试,实验主要对测试和编码进行总结。从中总结制作过程和测试过程。
实验对我来说可能很辛苦,但是我从中学到了很多。了解了很多图的作用,也了解了以后工作的具体流程,这对我们以后的实际工作提供很多帮助。对我来说辛苦着收获着快乐着。跟您的交流中也学到了很多知识。总之我很满足。
篇8:《软件工程导论》期末考试试题和答案2
《软件工程导论》期末考试试题和答案2
一、填空题(每空1分,共20分)
1. 软件生存周期一般可分为__问题定义__、可行性研究、_需求分析_____、设计编码、__
测试________、运行与维护阶段。
2. 按软件的功能进行划分,软件可以划分为和应用软件。
3. 可行性研究主要集中在以下四个方面性 、法律可行性 和抉择。
4. 用户界面的
5. 常见的软件概要设计方法有3大类:以数据流图为基础构造模块结构的___结构化设计
方法_________,以数据结构为基础构造模块的__jackson方法__________,以对象、类、继承和通信为基础的__面向对象设计方法__________。
6. __数据流图________和__数据字典___共同构成系统的逻辑模型。
7. 软件测试的方法有__分析方法________和___非分析方法_______(即黑盒法)。 8. 单元测试一般以___白盒_____________测试为主,___黑盒______测试为辅。 9. 成本估计方法主要有__自底向上估计________、_自顶向下估计_________和算法模型估
计三种类型。
二、单项选择题(每小题2分,共10分)
1. 下列哪个阶段不属于软件生存周期的三大阶段( C )。
A、计划阶段 B、开发阶段 C、编码阶段 D、维护阶段 2. 需求分析是( A )。
A、软件开发工作的基础 B、软件生存周期的开始 C、由系统分析员单独完成的 D、由用户自己单独完成的
3. 原型化方法是软件开发中一类常用的'方法,它与结构化方法相比较,更需要( B )。
A、明确的需求定义 B、完整的生命周期 C、较长的开发时间 D、熟练的开发人员
4. 软件维护时,对测试阶段未发现的错误进行测试、诊断、定位、纠错,直至修改的回归
测试过程称为( A )。
A、改正性维护 B、适应性维护 C、完善性维护 D、预防性维护 5. 一般说来,投入运行的软件系统中有错误( A )。
A、不是不可以理解的 B、是不能容忍的 C、是要求退货的理由 D、是必然的
三、多项选择题(每小题2分,共10分)
1. 下面哪些测试属于白盒测试( AE )。
A、基本路径测试 B、等价类划分 C、边界值分析 D、错误推测 E、逻辑覆盖测试
2. 下列哪些选项是属于内容耦合( ABC )。
A、一个模块直接访问另一个模块的内部数据 B、一个模块有多个入口
C、一个模块不通过正常入口转到另一模块内部 D、一个模块只有一个入口
3. 下列属于度量效益方法的是( ABC )。
A、货币的时间价值 B、投资回收期 B、收入 D、投资回报率
4. 数据流图是用于表示软件模型的一种图示方法,在下列可采用的绘制方法中,哪些是常
采用的( ACD )。 A、自顶向下 B、自底向上 C、分层绘制
D、逐步求精
四、判断题(正确的在括号内打上“√”,错误的打上“×”。每小题2
分,共20分)
1. 在进行总体设计时应加强模块间的联系。( N )
2. 系统结构图是精确表达程序结构的图形表示法。因此,有时也可以将系统结构图当作系
统流程图使用。( N )
3. 用黑盒法测试时,测试用例是根据程序内部逻辑设计的。( N ) 4. 在程序调试时,找出错误的位置和性质比改正该错误更难。( Y )
5. 以对象、类、继承和通信为基础的面向对象设计方法(OOD)也是常见的软件概要设计
方法之一。( Y )
6. 如果通过软件测试没有发现错误,则说明软件是正确的。( N ) 7. 快速原型模型可以有效地适应用户需求的动态变化。( Y )
8. 模块化,信息隐藏,抽象和逐步求精的软件设计原则有助于得到高内聚,低耦合度的软
件产品。( Y )
9. 集成测试主要由用户来完成。( N ) 10. 软件危机完全是由于硬件问题引起的。( N
) 五、简答题(每小题5分,共20分)
1. 2. 3. 4.
什么是软件危机?为什么会产生软件危机? 耦合性有哪几种类型? 其耦合度的顺序如何
简述需求分析工作可以分成哪四个方面?软件需求分析的有哪三个基本原则? 什么是黑盒测试法?
六、分析设计题(每小题10分,共20分)
1. 某“调整工资”处理模块接受一个“职称”的变量,根据职称的不同(助教,讲师,副
教授,教授)作不同的处理,其中若是助教还必须输入工龄,只有工龄超过两年才能调整工资。请用等价类划分法设计测试用例。
2. 假定某航空公司规定,乘客可以免费托运重量不超过30公斤的行李。当行李重量超过
30公斤时,对头等舱的国内乘客超重部分每公斤收费4元,对其它舱的国内乘客超重部分每公斤收费6元,对国外乘客超重部分每公斤收费比国内乘客多一倍,对残疾乘客超重部分每公斤收费比正常乘客少一半。用判定树表示计算行李费的算法。
一、填空题(每空1分,共20分)
1. 问题定义 需求分析 测试 2. 系统软件 支撑软件
3. 经济可行性 技术可行性 法律可行性 4. 可使用性
5. 结构化设计方法(SD) Jackson方法 面向对象设计方法(OOD) 6. 数据流图 数据字典 7. 分析方法 非分析方法 8. 白盒 黑盒
9. 自顶向下估计 自底向上估计
二、单项选择题(每小题2分,共10分)
三、多项选择题(每小题2分,共10分)
四、判断题(每小题2分,共20分)
1-5:×××√√ 6-10:×√√×× 五、简答题(每小题5分,共20分)
1. 答:软件危机是指软件在开发和维护过程中遇到的一系统严重问题,主要包含二方
面的问题,一是如何开发利用软件,二是如何维护数量不断膨胀的已有软件。产生软件危机的原因,一方面与软件本身的特点有关,另一方面和软件开发与维护的方
法不正确有关。
2. 答:低:非直接耦合? 数据耦合?标记耦合? 控制耦合?外部耦合? 公共耦合
?内容耦合 :高
3. 答:需求分析阶段分成四个方面:对问题的识别、分析与综合、制定规格说明和评
审。三个基本原则:必须能够表达和理解问题的数据域和功能域;必须按自顶向下、逐步分解的方式对问题进行分解和不断细化;要给出系统的逻辑视图和物理视图。 4. 答:黑盒测试法把程序看成一个黑盒子,完全不考虑程序的内部结构和处理过程,
它只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据,产生正确地输出信息。
六、分析设计题(每小题10分,共20分)
1. 划分等价类:
设计测试用例:
2. 判定树为下图
文档为doc格式