第一篇:软件工程与文档写作
软件的开发方法 面向过程的方法特点:程序的执行过程,不由用户控制,完全由程序员控制。优点:简单实用。缺点:维护困难。
面向对象的方法 特点:(1).程序的执行过程,不由程序员控制,完全由用户控制。(2).分析设计时面向类,编程时面向对象。优点:易于维护。缺点:较难掌握。
面向数据的方法特点:程序的执行过程,有时由程序员控制,有时由用户控制。优点:通俗易懂,适合数据层上的设计与实现。缺点:实现窗口界面较困难。
瀑布模型特点:(1)里程碑或基线驱动(2)过程逆转性很差;选择模型的条件:在开发时间内需求没有或很少变化;分析设计人员对应用领域很熟悉;低风险项目;用户使用环境很稳定;用户除提出需求以外,很少参与开发。优点:开发阶段清晰,便于评审、跟踪、管理和控制; 缺点:可维护性差,表现在 由于逆转性很差,所以返工会造成重大损失;由于文档驱动,错误的传递,会采取发散扩大的方式。
增量模型特点:任务或功能模块驱动,可以分阶段提交产品;有多个任务单,这些多个任务单的集合,构成项目的一个总任务书;选择模型的条件:在开发过程中,客户接受分阶段交付;开发人员对应用领域不熟悉,难以一步到位;工期过紧的中等或高风险项目;用户可参与到整个软件开发过程中;使用面向对象语言或第四代语言;软件公司自己有较好的类库、构件库。优点将一个大系统分解为多个小系统,就等于将大风险分解为多个小风险,从而降低开发难度缺点:若软件系统的组装和拆卸性不强;或开发人员全局把握水平不高;或者客户不同意分阶段提交产品;或者开发人员过剩,都不宜采用这种模型。
原型模型特点:原型驱动。因此,开发者必须先有一个原型,至少要有一个原型的核心。选择模型的条件:已有产品/产品原型,只需客户化的项目;简单而熟悉的行业或领域;有快速原型开发工具;进行产品移植或升级。优点:开发速度快,用户意见反馈实时缺点:因为事先有一个展示性的产品原型,所以在一定程度上,不利于开发人员的创新
需求获取为什么难1.用户需求具有动态性,即需求的不稳定性。2.用户需求具有模糊性,即需求不准确性。3.开发者和用户要对需求达成完全一致的认识,用户要在需求报告上签字,要承担责任。4.中国的国有企业正处在变动期,中国的民营企业正处在成长期。这就给信息系统的需求分析增加了难度系数。
软件需求的主要属性:可验证性(基本)、优先级、唯一性
需求分析的任务1.画出目标系统的组织结构图2.画出目标系统的业务操作流程图3.画出目标系统的数据流程图4.列出目标系统的功能点列表5.列出系统的性能点列表6.列出目标系统的接口列表7.确定目标系统的运行环境8.目标系统的界面约定9.对目标系统的开发工期、费用、开发进度、系统风险等问题进行分析与评估
需求分析的方法:面向功能分析、面向对象分析、面向数据分析
风险分析5种是指对项目及团队的政策风险、技术风险、技能风险、资源风险等因素,进行逐个分析与分解,制定用于跟踪和监控风险的风险管理计划。
模块耦合程度由低到高的分级如下1.数据耦合(或参数传递耦合),属于低级别耦合2.控制耦合,属于中级别耦合3.外部耦合(或共用耦合),它属于高级别耦合。4.内容耦合,它属于最高级别耦合。
软件建模中的三个模型是指业务模型、功能模型和数据模型。功能模型FM是描述系统能做什么,即对系统的功能、性能、接口和界面进行定义。业务模型OM是描述系统在何时、何地、由何角色、按什么业务规则去做,以及做的步骤或流程,即对系统的操作流程进行定义。数据模型DM是描述系统工作前的数据来自何处,工作中的数据暂存什么地方,工作后的数据放到何处,以及这些数据之间的关联,即对系统的数据结构进行定义 数据库设计包括数据库需求分析、数据库概念设计、数据库物理设计三个阶段
第一范式:1NF是对属性的原子性约束,要求属性具有原子性,不可再分解。
步骤设 计 内 容将原始单据分类整理,理清原始单据与输出报表之间的数据转换关系及算法,澄清一切不确定的问题
从原始单据出发,划分出各个实体,给实体命名,初步分配属性,标识出主键
或外键,理清实体之间的关系
进行数据库概念数据模型CDM设计,画出实体关系图ERD,定义完整性约束 2 3步
4步 进行数库物理数据模型PDM设计.将概念数模型CDM转换为物理数模型PDM 5步在特定的数据库管理系统上定义表空间,物理建表与建索引
6步
7步
8步
9步定义触发器与存储过程定义视图,说明数据库与应用程序之间的关系数据库加载测试数据库性能优化
10步数据库设计评审
软件实现原则
尽量简单;易于验证;适应变化;遵守某一编程规范;选择项目组成员最熟悉的工具或语言。
测试阶段是在代码编写完成以后,先作单元测试开始,然后是集成测试、系统测试和验收测试。软件测试的分类动态测试;静态测试,黑盒测试;白盒测试;回归测试;Alpha测试;Beta测试
客户化是指按照客户的实际需求,对软件产品的功能、性能、接口做适当的改动; 初始化是指按照客户的实际情况,对软件产品的代码表(又称数据字典)进行初始化,即:将客户的各种信息编码录入到相应的代码表中。
软件维护是在软件产品安装、实施并交付给用户使用后,在新版本产品升级之前,这段时间里软件厂商向客户提供的服务工作
软件的4类维护,纠错性维护、适应性维护、完善性维护、预防性维护
维护副作用修改编码使编码更加混乱,程序结构更不清晰,可读性更差,且有连锁反应;修改数据结构,数据结构是系统的骨架,修改数据结构是对系统伤筋动骨的大手术,在数据冗余与数据不一致方面,可能顾此失彼;修改用户数据,需要与用户协商,一旦有疏忽,可使系统发生意外;修改文档,对非结构化维护不适应,对结构化维护要严防程序与文档的不匹配
软件生存周期包括:需求、分析、设计、编码、测试、运行和维护阶段
CMMI5级初始级、重复级、已定义、已管理级、优化级
CMM模型共计18个关键过程域KPA,52个具体目标,316个关键实践KP。
软件配置管理是在开发过程中,将软件的文档、程序、数据进行分割与综合,以利于软件的定义、标识、跟踪、管理,使其最终形成受控的软件版本产品
存取控制通过配置管理中的3个库来实现软件开发库、软件基线库、软件产品库
经正式评审和审计,并被批准后的阶段性的软件工作产品,称为软件配置管理中的一根基线。里程碑只是一个阶段标记,基线是一个阶段软件工作产品,基线与里程碑一般表现为一对一的关系。程碑是检查点,检查点不一定是里程碑,因为检查点还可以是时间、计划和事件。
人们将“质量标准、配置管理、测试测量”,作为质量管理的三大支柱
项目是一次性的多任务工作,它具有确定的开始日期、结束日期、工作范围、经费预算、质量标准,以及特定的功能、性能和接口要求。
项目管理是运用相关的知识、技能、方法与工具,对实现项目目标所必须做的计划、进度、质量、成本、资源进行管理和控制的活动。
印度为什么强大?因为它软件产业发达。为什么发达?原因有五:
1.印度属于英语国家;2.印度人在美国定居者基本上溶入了美国社会;3.印度人报效祖国,承包美国的外包项目非常多;4.印度政府支持软件产业,给予一系列优惠政策;5.印度的软件公司特别重视软件过程管理。上述五条原因,最重要的一条是用CMMI进行软件项目管理。
第二篇:软件工程职业写作课题报告
《写作思维》期末报告
软件程序员工作总结
姓
名
原帅军
学
院
计算机信息工程学院
班
级
2018级软件工程二班
学
号
20***
授课教师
刘
慧
时
间
2019-2020
学年第二
学期
一、思路阐述
在开始写之前我需要熟悉我模拟的人物工作背景和身份,同时围绕这些条件而写出文章的基本框架,确定文章的的主题,把握好写作方向,其次,要确定文章的写作类型,对整年工作进行总结,再讨论这一年的事情对我的影响,以及下一步计划。
二、具体文案
1.技术
在学校学习的是软件工程,程序基础仅限于c语言基础课程和java以及网页制作的一些知识,相信从面向过程转向面向对象的同学都有一种感觉:面向对象开始真的有点别扭,涉及到属性,尤其是类之间的各种关系,那时想用面向过程传递参数多方面。于是老在想对象这种东西,从概念中跳中来,以自己的方式去理解才逐渐体会到页面对象的精华来,分层次展现、分级别访问、封装对象之间各种关系逐渐真正理解了,尤其是对象之间的关系,如对象a与对象b两者之间的关系,有些需要完全公开,有些需要隐藏,有些需要通过第三方传递,有些需要给自己的下级可见,有些需要让下级去完成具体操作——这不是现实的实际模型吗?应该这么理解,面向对象来源于现实,它不是一种凭空空想出来的理论,这些对象之间的关系可以将其还原为父子、夫妻、领导下属、同事、朋友之间的关系。相比之下,页面过程往往像是一股脑全部推给用户使用,其中的数据与数据访问方法层次不清晰,在模拟现实上它与面向对象相比更易于入门理解,实质上难于准确直接地表述。
面向对象上另一方面是它的设计模式,在之前的面向过程中对这个设计模式并没有清晰地提出来,面向过程优秀的代码要求高内聚低耦合,从个人的理解上,这仅是对软件开发方法“技”上理论总结;设计模式是达到了“道”的层次,因为它从更大的方向、更抽象的层次来去表述具体的代码模块之间的关系,可以认为设计模式是完全从实际的应用来不断总结得来的经验,之间并没有这种术语,但相信前人肯定也使用到这种思想,它从实际应用于来,当然要应用于实际工作中,认真思考不断总结每个人都会有自己的“设计模式”,可以借鉴前人的思想来去提升自己,不可去为“设计模式”而设计模式。
2.管理
对于工作责任心不够的员工是尤其值得关注的,他们往往自我意识过于强烈,追求以自我为中心,很多时候伴随着工作得不到认可、工作感觉不充实不开心,领导应该主动找他谈话,我认识到:你管理的是一个实实在在的人,他不是一台任你摆布的机器,人会有情绪往往是有心结,找到原因,多加开导,用心去关心每个成员。对于实在不适合在本团队发展的员工要做好最坏打算。程序员这个职业与现在的大学生具有一致的特征,一个是从天之骄子沦为多余人,一个是从高智商人士成为今天中国通行的“it民工”。另一方面是程序员往往年龄集中在20-25之间的男性中,情绪化、失落感、心理不成熟等一系列问题都会出现。但这个阶段的人往往也最易沟通,可塑性也较强,适当的引导、合理的方式会比野蛮的管理效果强上百倍。
3.下一年的规划
利用工作之余的休息时间加强学习。平时注意收集有关pb方面的资料文件,提高自己的处理新问题和解决新问题的能力,并加强学习java及oa方面的知识,为后期的工作打好基础。
三、思维导图
第三篇:软件工程与实践课程设计
《软件工程与实践》课程设计方案
本课程属专业必修课,是一门实践性较强的计算机类课程,授课对象为计算机专业及相关专业的本科生。本课程是对软件工程课程所述内容的进一步深化与具体应用,通过启发式教学和大量实例的练习,引导学生完成不同类型系统的分析与设计工作,培养学生关于软件工程理论的实际运用能力、软件开发实践动手与文档编写及组织管理能力,同时培养和提高学生在软件开发过程中的团队协作精神。
在课程设计过程中必须完成以下一些环节:
1、任务布置与说明,备有多个题目供学生选择。
2、学生自主分组,并展开软件项目的选题与论证,要求提交分组项目选题和组织分工。
3、进行可行性研究,编写可行性分析报告和项目开发计划,并进行审查。
4、获取需求,编写软件需求规格说明书,并进行审查。
5、进行系统分析和设计,编写软件分析设计报告,并进行审查。
6、通过实现系统主要界面来模拟软件实现,并进行审查。
7、编写软件测试计划,编写软件测试分析报告,并进行审查。
8、编写用户使用说明书,并进行审查。
可供选择的课程设计方案:
1、图书馆图书预定系统的设计与实现
功能如下:(1)由供书部门提供书目给订购组;(2)订书组从各单位取得要订的书目;(3)根据供书目录和订书书目产生订书文档留底;(4)将订书信息(包括数目,数量等)反馈给供书单位;(5)将未订书目通知订书者;(6)对于重复订购的书目由系统自动检查,并把结果反馈给订书者。
2、网络考试系统的设计与实现
要求基于B/S模式来构建整个网络考试系统,整个系统拟由试题库管理子系统、学籍管理子系统、成绩管理子系统、网络考场四大模块组成。系统用户端划分为学生端、教师端和管理员端,通过数据库操作权限设定等机制来保证系统及相关数据的安全性。
3、网上购物系统的设计与实现
着重研究、设计与实现用户管理、目录管理、信息录入管理、定单管理、浏览和查找、购物结帐等功能。
(1)会员注册、登录与管理模块,包括新会员注册、会员身份验证、会员身份注销和预定制商品。
(2)商品陈列上架模块,实现商店所有商品的分类上架,供用户浏览选择。(3)为客户提供各个商品信息细节展示模块。
(4)为客户提供所选择商品的浏览、退货等管理模块。(5)购物车模块,需要完成用户选购商品,购物订单生成功能。
4、病员监护系统的设计与实现 I.问题概述
本例为医院特级护理病房的病员监视系统。1)在每一病床旁有一个监护器。
2)在病员身上附着各种传感器,监测各种生理参数,诸如血压、呼吸、体温等,信号被送到监护器。
3)监护器带有输入键盘,用以输入病员的病号的病历号、各种监测的生理因素的安全范围值(上下限值),以及监测频率定期(监测周期)等。
4)各监测部件与中心计算机相连,后者按指定的监测频率定期地对监视器进行检查。5)检查所得到的数据记录在每个病员的记录文件上。
6)如果发现病员的生理因数超出安全范围时,在护理室有各病员的各种报警信号(灯光)出现。
7)每个监视器有一开关,用来控制监测工作。
8)本例中假设监视255个病员,每人设定4个因素。监视周期可从秒到小时变化,对每一病员进行24小时监视。
9)安全范围为十进制数值,内部表示为浮点数。病历号为9位整数。II.需要设计实时系统。
首先要确定按适当的频率监测病员的办法:一种是用中断的方法,在每个监测器内设置一个定时器;另一种是对各病员进行巡回监视。
5、学籍管理系统的设计与实现
学生学籍管理系统由三部分组成,分别是学生档案管理模块、学生成绩管理模块、学生成绩查询模块。学生档案管理模块主要是对学生档案(如基本资料、学习情况、学籍变动、备注等)进行管理,本模块又分为添加学生档案、查询学生档案、修改/删除学生档案、打印学生档案、数据库管理五个子模块。学生成绩管理模块主要是由教师对学生成绩进行管理,本模块又分为添加学生、学生管理、成绩添加、成绩管理、数据库管理等子模块。学生成绩查询模块是指学生通过输入自己的姓名和密码登陆成绩查询系统,便可查询各个科目的考试成绩,同时也可以进行密码修改。要求采用B/S结构,可以对不同角色进行权限管理。
6、内容管理系统的设计与实现
为了让用户能够实现模块共享,并考虑到安全性,需要开发一个平台展示模块的相关信息,并实现用户申请、模块的开发者上传、管理员审核等功能。
该平台需要完成的功能为:每个用户可以对模块的相关信息进行浏览,查找,若需要下载某个模块,可向管理员提出申请;模块的开发者可以上传模块的相关信息;管理员对用户的申请进行审核。
具体需求如下:
用户可以对模块的相关信息进行浏览并申请使用某些模块:
进行注册、登录;
能够对模块的相关信息进行浏览;
可按标题、内容、作者、时间、分类等方式进行查找;
将想要下载使用的模块记录下来,待浏览完毕后形成申请单,提交给管理员。模块开发者能够将自己制作的模块的相关信息进行上传:
将模块的标题、图片、作者、类别、日期、内容等信息进行上传。管理员进行管理:
对新注册的用户信息进行统计察看;
对用户的关于模块使用的申请信息进行统计审核; 对开发者上传的模块信息进行统计察看; 对已经批准并提供模块下载的用户信息进行统计察看。
7、教学网站的设计与实现
网站主要面向三类人:老师、学生、管理员,包括一个BBS。三类人权限各不相同,老师可以布置作业、修改作业、登记成绩;学生则可以通过这个网站看老师的通知、做作业、利用丰富的资源等等;管理员则主要做后台的一些修改操作; BBS模块主要用于师生之间、学生之间的交流。
学生端的功能包括:主页、登入、作业模块、查询模块、个人设置、交流、资料下载、BBS;教师端的功能包括:主页、登入、查询、通知管理、作业管理、上机管理、成绩管理、收信箱、BBS、个人设置;管理员端包括:主页、登入、数据初始化、学生管理、教师管理、BBS管理、修改个人信息。
课程设计评分标准:
1、按照参考的范例,完成规定的文档。
2、2-3人一组,完成同一文档的学生成绩相同。
3、行文流畅,格式标点正确。
4、插图必须是矢量图。
5、涉及UML的内容资料必须完整。
6、文档必须真实反映分析、设计、实现和测试的内容。
7、单独完成所有文档的学生加分。
第四篇:软件工程
1.软件危机的概念 系统的数据要求,功能需求,性能需求,显示出程序的轮廓。
软件危机是指在计算机软件开发、使用与可靠性需求,可用性需求,出错处理需求,混合方式
维护过程中遇到的一系列严重问题和难接口需求,约束,逆向需求以及将来可能优点:综合了以上两种策略的长处 题。提出的需求。9.确认测试
补充: 5.常使用的图形工具 确认测试又称有效性测试。有效性测试是
1.软件危机的表现有哪些? 实体-联系图,数据流图,状态转换图,在模拟的环境下,运用黑盒测试的方法,答:1)对软件开发成本和进度的估计常层次方框图,warnier图,IPO图。验证被测软件是否满足需求规格说明书常很不准确。第五章 列出的需求。任务是验证软件的功能和性
2)用户对已完成的软件不满意1.总体设计的任务 能及其他特性是否与用户的要求一致。对的现象时有发生。划分出组成系统的物理元素——程序、文软件的功能和性能要求在软件需求规格
3)软件产品的质量往往是靠不件、数据库、人工过程和文档等等 说明书中已经明确规定,它包含的信息就住的。设计软件的结构。也就是要确定系统中每是软件确认测试的基础。
4)软件常常是不可维护的。个程序是由哪些模块组成的,以及这些模10.什么是白盒测试,其测试技术有那些,5)软件通常没有适当的文档资块相互间的关系。覆盖标准的强弱程度
料。2.模块化思想 白盒测试是一种测试用例设计方法,盒子
6)软件成本在计算机系统总成就是把程序划分成独立命名且可独立访指的是被测试的软件,白盒指的是盒子是本中所占比例逐年上升。问的模块,每个模块完成一个子功能,把可视的,你清楚盒子内部的东西以及里面
7)软件开发生产率提高的速度这些模块集成起来构成一个整体,可以完是如何运作的。“白盒”法全面了解程序内远跟不上日益增长的软件需求。成指定的功能满足用户的需求。部逻辑结构、对所有逻辑路径进行测试。
2.产生软件危机的原因主要有哪些? 3.衡量模块独立的标准(内聚和耦合的白盒测试的测试方法有代码检查法、静态答:1)用户对软件需求的描述不精确。含义,种类)结构分析法、静态质量度量法、逻辑覆盖
2)软件开发人员对用户需求的内聚:标志着每一个模块内各个元素彼此法、基本路径测试法、域测试、符号测试、理解有偏差。结合的紧密程度,是信息隐藏和局部化概路径覆盖和程序变异。
3)缺乏处理大型软件项目的经念的自然拓展。偶然内聚,逻辑内聚,时种覆盖标准:语句覆盖、判定覆盖、条件验。间内聚,功能内聚,顺序内聚,通信内聚,覆盖、判定/条件覆盖、条件组合覆盖和
4)开发大型软件易产生疏漏和过程内聚。路径覆盖发现错误的能力呈由弱至强的错误。耦合:是对一个软件结构内不同模块之间变化。
5)缺乏有力的方法学的指导和互连程度的度量。数据耦合,控制耦合,11.什么时候黑盒测试,其测试技术有哪有效的开发工具的支持。特征耦合,公共环境耦合,内容耦合。些,(等价划分,边介值分析法)
6)面对日益增长的软件需求,4.启发式规则 黑盒测试也称功能测试,它是通过测试来人们显得力不从心。1.改进软件结构提高模块的独立性检测每个功能是否都能正常使用。
2软件的概念 2.模块规模应该适中等价类划分的办法是把程序的输入域划完成特点功能的程序以及数据结构和文 3.深度、宽度、扇出和扇入都应适当 分成若干部分(子集),然后从每个部分档 4.模块的作用范围应在控制范围之内中选取少数代表性数据作为测试用例
3.软件工程的基本原理 5.力争降低模块接口的复杂程度 边界值分析是通过选择等价类边界的测
1.用分阶段的生命周期计划严格管理 6.设计单入口单出口的模块试用例。边界值分析法不仅重视输入条件
2.坚持进行阶段评审 7.模块功能应该可以预测 边界,而且也必须考虑输出域边界。它是
3.实行严格的产品控制 5.面向数据流的设计方法把信息流映射对等价类划分方法的补充。
4.采用现代程序设计技术 成软件结构 12.软件调试技术有哪些
5.结果应能清楚地审查 信息流:变换流,事物流 蛮干法,蛮干法可能是寻找软件错误原因
6.开发小组的人员应该少而精 映射:变换分析,事物分析 的最低效的方法,仅当所有其他方法都
7.承认不断改进软件工程实践的必要性失败的情况下才使用。
4软件生命周期分成哪几个阶段?各阶第六章 回溯法,回溯法是一种相当常用的调试方段的任务是什么? 1.详细设计的基本任务 法,当调试小程序时很有效。从发现症
1.问题定义: 1.为每个模块确定采用的算法。2.确定状的地方开始,人工沿程序的控制流往回
2.可行性研究:研究问题的范围,探索这每一模块使用的数据结构追踪分析源程序代码,知道找出错误原因个问题是否值得去解决,是否有可行的解3.确定模块接口的细节,包括对系统外为止。
决方法。部的接口和用户界面,对系统内部其 原因排除法,对分查找法、归纳法、演绎
3.需求分析:主要是确定目标系统必须具它模块的接口,以及关于模块输入数据、法都属于原因排除法。
备哪些功能 输出数据及局部数据的全部细节。13.软件可靠性(可靠性和可用性的含义)
4.总体设计: 4.为每一模块设计出一组测试用例。
5.详细设计:就是把解法具体化,设计出2.程序的三种基本结构
程序的详细规格说明。顺序结构,选择结构,循环结构
6.编码和单元测试:写出正确的容易理解3.详细设计的工具
容易维护的程序模块。1.图形工具
7.综合测试:通过各种类型的测试使软件2.表格工具
达到预定的要求 3.语言工具
8.软件维护:通过各种必要的维护活动使4.jackson方法
系统持久地满足用户的需要。(改正性维5.复杂性度量的方法
护,适应性维护,完善性维护,预防性维Halstead方法:它根据程序中运算符和
护)操作数的总数来度量程序的复杂程度
5.瀑布模型,快速原型模型,增量模型,McCabe方法 :McCabe方法根据程序控制
螺旋模型的特点 流的复杂程度定量度量程序的复杂程度,瀑布模型阶:段时间具有顺序性和依赖第七章
性。推迟现实的观点。质量保证的观点。1.选择程序设计语言应考虑哪些因素
快速原型模型:软件产品的开发基本上是1.系统用户的要求
线性顺序进行的,本质是“快速”加速软2.可以使用的编译程序
件的开发过程,节约软件开发成本。3.可以得到的软件工具
增量模型:能在较短时间内向用户提交可4.工程规模
完成部分工作的产品。逐步增加产品功5.程序员的知识
能,可以使用户有较充裕的时间学习和适6.软件可移植性要求
应新产品,从而减少一个全新的软件可能7.软件的应用领域
给客户组织带来的冲击。2.良好的编程风格包括哪些方面
螺旋模型:对可选方案和约束条件的强调1.程序内部的文档2.数据说明 3.语句构
有利于已有软件的重用,也有助于把软件造4.输入输出 5.效率
质量作为软件开发的一个重要目标。减少3软件测试的目标
了过多的测试或测试不足带来的风险。更目的:(1)测试是为了发现程序中的错误
重要的是在螺旋模型中维护只是模型的而执行程序的过程;
另一个周期,在维护和开发之间并没有本(2)好的测试方案是极可能发现迄今为
质区别。风险驱动的。止尚未发现的错误的测试方案;
(3)成功的测试是发现了至今为止尚未
第二章 发现的错误的测试。
1.可行性研究的目的 定义:为了发现程序中的错误而执行程序
就是用最小的代价在尽可能短的时间内的过程。
确定问题是否能够解决。补充:
补充: 软件测试步骤 :
可行性研究的步骤 :(1)模块测试(2)子系统测试(3)系统
1.复查系统规模和目标。测试(4)验收测试(5)平行运行
2.研究现有的系统。4.确定测试计划是在哪个阶段制定的3.导出新系统高层逻辑模型。5.黑盒测试和白盒测试的概念
4.进一步定义问题黑盒测试
5.导出和评价供选择的解法。1把程序看作一个黑盒子,完全不考虑程
6.推荐行动方针序的内部结构和处理过程
7.草拟开发计划2对程序接口进行测试,检查程序功能是
8.书写文档提交审查 否能按规格说明书的规定正常使用;
程序是否能适当地接受输入数据并产生
2.系统流程图的作用 正确的输出信息;
系统流程图是描绘物理系统的传统工具,程序运行过程中能否保持外部信息的完
它用图形符号来表示系统中的各个部件。整性
它表达了系统中各个元素之间的信息流白盒测试
动的情况。1把程序堪称装在一个透明的白盒子里,3.数据流图的概念 测试者完全知道程序的结构处理算法
数据流图是一种图形化技术,它描绘信息2按照程序内部的逻辑测试程序,检测程
流和数据从移动到输出的过程中所经受序中的主要执行通路是否都能按的变换。预定要求正确工作
4.数据流图里面的符号,画数据流图。6.测试的步骤及每个步骤形成的文档
5.数据字典最基本的功能,以及与数据流单元测试:(模块测试)发现的往往是编
图的关系。码和详细设计的错误
最基本的功能:在软件分析和设计的过程集成测试:着重测试模块的接口 中给人提供关于数据的描述信息。
关系:数据流图和数据字典共同构成系统系统测试:发现的往往是软件设计中的错的逻辑模型,没有数据字典,数据流图就误,也可能发现需要说明中的错误 不严格,然而没有数据流图,数据字典也验收测试:(确认测试)往往发现需求说难于发挥作用。只有数据流图和对数据流明书中的错误 图中每个元素的精确定义放在一起,才能7.渐增式和非渐增式的区别 共同构成系统的规格说明。“非渐增式”,即先独立地测试每一模块,第三章 然后将所有这些模块连接到一起运行; 1.需求分析属于哪一个阶段,任务是什“渐增式”,即在已测试过的N个模块的么。基础上再增加一个模块,再对N十1个模需求分析是软件定义时期的最后一个阶块进行测试。段.渐增式比非渐增式优越,因为用渐增式,1.确定对系统的综合要求(功能需求,性如果是“由顶向下”则可利用前面已测试能需求,可靠性和可用性需求,出错处理过的模块,而不必另外准备驱动模块,如需求,接口需求,约束,逆向需求,将来果是“由底向上”,也可利用已测试过的可能提出的要求)模块,不必再准备桩模块。渐增式可以较2.分析系统的数据要求早地发现模块界面之间的错误,有利于排3.导出系统的逻辑模型 错,检查比较彻底 4.修正系统开发计划2.需求分析的产品是什么 8.自顶向下,自下而上,以及混合策略的3.面向过程的分析方法主要是建立三类优缺点 模型 自顶向下数据模型(按照用户的观点对数据建立的优点:能较早显示整个程序的轮廓,向用模型,把用户的数据要求清楚,准确地描户展示程序的概貌,取得用户的理解与支述出来。描述了从用户角度看到的数据,持。缺点:当测试上层模块时因使用桩它反应了用户的现实环境,属性,联系),模块较多,很难模拟出真实模块的全部功功能模型,行为模型(通过描绘系统的状能,使部分测试内容被迫推迟,只能等待态及引起系统状态转换的事件来表示系换上真实模块后再补充测试。统的行为)由底向上4.软件需求规格说明书的内容 优点:测试从下层模块开始,测试设计用通常用自然语言完整,准确,具体地描述例比较容易。缺点:在测试的早期不能
第五篇:《软件工程》
《软件工程》课程分析
本课程是软件技术专业学生必修的一门专业必修课。根据培养软件开发人员的需要,本课程的任务是使学生通过本课程的学习,了解软件项目开发和维护的一般过程,掌握软件开发的传统方法和最新方法。能在软件工程的理论指导下,开发一个小型管理系统,为今后从事软件工程实践打下良好的基础。
一、课程分析
(一)教学计划的制定和教学内容的选取
根据培养应用技能型人才的总目标,制订本专业教学计划,课程的教材配套,教学、实验、实训、课程设计大纲和指导书等教学文件齐全,近几年来引入了现代教学技术手段,已初步建设、形成了具有特色的全套课堂教学和实验教学课件。
根据该课程的基本教学要求和特点,结合学时的安排,从教材的整体内容出发,有侧重地进行取舍,筛选出学生必须掌握的基本教学内容,较好地解决了教学中质量与数量的矛盾。
(二)教学方法分析
由于该课程是用于指导软件开发的,和实践联系非常紧密。所以采用了理论联系实际的方法进行授课。一方面,让学生模拟软件公司的项目小组进行软件开发;一方面,对学生进行适时的理论指导。既调动了学生的积极性,又让学生了解了该课程的理论内容,收到了一举两得的效果。具体教学过程如下:
第一步:模拟软件公司的开发项目小组,分组,分设角色(项目经理、用户、需求人员、设计人员、程序员、测试人员、软件安装培训维护人员),确定开发题。让每个小组的学生聚在一起,在项目经理的组织下通过调研、讨论来制定自己小组的开发题目,大家感觉就象在软件公司实习一样,非常新鲜,感兴趣。每个学生都积极主动的去完成自己应承担的那部分工作。
第二步:模拟软件项目开发全过程的各个阶段,进行相关的理论授课和实际开发。即对软件开发的每一阶段,首先按照教材内容进行理论授课,然后让学生参照授课内容进行实际的软件开发实践。
在此阶段结束后,每班召开一个模拟方案论证会,由各开发小组选出代表上台讲解本组的开发方案,其他同学模拟用户对开发方案提出意见。由于大家对模拟方案论证会非常感兴趣,发言积极踊跃,论证会结束后,每个小组的设计方案都得到了很好的补充和完善。
第三步:学期末各小组提交各自完成的软件系统及开发文档,并进行总结演示,由任课教师进行讲评。
抽象理论课的教学应理论联系实际,让学生在实际应用中掌握抽象的理论,在兴趣中学习,达到我们高职的双向型培养目标。
二、存在的问题与希望
在上述的教学中,虽然实现了理论联系实际,但也存在着一些问题,比如每个项目小组中总有个别同学存在依赖心理,不参与项目开发,最后抄袭别的同学的项目成果,自己得不到实际的锻炼,影响了大三的毕业设计和日后的软件开发。另外,如果该课程只上课,没有实训的话,实验课时太少,学生很难全面完成一个系统的开发。