.NET企业架构设计

软件的需求和质量

系统的最终目标有一系列需求描述,这些需求最终决定了系统的架构。需求又分为功能需求和非功能需求:

功能性需求是指系统需要做的事情,即系统需要为特定的任务和达到用户的目的提供哪些功能。通常而言,一个功能包含输入,行为和输出。软件需求必须“清晰,正确,避免二义,明确且可检验的”

非功能需求是指不属于工方面的需求。一个常见的例子是使用(或不使用)某一特定版本的某框架,或是需要让最终产品可以和指定的遗留系统配合使用。还有一些比如支持可访问性,安全性,可靠性等。

一般而言,非功能需求表示对系统的一种限制,进而影响系统的质量。

架构师的职责:接收需求,拆分系统,确定并评估技术,编写详细说明书。

软件的生命周期

软件开发是一个用来处理复杂性,并保证程序得到预期结果的流程。软件工程的目的是控制复杂性,而不是增加复杂性。为了达到这个目标,软件项目的各个阶段都需要用某种方法论来指导。

根据ISO/IEC 12207标准,软件开发周期分为23个步骤,每个步骤包含一系列的活动和结果。步骤分为3种类型:主要步骤,支持型步骤和组织型步骤。如图所示:

 

具体内容可以参考:ISO 12207

获取(Acquisition)步骤包含引出需求,评估可用方法,协商和约定。

供应(Supply)是指供方提供系统,软件产品或软件服务的活动

开发(Development)步骤包括分析需求,设计系统,实现系统,测试与部署,这也成为了架构师大显身手的地方。

运营(Operation)包括让软件可以在公司中使用,与现有系统集成,进行小规模试验,及辅助用户熟悉软件等。

维护(Maintenance)步骤着眼于保持系统良好运行,包括修复Bug,提供新功能等。这其中有限活动也许也需要架构师的参与。

墨菲法则:

1. 为一个赶不上进度的软件项目增加人手只能让其更加落后于进度。

2. 程序的复杂性会一直增加,直到负责维护的程序员力不从心为止。

3. 若建筑师按照程序员写的程序那样造房子,那么史上出现的第一只啄木鸟也许会毁掉整个文明。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值