MODELING
1. Principles That Guide Practice
软件工程实践是软件计划和开始时需要考虑的方方面面,包括概念、原则、方法和工具等。指导实践的原则成为软件工程实施的基础。
1.1 Core Principles
- principles that guide process
- principles that guide practice
1.2 Principles That Guide Each Framework Activity
- communication principles
- planning principles
- modeling principles
- construction principles
- deployment principles
2. Understanding Requirements
在开始任何技术工作之前,关注于一系列需求工程任务是个好主意。这些任务有助于你理解软件将如何影响业务、客户想要什么以及最终用户将如何和软件交互。
- inception
- elicitation
- elaboration
- negotiation
- specification
- validation
3. Requirements Modeling
文字记录是极好的交流工具,但未必是表达计算机软件需求的最好方式。需求建模使用文字和图表的综合形式,以相对容易理解的方式描绘需求,更重要的是,可以更直接地评审它们的正确性、完整性和一致性。
3.1 Scenario-Based Methods
基于场景的建模从用户的角度表现系统。通过建立一个基于场景的模型,你将能够更好理解用户如何与软件交互,揭示系统的利益相关者所需要的主要功能和特征。
3.2 Class-Based Methods
基于类的建模定义了对象、属性和关系。可以开发一组简单的启发式,用于从一个问题描述中提取对象和类,并随后以文本和图表格式来表示这些对象和类。在创建了模型的雏形之后,就要对其不断改进,并评估其清晰性、完整性和一致性。
3.3 Behavior、Patterns、and Web/Mobile Apps
行为建模描述了系统及其类的状态,以及事件对这些状态的影响。基于模式的建模利用现有领域的知识使得需求分析更为容易。Web应用的需求建模特别适用于表述内容、交互操作、功能和配置相关的需求。
4. Design Concepts
几乎每位工程师都希望做设计工作。设计体现了创造性——利益相关的需求、业务要求和技术考虑都集中地体现在产品或系统的形成中。设计创造了软件的表示或模型,但与需求模型不同,设计模型提供了软件体系结构、数据结构、接口和构件的细节,而这些都是实现系统所必需的。
4.1 Architectural Design
体系结构设计表示了建立计算机系统所需的数据结构和程序构件。它需要考虑系统采取的体系结构风格、系统组成构件的结构和性质,以及系统中所有体系结构构件之间的相互关系。
4.2 Component-Level Design
一套完整的软件构件是在体系结构设计过程中定义的。但是没有在接近代码的抽象级上表示内部数据结构和每个构件的处理细节。构件级设计定义了数据结构、算法、接口特征和分配给每个软件构件的通信机制。
4.3 User Interface Design
用户界面(UI)设计在人与计算机之间搭建了一个有效的交流媒介。遵循一系列的界面设计原则,然后创建构成用户界面原型基础的屏幕布局。
4.4 Pattern-Based Design
对于清晰描述的一组问题,基于模式的设计通过查找一组已被证明有效的解决方案来创建新的应用系统。每个问题及其解决方案都用一个设计模式来描述,事实上,在此之前曾有其他软件工程师在设计其他应用系统时,已经遇到了这个问题并实现了解决方案,因此将这个设计模式编入目录并做了检验。每个设计模式都提供了一种已证明的方法,用于解决问题的一部分。
4.5 WebApp Design
Web应用设计包括的技术性和非技术性活动有:建立Web应用的外观和印象,创建用户界面的美学布局,定义总体结构,开发体系结构中的内容和功能,以及设计Web应用的导航等。
4.9 MoblieApp Design
移动应用设计包括的技术和非技术活动有:建立移动应用的外观和印象、创建用户界面的美学布局、建立用户交互的节奏、定义总体结构、开发体系结构中的内容和功能,以及设计移动应用的导航等。特别需要注意的是要在移动应用中添加上下文感知的元素。