现代软件工程讨论第五章-第八章

第五章

1、  团队模式和团队的开发模式有什么关系?

团队模式是指一个团队的成员在一起合作的方式,而团队的开发模式特制软件开发团队在软件开发过程中所使用的合作方式。也就是说团队的开发模式是一种特殊的应用在软件开发领域的团队模式。

2.如果你领头开展一个全新的项目,你要怎么选择“合适”的团队模式?

如果我带头做一个全新的项目,我会选择特点不同的人,各自发挥自己的特长,类似功能团队模式,大家各司其事,平等协作。如我擅长代码编写,数据库设计,成员中还有负责需求分析的,负责文档整理和总结的,负责测试等。

3. 吵架有很多种方式和原因,有的吵架实为讨论,这样的吵架其实也是有利于产品的进步的,是提高效率的一种积极因素,可以适当鼓励;但有些却是因为个人因素(如性格原因,推卸责任等),这种情况应该避免和遏制。避免吵架的方法我觉得有以下几种:

和PM、设计、测试的阶段:

1)、每个人清楚自己的任务和责任,自己的问题在别人提示的时候应该及时改正并有良好的认错态度,对于别人的问题应该理性的提醒

2)、就事论事,理性

和用户阶段:

1)、把用户放第一位,产品是做出来让用户使用的,并期待得到他们的认证和肯定的,认真听取他们的建议

2)、学术有专攻,很多时候用户和产品开发人员关于产品需求等的讨论是并不完善的,要懂得站在别人的角度(知识专业水平、表达方式)去看待问题,去了解用户到底是想要什么样的东西

3)、把用户当做协作开发者是快速改进代码和高效调试的无可争辩的方式

大家都是为了做出更好的产品,不如将这一次次的争吵当成对自己技术耐心的磨练,团队都是在不断的磨合中变得紧密优秀的。

4.团队精神和集体主义的区别?大家回想在小学和中学的学习过程,大家在一个班集体,有多少工作是以“团队”(Teamwork)的形式来完成的,有多少工作是以“工作组”(Workgroup)形式完成的?或许大部分工作都是以“非团队”的形式完成的。“团队精神”和平常讲的“集体主义”有什么区别?

团队精神更强调个人的主动性,团队不一定有明确领导人,成员可以有决策权,团队的每个成员还必须齐心协力,共同承担责任,每个人都有不同的技能,进行互补等。

而集体主义更多强调明确的领导人,每个人目标相同,大家的技能也有可能相同,集体中的成员也有消极懈怠的等。

3.蜂窝模式,一群人开始写代码,没有具体的分工,团队的生产的产量较低,团队之间没有直接的交流,从而影响团队绩效的评估。

主治医师模式:这个模式往往会演化成只有一个人在努力,其他的团队成员只是摆着,导致团队的整体生产能力的下降。

明星模式:明星的光芒往往会盖过其他团队成员的总和,不能达到绩效的最大化,往往明星成员的绩效影响到整个团队的绩效。

社区模式:这种模式下如果人人都贡献力量的话,那么团队的整体绩效肯定会到达提升,但是往往不是所有的人都愿意为团队做出贡献,所以团队的绩效会受到团队成员的自愿程度和贡献力量影响。

业余剧团模式:角色的交替改变,使得团队在不同的项目中绩效的大小也会随之改变,如果一个团队的成员能够充当正确的角色就会给整个团队的绩效带来最大的利益。

秘密团队:这种模式下不能对团队的绩效进行估计,所以需要团队成员自己的努力。团队成员和谐相处共同努力才能为团队带来良好的绩效。

秘密团队和特工团队则团队成员的自身能力是非常重要的,。

交响乐团模式顾名思义,指挥者指挥的好坏会直接影响到团队的绩效。

爵士乐模式,有团队成员之间的即兴发挥和状态影响绩效

功能模式影响团队绩效主要是成员之间的搭配,取得良好的绩效。

官僚模式,顾名思义,只有具有良好的沟通能力才,主要影响其绩效。

5.Chandler团队的形式和流程过于理想化,很多东西都是想当然缺乏实践的演练。但是Chandler团队具有一个良好的团队所具有的品质,他们执着,从不放弃梦想。 我们可以以从中得到一些经验和教训,对我们今后的职业生涯中有很大的作用。

第六章

我们看了这么多方法论之后,一些同学一定比较困惑,到底选择哪一种开发方法比较好呢? 这在实践中不是难题,有学者还列出了一些简单的问题来帮助人们做决定:

表6-3 问题引出方法


问题


Yes – 偏向传统的瀑布+文档的流程


No – 
  偏向敏捷流程


1. 项目需要有明确的spec 么?


2. 项目没有明确的用户,也无法联系用户进行沟通


3. 软件系统是大型的么?


4. 软件系统是复杂的么?例如实时系统


5. 软件的生命周期很长么?


6. 你使用比较差的软件工具么?


7. 软件项目成员是分布在不同的地区么?


8. 团队是否有“文档为先”的传统?


9. 团队的编程技术较差么?


10. 要交付的软件系统是否要通过某种行业规定或行政法规的批准?


11.用户是否在开发完成才看到结果?


12.项目是否一次性交付?

6.3.2 团队建造软件的方式

1.boss等人抓住市场动态,获取需求

2.开发人员根据需求提出设计方案

3.讨论方案可行性并加以改进

4.着手开始写(做不到敏捷开发,so
code and fix)

5.编码同时伴随测试,并结合用户需求和开发找到平衡点

6.开发完成,投放市场,收取反馈并修改产品,进入下次迭代

第七章

第一题:Barry Boehm总结的软件工程原则与MSF和Agile:

1、这个原则注重分阶段的计划,而MSF和Agile更加注重灵活的开发。

2、  这个原则要求持续地检查认证,争取在早期发现问题,而MSF和Agile也要求早期地发现问题,但是是通过尽可能早地做出产品来实现。

3、  这个原则坚持规范的产品控制,而MSF和Agile更加在乎的是成员之间的交流。

4、  这个原则以及MSF和Agile都使用现代的编程方法和工具,但是使用的方法和工具略有不同。

5、  这个原则的开发过程确保团队成员能分阶段,分模块,而MSF和Agile中的每个团队成员都要为项目负责。

6、  这两种原则都用少而精的人员,减少交流成本。

7、  这个原则通过总结来实现软件过程和质量的提高,而MSF和Agile通过总结更多地会提高团队成员的能力。

第二题:MSF原则和Barry Boehm提出的原则的区别:

MSF是敏捷开发,而Barry Boehm提出的原则偏向传统软件开发类型,强调明确的需求。

MSF预期变化,而Barry Boehm提出的原则是早期发现错误和问题,

MSF强调商业价值,而Barry Boehm提出的原则坚持规范的流程,

程序员的自身修养和工作素质是有不同层次的,软件工程中的那些概念和工作原则只是一种评判的准则,旨在帮助程序员在不断评判自身和提高自身的,但也不能一味听从于这些准则,因人而异,因事而异吧。

第八章需求分析

2题第二问你要写一个企业管理软件, 你要找谁去做用户调研?请列出你认为重要的用户类型和你认为合适的用户调研的方式。

员工—大部分使用系统的用户

老板—需要从系统中了解公司的发展情况

系统管理员—负责管理这套系统的人

基层领导—在日常工作中与员工共同使用

员工和基层领导应该是最重要的用户类型,因为他们是主要使用这个系统的人。

3、应该怎么都不可能恢复到平均每天30小时的工作量,因为预定的时间已经用完。

4、我感觉这样的项目经理比较好,因为使用太长时间来开动员大会这种事情确实浪费了大多数人的时间。因为在项目开始后,每个人对项目的目标应该都是很清楚,现在主要的问题是集中精力解决项目中遇到的具体问题,这样子的开一天的动员大会完全是没有必要的。项目经理更加为项目和项目成员考虑。

时间: 2024-10-25 18:50:39

现代软件工程讨论第五章-第八章的相关文章

现代软件工程 第十五章 练习与讨论

15.3.0 案例分析 可以看看这两个学生项目的例子,推断出这些团队的血型: STG游戏的跳票(为了完美,推迟了7天,但是7天之后也没有发布……)[leal1] [i] 英语学习软件(说了“明早发布”,但是明早一直没到)[ii] 15.3.1  反动分子阿超 在最后的稳定阶段,阿超不断地把事情推到下一个版本,二柱和果冻都不耐烦了——为什么不拼一下,把所有事情在第一版搞定? 阿超: 有两种做法—— 1. 根据事情的轻重缓急,安排大部分事情在下一个版本做.正因为我们对项目.团队.商业模式有信心,才会

现代软件工程 练习与讨论 第五章 团队和流程

1.团队模式和团队的开发模式有什么关系? 团队模式主要取决于组成团队的成员,包括team leader以及team mates.其中,由于身处各个角色人员的性格,能力以及IQ,EQ等的不同,特别是team leader的上述这些“属性”,会往往决定了一个团队的“士气”“面对困难坚持不懈的程度”等特点,即我们常说的“软实力”.而这样的软实力也往往会激发一个团队的巨大潜能,为企业创造出超乎想象的价值. 团队的开发模式与我们目前所熟知的软件开发模式,例如,瀑布.迭代.螺旋以及敏捷等等都密不可分,但它不

现代软件工程 第十五章 【稳定和发布阶段】练习与讨论

15.1  案例分析 跟书上的例子对比,觉得以下例子中团队的血型: STG游戏的跳票(为了完美,推迟了7天,但是7天之后也没有发布……:B型或者O型 英语学习软件(说了“明早发布”,但是明早一直没到):B型 15.2  银弹之战 我个人觉得“讨论”就是不想一个人独裁,通过讨论交换大家的意见,使用银弹会出现偏激的想法,可以使用投票表决的方法进行最后的决定 15.3分析一些著名的失败项目 - 例如,电脑控制的丹佛机场行李系统. 如果你们小组要给这个项目做 Postmortem,你会怎么总结呢? 了解

《软件工程》-第五章随笔

本章主要讲述软件工程中将离散数学的方法用于解决软件工程领域的问题.形式化方法的开发可以追溯到20世纪50年代后期对编译技术的研究.也可以理解为,软件开发实际上就是把现实世界的需求映射成软件的模型化过程. 形式规约:软件规格说明是对软件系统对象,队象的操作方法,以及对象行为的描述.非形式的规格说明可用自然语言,图,表等形式描述. 形式证明与验证:主要包括模型检测和定理证明. 程序求精:将自动推理和形式化方法相结合,从抽象的形式规约推演出具体的面向计算机的程序代码的全过程. Z语言为以集合论和一阶谓

软件工程概论第五章--软件工程中的形式化方法

形式化方法指的是将离散数学的方法用于解决软件工程领域的问题,主要是建立精确的数学模型以及对模型的分析活动.在软件开发过程中运用数学模型有很多优点,例如能够解决规格说明的二义性,提高精确性,还能使软件相关问题的本质可以在不同抽象层次被展示出来.本章介绍形式化方法主要从形式化方法基本概念.时态逻辑.模型检验.Z语言.Petri网几个方面讲述. 形式化方法基本概念主要讲了形式规范.形式证明与验证.程序求精,形式规范说明是对软件系统对象,对象的操作方法,以及对象行为的描述.形式证明与验证主要包括模型检测

软件工程概论第五章

本章主要介绍了形式化方法的基本概念包括形式规约(即软件规格说明,是软件系对象作用的方法,自己对象行为的描述)形式证明与验证(技术包括:检测,定理定理证明),程序求精,逻辑时态的一阶线性时态逻辑.计算树逻辑.模型检测临就是在Kripk模型下,对以CTL*公式给出的软件性质得正确性验证.计算树逻辑.模型检测Z语言的概述Z语言的表示(集合关系以及函数.队列和包.自由类型和模式).Z语言实例(停车场管理系统.图书管理系统的实例),petri网的基本定义petri规格实例-信号灯

现代软件工程 第五章 练习与讨论

团队模式和团队的开发模式有什么关系? 如果你领头开展一个全新的项目,你要怎么选择“合适”的团队模式? 不同的团队模式如何影响团队绩效的评估? 团队精神和集体主义的区别?     大家回想在小学和中学的学习过程,大家在一个班集体,有多少工作是以“团队”(Teamwork)的形式来完成的,有多少工作是以“工作组”(Workgroup)形式完成的?或许大部分工作都是以“非团队”的形式完成的.“团队精神”和平常讲的“集体主义”有什么区别? 现代软件工程 第五章 练习与讨论

现代软件工程讨论第九章-十七章

第九章 9.5.1  PM们的故事 9.5.2  我是做PM 的料么? 在校学生如何为成为PM做准备 你是否觉得你的长处不在于写代码和debug,而是协调.沟通,让一个团队或组织有效运转起来?你是否喜欢表达,善于和各种专业背景的人沟通?你是否经常思考如何改进生活中点点滴滴的小问题?你会思考这样的问题么:新浪微博.豆瓣.qq.微信都可以社交,它们的定位.产品特性.用户群.解决的需求,有什么不同?你是否对以下领域感兴趣,甚至自己找过相关的书来看:心理学.社会学.组织行为学.统计学.商业模式? 如果你

阅读《软件工程—理论方法与实践》第五章心得体会

阅读第五章所了解到的基本知识,形式化方法是指将离散数学的方法用于解决软件工程领域的问题,主要包括建立精确的数学模型以及对模型的分析活动.主要目的是保证软件的正确性.已建立的形式化方法可分为操作类和描述类.操作类方法基于状态和转移;描述类基于数学公理和概念.形式证明与验证技术主要包括模型检测(适用于有穷状态系统,完全自动化并且验证速度快)和定理证明(采用逻辑公式来表示系统规约及其性质,分为自动和交互式两种).一阶线性时态逻辑是一阶谓词逻辑的扩展.对汉诺塔操作规划问题有了更深一步的理解.计算树逻辑是