Lecture 00
1、软件开发过程是什么?
<1>软件过程是从软件项目需求定义开始直至软件使用后被废弃为止,跨越整个软件生存期内的系统开发、运行和维护等全部活动及相关项的总和。
<2>....是按照软件工业化的标准定义的在软件开发中必须具有的一系列过程规范;
<3>软件开发过程是定义软件中的软件需求、软件设计,软件编码、软件测试、软件部署的实现目标和规范化的管理方法论;
<4>软件开发过程是保证软件工业化生产的法典;
<5>软件开发过程做的是:定义标准和为了达到标准的路;
2、大多数软件项目失败的原因
不完整、不现实的项目需求;对需求的变更束手无策;
脆弱的架构;采用不成熟的技术;
测试的不充分性;拙劣的进度计划和评估;
缺乏资源;不具备项目管理方法;缺少管理层的支持
3、软件工程三个要素
工具、方法、过程
4、软件方法与过程?相对于技术来说,重要吗?
5、软件开发过程的实现最重要的是:
人
Lecture 01 Agile
1、一个软件项目失败(A software project failed if……)
it is delivered late;
it runs over the budget;
it does not satisfy the customer’s needs;
it is of poor quality
2、Classical software development methods have not solved software crisis. 传统的软件开发方法没有能够解决软件危机
3、A software engineer’s job
Make a working plan.
Carry out it.(Do their work according to this pan)
Try his/her best to produce high-quality products.
4、3 key aspects
Quality products
Expected costs
On agreed schedule
5、Summary of PSP
(1)PSP is a framework designed to teach software engineers to do better work
(2)Estimate and plan –>track –>improve quality
(3)Quality methods take time to learn and practice, but it will help you in your engineering career
(4)Establish goals –>measure quality –>understand the process –>change and reuse process –>measure & analyze the results –>recycle improving
(5) Identify the tasks you do
6、Manifesto for Agile Software Development?敏捷软件开发宣言的主要内容是什么?(理解敏捷软件开发的原则)
(1)个体和交互胜过过程和工具;
(2)可以工作的软件胜过面面俱到的文档;
(3)客户合作胜过合同谈判;
(4)相应变化胜过遵循计划;
Lecture 02 XP
1、Values of Extreme Programming.(理解XP的价值观:内容、关系。)
(1)内容:
<1>沟通:问题往往是由于开发人员与设计人员、设计人员与客户之间的沟通不畅造成的。因此,项目相关人员之间进行充分、多渠道(最好面对面)的沟通;以人为本,重视客户的参与;在开发组间交换成员;召开版本发布会等。
<2>简单:应该尽量保持代码的简单,只要它能工作就可以实现一个复杂的系统。在系统可运转的前提下,做最简洁的工作,坚定地专注于最小化解决方案:在开发中不断优化设计,时刻保持代码简洁、无冗余。需求尽量的简单,设计尽量的简单,代码尽量的简单,文档尽量的简单;
<3>反馈:尽快获得用户的反馈,并且越详细越好,使得开发人员能够保证自己的成果符合用户的需要。强调各种形式的反馈:小交付、短迭代、测试先行等;更早和经常来自客户、团队和实际最终用户的具体反馈意见可以提供更多的机会来调整力量。反馈可以让您把握住正确的方向,少走弯路;尽快发布新版本;客户应该是小组的一员。
<4>勇气:这是最重要的核心价值。因为XP强调要“拥抱变化”,因此对于用户的反馈,提倡积极面对现实和修理问题的勇气,如放弃已有代码、改进系统设计等;勇敢的重构;所有人拥有代码;敢于极限(把好的方法做到极至)。
(2)联系:
<1>沟通支持勇气,因为它带来了高风险、高回报的试验的可能性。
<2>简单支持勇气,因为有了一个简单的系统,你可以比以前勇敢得多,你无意中将其破坏的可能性也大大减少。
<3>勇气支持简单,因为只有你有可能简化系统,你就会尝试。
<4>反馈支持勇气,因为如果你按下按钮就能够看到测试结果通过(或不通过,这时你可以将代码扔掉),那么即使对代码进行根本的改动你也会感觉安全得多。
2、Basic Principles of XP (5点) 基本原则
(1)Rapid feedback 快速反馈
指开发人员通过短的迭代周期,得到反馈信息,并迅速查验他们前面的工作是否满足客户要求。
(2)Assume simplicity 假定简单
指将系统开发中的每个问题以尽量简单的方法来解决。没有人能够准确预知未来的需求,因此设计只需要满足现阶段的需求即可。
(3)Incremental change递增改变
指用一系列的小改变来逐步解决一个问题。这一原则可用于计划、开发和设计等。
(4)Embracing change 拥抱变化
指在解决紧迫问题时,采取的一种包容的策略。程序员要明白客户的要求并不是固定的,因此功能的优先级和功能需求都是在变化的。
(5)Quality work优质产品
指工作和产品的质量是不容忽视的,不可以因为时间而放弃质量, 并做出让步。
3、XP的项目过程包括哪6个阶段?
(1)Exploration Phase 考察阶段(探索阶段);
(2)Planning Phase 计划阶段;
(3) Iterations to Release Phase 多次反复到发布产品阶段;
(4) Productionizing Phase 生产化阶段;
(5) Maintenance Phase 维护阶段;
(6) Death Phase 死亡阶段;
4、Practices (XP的最佳实践 能列举并说明5个以上)
5、XP中采用Pair Programming的优点有哪些?
(1)所有设计都是由两个人讨论决定的;
(2)系统的任何一个部分都至少有两个人熟悉,避免了由于人事更替造成的问题;
(3)减少了忽略编写测试用例的几率,因为结对者会互相提醒对方;
在编程过程中与不同的人结对可以进一步增强知识与经验的共享;
(4)所有代码都随时得到检验;
(5)两个程序员可以同时分别关注操作层面和理论层面,加强了程序的设计。
Lecture 03 Summary of XP

本文深入探讨了软件开发过程的定义、重要性以及软件项目失败的主要原因。介绍了软件工程的三个要素:工具、方法和过程。讨论了敏捷开发方法,包括敏捷软件开发宣言的核心内容、极限编程(XP)的价值观和实践,以及Scrum框架的流程和原则。此外,还涵盖了其他敏捷方法,如DSDM和水晶方法,并提到了Rational统一过程(RUP)的特性。文章最后提到了测试驱动开发(TDD)和重构的重要性,以及PSP和TSP在个人和团队软件过程中的应用。
最低0.47元/天 解锁文章
6626

被折叠的 条评论
为什么被折叠?



