167身高的女生,骑什么山地车更合适?

167身高的女生,骑什么山地车更合适?,第1张

您好!!!
适合你的山地车对你来说就是最好的,对于你的这种情况来说
一款2000-3000的捷安特或者美利达就已经是最好了 这款车长途都是很好的
一般好的变速器在700以上,还有一些在1300左右。不过一般700左右的足够,比如sram x7。
车架:铝合金 前叉:钢车首组件:VP A71车把:顺盟把立/把芯:SONNE
把套:VELO 鞍座:GT 鞍管:ORE 鞍管穿钉:直径318毫米
脚踏:VP550车圈:CR18 S2L车条:不锈钢内胎:正新 26195
外胎:正新 26195垫胎:正新
闸线/线管:APSE支架:中支(台湾)
壶架:铝合金牙盘:ORE
中轴:VP BC73塔轮:台湾音速刹车:SPSE
手闸连拨:EF29
前拨:SHIMANO TY22后拨:SHIMANO TY23前轴:HG50
后轴:300EX 链条:HG50
这是2000左右捷安特自行车的配置
希望对您有所帮助哦!!!
若没有问题请及时采纳哈~
如有不懂可以继续追问我~
——————来自简单的幸福的回答!!!

Ada是一种表现能力很强的通用程序设计语言,它是美国国防部为克服软件开发危机,耗费巨资,历时近20年研制成功的。它被誉为第四代计算机语言的成功代表。与其他流行的程序设计语言不同,它不仅体现了许多现代软件的开发原理,而且将这些原理付诸实现。因此,Ada语言的使用可大大改善软件系统的 清晰性, 可靠性, 有效性, 可维护性。
Ada的出现,标志着软件工程成功地进入了国家和国际的规模。在一定意义上说,Ada还刺破了“冯偌依曼思维模式” (Von Newman Mind-set) 的桎梏,连同Ada的 支持环境(APSE)一起,形成了新一派的所谓 Ada文化。它是迄今为止 最复杂,最完备的软件工具。 Ada语言是 美国国防部指定的 唯一的一种可用于 军用系统开发的语言,我国军方也将Ada做为军内开发标准(GJB 1383《程序设计语言Ada》)。
--------------------------------------------------------------------------------
-- 为什么称作 Ada --
美国国防部之所以把这种语言取名为Ada,是为了纪念奥左斯特 艾达洛夫莱斯伯爵夫人 (Augusta Ada Lovlace 1815-1852),她是英格兰诗人拜伦(Byron)勋爵的女儿,曾对现代计算机技术之父查尔斯巴贝奇(Charles Babage)的笔记,手稿进行了整理和修正。从某种意义上说,她是世界上第一位计算机程序员。
--------------------------------------------------------------------------------
-- 为什么使用 Ada --
在明白这个问题之前,需要了解 Ada 的一系列特性。Ada 最初设计就是一门大型语言,因此在很多编程的重要问题上都有所考虑,以下文字摘自《 Ada Reference Manual》:
Ada最初设计时关注于 3 个最重要的问题:程序的稳定性和可维护性,程序设计和人的行为接近,并且高效。这份语言的修订版是为了提供更大的灵活性和扩展性,存储管理的额外控制和同步,以及标准化的程序包以支持重要的应用程序领域,同时保留原来的重点:稳定性,可维护性,和高效。对于程序设计语言促进可靠性和简化维护难度的需求已被确立。因此程序可读性的重要性高于轻松地写代码。例如,语言规则要求程序变量应当明确声明并指定它们的类型。由于变量的数据类型是不变的,编译器可以确保对于变量的 *** 作适用于该类型的对象。另外,有错误倾向的符号已经避免,并且语言语法避免了编码形式的使用,使更倾向于英语的结构。最后,Ada 语言提供了程序单元单独编译的功能,使程序开发和维护简便,同样也提供了在一个单元内多个单元之间的检测。考虑人类程序员的问题也在设计时被强调。总而言之,在继续避免过多复杂句型的缺陷的同时,尝试以一致系统的方式保持相对较少的底层概念。
------------------------------------------------------------------------------
ada的特性:
易读性---专业人员往往要读很多程序,因此要避免像 APL 那种以过于简单的符号编程的语言,虽然它们的编程速度快,但基本上是不可读的。因此目前有种说法是:读一个程序比写类似的程序还要费时,这也是有一定道理的;特别是 C/C++ 的风格比较松散,很多语法都在滥用,使程序可读性相当低,由于 Ada 的语法接近人的语言,即使是初学者,也不会感到很难读懂。
强类型---保证了每个对象有明确定义的值域,并防止了不同概念的逻辑混淆。许多错误可以被编译器发现,而对于其它语言来说,则可能导致一个不正确的程序。
异常处理---实际中,一个程序不可能保证它的正确性;因此,通过异常机制及分块结构,将错误发生的影响控制在某一特定领域。
抽象数据类型---将数据描述的细节同基于该类型数据的 *** 作相分离,以提高可移植性和可靠性。
多任务---使程序变成一系类的并发活动,而不是单一的顺序活动;这在很多领域,特别是对于服务器程序来说有重要意义,这比调用 *** 作系统提供的功能更有易可移植性和可靠性。
类属单元---很多情况下,程序的某逻辑部份与运行时值的类型无关。因此,需要提供一种机制,从一个样板中产生多个相应的程序段,以提高代码的可重用性。
大型编译---封装机制,单独编译及程序包的分层机制等对于编写大规模的程序来说是必不可少的。
Ada语言的"世界,你好!" 示例程序
一个Ada语言编写的"你好世界"Hello world program程序:
with AdaText_IO; procedure Hello isbegin AdaText_IOPut_Line("Hello, world!");end Hello;
在AdaText_IOPut_Line处有一些快捷图标,不需要很多的文字输入,但是对于这里的理解来讲并没有多大意义。细节性的问题请参考Ada Programming/Basic。

修改了一下,剩下的都是名词了~
ache n 疼痛
act n & v 表演,行动
action n 表演,动作
activity n 活动
advertisement n 广告
advice n 建议,忠告
airplane n 飞机
airport n 机场
ant n 蚂蚁
area 地区,范围,面积
army n 军队
article n 文章,论文,冠词
Asia n 亚洲
Asian a & n 亚洲的,亚洲人
attention n 注意,立正(口令)
balloon n 气球
bamboo n 竹子
baseball n 棒球
bathroom n 浴室
beach n 海滩
bear� n 熊
bee n 蜜蜂
beef n 牛肉
believe v 相信
bell n 钟,铃
birth n 出生
biscuit n 饼干
blood n 血
boss n 老板
bowl n 碗
brain n 大脑,头脑
butter n 奶油
butterfly n 蝴蝶
cabbage n 大白菜
camel n 骆驼
camera n 相机
camp n & v 野营
cancer n 癌症
candle n 蜡烛
candy n 糖果
cap n 帽子
capital n 首都
captain n 船长,(球队)队长
cause n & v 原因,引起
CD n 唱片
CD-ROM n 光驱
cent n (美元中的)分
chairman/woman n 主席
chalk n 粉笔
chance n 机会
chant n & v 聊天
check n & v 检查
cheer n & v 喝采
cheese n 乳酪
chemistry n 化学
chest n 胸脯
chicken n 鸡肉
China n 中国
chocolate n 巧克力
choice n 选择
chopsticks n 筷子
church n 教堂
circle n & v 圆圈,圈住
clap v & n 鼓掌,掌声
cloud n 云
club n 俱乐部
coffee n 咖啡
coin n 硬币
coke n 可乐
college n (大专)学院
company n 公司
competition n 比赛
composition n 作文
concert n 演唱会
conversation n 交谈
cooker n 厨具,灶具
cotton n & a 棉花
cough n & v 咳嗽
countryside n 农村,乡下
couple n 一对(夫妻)
courage n 勇气
cousin n (堂、表)兄弟姐妹
cover n & v 封面,覆盖
daily a, ad & n 每天的;日报
danger n 危险
death n 死亡
decision n 决定,决心
dentist n 牙医
dialogue (Am dialog) n 对话
diary n 日记
difference n 不同点
difficulty n 困难,难处
discovery n 发现
discussion n 讨论
disease n 疾病
dish n 碟
doll n 玩具娃娃
double a & n 双倍的,双重的
dozen n 一打(12个)
drawer n 抽屉,
drop n & v 点滴,落下,放弃
drum n 鼓
duck n 鸭子
duty n 职责,
DVD n
edge n 边缘
education n 教育
e-mail n & v (发)电子邮件
enemy n 敌人
engineer n 工程师
environment n 娱乐
eraser n擦除器(如黑板擦、橡皮擦等)
Europe n 欧洲
European a & n 欧洲的,欧洲人
example n 例子
experience n 经验
experiment n 实验,试验
fact n 事实
fear n 害怕,危险
feeling n 感情
festival n 节日
fever n 发烧
fight (fought, fought ) v & n 打架,打仗
finger n 手指
fire n 火
flag n 旗
flat n 套房
flu n 流感
foreigner n 外国人
forest n 森林
fork n餐叉
furniture n 家具,家私
gentleman n 先生,绅士
geography n 地理
gift n 小礼物
giraffe n长颈鹿
glove n 手套
goat n 山羊
goose (pl geese) n 鹅
government n 政府
grade n 年级
grandchild n 孙辈
granddaughter n 孙女
grandparent n 祖父母
grandson n 孙子
granny n 奶奶
grape n葡萄
guitar n 吉它
gun n q
habit n 习惯,习性
hall n 大厅
hamburger n 汉堡包
handbag n 手袋
handwriting n 书法,笔迹
hat n 草帽
hate v & n 憎恨
headache n 头疼
health n 健康
heat n 热量
height n 高度
hen n 母鸡
hobby n业余爱好,癖好
hometown n 家乡
hotdog n 热狗
human a & n 人类,人
ice-cream n 冰淇淋
illness n 疾病
increase v & n 增加,增强
India n 印度
Indian a & n 印度人
information n 信息
ink n 墨水
instruction n 说明,指引
interest n 趣味
international n 国际的
Internet n 互联网
interview n & v接见,会见,采访
invention n 发明
island n 岛
jeans n 牛仔裤
job n 工作
joke n & v 笑话,开玩笑
joy n 乐趣
juice n 果汁
kick v & n 踢
kid n 小孩
kilo = kilogram n 公斤
king n 国王
kiss n & v 吻
kitchen n 厨房
kite n 风筝
knee n 膝,膝盖,膝部
knowledge n 知识
lamb n 羔羊肉
lamp n 灯,油灯,灯火
law n 法律
leader n 领导
leaf (pl leaves) n 叶子
least n最小;最少
level n 水平
license n 牌照,证照
lion n 狮子
list n & v 表格,列表
lock n & v 锁,上锁
London n 伦敦
luck n 运气
magazine n 杂志
mail n 邮件
manager n 经理
marriage n 婚姻
master v & n 主人,
meaning n 意思,意义
memory n 记忆
mention n & v 提及,意思是
menu n 菜单
metal n & a 金属(的)
mile n 英里
mirror n 镜子
model n 示范,模范
mom (Am mum) n 妈妈
monitor n 班长,显示器
motorcycle n 摩托车
mouse (pl mice) n 老鼠
movie n
Ms n 女士
nature n 大自然
neck n 脖子,颈
neighbour (Am neighbor) n 邻居
night n 夜晚
noodle n 面条
note n & v 笔记,记录,字条
notebook n 笔记本
notice n & v 通知,注意到
object n 物体
ocean n 海洋
offer v & n 提供
officer n 官员
oil n 油
order v & n
owner n 物主,拥有者
PC = personal computer n
PE = physical education n
Pacific n & a 太平洋
package n 包裹
paint n & v 油漆,颜料,用油漆油
palace n 宫殿
pancake n 薄烤饼
panda n 熊猫
pardon n 原谅
passage n 短文,通道
passenger n 路人
passport n 护照
path n 小路
peace n 和平
pence n 便士
penny n 分
people n 人,人们
pet n 兽医
physics n 物理
piano n 钢琴
pie n 派,馅饼
pig n 猪
pilot n 飞行员
ping-pong n 乒乓球
pink n & a 粉红色(的)
pity n怜悯;同情,可惜的事
plan n & v 计划
planet n 行星
plastic n & a 塑料(的)
plate n 盘子
playground n 运动场
pleasure n 愉悦,高兴;满足
pocket n 口袋
point v & n 指向;点
pool n 水塘
population n 人口
pork n 猪肉
postcard n 明信片
postman n 邮递员
pound n 磅,镑
price n 价钱
pride n 骄傲
prize n 奖赏,奖金
public a & n 公共的
pupil n 小学生
queen n 女王
rabbit n 兔子
race n 赛跑
railway n 铁路,铁轨
raincoat n 雨衣
rainy a 雨天
rat n老鼠
reason n 理由,原因
recorder n 录音机,
repair n & v 修理
reply v & n回答,答复
report n & v 报告
restaurant n 餐馆
result n 结果
review v & n 复习
riddle n谜,谜语
robot n 机器人
rock n 岩石,石山
rose n 玫瑰
rubber n 橡皮擦
rubbish n垃圾;废物
rule n & v 规则
ruler n 尺子
Russia n 俄国
safe a & n 安全(的)
safety n 安全
salt n 盐
sand n 沙子
sandwich n 三明治
sausage n香肠,腊肠
scarf n围巾;披巾;头巾,领带
schoolbag n 书包
scientist n 科学家
score n & v 得分,射中
screen n 屏幕
search n & v 搜索
secret n 秘密
sentence n 句子
set (set, set) v & n (日、月等)落,设置
shape n & v形状;样子,外形
shorts n运动短裤
shoulder n 肩膀
shower n淋浴
silk n 丝绸
skill n 技巧
smoke v & n 吸烟;烟
snake n 蛇
soap n肥皂
society n 社会
socks n短袜,
soup n 汤
space n 空间
speaker n 演讲者,喇叭
speech n 演讲
speed n & v 速度
spirit n 精神
spoon n汤匙
square n 广场,平方
state n 形态,国家
steel n钢铁
step n & v 步伐,脚步
stomach n 胃,肚子
stone n 石头
store n & v贮存,店铺
storm n暴风雨
strawberry n 草莓
success n 成功
Sunday n 星期天
sweater n 汗衫,毛衣
symbol n 符号
table tennis n 乒乓球
tail n 尾巴
tale n 故事,传说
tape n 磁带
task n 任务,工作
taste n & v 味道,尝起来…
taxi n 的士
technology n 技术
television = TV n 电视
tennis n 网球
tent n 帐篷
test v & n 试验,测试,检验
text n 课文
theatre (Am theatre) n 戏院
thought n 思想
tie v & n 绑紧;领带
tiger n 老虎
toilet n 厕所
tongue n 舌头;口语
tool n 工具
toothache n 牙痛
toothbrush n 牙刷
tour n 旅行
tourist n 游客
toward(s) prep 向着…
towel n 毛巾
tower n 塔
toy n 玩具
traffic n 交通
training n 训练,培训
treasure n 珠宝
trip n 旅行,行程
truck n 卡车
T-shirt n T形衬衫
umbrella n 雨伞
underground a & n 地下的;地下层
unit n 单元
university n 大学
VCD n
video n 录像
violin n 小提琴
voice n 嗓音,人声
volleyball n 排球
war n 战争
waste n & v 废物;浪费
watermelon n 西瓜
weekday n 工作日
whale n 鲸
wheat n 小麦
wine n葡萄酒;酒
wing n翅膀
winner n 胜者
wolf n 狼
wood n 木头
yard n 码,院子
zebra n 斑马
△Atlantic n & a 大西洋
△ability n 能力,都能
△accent n 口音
△advantage n 优势,优点
△agreement n 同意,协定
△airline 航线
△avoid n 避开,躲避,预防
△behaviour n 行为,举止,态度
△board n 木板,牌
△bottom n 底部
△breath n 呼吸
△ceiling n 天花板
△coach n 教练
△coal n 煤炭
△coast n 海岸
△communication n 交流,沟通
△condition n 条件
△conference n 会议,协商会
△course n 课程
△crayon n 蜡笔,有色粉笔
△culture n 文化
△degree n 级别,度数
△development n 发展
△direction n 方向
△director n 指挥,主任,导演
△doubt n & v 怀疑
△drug n 毒品
△effort n 努力
△energy n 能量
△gesture n 手势,姿势
△god n 上帝
△greeting n 打招呼
△guard n 卫兵,看守
△guest n 客人
△gym = gymnasium n健身房,体育馆
△ham n 火腿
△heaven n 天堂
△hero n 英雄
△honour (Am honor) n & v 荣誉
△inch n 英寸
△industry n 工业
△influence n 影响,势力
△intention n 意图,意向,目的
△iron n & v 熨斗;熨衣,
△lemonade n 柠檬
△method n 方法
△operation n
△overcoat n
△percent n 百分比
△period n 期间,时期
△plain a & n 平原;简单的
△plenty n 足够
△poem n 诗
△policy n 政策
△pond n 池塘
△position n 位置
△praise n & v 表扬
△president n 总统
△prison n 监狱
△prisoner n 囚犯
△progress n & v 提高,进步
△promise n & v 承诺,许诺
△pronunciation n 发音
△purple a & n紫色,紫红色(的)
△purpose n 目的
△purse n钱包;(女用)手提包
△regret n & v为抱歉,遗憾
△relation n 关系
△research n 研究
△risk n危险,风险
△role n 角色
△rope n 绳子
△sail n & v (船)航行
△salad n色拉
△secretary n 秘书
△sense n感觉;意识;观念
△servant n 仆人
△service n 服务
△shame n羞耻(心),羞愧(感)
△sight n视觉,视力,看见
△silence n无声,寂静
△silver n银
△situation n处境,境遇
△sofa n 沙发
△solid a & n 固体(的)
△sort v & n种类,品种
△stairs n楼梯
△standard n & a 水平;标准的
△stranger n 陌生人
△stream n小河,溪流
△suggestion n 建议
△supply v & n供应,提供
△surface n 表面
△swing n 秋千
△thread n 线
△ton n 吨
△toothpaste n 牙膏
△total a & n 总的;总数,合计
△trade n 交易,贸易
△treatment n 待遇,治疗
△truth n 事实,真相
△vacation n 假期
△value n 价值,评价
△vehicle n 车辆
△victory n 胜利
△wealth n 财富
△website n 网页
△weight n 重量
△wheel n 轮子
△X-ray

进度安排

软件开发项目的进度安排可以有两种考虑方式。第一种,系统最终交付使用的日期已经确定,软件开发机构必须在合同规定的时间内安排;第二种,只确定了大致的年限,最后交付使用的日期由软件开发机构根据具体情况确定。后一种考虑能够对软件开发任务进行细致的分析;能够地利用资源,合理地分配工作量,但实际工作中常常遇到第一种情况,问题是软件管理人员如何在规定的期限内分配人力和安排进度。进度安排的好坏往往影响整个项目的按期完成和用户的使用,如不能按期完成,用户就会不满,而且需向用户赔偿损失。如作为商品,将会失去市场竞争力。

进度安排的精确性有时比成本估算更重要。在商品生产的社会中,某种商品的损失往往还可以通过其他商品或分期偿还来承担。而进度拖延的损失是无法弥补的。下面就软件开发项目进度安排中的几个问题进行讨论。

1软件工作的特殊性

制定软件进度与其他工程没有很大的区别,因此使用一般的通用技术和工具即可。但重点要强调的是软件产品是逻辑产品,这与其他工程不同。因此当几个人共同完成某项任务时,人与人之间就有一个思想交流问题,称之为通信关系。通信是要付出代价的,不只是要花时间,同时由于通信中的疏忽常常会使错误增加。如一个组有4个软件工程师,两两之间进行通信联系,通信路径有6条;对6个软件工程师,则通信路径增加至14条。因此所付的代价就必然会增加,所以工作组的人员不宜太多,一般3—5人为好,目前国外一般采用主程序员组的制度。另一点要强调的是软件工作切忌中间临时加人,必须在安排进度时就考虑周到。

2各阶段工作量的分配

估算出总的工作量以后,就需要一个可以进行各阶段工作量分配的模型。某一阶段工作量所占的百分比必须根据经验数据确定。这里要再一次强调,在开发过程中保存的记录将增加经验数据库存,而且将改善今后估算的准确性。

RSPressman提出一种称作40-20-40的工作量分配规则,即前期工作(计划、需求分析、概要设计和详细设计阶段)和后期工作(测试阶段)各占40%,编码阶段占20%。

应该强调要重市馨期和后期工作。前期工作容易被忽视,主要原因是:管理人员认为不开始编码工作就算没有进行,他们不了解前期工作的重要性;技术人员往往也急于编码,认为写出代码任务就算完成了。后期工作也容易被忽视,认为编码出来就完事了,对测试工作要占这么大的工作量没有思想准备。所以要制定好进度计划,就要研究软件工作的规律,前期基础工作没做好,将会给后期工作带来很大困难,往往使工程进度一拖再拖,难以坚持,有的不得不中途夭折。

3制定开发进度

需要涉及的下一个未知量是开发进度。进度安排是软件计划工作中一项最困难的任务,计划人员要把可用资源与项目工作量协调好;要考虑各项任务之间的相互依赖关系,并且尽可能地平行进行;预见可能出现问题和项目的“细脖子”,并提出处理意见;以及规定进度,评审和应交付的文档。

假设用作变量的开发时间TD接线性变化,而且已经得到了总的开发工作量估算值ED,要求在规定的时间TD内完成,在项目中有参加工作的人员平均值M,即M=ED/TD,这将是一个非常有用的数据。遗憾的是在上述算式中,项目的工作量和开发时间不能作为独立的变量。Brooks定律描述了这种现象的最极端情况:为误期的软件项目增加人员将会使其进度更慢。估算开发时间可以使用类似于工作量的估算法。一些研究人员指出,开发时间与开发工作量之间十分精确地满足下面关系 TD=a(ED) b

其中a和b为经验常数,若ED以人-月为单位,则TD的单位为月,a和b的大小分别为2到4和025到04。

算式TD=a(ED) b 给出了名义开发时间。某些其他模型能够表示出名义开发时间发生变化后,开发工作量将如何变化。如COCOMO模型,最多只能压缩到名义开发时间的75%。所增加的这一部分工作人员的工作量都消耗在保持项目人员通信开销中了。

4软件开发组织

有多少个软件开发机构,几乎也就有多少人员的组织机构。不管这些组织机构是好或坏,一般是不可能轻易改变的。尽管组织机构的改变不属于软件计划人员的职责范围内的事。不过,在一个新的软件项目中直接涉及人员的组织问题却是可以,也应该在软件计划阶段加以认真考虑的。

对于一个需要n个人工作k年的软件项目,如何使用人员资源,可能有以下几种选择:

(1)把m项不同功能的软件分配给n个人去完成,他们之间无需多少合作,主要协调的任务由一位软件主管人员来负责。这样,软件主管可能同时需要管理多个不同项目;

(2)把m项不同功能的软件分配给n个人去完成(m≤n),这样可能就要建立一些非正式的小组,并指定小组负责人,而小组之间的协调工作则由软件主管负责;

(3)n个人被组成k个小组,每个小组分配一个或多个功能,并有具体组织,协调工作由小组和软件主管共同进行。

虽然对上述每一种方案都可能说出赞成或反对的理由。然而,有越来越多的证据表明,第三种方案,即正式的小组是最有效的。

正式的小组的方案来源于“主程序员小组”的概念。它是由Harlan Mills首先提出,并由Baker进一步阐述的。小组的核心由一位高级工程师(主程序员)、2至5位技术人员和一位后备工程师组成。主程序员负责小组的所有技术活动的计划、协调和评审工作;技术人员负责项目的具体分析和开发;后备工程师则支持主程序员工作,必要时能代替主程序员工作,以便使项目能继续进行,而使损失最小。

主程序员小组有一名或多名专家(如数据库设计或通信方面专家)、数名辅助人员(如秘书和打字员)和一名资料员参加工作。资料员同时为多个小组工作,具体完成下列工作:

(1)保存和管理所有软件配置(包括各种文档、源程序清单、数据和各种磁介质资料);

(2)协助收集和整理软件生产率数据;

(3)对可修改的模块分类及编写索引;

(4)协助小组进行调查、评价和准备文档等。主程序员小组的主要目标是发挥集体力量。因引,小组要培养从“全局”观点出发进行程序设计,把“我的”程序变为“我们的”程序;帮助消除软件的个人属性,小组可以鼓励更加彻底的评审,并在共同的工作中增加学习,从而改善软件质量。

在本章中,我们曾讨论过人们在工作中有一个需要交流的问题。当采用主程序员小组这种形式时,必须会增加交换意见所需的工作量,这似乎不利于提高软件开发的生产率。然而,不管怎样组织,在软件整个开发过程的总工作量的相当一部分总是要花费在交换意见方面(如计划、分析和评审等)。虽然,小组的形式增加了内部交换意见的工作量,但是这是有组织的评审,必将减少在设计和编码中引入的错误。结果是测试工作量减少了,从而使小组有更高的生产率。当然,小组中技术人员的数量不宜过多,一般建议2~5人为好。5软件计划

软件开发过程的每一步都要生产出可交付的文档,这些文档可以用来进行评审和作为下一步工作的基础。

软件计划是一份比较简短精炼的文件。它应该发给有关部门,其中包括:

(1)把该项目所确定的工作范围和所需的资源告诉软件主管部门、技术人员和该项目的需求者;

(2)有关该项目的成本估算和进度安排,应告诉软件主管部门,以便他们进行评审;

(3)还要发给与该项目开发有关的所有人员,给他们提供有关该项目开发的总办法。软件计划应包含以下内容:

1工作范围

11项目目标 12主要功能 13其他特性 14开发情况

2资源

21人员资源 22硬件资源 23软件资源24可利用的窗口

3成本估算

4进度安排六、软件开发工具与环境

目前,软件开发工具种类繁多,按功能可将软件开发工具分为8类:

(1)业务系统规划工具 通过将企业的策略性信息需求模型化,这类工具提供一个可导出特定信息系统的“原模型”,这样可使业务信息运行于企业的各个部门。

(2)项目管理工具 借助这类工具,项目管理者可以有效地估算软件项目所需的工作量、成本和研制周期等,可以定义一个功能分解结构WBS,并制定可行的项目开发计划;基于需求跟踪项目的开发情况;可采集度量数据,以此评价软件开发效率和产品质量。由此可见,这类工具又可详细分为项目计划工具、需求跟踪工具及度量和管理工具等。

(3)支持工具 这类工具用于支持软件工程过程,具体包括文档编制工具、系统软件工具、质量保证工具、数据库管理工具和软件配置管理工具等。

(4)分析和设计工具 这类工具是用于建立待开发系统的模型,并评价模型的质量,通过对模型进行一致性和有效性检查,保证分析与设计的完整性。它除包括支持某种开发方法的工具外,还包括基于规则体系的分析与设计机,这种分析与设计机是90年代的期望产品,它可使工具适用于各种分析和设计方法。

(5)编程工具 这类工具包括用于支持大多数传统编程语言的编译器、我器和调试器等,从工具输出来看,4GL也属于这一类。

(6)测试与分析工具 常用的测试与分析工具包括静态分析工具和动态测试工具。

(7)原型工具 作为除瀑布式开发模式以外的另一主要开发模式是原型开发模式,因其运用的灵活性和用户需求反应的快捷性愈来愈受到重视,特别是随着软件构件重用研究的深入,更增强了这种开发模式的实用价值。但原型的构造离不开经验信息,所以支持原型开发模式的原型工具的发展日趋专用化,诸如用于用户界面设计的原型工具可利用图形包快速构造出应用系统的界面,供用户评价,以确定最终产品的界面形式。

(8)维护工具 用于协助维护活动的完成,包括当运行发现问题时,定位到相应的软件开发基线;软件配置不完备时由源程序到分析与设计模型的逆转换工具等。软件开发环境的分类方法很多。
这里介绍三种:

(1)按解决的问题分类;

(2)按现有的软件开发环境的演变趋向分类;

(3)按集成化程度分类。

1按解决的问题分类

软件开发中遇到的问题主要出现在三个级别上:程序设计级、系统合成级和项目管理级。软件开发环境也应该在这三个级别上给予支持。

(1)程序设计环境

程序设计环境主要解决一个相对他人独立工作的程序员如何把规范说明转变成可工作的程序的问题,即属于局部编程(programming-in-the-small)的范畴。这个过程包括两个重要部分:方法和工具。其中方法(例如“结构化编码技术”)可能是更重要的部分,因为对于设计和编码很差的程序而言,再好的工具也不会是灵丹妙药。但作为软件开发环境而言,我们将把重点放在工具上。

(2)系统合成环境

系统合成环境主要考虑把很多子系统集成为一个大系统的问题,即属于全局编程(proˉgramming-in-the-large)的范畴(已有文章把更大规模的系统编程称为programming-in-the-garantuan)。所有的大型软件系统都有两个基本特点:第一,它们是由一些较小的、较易理解的子系统组成的;第二,它们是不断改变的。这两个特点使软件在开发过程中产生大量的分支。因此,需要有一个系统合成环境来辅助人们控制子系统及其向大系统的集成。没有适当的支持,就不能在软件中准确地进行修改(改正错误或者改进功能),因为人的智力将难于招架如此之大的规模和随之产生的高度复杂性。系统合成的两个基本问题是接口控制和版本控制。接口控制要考虑对模块相连和资源共享问题的描述和制约。版本控制则要考虑对系统的各个版本的生成和管理。

(3)项目管理环境

大型软件系统的开发和维护必然会有多个人员在一段时间内协同工作。对人与人之间的交流和合作缺乏管理就会造成比程序设计更多、更严重的问题。另外,项目生存期越长,参与的人越多,就有越多的管理问题产生。项目管理环境的责任就是解决由于软件产品的规模大、生存期长、人们的交往多而造成的问题,即属于多方编程(programming-in-the-many)的范畴。项目管理环境必须对付的三个问题是误解、缺乏信息和利益冲突。项目管理环境可由两部分组成:记录和维护系统开发的状态信息以及集成和分发文档。

2按现有的软件开发环境的演变趋向分类

按现有软件开发环境的演变趋向,软件开发环境可分成四类,它们对软件开发环境的发展(在工具、用户接口和体系结构方面)有着重要的影响。

(1)以语言为中心的环境(language-centered environments)

它们是围绕一种语言而构成的,可以提供一套适合于这种语言的工具集。这类环境是高度交互式的,通常对系统合成的支持是有限的,也不支持项目管理。换句话说,它基本上属于程序设计环境。

在现有的环境中,60年代末期出现的Lisp环境、70年代中期的以Mesa/Cedar语言为中心的Cedar环境、以Smalltalk语言为中心的Smalltalk环境及80年代早期形成的以Ada语言为中心的Rational环境等属于以语言为中心的环境。

(2)面向结构的环境(structure-oriented environments)

这种环境所采用的技术允许用户直接 *** 作结构。初始的动机是给用户一个借于语言的结构来输入程序的交互式工具,即语法制导我器(syntax-directed editor)。这种能力后来扩展到提供一个单用户程序设计环境,它还支持交互式语义分析、程序执行和调试。我器是这种环境的中心组成部分。最重要的是这种形式化地描述一种语言的语法和静态语义的能力,由此可以生成一个结构我器的实例(instance)。也就是说,这种与语言无关的技术引出了环境生成器的概念,在支持局部编程、全局编程、历史记载和存取控制表方面继续所作的努力,使术语“语法制导”逐渐被“面向结构”所取代了。

在现有的环境中,80年代初期出现的Aloe我器就属于面向结构的环境,它是的Gendalf项目中的一个组成部分,它只允许用户在结构化元素上进行 *** 作,也就是说,用户只看到抽象语法树,而看不到熟悉的源语言文本,不过它不会允许用户构造语法不正确的程序;稍后出现的Cornell程序合成器也属于面向结构的环境,它采用文本表示方式,以克服用户在输入和修改语言表示方面的困难。另外一些系统采用混合方式,用户可自由选择在哪种表示方式(文本或结构)上进行 *** 作,系统内部保留两种形式,并始终使它们处于一致状态。

(3)工具箱环境(toolkit environments)

工具箱环境由一套工具组成,用于支持软件开发和编码阶段。它从 *** 作系统开始,加入一些诸如我程序、编译程序、汇编程序、连接程序和调试程序等编码工具。此外,也有一些支持大型软件开发任务的工具,如版本控制和配置管理。它采用简单的数据模型来提高工具的可扩充性和可移植性。这样的环境允许高度的剪裁,但对工具集的使用几乎不提供任何环境定义、管理或控制的技术。当代工具箱环境是使用相当成熟的技术。商业化的环境设计者正在把高级接口放在普通 *** 作系统的用户命令接口之上,即扩充 *** 作系统。

商业化工具箱系统的例子是:UNIX程序员工作台UNIX/PWB和DEC VMS/VAX set等,它们都是在80年代中期推出的。对全局编程提供的工具分别是源代码控制系统(Source Code Control System-SCCS)和代码管理系统(Code Management System—CMS),它们都是起版本控制的作用,并用独立于具体的程序设计语言的。稍后开发的的工具箱环境的例子是:可移植的公用工具环境(Portable Common Tool Environrment—PCTE)和公用APSE接口集(Comˉmon APSE Interface Set—CAIS)。其中APSE是Ada程序设计支持环境的英文缩写。

(4)基于方法的环境(method-based environments)

这种环境支持一种特定的软件开发方法。这些方法可分为两类:①支持软件开发周期特定阶段的;②管理开发过程的。前者包括规格说明、设计、确认、验证和重用。方法不同,形式化的程序有很大不同,从非形式化到准形式化到形式化。后者又可细分为两个部分:支持产品管理与支持开发和维护产品的过程管理。产品管理包括版本、配置和投放管理。开发过程的管理包括项目计划和控制、任务管理、通信管理及加工过程建模。

这类环境的例子有:Anna———一种用于Ada的规格说明语言;VDM———用于软件开发的形式化方法,也是一种规格说明语言;SREM———分布式计算的设计系统SL/PSA———问题描述语言/问题描述分析程序,这是为信息处理系统的结构化文档编制和分析设计的。支持管理开发过程的典型环境有ISTAR———一个集成式项目管理系统MA———一个知识型软件环境中的项目管理部分。

3按集成化程序分类

环境的形成与发展主要体现在各工具的集成化的程度上,当前国外软件工程界把软件开发环境分成三代,各代之间的主要区别及特征如下:

(1)第一代

①建立在 *** 作系统之上(如VMS和UNIX等);

②工具间通过一个公用框架集成;

③只有工具使用的文件修改即可加入,由调用过程来使用这些工具;

④工具所使用的文件结构不变,而且成为环境文件库的一部分;

⑤从人机界面来看,这类环境主要采用单色、低分辨率的文字终端,图形能力较差,多数使用菜单技术。

例如,70年代中期的UNIX环境以文件库为集成核心,管道命令实施控制功能,SHELL语言表达的程序显示用户工作界面。

(2)第二代

①具有真正的数据库(如INGRES),而不是文件库,有时称为信息库,多数采用E-R模式或E-R-A模式;

②工具集成在更低的层次上,工具和文件都作为实体保存在数据库中,而不是简单地看作一种独立的成分;

③现有的工具不能随意放入,要作适当修改或定制;

④人机界面采用高分辨率、点阵式工作站,具有多窗口、图形符号等功能,采用鼠标装置。例如,Ada程序设计支持环境(APSE),以数据库为集成核心,有可移植性的工作界面。

(3)第三代

①建立在知识库系统上;

②顺序调用独立工具的概念完全被集成化的工具集所替化,用户不再需要在任务之间来回切换不同的工具;

③采用形式化方法,软件重用等新技术;

④由多个工具控制的多窗口技术被单个工具 *** 纵的多窗口技术所替代;

显然,第三代软件开发环境中工具间的集成度,利用这些工具,人们逐渐从繁重的手工开发软件的活动中解放出来,从而实现软件开发和维护的自动化,提高软件开发和维护的质量和生产率,缩短软件开发周期并降低成本。为集中研究并解决这样一系列的问题,80年代提出了CASE思想,目前的研究重点集中于CASE的集成化方面。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/13438154.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-06
下一篇 2023-08-06

发表评论

登录后才能评论

评论列表(0条)

保存