软件工程概要 - 欢迎访问北京大学信息学院软工所 — PKUSEI
北京大学软件工程专业介绍,考博真题,真题解析

考博详解与指导系所名称软件与微电子学院招生总数20系所说明软件工程工学博士研究生10人,其中拟接收本科推荐直博生8人;电子与信息领域工程博士研究生10名,只接收硕士起点的博士生。
应试生采取“申请-考核制”方式招生。
招生专业:软件工程(083500)研究方向指导教师考试科目备注01.软件理论与方法02.软件工程技术与环境03.系统软件04.软件知识工程05.软件服务工程06.服务计算与云计算07.大数据技术与应用08.智能计算与感知09.领域软件工程10.软件协同设计11.物联网技术与应用12.网络与系统安全13.信息安全与软件保障从以下三个方面进行评价:1、语言准确性(语法和用词的准确性、语法结构的复杂性、词汇的丰富程度、发音的准确性)2、话语的长短和连贯性(内容的连贯性、寻找合适词语而造成的停顿频率及长短、表达思想的语言长短等)3、语言的灵活性和适合性(语言表达是否灵活、自然,话语是否得体,语言能否与语境、动能和目的相适应)评价成绩为:a优秀--能用外语就指定的话题进行口头交流,基本没有困难b良好--能用外语就指定的题材进行口头交流,虽有些困难,但不影响交流c及格--能用外语就指定的话题进行简单的口头交流d不及格--不具有口头表达能力中科院招收攻读硕士学位研究生入学考试英语口试暂行办法口试内容与结构分为两部分,有两名教师参加口试工作,一名教师主持口试,随时与考生交谈并评分;另一名教师专事评分,不参与交谈。
两名口试教师所给的分数各占口试成绩的50%。
4、面试过程中不要放屁,即使放了,不要承认,让三个老师互相猜疑去。
这是以上三条中最重要的一条,做不到这一条以上三条都白搭。
第一部分:考查学生理解并回答有关日常生活、家庭、工作、学习等问题的能力(3分钟)。
第二部分:考查学生连续表达的能力。
考生从所给你的问题中选择一个话题,就此话题表达自己的看法(3分钟)。
口试用材料(部分,仅供参考)part ainterlocutor(问话者):------good morning.my name is……,and this is my colleague…..he is just going to listening to us.are your name is…..?------first of all,we’d like to know sth.about you,so i’m going to ask some questions about yourself.(从以下各项问题中选择几个适当的问题提问考生)------hometownwhere are you from?how long have you lived there?how do you like it?why?do you live near here?where about?what do you think are the good points about living in this city?------familycould you tell us sth.about you family?what does your family usually do for the weekend?what do you think about living together with your parents?------leisuredo you have any hobbies?how did you become interested in the hobbies?------study/workwhy do you choose to study at our institute?why do you want to go to graduate school instead of finding a job?what are your favorite subjects?what kind of job did you do?have you ever worked during the vacation?why do you want to go back to study instead of going on with your work? what qualifications are needed in order to do your job well?what did you enjoy most about your campus life?------future planswhat do you expect to achieve during your study if you are enrolled into this institute?do you think english is important for your future plans?in what aspects is it important?part binterlocutor(问话者):------now i’d like you to talk about sth.for about3minutes.here is a list of topics(将一组话题或问题递给学生),pls read the topics and choose one from the list you like to talk about.you’ll have5minutes to prepare for your talk.(5分钟后)could you tell me what you want to talk about?all right,you’ll have3minutes to give your talk.would you begin?(the interloculor may intervene only when necessary)topics/questions(只列举了一部分话题)------give your comment on the statement that“a part-time job is an important experience that every college student should have.”------use specific examples to set forth your views on the saying“haste makes waste”.------describe one of your own experiences to demonstrate that“nothing ever becomes real till it is experienced”------explain your understanding of the conventional belief that“age brings wisdom”------what are the current problems of college education?how to resolve them?------some people say there is no absolute truth because“truth”is defined by people and there is no objectivity whenever people are involved.does absolute truth exist or not?why?对策1.自我介绍(self-introduce)。
计算机学院专业—软件工程简介

软件工程专业
软件工程专业从2004年开始招生,目前为北京市级特色专业建设点和学校试点改革专业,拥有北京市精品课程和优秀教学团队。
本专业在校生约360人,每年招生约90人。
软件工程专业培养具有扎实的软件理论与技术知识,具有较强的软件分析、设计、开发和测试能力的应用型软件人才。
本专业以培养个人职业技能、团队能力和软件系统的构建与调控能力为主要目标,通过软件项目实践,使学生掌握软件生命周期各环节的知识和技术,促进学生核心知识的学习与素质能力的提升。
本专业培养具备良好的综合素质和职业道德,掌握扎实的软件基础知识和软件开发技能,具有较强的软件设计构造与测试能力、团队协作能力、分析与解决问题能力、交流与组织协调能力、终身学习能力、以及适应发展的计算机软件行业高级工程应用型人才。
本专业要求学生具有较扎实的软件基础理论知识,掌握较宽广的专业知识,熟悉国内外最新软件技术进展信息;具有较强的工程实践能力,具备运用先进的工程化方法、技术和工具从事软件分析、设计、开发、维护等工作的能力;具有一定的技术创新能力和市场开拓能力,能够成为企业所需要的较高层次的软件工程技术和管理人才;理解计算机软件对社会发展的重要性和战略影响。
本专业在大类课程的基础上,设置模型驱动程序设计方法学、高级软件工程和软件项目管理等专业课程,并配备JAVA Web实践和移动应用开发实践等独立实践课程,不但使学生掌握流行的开发技术,还培养学生构思、设计、实现和维护实际应用系统的能力。
北京信息科技大学计算机学院版权所有©2013-2017。
软件工程技术讲座

软件工程技术讲座软件教研室艾孜海尔编新疆大学数学与系统科学学院目录第1章软件工程概述 (1)1.1 软件 (1)1.1.1软件的进展 (1)1.1.2软件定义 (2)1.1.3软件的特点 (2)1.1.4软件的分类 (4)1.2 软件工程概念 (6)1.2.1软件危机与软件工程定义 (6)1.2.2软件工程的差不多内容与目标 (10)1.2.3软件工程的原则 (10)1.3 软件生存周期与软件开发模型 (11)1.3.1软件生存周期 (11)1.3.2软件开发模型 (12)第2章可行性研究 (19)2.1 问题定义 (19)2.2 可行性研究 (19)2.2.1方法、步骤 (19)2.2.2文档编写 (25)第3章需求分析 (28)3.1 需求分析的方法步骤 (28)3.2 数据流图的分析与细化 (28)3.3 需求规格说明的编写 (29)第4章概要设计 (31)4.1 概要设计的任务与步骤 (31)4.2 软件设计的概念与原则 (31)4.2.1模块化 (31)4.2.2抽象与逐步求精 (31)4.2.3信息隐藏和局部化 (33)4.2.4模块独立性 (33)4.2.5结构设计原则 (37)4.2.6概要设计文档 (38)第5章详细设计 (40)5.1 详细设计的任务与原则 (40)5.2.1详细设计的任务 (40)5.2.2详细设计的原则 (40)5.2 详细设计的方法 (40)5.2.1程序流程图 (41)5.2.2N-S图 (42)5.2.3伪代码 (42)5.3 详细设计说明书 (42)第6章编码 (44)6.1 程序设计语言 (44)6.1.1程序设计语言分类 (44)6.1.2程序设计语言的选择 (44)6.2 编码风格 (45)6.2.1源程序文档化 (45)6.2.2数据说明 (50)6.2.3语句结构 (50)6.2.4输入/输出(I/O) (53)6.3 程序效率 (53)6.3.1有关程序效率的几条准则 (54)6.3.2算法对效率的阻碍 (54)6.3.3阻碍储备器效率的因素 (54)6.3.4阻碍输入/输出的因素 (54)6.4 编程安全 (55)6.4.1冗余程序设计 (55)6.4.2防错程序设计 (56)第7章软件质量与质量保证 (58)7.1 软件质量的定义 (58)7.2 阻碍软件质量的因素 (59)7.3 软件质量保证策略 (60)7.4 软件质量保证活动 (61)7.5 软件评审 (61)7.5.1设计质量的评审内容 (62)7.5.2程序质量的评审内容 (63)7.6 软件质量保证的标准 (64)7.7 软件测试打算与测试分析报告 (65)第8章项目打算与治理 (67)8.1 软件项目特点、治理的专门性及软件治理功能 (67)8.1.1软件项目的特点 (67)8.1.2软件治理的功能 (68)8.1.3确定软件项目的工作范畴 (68)8.2 确定软件开发所需的资源 (68)8.2.1人力资源 (69)8.2.2硬件 (69)8.2.3软件 (69)8.3 人员的打算和组织 (70)8.4 成本估量及操纵 (71)8.4.1软件开发成本估量方法 (71)8.4.2专家判定技术 (71)8.4.3成本估算模型 (72)8.5 进度打算 (74)8.5.1软件工作的专门性 (74)8.5.2各时期工作量的分配 (74)8.5.3制定开发进度 (75)8.6 软件配置治理 (76)8.6.1基线 (76)8.6.2软件配置项 (77)8.6.3软件配置治理过程 (78)8.7 软件治理方案 (81)第1章软件工程概述1.1 软件软件是一种产品,同时又是开发和运行产品的载体。
1软件工程概述.ppt

螺旋模型、喷泉模型等; 以形式化开发方法为基础的变换模型、基于第四代语言
技术的模型。
在实际开发时,应根据项目的特点和现有的条件选取合 适的模型,也可以把几种模型组合起来使用以便充分利 用各模型的优点。
2021/8/23
软件工程三要素:方法、工具、过程
2021/8/23
9/31
第1章 软件工程概述
1.3 软件工程
SWEBOK:软件工程知识体系指南
2021/8/23
10/31
第1章 软件工程概述
SWEBOK
1.3 软件工程
2021/8/23
11/31
第1章 软件工程概述
1.3 软件工程
软件工程基本思想
——著名的软件工程专家B. W. Boehm于1983年提出
1.5 软件开发模型
喷泉模型
以面向对象软件开发方法为基础,以用户需求为动力, 以对象来驱动的模型。
2021/8/23
28/31
第1章 软件工程概述
1.5 软件开发模型
喷泉模型的特点
软件系统可维护性较好; 各阶段相互重叠,表明了面向对象开发方法各阶段间
的交叉和无缝过渡; 整个模型是一个迭代的过程,包括一个阶段内部的迭
第1章 软件工程概述
第1章 软件工程概述
2021/8/23
哈工大软件学院 杨大易
1/31
第1章 软件工程概述
本章主要内容
1.1 什么是软件 1.2 软件危机 1.3 软件工程 1.4 软件工程方法学 1.5 软件开发模型 1.6 本章小结
2021/8/23
2/31
第1章 软件工程概述
软件工程-课程目录-大纲视图(全国高等教育自学考试指定教材-计算机网络专业-独立本科)

第一章绪论1.1 软件工程概念的提出与发展1.2 软件开发的本质1.3 本章小结第二章软件需求与软件需求规约2.1 需求与需求获取2.1.1需求定义2.1.2 需求分类2.1.3 需求发现技术2.2 需求规约2.2.1 需求规约定义2.2.2 需求规约(草案)格式2.2.3 需求规约(规格说明书)的表达2.2.4 需求规约的作用2.3 本章小结第三章结构化方法3.1 结构化需求分析3.1.1 基本术语1.数据流2.数据存储3.数据源和数据谭3.1.2 系统功能模型表示数据流图(Dataflow Diagram)3.1.3 建模过程1.建立系统环境图, 确定系统语境2.自顶向下, 逐步求精, 建立系统的层次数据流图3.定义数据字典数据流条目给出所有数据流的结构定义数据存储条目给出所有数据存储的结构定义数据项条目给出所有数据项的类型定义4.描述加工(1)结构化自然语言(2)判定表(3)判定树3.1.4 应用中注意的问题(1)模型平衡问题(2)信息复杂性控制问题3.1.5 需求验证3.2 结构化设计3.2.1 总体设计1.总体设计的目标及其表示(1)Yourdon提出的模块结构图(2)层次图(3)HIPO图2.总体设计步骤(1)变换型数据流图——变换设计(2)事物型数据流图——事物设计3.模块化及启发式规则(1)模块化1)耦合①内容耦合②公共耦合③控制耦合④标记耦合⑤数据耦合2)内聚①偶然内聚②逻辑内聚③时间内聚④过程内聚⑤通信内聚⑥顺序内聚⑦功能内聚(2)启发式规则1)改进软件结构, 提高模块独立性2)力求模块规模适中3)力求深度、宽度、扇出和扇入适中4)尽力使模块的作用域在其控制域之内5)尽力降低模块接口的复杂度6)力求模块功能可以预测3.2.2 详细设计1.结构化程序设计2.详细设计工具(1)程序流程图(2)盒图(N-S图)(3)PAD图(Problem Analysis Diagram)(4)类程序设计语言IPO图、判定树和判定表等也可以作为详细设计工具3.3 本章小结第四章面向对象方法——UML 4.1 UML术语表4.1.1 表达客观事物的术语1.类与对象1)类的属性(Attribute)2)类的操作3)关于类语义的进一步表达①详细叙述类的职责(Responsibility)②通过类的注解和/或操作的注解, 以结构化文本的形式和/编程语言, 详述注释整个类的语义和/或各个方法③通过类的注解或操作的注解, 以结构化文本形式, 详述注释各个操作的前置条件和后置条件, 甚至注释整个类的不变式④详述类的状态机⑤详述类的内部结构⑥类与其他类的协作4)类在建模中的主要用途①模型化问题域中的概念(词汇)②建立系统的职责分布模型③模型化建模中使用的基本类型2.接口(Interface)(1)采用具有分栏和关键字《interface》的矩形符号来表示(2)采用小圆圈和半圆圈来表示3.协作(Collaboration)4.用况(Use Case)5.主动类(Action Class)6.构件(Component)7.制品(Artifact)8.节点(Node)4.1.2 表达关系的术语1.关联(Association)(1)关联名(Name)(2)导航(3)角色(Role)(4)可见性(5)多重性(Multiplicity)(6)限定符(Qualifier)(7)聚合(Aggregation)(8)组合(Composition)(9)关联类(10)约束①有序(ordered)②无重复对象(set)③有重复对象(bag)④列表(list)或序列(sequence)⑤只读(readonly)2.泛化(Generalization)①完整(Complete)②不完整(Incomplete)③互斥(Disjoint)④重叠(Overlapping)3.细化(Realization)4.依赖①绑定(Bind)②导出(Derive)③允许(Permit)④实例(InstanceOf)⑤实例化(Instantiate)⑥幂类型(Powertype)⑦精化(Refine)⑧使用(Use)可模型化以下各种关系(1)结构关系1)以数据驱动2)以行为驱动(2)继承关系(3)精化关系(4)依赖关系4.1.3 表达组合信息的术语——包1)访问(Access)2)引入(Import)4.2 UML模型表达格式1.类图(Class Diagram)(1)模型化待建系统的概念(词汇), 形成类图的基本元素(2)模型化待建系统的各种关系, 形成该系统的初始类图(3)模型化系统中的协作, 给出该系统的最终类图(4)模型化逻辑数据库模式2.用况图(Use Case Diagram)所包含的内容(1)主题(Subject)(2)用况(Use Case)(3)参与者(Actor)(4)关联、泛化与依赖模型化工作1)关于系统/业务语境的模型化①系统边界的确定②参与者与用况的交互③参与者的语义表达④参与者的结构化处理2)关于系统/业务需求的模型化①确定系统/业务的基本用况②用况的结构化处理③用况的语义表达3.状态图(1)状态1)名字2)进入/退出效应(Effect)①entry②exit③状态内部转移3)do动作或活动4)被延迟的事件(2)事件1)信号(Signal)事件2)调用(Call)事件3)时间事件4)变化事件(3)状态转移①源状态②转移触发器③监护(guard)条件④效应(effect)⑤目标状态实际应用中, 使用状态图的作用①创建一个系统的动态模型②创建一个场景的模型4.顺序图(1)术语解析1)消息2)对象生命线3)聚焦控制(the Focus of Control)(2)控制操作子1)选择执行操作子(Operator for Optional Execution)2)条件执行操作子(Operator for Conditional Execution)3)并发执行操作子(Operator for Parallel Execution)4)迭代执行操作子(Operator for Iterative Execution)4.3 本章小结第五章面向对象方法——RUP5.1 RUP特点1.以用况为驱动2.以体系结构为中心3.迭代增量式开发5.2 核心工作流5.2.1 需求获取1.列出候选需求2.理解系统语境(1)业务用况模型(2)业务对象模型3.捕获系统功能需求(1)活动1: 发现并描述参与者(2)活动2: 发现并描述用况(3)活动3: 确定用况的优先级(Priority)(4)活动4: 精化用况(5)活动5: 构造用户界面原型1)用户界面的逻辑设计2)物理用户界面的设计3)开发用户界面原型并演示为了执行该用况, 用户怎样使用该系统(6)活动6: 用况模型的结构化5.2.2 需求分析1.基本术语(1)分析类(Analysis Class)1)边界类(Boundary Classes)2)实体类(Entity Classes)3)控制类(Control Classes)(2)用况细化(Use Case Realization)(3)分析包(Analysis Package)2.分析模型的表达3.分析的主要活动(1)活动1: 体系结构分析(Architectural Analysis)1)任务1: 标识分析包2)任务2: 处理分析包之间的共性3)任务3: 标识服务包4)任务4: 定义分析包的依赖5)任务5: 标识重要的实体类6)任务6: 标识分析包和重要实体类的公共特性需求(2)活动2: 用况分析1)任务1: 标识分析类①标识实体类②标识边界类③标识控制类2)任务2: 描述分析(类)对象之间的交互(3)活动3: 类的分析1)任务1: 标识责任2)任务2: 标识属性①关于实体类属性的标识②关于边界类属性的标识③关于控制类属性的标识3)任务3: 标识关联和聚合①关于关联的标识②关于聚合的标识③关于泛化的标识(4)活动4: 包的分析4.小结(1)关于分析模型1)分析包2)分析类3)用况细化(2)关于分析模型视角下的体系结构描述(3)用况模型和分析模型比较(4)分析模型对以后工作的影响1)对设计中子系统的影响2)对设计类的影响3)对用况细化[设计]的影响5.2.3 设计1.设计层的术语(1)设计类(Design Class)(2)用况细化[设计](3)设计子系统(4)接口(Interface)2.设计模型、部署模型以及相关视角下的体系结构描述(1)设计模型及其视角下的体系结构描述1)子系统结构2)对体系结构有意义的设计类3)对体系结构有意义的用况细化[设计](2)部署模型及该模型视角下的体系结构描述3设计的主要活动(1)活动1: 体系结构的设计1)任务1: 标识节点和它们的网络配置2)任务2: 标识子系统和它们的接口①标识应用子系统②标识中间件和系统软件子系统③定义子系统依赖④标识子系统接口3)任务3: 标识在体系结构方面有意义的设计类和它们的接口4)任务4: 标识一般性的设计机制①标识处理透明对象分布的设计机制②标识事务管理的设计机制(2)活动2: 用况的设计1)标识参与用况细化的设计类2)标识参与用况细化的子系统和接口(3)活动3: 类的设计1)任务1: 概括描述设计类2)任务2: 标识操作3)任务3: 标识属性4)任务4: 标识关联和聚合5)任务5: 标识泛化6)任务6: 描述方法7)任务7: 描述状态(4)活动4: 子系统的设计1)任务1: 维护子系统依赖2)任务2: 维护子系统所提供的接口3)任务3: 维护子系统内容4.RUP设计小结1)RUP设计的突出特点2)关于RUP的设计方法①给出用于表达设计模型中基本成分的4个术语, 包括子系统, 设计类, 接口, 用况细化[设计]②规约了设计模型的语法, 指导模型的表达③给出了创建设计模型的过程以及相应的指导3)RUP的设计模型①设计子系统和服务子系统②设计类(其中包括一些主动类), 以及他们具有的操作、属性、关系及其实现需求。
北京大学信息科学技术学院

北京大学信息科学技术学院计算机软件专业辅修/双学位2011年招生简章经北京大学教务部批准,1999年秋季北京大学计算机软件专业辅修开始招生,2003年增加了计算机软件双学位。
现将2011年申请报名、课程安排以及教学管理的相关情况公布如下:一.申请报名1.报名资格:⑴品德良好,遵纪守法。
⑵已修过《高等数学》(不少于两学期)和《线性代数》, 已修或正在修《数据结构》的2009级、2010级在校本科学生。
⑶在校本科生没有不及格课程且平均学分绩点在2.0以上。
2.报名办法:⑴报名时间:2011年5月9日至5月13日交报名材料。
⑵报名材料:向本人所在院系提出申请并填写辅修/双学位报名表,(教务部网页的日常工作项中可以下载)经主管领导批准加盖公章,同时附加盖本院系教务章的本科已修课程成绩单一份。
⑶地点:北京大学理科1号楼1118室。
二. 录取事项1.计划录取40人。
2.录取方法:按照申请人已修课程成绩择优录取,数学成绩优秀者优先考虑。
3.录取查询: 8月底在信息科学技术学院教务办公室(理科1号楼1118)公布录取名单。
电话:62755414(董老师),三. 教学计划要求1.双学位专业教学计划必修课22学分(7门课):离散数学I、C++语言程序设计、操作系统、数据库概论、计算机网络概论、软件工程、微机原理选修课12学分:从课程设置表中序号为8-12的课程中选择至少4门课。
修满34学分可获得双学位证书。
2. 辅修专业教学计划必修课16学分(5门课):离散数学I、C++语言程序设计、操作系统、数据库概论、计算机网络概论选修课9学分:从课程设置表中序号为6-12的课程中选择至少3门课。
修满25学分可获得辅修证书。
3. 课程设置四.学籍管理1. 已被录取辅修或双学位专业的学生,应于每学期第二周到信息科学技术学院注册,并按规定的选课时间选课、上课。
2. 收费标准:每学分100元。
3. 注册上课:开学第一周先听课,第二周在理科1号楼1118室,选课、交费、注册。
软件工程概要-北京大学

© Copyright Peking University 2008. All rights reserved.
2.1 相关基本概念
软件生存周期(Software life cycle):软件产品或软件 系统从产生、投入使用到被淘汰的全过程。通常将软件生 存周期分为5个阶段,即需求、设计、实现(编码)、测试 和维护。
数据定义和数据库需求; 是否能够跟踪系统需求、结构;
用户操作和运行需求; 用户维护需求
从外部上,是否与系统需求保持一致; 需求内部的一致性; 是否具有可测性; 测试覆盖是否可达到要求;
操作(设计和实现),维护的可行性等
© Copyright Peking University 2008. All rights reserved.
© Copyright Peking University 2008. All rights reserved.
2.3.3 开发过程 开发过程是软件开发者所从事的一系列活动。 目的:将一组需求转换为一个软件产品或系统。 包括13个活动: 过程实现 系统需求分析 系统结构设计 软件需求分析 软件体系结构设计 软件详细设计 软件编码和测试 软件集成 软件合格测试 系统集成 系统合格测试 软件安装 软件验收支持
.
(3) 开发者应适当地选择、剪裁、使用那些由组织为实 施开发过程和支持过程所建立的标准、方法、工具和计算机编 程语言(如果合同没有规定),并建立相应的文档。 (4) 开发者应为实施开发过程的活动制定一些计划。这 些计划应包括与所有需求(包括安全保密性)的开发和限定条 件相关联的特定标准、方法、工具、措施和职责。如果必要的 话,这些计划可以分别制订之。这些计划均应形成文档并执行 之。 (5) 在软件产品的开发或维护中,可以使用一些非交付 的软件项。但应确保对那些已交付获取方的软件产品的操作和 维护,要独立于这些非交付项,否则它们就应被认为是可交付 的。
北大软件工程就业方案

北大软件工程就业方案一、课程设置及实践性教学软件工程作为高新技术产业中的重要组成部分,具有相当的发展潜力和就业前景。
北京大学软件工程专业以工程基础课程为主干,以应用目标导向的课程设置和实践性教学为特色,针对工程实践需求,侧重开发真实项目,有助于学生培养工程实践能力,提高应用技术水平,进而提高就业竞争力。
1. 专业基础课程设置软件工程专业的基础课程设置包括计算机组成原理、数据结构与算法、数据库原理与应用、操作系统原理、编程语言原理、网络原理、软件工程、计算机安全等。
这些课程覆盖了计算机系统的各个方面,为学生提供了全面的理论基础。
2. 专业实践性教学北大软件工程专业注重实践性教学,通过项目实践、实习实践等方式,培养学生的实际能力和解决问题的能力。
例如,组建小组进行软件项目开发实践,学生需要在团队中分工合作,进行需求分析、设计、编码、测试和维护等各个阶段的工作,最终完成一个真实的软件项目,这将使学生更好地理解软件工程实践,并培养他们的团队合作和项目实施能力。
二、实习和实践环节为了提高学生的实践能力和就业竞争力,软件工程专业设置了必修的实习和实践环节。
学生在校期间有机会通过实习或实践参与企业项目,积累项目经验,提高实践能力。
1. 实习机会学校为学生提供了丰富的实习机会,与国内外知名企业建立了实习基地,为学生提供了参与企业项目的机会。
学生可以在实践中学习,掌握最新的技术和工作方法,提高实践能力和就业竞争力。
2. 实践环节除实习外,北大软件工程专业还设置了专门的实践教学环节,如软件项目实践、实验课程等。
学生通过这些实践环节,接触行业项目,了解行业需求,提前做好职业规划和就业准备,为未来就业和职业发展做好充分准备。
三、重点培养方向北大软件工程专业注重培养学生的技术实力和实践能力,在此基础上,还提供了多种重点培养方向,以满足不同学生的就业需求。
1. 软件开发与实现软件开发与实现是软件工程专业中的基础方向,学生在此方向可以学习如何利用各种软件开发工具,进行软件需求分析、架构设计、编码实现和软件测试等工作,在此领域具有较好的就业前景。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
其中的活动:启动 主要任务: 1)描述获取、开发或增强一个系统、软件产品或软件服务 的概念或要求,以此开始这一活动。 2)定义并分析该系统需求。系统需求一般应包括业务、组 织和用户的需求,还应包括与设计、测试有关的安全性、保密 性和其他关键性需求以及应遵循的标准和规程。 3)需方可以自己定义并分析软件需求,也可委托供方进行 这项任务。 4)如果需方委托供方进行系统需求分析,那么需方就要审 核并批准所分析的需求。 5)为了执行任务2)和4),应使用开发过程(见2.3.3)。
© Copyright Peking University 2008. All rights reserved.
8)制定一个获取计划并执行之,该计划应包括下述内容: a)对该系统的需求; b)为该系统所规划的使用; c)准备使用的合同类型; d)有关组织的职责; e)准备使用的支持(例如验证、质量保证等); f)风险以及管理这些风险的方法。 9)定义验收策略和条件(准则),并形成文档。 在补篇1中,对获取过程增加了以下活动:a) 合同终结处理; b) 获取方针;c) 供应方关系管理;d) 用户关系管理;e) 财 政管理。关于该过程的其它活动,可参见有关的标准。
软件开发模型是软件开发全部过程、活动和任务的结构框架。
-张效祥主编.计算机科学技术百科全书(第2版),北京:清华大学出版社,2005年 11月. -王立福,麻志毅、张世琨.软件工程(第2版).北京大学出版社,2002年3月.
软件开发模型表达的是软件生存周期内各种活动 如何组织,以及各个阶段应该如何衔接。
© Copyright Peking University 2008. All rights reserved.
成功实现供应过程的结果是: a)对顾客请求产生了一个响应; b)在顾客与供方之间建立了一个关于开发、维护、运行、 包装、交付和安装产品和/或服务的协定; c)供方开发了一个符合协定需求的产品和/或服务; d)根据协定的需求,向顾客交付了该产品和/或服务; e)根据协定的需求,安装了该产品。
成功实现开发过程的结果是: a)收集了软件开发需求并达成协定; b)开发了软件产品或基于软件的系统; c)开发了证明最终产品是基于需求的中间工作产品; d)在开发过程的产品之间,建立了一致性; e)根据系统需求,优化了系统质量因素,例如,速度、开发成 本、易用性等; f)提供了证明最终产品满足需求的证据(例如,测试证据); g)根据协定的需求,安装了最终产品。
.
(3) 开发者应适当地选择、剪裁、使用那些由组织为实 施开发过程和支持过程所建立的标准、方法、工具和计算机编 程语言(如果合同没有规定),并建立相应的文档。 (4) 开发者应为实施开发过程的活动制定一些计划。这 些计划应包括与所有需求(包括安全保密性)的开发和限定条 件相关联的特定标准、方法、工具、措施和职责。如果必要的 话,这些计划可以分别制订之。这些计划均应形成文档并执行 之。 (5) 在软件产品的开发或维护中,可以使用一些非交付 的软件项。但应确保对那些已交付获取方的软件产品的操作和 维护,要独立于这些非交付项,否则它们就应被认为是可交付 的。
© Copyright Peking University 2008. All rights reserved.
6)依据对有关风险、费用和效益等方面的适当分析,选择 获取方案。方案包括: a)是否购买满足需求的现货软件产品; b)是否在自己组织内部进行软件产品的开发或获得软件服 务; c)是否通过合同来开发软件产品或获得软件服务; d)是否采用上述a、b、c的一个组合; e)是否增强现有的软件产品或服务。 7)当要去获得一个现成软件产品时,应确保满足以下条件: a)满足该软件产品的需求; b)文档是可用的; c)满足专利权、使用权、拥有权、担保权和许可权; d)规划对该软件产品的未来支持。
数据定义和数据库需求; 是否能够跟踪系统需求、结构;
用户操作和运行需求; 用户维护需求
从外部上,是否与系统需求保持一致; 需求内部的一致性; 是否具有可测性; 测试覆盖是否可达到要求;
操作(设计和实现),维护的可行性等
© Copyright Peking University 2008. All rights reserved.
2.3 基本过程
基本过程是指那些与软件生产直接相关的过程。
包括5个过程:获取过程、供应过程、开发过程、 运行过程、维护过程 2.3.1 获取过程 获取过程是获取者所从事的活动和任务。 目的:获得满足客户所表达的那些要求的产品和/或服 务。该过程以定义客户要求开始,以接受客户所要求的产品 和/或服务结束。 该过程包括5个基本活动: a)启动; b)招标[标书]准备; c)合同编制和更新; d)对供方的监督; e)验收和完成。 其中每一基本活动又包含一组特定的任务。
© Copyright Peking University 2008. All rights reserved. 3
随着ISO/IEC软件生存周期过程 12207-1995的不断应用,以 及软件复用技术的发展,并结合CMM(能力成熟度模型)和 ISO/IEC/TR15504的推进,国际标准化组织于2002年给出了 ISO/IEC 12207-1995的补篇1,主要: 增加了一些新的软件过程,例如测量过程、资产管理过程 、复用程序管理过程以及领域软件工程过程等; 增加了一些有关增进该标准应用效果的内容,例如给出了 每一过程的目标以及成功实现过程的基本判定准则等。 于2004年给出了ISO/IEC 12207-1995的补篇2,主要对补篇1的 内容做了一些修改。 该标准按照不同人员的工作内容来分,将软件生存周期过程 分为三类:基本过程、支持过程和组织过程。 在该标准的附录中,给出了剪裁过程以及相关的指导,以便 当把软件过程运用到相关组织,运用到具体应用领域或具体 项目时,可以根据特定情况,对各种过程和活动进行剪裁, 形成特定项目所需要的软件生存周期过程。
第二章、软件生存周期过程
概念:当开发产品或构建系统时,遵循一系列可预测的步骤 (路线图)是非常重要的,它有助于及时交付高质量的产品。 软件开发中所遵循的路线图就是“软件过程”。 人员:软件工程师及其管理人员根据需要调整开发过程,并 遵循该过程。除此以外,软件的需求方也需要参与过程的定 义、建立和测试。 重要性:软件过程提高了软件工程活动的稳定性、可控性和 有组织性,如果没有过程约束,软件活动将失控并变得混乱。 但是,现代软件工程方法必须是“灵活”的,也就是要求软 件工程活动、控制以及文档的编制适合于项目团队和要开发 的产品。
-张效祥主编.计算机科学技术百科全书(第2版),北京:清
华大学出版社,2005年1月.
软件生存周期模型(有时称为软件开发模型):它是整个 软件生存周期内的系统开发、运行和维护所实施的全部过 程、活动和任务的框架。
-郑人杰.软件工程.北京:清华大学出版社,1999.
© Copyright Peking University 2008. All rights reserved.
© Copyright Peking University 2008. All rights reserved.
2.3.3 开发过程 开发过程是软件开发者所从事的一系列活动。 目的:将一组需求转换为一个软件产品或系统。 包括13个活动: 过程实现 系统需求分析 系统结构设计 软件需求分析 软件体系结构设计 软件详细设计 软件编码和测试 软件集成 软件合格测试 系统集成 系统合格测试 软件安装 软件验收支持
© Copyright Peking University 2008. All rights reserved.
软件过程:系统化地给出了软件开发所需要的任务; 软件开发模型:如何根据软件项目特点、环境因素等 ,选择并组织这些开发任务。
© Copyright Peking University 2008. All rights reserved.
© Copyright Peking University 2008. All rights reserved.
其中的活动:过程实现
主要任务: (1) 如果合同中没有规定采用什么软件生存周期模 型,那么开发者就应规定或选择适合于项目范围、规模和 复杂度的软件生存周期模型。并应选择该开发过程中的活 动和任务,将其映射到生存周期模型。其中,依据采用的 软件生存周期模型,所选择的活动和任务可以是重叠的或 相互作用的,并可以是重复的或循环的。 (2)开发者应: a)按照文档编制过程,对任务(1)的输出建立相应 的文档; b)将这一输出臵于配臵管理过程之下,并按照配臵 管理的要求进行变更控制; c)按照问题解决过程,对在软件产品和任务中所发 现的问题之解决建立相应的文档;d)实施合同中规定的支 持过程。 © Copyright Peking University 2008. All rights reserved
© Copyright Peking University 2008. All rights reserved.
其中的活动:软件需求分析
目的:确定软件需求及质量特性需求。 主要任务: 编制软件需求规格说明书 检查软件需求:
其内容包含:
功能和性能需求; 外界与软件的接口
合格需求; 保密需求; 安全需求; 人机界面需求; 用户文档;
© Copyright Peking University 2008. All rights reserved.
2.3.2 供应过程 供应过程是供方为了向客户提供满足需求的软件产品或服 务所从事的一系列活动和任务。 该过程的启动,或通过为应答需方的招标书而开始编制投 标书的决定,或通过与需方签订一项提供系统、软件产品或软 件服务的合同。继之,确定为管理和保证项目所需的规程和资 源,包括编制项目计划,执行计划,一直到将系统、软件产品 或软件服务交付给需方为止。 目的:是向客户提供一个满足已达成需求的产品或服务。 该过程包括的基本活动为: a)启动; b)准备投标; c)签订合同; d)规划; e)执行和控制; f)复审和评估; g)交付和完成。