对于学习软件工程这门课程,我认为有许多东西要学习。其实在我看来学习这门课程的精髓是学习一种方法。是一个如何去分析和处理问题的过程,应该说其范畴已经远远不止局限于该门课程,成为了一个综合的一个能够解决问题的思想集合。读完软件工程案例教程这本书,我觉得自己受益匪浅。 
      本周主要学习了三层架构、排球积分规则和典型用户和场景。

一、三层架构的的介绍

 

1、ASP.NET

三层架构自底向上分为:数据访问层(DAL),业务逻辑层(BLL)和表示层(PL)。

                                         三层架构简介图

数据访问层(DAL):使用了一个强类型的DataSet作为数据访问层,只是单纯的对数据进行增,删,改,查询和判断存在等等较通用的数据访问方法(由SQL语句来提供),不应该有“事务”存在。 
业务逻辑层(BLL):业务逻辑层是在数据访问层和表示层之间进行数据交换的桥梁,按业务需求调用数据访问层中的方法组合,集合了各种业务规则到一个BLL中,例如通过条件进行判断的数据操作或“事务”处理。BLL都是以类库(Class Library)的形式来实现的。 
表示层(PL):表示层是为客户提供用于交互的应用服务图形界面,帮助用户

理解和高效地定位应用服务,呈现业务逻辑层中传递的数据,用ASP.NET页面来实现。

二、排球积分规则

 

一、赛事组织规则、

1.报名队伍共有七支,进行单循环,积分制。胜一场记2分,负一场记1分,最后决出第一二三名,如出现积分相同,则依据胜负关系决出名次,如胜负关系相同,则依据净胜场次决出名次,如仍未分出胜负关系,双方加赛一场。

2、所有赛局采取三局两胜制,每局采取25分制。

二、具体比赛规则

1. 队员与位置

 

比赛时,每队上场六人,前排三人,后排三人,前后排队员前后相对位置、同排的左右位置不得在发球前交换。每队设队长一名,在出现争议以及需要暂停时由队长提出。比赛中允许使用自由人,但需要在比赛前向裁判说明。

 

 2. 轮转与发球:每队场上的六名队员须轮流发球,不得有人多发或少发,发球区域在底线后;发球时,不得踩线或进入球场内,否则计发球方违例,判接发球方得一分,同时换发球。换发球时场上队员进行顺时针轮转。发球时不得利用身体进行掩护以干扰接球方接球。球只能被抛起或撤离一次,并在落地前用手或手臂击出。

3. 比赛中的击球

前排三名队员可在三米线前起跳扣球或拦网,接发球时不允许拦网。每队最多触球三次必须过网,否则判为四次击球失分。但前排拦网触球不计在三次触球之内。接球可以用身体任意一部位,但不提倡用脚踢球。不得单人连击。不得持球和拖球。拦网时身体任何一部为不得触网,不得过网击球,拦网队员身体不得触碰对方进攻队员。若出现争议裁判无法判断,应重新进行此球。请比赛队员服从裁判判罚。

 注:此规则解释权最终归比赛工作组

三、典型用户和场景

     当我们写一个软件的时候, 都知道要为用户考虑, 但是用户在哪里?  有同学写“图书馆管理系统” - 说来图书馆的同学都是我的用户, 但是他们有没有区别呢?  有同学写“自动柜员机系统”, 那到底有多少类型的用户来到柜员机前呢?   这些都是团队成员在需求分析和设计阶段要反复琢磨的问题。

     有同学说, 我把用户的愿望百分之百地实现了, 这不就行了么?  不要搞那么多分析啊, 故事啊, 心理啊, 讨论啊, 文档啊…  请看这个笑话:

 

在长时间一丝不苟的实现之后…得到了和用户要求一模一样的产品!