`
neu_gefei
  • 浏览: 6470 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

TDD 第一章 使用入门(三)

阅读更多
Design


   基于客户的需求你设计并构建一个系统,设计过程的一部分就是将客户的需求翻译成这个系统大体上是怎样使用的。像基于web的系统,这就意味着设计一些满足功能需求的页面。如果你在做中间件,你的系统将被其它客户软件使用并且与其他的服务器软件交互。这样的话你就会想在开始之前先确定各个系统和中间件之间交互的那些接口。
   
    你只有首先进行高层次的设计,而不是研究非常详细的规范。随着你对客户需求认知的不断加深,你可以一步步完善原先的设计。在你确定你的java代码是否行之有效的过程中你依然可以更新你的设计文档。利用面向对象的开发技术还是可以为你提供这种快速适应情况变化的灵活性的。
    如果你对即将使用的开发语言没有全面的理解,使用上述的自外及里的方式设计系统将是一项令人气馁的工程。那么如果你开始时构建系统的一些内部模块,就可以让你跨越语言基础的障碍。
   
学生信息管理系统主要是关于学生的,所以你的第一步工作就是要把现实世界中的概念抽象成面向对象的表示。你可以写一个Student类,Student对象应该有一些诸如姓名,证件号,班级等基本信息。你应该专注于一些小的概念例如创建一个唯一的学生对象,它可以保存学生的姓名信息。
    上面那个书的图标将会贯穿本书,我将用那个图标表示系统的需求和一些题材,你得根据这些需求为系统提供相应的功能实现以满足客户。
  
引用
You design and construct a system based on customer needs, or requirements. Part of the design process is translating the customer requirements into rough ideas or sketches of how the system will be used. For a web-based system, this means designing the web pages that will provide the application's functionality. If you are building "inbetween" software known as middleware, your system will be used by other client software and will interact with other server software. In this case, you will want start by defining the communication points the interfaces between the other systems and the middleware.
    You start by building only high-level designs, not highly detailed specifications. You will continually refine the design as you understand more about the customer needs. You will also update the design as you discover what works well and what doesn't work well in the Java code that you build. The power of object-oriented development can allow you this flexibility, the ability to quickly adapt your design to changing conditions.
    Designing the system from the outside in as described above would be a daunting task without complete understanding of the language in which you're going to build itJava. To get started, you will construct some of the internal building blocks of the system. This approach will get you past the language basics.
    The student information system is primarily about students, so as your first task you will abstract that real-world concept into its object-oriented representation. A candidate class might be Student. Student objects should contain basic information about a student such as name, identification number, and grades. You will concentrate on an even smaller concern first: Create a unique student object that stores the name of the student.
    The book icon that appears to the left of the preceding paragraph will appear throughout Agile Java. I will use this icon to designate requirements, or stories, that you will build into the student information system. These stories are simple descriptions of what you need to build into the system in order to make the customer happy. You will translate stories into detailed specifications that you realize in the form of tests.


  • 大小: 3.5 KB
分享到:
评论

相关推荐

    tdd_net_with_fitnesse.pdf

    - **第一章:入门**: - **介绍**:解释了谁应该阅读本书,为什么需要TDD以及FitNesse的作用。 - **安装FitNesse**:详细指导如何设置FitNesse环境,并进行简单的测试验证。 - **第二章:实战FitNesse和TDD**: -...

    C#测试驱动开发

    第7章 实现第一个用户情景 第8章 集成测试 第Ⅲ部分 TDD方案 第9章 Web上的TDD 第10章 测试WCF服务 第11章 测试WPF和Silvedight应用程序 第Ⅳ部分 需求和工具 第12章 应对缺陷和新的需求 第13章 有关优秀工具的争论 ...

    C#入门经典代码包含15章的代码

    2. **控制流与异常处理** (第15章): 这一章主要讲解if-else、switch、for、while等控制结构,以及如何使用try-catch来处理程序中的异常,确保程序的健壮性。 3. **数组与集合** (第16章): 数组是存储同类型数据的...

    从入门到精通C#程序设计ppt教程

    1. **第一章:C#简介** - C#的历史和发展背景 - C#的主要特点和用途 - .NET Framework和.NET Core的区别 - 安装Visual Studio IDE 2. **第二章:C#语法基础** - 变量、数据类型和常量 - 运算符和表达式 - ...

    Test Driven Development_A J2EE Example

    1. **第一章:测试驱动开发简介** - 介绍测试驱动开发的核心理念。 - 讨论TDD的优势及其对软件开发流程的影响。 - 概述如何将TDD融入现有的开发环境。 2. **第二章:入门** - 介绍TDD所需的工具和环境设置。 -...

    测试驱动开发with Junit(三)

    首先,我们来看“第一章&第二章”的内容。这部分可能涵盖了TDD的基本理念和JUnit的入门知识。TDD的核心思想是“红-绿-重构”循环,即先编写失败的测试(红),然后编写最小量的代码使测试通过(绿),最后对代码进行...

    最全VS2010初级教程学习手册

    写在前面 第一章 关于Visual Studio、VC和C++的那些事 1 第二章 安装、配置和首次使用VS2010 2 安装 2 配置 10 HelloWorld. 18 VS2010正式到手,说说几点试用体会 29 VS2010 中使用main函数作为C++的入口函数本篇...

    Python算法从入门到实践

    1. **Python基础知识**:学习Python的基础语法是入门的第一步,包括变量、数据类型(如整型、浮点型、字符串、列表、元组、字典等)、流程控制(如if-else、for、while循环)、函数定义和调用、模块导入以及异常处理...

    网优入门大全

    #### 第一章:网优基础理论知识 ##### 第一节:GSM网络优化概述 **1.1 网络优化的概念** GSM网络优化是指通过对现有网络进行一系列的技术调整和资源配置,以提高网络的服务质量和运行效率的过程。随着移动通信...

    D3.js数据可视化实战手册.epub

    这一章涵盖了D3库中过渡以及动画的相关概念。 第7章,图形之美,介绍了SVG相关的概念。SVG是一个广泛用于数字可视化程序的W3C(World Wide Web Consortium)标准。 第8章,图表美化,探索了数据可视化中最为人知的...

    Apress.Applied.WPF.4.in.Context.2011

    书中第一章介绍了WPF的基本概念和XAML标记语言,帮助读者快速入门。 ### 创建视图与控制元素 在第四章和第五章中,作者详细讲解了如何使用WPF创建视图,并向这些视图添加控件。通过实际示例,读者可以学习到如何...

    clojure in action

    这一章通过一系列示例程序让读者快速了解Clojure的核心特性,如数据结构操作、函数定义、宏使用等。 - **第3章:Clojure的基础构建块** 在这一章中,作者深入讲解了Clojure中的基本类型、集合数据结构以及序列...

    C#语言与数据库基础15章完整题目

    1. **C#基础**:第一章通常会介绍C#语言的基本概念,包括变量、数据类型、运算符、流程控制(如条件语句和循环)以及函数的使用。此外,还会涉及面向对象编程的基础,如类、对象、继承、多态等概念。 2. **C#高级...

    Wiely - Agile Database Agile Database Techniques

    ##### 第一部分:奠定基础 - **第1章:敏捷数据方法**:介绍了敏捷数据方法的基本概念,包括其背景、原则以及与传统数据库开发方法的区别。 - **第2章:从业务场景到数据库——现实世界中的UML**:阐述了如何利用...

    mvc3高级编程英文版

    首先介绍*** MVC的基本概念,然后解释它如何延续之前的版本,并帮助读者在确保软件环境正确配置后开始创建第一个*** MVC 3应用程序。 第2章:控制器 控制器是处理用户请求并返回响应的中间件。本章讲解控制器和操作...

    MVC3_67_第1章第1次_MVC简介

    - 创建第一个MVC应用的步骤 - 控制器的生命周期和路由配置 - 视图的创建与渲染,包括Razor语法的使用 - 模型绑定和验证 - HTTP请求和响应的工作流程 通过深入学习这些基础知识,你可以逐步掌握如何利用ASP.NET MVC ...

    ASP.NET-Professional ASP.NET MVC 4 (2012)

    本书的第一章引导读者进入ASP.NET MVC的世界,从环境搭建到第一个项目的创建,逐步介绍如何配置开发环境,包括选择合适的IDE(如Visual Studio)以及安装必要的工具和库。这一章节是新手快速上手的指南,同时为后续...

    Manning.-.JUnit.in.Action.2nd.Edition.2010

    - **第1章:JUnit入门** 这一章节为读者提供了JUnit的基本概念和安装指南,同时介绍了如何创建简单的JUnit测试用例。此外,本章还探讨了JUnit的执行机制以及如何组织测试代码。 - **第2章:探索核心JUnit功能*...

Global site tag (gtag.js) - Google Analytics