#构建之法之初体验

1. 软件的特殊性指什么?

答:要谈软件工程,先谈软件,软件是一种运行在相应介质(在光量子电脑在实验中实现的情况下,再说电子设备似乎不妥)中的指令和数据的有序集合体。而我们通常只是粗糙的分为系统软件、应用软件、恶意软件,而现在软件的这种分界已经越来越模糊,比如说以前的一些应用软件现在内置成系统软件,算是什么呢?而现在软件工程的出现本身标志着软件的复杂度的升级,想想多块显示屏,但是依然拿万行代码没辙的程序员,这些都说明软件工程的出现正是为了应付这种局面。是的,我称之为应付局面,因为随着软件的功能越来越复杂,总有软件工程瓶颈的时候,而我相信瓶颈的出现会快的吓人。由此引发人们对软件的追本溯源,人人都对软件的特性进行解读,而我正是从这本书中找出了作者的观点,供大家参详。
1. 复杂性(Complexity)
 这里指的是代码量,软件工程虽然这些年对代码量的海量级应付的颇有经验。但是事实上,每个程序员短时间的代码的记忆量是有极限的,而电脑每次只能显示固定的几十行,这与万行相比,相形见绌。
2. 不可见性(Invisibility)
软件和源代码不是一回事,这是重点。如果大家看过黑客帝国,就会对这点有体会,电影情节中有个人看满屏的绿色二进制数字,然后似乎看到了每个人的实时动态。但是现实中,我们主要通过软件的bug反馈作为主要的了解软件的渠道,从而推测软件本身的状况。
3. 易变性(Changeability)
 现在几乎没有一款软件是功能一成不变的,功能更新速度更是快的惊人,这就要求软件的结构可以快速改变。
4. 服从性(Conformity)
 这是软件诞生的本质,它设计出来就是被要求服从这种或那种的要求的。
5. 非连续性(Discontinuity)
 啥意思?

2. 个人开发的过程是什么样的?

答:
 * 需求分析阶段
  • 生成设计文档阶段
    - 设计复审(和同事审核文档)
    - 代码规范(为目前的开发制定合适的规范)
    - 具体设计
    - 具体编码
    - 代码复审测试
    - 测试

    3. 软件工程的工程量往往需要的是软件团队,那么这些软件团队是否有什么组织模式呢?

    答:
    - 主治医师模式-----一名首席程序员负责代码的主要开发,剩下人负责协助他。
    - 明星模式-----就是大家往往会看到首席程序员的功劳,却看不到其他团队人员的汗水。
    - 社区模式-----就是社区中的许多志愿者对自己感兴趣的项目进行开发,从而让项目整体上达到量变发生质变。
    - 业余剧团模式----一个团队中成员在不同的软件项目中具有不同的分工等等

猜你喜欢

转载自www.cnblogs.com/nwnu-daxuanqi/p/10508073.html