上一页 1 2 3 4 5 6 7 8 9 ··· 16 下一页
摘要: 第 0 次作业已经在课堂上做了。1) 建立 GitHub 账户, 把课上做的 “最大子数组之和” 程序签入2) 在 cnblogs.com 建立自己的博客。 写博客介绍自己的 GitHub 账户. 并把博客地址写到这个博客的留言。这样TA 可以收集信息3) 搞到一本教科书 (三本中选一本), 并在博客中说明自己选的是哪一本。4) 阅读下面的博客:个人软件开发流程: Personal Software Process,程序效能分析单元测试 (在最小的编程单元上保证正确性) & 回归测试 (保证程序在修改的过程中, 原有的功能保持稳定 )技能的反面5) 在自己的博客上描述自己是怎么设计 “ 阅读全文
posted @ 2013-09-11 22:44 SoftwareTeacher 阅读(1742) 评论(8) 推荐(1) 编辑
摘要: 【课程设计在这里】 既然开始上课,就要把目标受众研究一下,搞清楚他们的需求。下面是我在课上做的调查。由助教整理。 (学生都是计算机学院大三上学期, 还有一些高等工程学院的学生) 黄色标注的代表是人数最多的选项 ... 阅读全文
posted @ 2013-09-11 22:07 SoftwareTeacher 阅读(1281) 评论(0) 推荐(0) 编辑
摘要: 【现代软件工程 的讲义】 医学院的学生, 要练习解剖人体; MBA 的学生, 要剖析某公司的成败; 法律系的学生,要阅读和分析大量案例...... 软件行业的从业人员, 不管是项目经理, 开发或测试人员, 都要学会解剖分析软件, 我们就来试试看。 要求: 通过定性, 定量地分析, 总结和评定某软件是 阅读全文
posted @ 2013-09-08 18:07 SoftwareTeacher 阅读(5417) 评论(9) 推荐(3) 编辑
摘要: 背景: 目前中国大陆大学里学的编程主要有两种: 1) 学编程为了应付考试,偏重于静态的知识点, 语言细节。以闭卷考试为主。有些学校的数据结构和算法课有许多实际的练习,也有的课程练习很少。 2) 学编程为了ACM 算法比赛,偏重于算法, 解决抽象的问题。主要是由兴趣小组/面向比赛方式。 大部分同学到了工作中都用不着上面两种能力 (忘了语言细节可以查;... 阅读全文
posted @ 2013-08-17 18:23 SoftwareTeacher 阅读(5911) 评论(8) 推荐(0) 编辑
摘要: [现代软件工程 讲义]团队合作要经历的阶段1 萌芽阶段萌芽(Forming)阶段,就像小苗破土而出,柔弱但充满希望。在这个时候,团队成员刚刚接触到团队的宗旨,同时很可能刚刚互相认识。在学校的环境中,一些同学只是匆忙地加入一个团队,加入团队的原因并不是因为他们对团队的目标很认同,而是多种多样的(这个团队有大牛,我可以少做一些; 别的团队人满了,就剩这个了; 平时在一起混的还可以,就加入吧; 这个团队有女生,我要加入! ... ). 团队的目标只是听说过,但是并没有真正达成一致。团队缺少一个明确的领导,团队成员也非常依赖领导的指导。其它特征:(1)个人的角色和职责不清楚,做事的规程往往被忽略。(2 阅读全文
posted @ 2013-02-15 15:28 SoftwareTeacher 阅读(2622) 评论(1) 推荐(0) 编辑
摘要: [现代软件工程讲义] 有舌尖上的美味, 也有微博上的软工。舌尖上的美味各有千秋, 而微博上对软工的抱怨都是相似的。 下面是我在新浪微博收集到大学生对软件工程教学的反馈 (欢迎投稿 @程序员邹欣): 师生关系(不限于软件工程) 教材 上课 & 老师 实践 & 作业 考试 考完了 阅读全文
posted @ 2013-02-06 21:47 SoftwareTeacher 阅读(20618) 评论(13) 推荐(5) 编辑
摘要: [现代软件工程讲义 的一部分] 软件开发的过程, 就是 “用户最需要的东西” 在下面这一链条中传送,转换,实现,扭曲或丢失的过程。 用户最需要的 > 用户表达出来的 > 软件团队能理解的 (老板/PM) + 团队的商业目标 > 软件团队成员具体表达出来的 (PM 写 spec) > 在各种约束条件下 阅读全文
posted @ 2013-02-03 12:58 SoftwareTeacher 阅读(5424) 评论(1) 推荐(2) 编辑
摘要: [这是 现代软件工程讲义 的一篇]一个软件团队经历了计划/设计/开发等阶段, 达成代码完成 (Code Complete) 这一目标,似乎后面的事情就水到渠成了. 其实不然, 软件生命周期的最后阶段往往是最考验团队的,不但考验团队项目管理水平,应变能力,也考验团队的血型。 原计划的软件发布时间快到了,但是软件还是有这样那样的bug,怎么办?优秀的软件团队会发布有已知缺陷的软件么?我觉得和人类血型类似,软件团队的“软件血型”也可以分4种: A型:他们知道优秀的软件公司会发布有已知缺陷的软件; B型:他们不相信这一点; O型:他们不知道这一点,因此嘴巴惊讶成O型; AB型:他们对于自己开发... 阅读全文
posted @ 2013-01-03 12:41 SoftwareTeacher 阅读(2863) 评论(5) 推荐(3) 编辑
摘要: 这是现代软件工程课在北航的项目复审要求。 这次我们有下列 10 个团队, 他们做了一些有意思的项目:有七个小组合作,携手打造一个叫 学霸 的网站: 100Years 网页收集和归类工具76er 网页收集和归类工具FightingSnail 网页元数据抽取和整理工具TeamSH*T 网页元数据抽取和整理工具Doom CSE 学霸网站UIMagicCode 学霸网站UI代码厨房 学霸网站UI有三个小组做一些改变人生或世界的小软件:Shine 改变世界的跨平台 STG 手机游戏superbro 背单词软件 (在清华大学软件工程项目的基础上开发)www-Buaa 学生时间管理助手 (在清华大学软件工程 阅读全文
posted @ 2012-12-26 13:03 SoftwareTeacher 阅读(4461) 评论(4) 推荐(0) 编辑
摘要: 祝贺同学们完成了第一个里程碑 M1. 经过报告/评论/Postmortem, 大家对各自项目在M1 的优缺点都应该有很深的了解, 也理解到做一个好的软件和实现一个算法的差别。请把这些对于软件工程的感悟体现在M2 的具体工作结果中。 关于转会 - 软件工程师换工作是常有的事,优秀的软件工程师都会留下足够的文档, 到哪里都能高效工作, 我相信经历了转会的工程师会以更高的热情投入到新的工作中。 M2 阶段的要求:主要目标是要把M1 计划的功能进一步做好, 不贪多,必要时可以削减功能。 要用测试用例,单元测试,代码覆盖率,自动测试等工具和标准来保证软件模块的质量。最后会重点考察各项目测试的代码覆盖率。 阅读全文
posted @ 2012-11-23 21:58 SoftwareTeacher 阅读(1469) 评论(0) 推荐(0) 编辑
摘要: 在前一个博客里 (典型用户), 我们讲了怎么收集, 分析和验证用户的需求。 这里我们讲 spec – specification Specification, 又叫spec, 有两种: a) functional spec, 软件功能说明书, 主要用来说明软件的外部功能, 和用户的交互情况 (把软件当作一个黑盒子) b) technical spec, 软件技术说明书, 又叫... 阅读全文
posted @ 2012-11-17 17:17 SoftwareTeacher 阅读(6235) 评论(3) 推荐(2) 编辑
摘要: 如果你写了代码, 但是从来没有实际运行过, 那你究竟写了代码么, 还是在软件工程课上做的梦? 如果你写了文档, 但是从来没人读过, 那你究竟写了文档么? 在我们的课程中, 我们通过实际的项目和公开的博客向世界证明同学们真的写了代码和文档。 团队博客 (5-7人的团队要花10周时间, 分两个阶段, 运用敏捷开发等软件工程的方法论和工具, 完成一个实际的项目) 7 个团队合作完成一个代号为 ... 阅读全文
posted @ 2012-11-05 10:40 SoftwareTeacher 阅读(2772) 评论(10) 推荐(0) 编辑
摘要: 软件工程 的 阅读资料 阅读全文
posted @ 2012-10-14 23:27 SoftwareTeacher 阅读(5345) 评论(1) 推荐(0) 编辑
摘要: 同学们的小组要在下次课上 (10/15) 决定做哪一个项目 (按次序挑选), 确定之后写团队博客描述他们要做的究竟是什么系统 (不懂的地方可以在博客上提问)。 这次课程有10 个学生团队, 我们有 10 个备选项目. 各个团队玩了一次黄金点游戏, 决定了挑选的次序。 第一组项目 : Building Online Education Q&A ecosystem 创建网上教学问答系统在网上有许多关于某门学科 (例如计算机科学) 的许多知识和问答, 这些问答散落在网上课件, 维基百科, 论坛, 校园BBS, 技术文档, 教学视频… 中。许多网上大学也有很多相关内容. 一个新手 (例如大学生 阅读全文
posted @ 2012-10-11 13:57 SoftwareTeacher 阅读(2713) 评论(4) 推荐(0) 编辑
摘要: Pair Project: Elevator Scheduler [电梯调度算法的实现和测试] Design and implement an Elevator Scheduler to aim for both correctness and performance, in managed code. Skills to learn and practice: a) Peer to peer collaborationb) Requirement Analysisc) Design by contract, Interface design and comprehensiond) Test 阅读全文
posted @ 2012-10-08 12:51 SoftwareTeacher 阅读(3164) 评论(1) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 ··· 16 下一页