网站的收费标准,太原seo关键词排名优化,成都房产信息网官网查询系统,上海市建设质量协会网站高级软件工程复习
坐标国科大#xff0c;下面是老师说的考试重点。 Ruby编程语言的一些特征需要了解要能读得懂Ruby程序Git的基本命令操作知道Rails的MVC工作机理需要清楚#xff0c;Model, Controller, View各司什么职责明白BDD的User Story需要会写#xff0c;SMART要求能…高级软件工程复习
坐标国科大下面是老师说的考试重点。 Ruby编程语言的一些特征需要了解要能读得懂Ruby程序Git的基本命令操作知道Rails的MVC工作机理需要清楚Model, Controller, View各司什么职责明白BDD的User Story需要会写SMART要求能理解TDD的Rspec读得懂会补充重点最常用的几种设计模式知道、理解、会用SOLID原则是什么什么情况下是违背的。 SOA(Service Oriented Architecture)面向服务架构所有组件都设计为服务、且服务可以组合的软件架构。
**特点**一个服务直接访问另外一个服务的数据时可能出现不稳定。 软件质量(Quality Assurance)
软件质量保障(QA):确保软件开发的质量改进优化过程提高效率。
一般通过测试来保证软件质量 这个题的24怎么选
提高开发者生产力:简洁性、合成、重用和工具
4种技术
通过表达的简洁化语法更短更易读、抽象级别提高高级程序设计语言、自动内存管理、动态脚本语言计算反射和元编程程序合成Program Synthesis生成代码以适应情境和删除条件测试重用 (Reuse)重用旧代码vs.编写新代码 重用技术(按历史顺序排列) 过程和函数-procedure, function标准化库(重用单一任务)-standard library面向对象编程-Object Oriented Porgramming: 重用和管理任务集合设计模式-Design Pattern: 实现可以不同 但重用的是通用策略 自动化和工具 (Automation Tools)
DRY-Don’t Repeat Yourself
在一个系统中每一知识必须有一个单一的、明确的、权威的表示。
PD软件过程模型
PD: 计划与文档
编码前项目经理制定计划撰写计划各阶段的详细文档根据计划来度量进展项目的变更必须反映在文档中并可能反映在计划中
瀑布模型螺旋模型Rational统一软件开发过程RUP缺点当客户看到开发出来的产品时通常想要对软件产品进行改变这时就会遇到麻烦。— PD需要大量的文件和计划并依赖于经验丰富的经理。 Aglie敏捷开发
个体与交互 vs过程 工具
工作软件vs全面文档化
客户协作vs合同谈判
响应变更vs遵从计划 敏捷强调测试驱动开发(TDD)来减少错误记录用户故事来验证客户需求用速度来度量进展。
设计模式捕捉/刻画重复出现问题的常见结构化解决方法。
Client/Server: 架构级设计模式Web是C/S架构面向请求/应答方式。 Ruby/Rails框架中Rails复杂管理防止篡改cookie 三层架构表示层-逻辑(应用)层-持久层 MVC(Model-View-Controller)
提倡痩视图和控制器、不要在视图中添加功能代码。 在MVC中用户可以进行的每个交互都是由控制器中的动作来处理的
Ruby语言中的方法(method)处理这种交互。 Git
使用版本控制系统
命令说明checkout从库中拷贝一个版本的代码commit将代码写回仓库
Git基础
命令说明git init创建仓库git config配置仓库git clone url获取一个仓库将变更录入仓库git log查看变更历史git pushgit pull与远程仓库同步git branch branch_namegit checkout branch_name创建分支git mergegit rebase (branch 1)在branch2上执行合并分支git rest --hard commit_id回退git revert commit_id撤销
Git配置
Cit配置配置用户信息配置文本编辑器查看配置信息git config --global / -- localgit config --global user.name John Doegit config --global core.editor emacsgit config --list—git config --global user.email johndoeexample.com——
Rails
Rails是使用Ruby语言建立的流行编程框架。
Ruby现代动态脚本编程语言。
面向对象函数式自动内存管理动态类型mix-in闭包用于重用、元编程、程序合成
Rails遵守依赖于Ruby的语言特性自省和元编程闭包模块混合
约定优于配置命名遵守某些约定、不需要配置文件DRY提取公共功能的开发原则“在一个系统中每一知识必须有一个单一的、明确的、权威的表示。”
CRUD: create, read, update, delete
Ruby-Database
从ActiveRecord::Base子类化。–将模型连接到数据库CRUD ActiveRecord上create 方法是new方法与save方法的组合。
save!操作失败会抛出异常。 Rails解决方案: 开发、测试和生产环境都有自己的数据库。
**迁移**用脚本描述更改可以跨数据库类型进行安全快速移植。 # 创建迁移
rails generate migration CreateMovies# 将迁移应用于开发环境
rake db:migrate# 完成代码测试后将迁移应用于生产环境,应用迁移还包括在数据库中记录哪些迁移脚本已经用过了
heroku rake db:migrate# 新模型创建模型文件
app/models/model.rb# 更新测试数据库schema
rake db:test:prepare# 最终部署
heroku rake db:migrateRuby-Routes Ruby-Views
创建表单—
BDD(行为驱动设计)
BDD在开发之前和开发期间询问有关应用行为的问题以减少误解。
需求以用户故事的方法记录。 创建用户故事
SMART故事
SMART说明Specific明确每个场景可测试Measurable可度量已知合理输入预期结果存在Achievable可达成理想情况一个迭代下完成Relevant相关性5个为什么Timeboxed时间框知道何时放弃
Cucumber测试
通过Cucumber用户故事成为验收测试和集成测试用例
# 运行一个功能特征测试
cucumber filename# 运行所有测试
rake cucumber绿通过的步骤
黄还未实现的
红失败的–然后步骤是蓝色的
目标使所有步骤通过
显式/隐式、命令式/声明式场景
显式需求验收测试的一部分
隐式需求显式需求的逻辑结果、集成测试 将电影列表电影按时间顺序还是字母顺序排列 **命令式场景**初始用户故事有许多步骤指定逻辑顺序直达所需结果。 如果很多用户故事是命令式那就不DRY **声明式场景**描述状态而不是序列。更少的步骤
声明式步骤描述应用程序应该处于的状态
命令式步骤将当前状态改变表示为期望状态的步骤序列
TDD(测试驱动开发)
在代码本身之前先为代码编写单元和功能测试
Rspec测试被称为specs或者例子
respec filename
# 运行测试单元测试-FIRST原则
FIRST说明Fast快快速运行测试子集、因为将一直运行它们Independent独立没有测试依赖于其他测试、远程可以以任何顺序运行任何子集Repeatable可重复运行N次得到相同的结果(以帮助隔离bug并启动自动化)Self-checking自检查测试可以自动检测是否通过Timely及时与被测试的代码同时编写使用TDD需要先编写测试
TDD周期红-绿-重构
以“始终拥有工作代码”为目标。考虑代码应该完成的一件事(功能)
红在失败的测试中记录/步骤这种想法
绿编写尽可能简单的代码使测试通过
重构与其他测试一起来提炼共性、改进代码。
继续完成代码应该做的下一件事。
接缝(Seam)
接缝可以唉不改变源代码的情况下改变应用程序行为的位置。
对测试有用将某些代码的行为与其所依赖的其他代码隔离开来。 每个seam仅为测试中地某些特定行为提供足够地支撑。
Seam概念说明存根(stub)类似should_receive,但没有期望add_return可选地控制返回值.模拟(mock)“特技替身”对象常用于行为验证(让某方法被调用)、字其上为单个方法创建存根.
RSpec 装置/工厂
从何获取真实对象
装置(Fixture)工厂(Factory)说明静态地将一些已知数据预加载到数据库表中只创建每次测试所需要的内容动态创建需求每次测试之前db需要擦除和重新载入根据测试需要设置helper来快速创建带有默认属性的对象赞成的原因真正的静态数据(e.g.永远不变的配置线性)恒容易在一个地方看到所有测试数据保持测试的独立性不受它们不关心对象的影响反对的原因可能会引入对装置数据的依赖复杂的关系可能很难建立但可能表明代码耦合过紧
测试覆盖、单元测试、集成测试
覆盖度量
覆盖度量说明S0方法覆盖S1调用覆盖C0语句覆盖C1分支覆盖C1判定覆盖条件中的美国个子表达式C2路径覆盖苦难价值如何有很大分歧 测试与调试
变异测试在代码中引入故意的错误、是否会有一些测试失败
模糊测试1万只猴子向你的代码扔随机输入1.发现了MS~20% bug,崩溃了~25%的Unix应用工具2.以应用程序不应该被使用的方式来测试它
DU-覆盖率每一对define x/use x执行了吗
黑盒测试/集成测试不依赖于对应用程序结构的理解
白盒测试
代码坏味-SOFA
通过捕获哪些白哦是代码坏味的症状。
Short短的One只做一件事Few不多的参数Abstraction一致的抽象级别
定量ABC复杂度
Assignment,Brach,Condition赋值分支条件检查ABC复杂度
Agile敏捷开发 PD 需求抽取抽取非功能/功能需求 面谈、合作创建场景快乐/悲伤路径流、创建用例(UML描述) 需求文档软件需求规范记录需求
需求检查有效性、一致性、完整性、可行性
PD维护 PD中设计模式
将软件需求规范(SRS)分解为问题任务
对每个任务寻找匹配的设计模式、然后是子问题的某事设计评审将有所帮助
PD中测试方法
将软件需求规范(SRS)划分为编程单元、开发人员编写单元代码执行编程测试。
**独立的质量保证(QA)**团队进行更改级别的测试模块、集成、系统、验收测试。
QA集成选项
自顶向下自底向上三明治集成从依赖关系图的顶部开始从依赖关系图的底部开始两全其美高级功能(UI)很快就能开始工作没有stub吧所有的集成在一个模块中通过自底向上集成一些单元来减少stub构造构建许多存根Stub让应用程序“工作”不能看到应用程序工作知道所有的代码和集成完成通过自顶向下集成一些单元让UI可操作
QA团队测试
QA团队进行系统测试
完成的应用程序可以运行测试非功能需求功能需求
何时系统测试–看机构的政策 测试覆盖级别C0类似所有测试要输入好的/坏的数据 最后一步是用户/客户验收测试(UAT)–确认验证
性能
可以是验收测试的一部分。PD周期忽略了性能。
版本管理 SaaS
SaaSSoftware as a Service
SaaS通过运行在客户端设备上的瘦程序(浏览器、APP)访问Internet上以服务形式提供的软件(包括数据)。
优点
无需安装、不用担心硬件与OS差异无需担心数据丢失(数据远程存储)便于团队共享和分享数据如果数据很大/频繁更改在中心站点保存一份副本更简单软件单一拷贝、单一部署硬件/软件环境
SaaS对基础设施的需求
通讯允许客户与服务互动可扩展性需求波动满足新服务快速引入、增加用户可靠性服务和通信7*24h可用
SaaS类的设计模式
GoF结构化、创建型、行为型 模式不是单独的类或者库也不是完整的设计更像是设计的蓝图 **元模式**把变与不变的东西分开。
针对接口百年城而不是针对实现编程。比起继承更倾向组合和委托委托是接口共享、继承是关于实现代码共享。
SOILD面向对象编程原则
动机将变更的代价最小化。 SOLID原则说明单一职责(Single Responsibility, SRP)一个类应该有且只有一个改变的理由、每一项职责可能是变化的轴心、对一个轴的更改不应该影响其他轴。开闭(Open/Close, OCP)类应该对功能扩展开发、对源代码修改关闭。–抽象工厂模式(提炼构造)里氏替换(Liskov substitution)子类型可以i替代基类型。依赖注入(injection of dependencied, DIP)需求:a依赖于b但b的接口和实现可以改变即使功能稳定; 解决方案:“注入”a和b所依赖的抽象接口迪米特(Demeter,DP)只和朋友交谈而不是陌生人。1.用委托替换直接方法调用2.将遍历与计算分离(Visitor模式)3.在不了解实现细节的情况下只关注重要事件 (Observer模式
观察者模式Observer
实体Observer想hi到何时某些事情发生在实体Subject上。 非功能需求
服务水平目标(SLO,service level oeject) 考试回忆版 哈哈终于考完了我为期1个多月的考试周终于宣告结束了。 考之前一直在想老师会不会根据给的题库然后做一些变动。但实际情况是完全没有. 让我们说谢谢老师 此外虽然老师给了部分的重点但是还是和我自己复习的有一些出入比如我以为概念应该会考SOLID或者BDD/TDD,像单元测试的SMARTTDD周期的红-绿-重构这些。但其实都没考反倒是后面出了一个SaaS的概念但是考前就看了两眼觉得不会考… 再一个有出入的就是我以为会考点读Ruby程序给输出的题毕竟简单但也完全没有 所以大家复习的时候建议还是复习的全面一点基本上给的题库要全部过一遍然后根据老师给出重点再过一遍重要的。因为如果万一没有命中的话至少之前做过一遍还是会有印象至少不会是0分(?) 当然要是有时间能够全面复习那就太好辣 很高兴你能看到这里~ 获取考试试题请到个人博客中找。就不放CSDN了~ Schwertlilien.blog-------- 文章转载自: http://www.morning.fpjxs.cn.gov.cn.fpjxs.cn http://www.morning.fnxzk.cn.gov.cn.fnxzk.cn http://www.morning.lpzqd.cn.gov.cn.lpzqd.cn http://www.morning.zmnyj.cn.gov.cn.zmnyj.cn http://www.morning.ntqlz.cn.gov.cn.ntqlz.cn http://www.morning.gwmny.cn.gov.cn.gwmny.cn http://www.morning.rlkgc.cn.gov.cn.rlkgc.cn http://www.morning.fqsxf.cn.gov.cn.fqsxf.cn http://www.morning.mhnd.cn.gov.cn.mhnd.cn http://www.morning.nlzpj.cn.gov.cn.nlzpj.cn http://www.morning.jrlxz.cn.gov.cn.jrlxz.cn http://www.morning.eshixi.com.gov.cn.eshixi.com http://www.morning.kfcfq.cn.gov.cn.kfcfq.cn http://www.morning.gfqjf.cn.gov.cn.gfqjf.cn http://www.morning.xysdy.cn.gov.cn.xysdy.cn http://www.morning.gbnsq.cn.gov.cn.gbnsq.cn http://www.morning.lpnb.cn.gov.cn.lpnb.cn http://www.morning.nqlkb.cn.gov.cn.nqlkb.cn http://www.morning.qkqhr.cn.gov.cn.qkqhr.cn http://www.morning.3jiax.cn.gov.cn.3jiax.cn http://www.morning.zztmk.cn.gov.cn.zztmk.cn http://www.morning.lfdrq.cn.gov.cn.lfdrq.cn http://www.morning.qcsbs.cn.gov.cn.qcsbs.cn http://www.morning.xphls.cn.gov.cn.xphls.cn http://www.morning.prmyx.cn.gov.cn.prmyx.cn http://www.morning.kmcfw.cn.gov.cn.kmcfw.cn http://www.morning.ggqcg.cn.gov.cn.ggqcg.cn http://www.morning.smxrx.cn.gov.cn.smxrx.cn http://www.morning.wqjpl.cn.gov.cn.wqjpl.cn http://www.morning.zyrcf.cn.gov.cn.zyrcf.cn http://www.morning.yjtnc.cn.gov.cn.yjtnc.cn http://www.morning.ndrzq.cn.gov.cn.ndrzq.cn http://www.morning.nkpml.cn.gov.cn.nkpml.cn http://www.morning.ktrh.cn.gov.cn.ktrh.cn http://www.morning.mljtx.cn.gov.cn.mljtx.cn http://www.morning.lkkkf.cn.gov.cn.lkkkf.cn http://www.morning.xpzgg.cn.gov.cn.xpzgg.cn http://www.morning.bqwsz.cn.gov.cn.bqwsz.cn http://www.morning.rpkl.cn.gov.cn.rpkl.cn http://www.morning.rxgnn.cn.gov.cn.rxgnn.cn http://www.morning.lqffg.cn.gov.cn.lqffg.cn http://www.morning.lxkhx.cn.gov.cn.lxkhx.cn http://www.morning.skmpj.cn.gov.cn.skmpj.cn http://www.morning.nsncq.cn.gov.cn.nsncq.cn http://www.morning.lwhsp.cn.gov.cn.lwhsp.cn http://www.morning.flpjy.cn.gov.cn.flpjy.cn http://www.morning.tcsdlbt.cn.gov.cn.tcsdlbt.cn http://www.morning.ctrkh.cn.gov.cn.ctrkh.cn http://www.morning.lhjmq.cn.gov.cn.lhjmq.cn http://www.morning.czlzn.cn.gov.cn.czlzn.cn http://www.morning.cnyqj.cn.gov.cn.cnyqj.cn http://www.morning.tzlfc.cn.gov.cn.tzlfc.cn http://www.morning.ggnfy.cn.gov.cn.ggnfy.cn http://www.morning.fpzpb.cn.gov.cn.fpzpb.cn http://www.morning.mplld.cn.gov.cn.mplld.cn http://www.morning.khpx.cn.gov.cn.khpx.cn http://www.morning.wjjsg.cn.gov.cn.wjjsg.cn http://www.morning.kqyyq.cn.gov.cn.kqyyq.cn http://www.morning.brwei.com.gov.cn.brwei.com http://www.morning.jjrsk.cn.gov.cn.jjrsk.cn http://www.morning.tbnn.cn.gov.cn.tbnn.cn http://www.morning.fqpgf.cn.gov.cn.fqpgf.cn http://www.morning.jhqcr.cn.gov.cn.jhqcr.cn http://www.morning.txnqh.cn.gov.cn.txnqh.cn http://www.morning.trqsm.cn.gov.cn.trqsm.cn http://www.morning.wmfr.cn.gov.cn.wmfr.cn http://www.morning.dwwlg.cn.gov.cn.dwwlg.cn http://www.morning.wffxr.cn.gov.cn.wffxr.cn http://www.morning.mmosan.com.gov.cn.mmosan.com http://www.morning.nggry.cn.gov.cn.nggry.cn http://www.morning.kynf.cn.gov.cn.kynf.cn http://www.morning.jbmbj.cn.gov.cn.jbmbj.cn http://www.morning.dnjwm.cn.gov.cn.dnjwm.cn http://www.morning.cgthq.cn.gov.cn.cgthq.cn http://www.morning.rdsst.cn.gov.cn.rdsst.cn http://www.morning.bnmfq.cn.gov.cn.bnmfq.cn http://www.morning.gfhng.cn.gov.cn.gfhng.cn http://www.morning.saastob.com.gov.cn.saastob.com http://www.morning.nbmyg.cn.gov.cn.nbmyg.cn http://www.morning.syynx.cn.gov.cn.syynx.cn