UML
Unified Modeling Language——统一建模语言
UML is the standardized language that enables you to create the structure and design of an object-oriented system
SDLC
Software Development Life Cycle——软件生命周期
有6个阶段:
名称 | 产物 | 备注 |
---|---|---|
Feasibility analysis 可行性分析 | a feasibility report | - |
Requirement analysis and specification 需求分析和规范 | SRS(Software Requirement Specification) document | - |
Design 软件设计 | a design document | translate the requirements into a logical structure |
Coding 程序编码 | source code | - |
Testing 软件测试 | a test report containing errors | - |
Maintenance 软件维护 | - | 持续时间最长 |
Software Development Approaches
方法 | 特点 | 适用场景 |
---|---|---|
Waterfall 瀑布型 | linear sequential flow; cannot handle changes in requirements |
In case requirements are stable and frozen across the project plan |
Prototyping 原型 | evolutionary; types: Throwaway prototypes and Evolutionary prototypes |
Used in the requirements gathering and analysis phase to capture the exact requirements of the proposed system |
Spiral 螺旋型 | iterative and linear | Ideal for developing software that are released in various versions |
Win-win spiral 双赢螺旋型 | the development team and the customer hold discussions and negotiate on the requirements | Generally used when you have time-bound releases |
Incremental 增量型 * | software are broken into various function units which contain similar tasks | Applicable only to large applications |
Object-Oriented Concepts
- Classes and objects
- Inheritance
- Abstraction
- Encapsulation 封装性
- Polymorphism 多态性
Types of UML Diagrams
- Use case diagrams 用例图
- Class diagrams 类图
- Object diagrams 对象图
- Communication diagrams 通信图
- Sequence diagrams 序列图
- State Machine diagrams 状态机图
- Activity diagrams 活动图
- Package Diagrams 包图
- Component diagrams 构件图
- Deployment diagrams 部署图
- Timing Diagrams 时序图
- Composite Structure Diagrams 复合结构图
- Interaction Overview Diagrams 交互概览图
Interactive diagrams
Include:
- Sequence diagram
- Communication diagram
- Timing diagram
- Interactive overview diagram
UML Modeling Techniques
- Requirements modeling: Involves depicting the requirements using use case diagrams
- Static modeling: Involves depicting the static constituents of the software system using the class, object, and composite structure diagrams
- Dynamic modeling: Involves depicting the behavior of static constituents using the following diagrams:
- Activity diagrams
- State machine diagrams
- Communication diagrams
- Sequence diagrams
- Interaction overview diagrams
- Timing diagrams
- Architectural modeling: Involves depicting the architecture of the software system into multiple tiers, such as presentation, business, and resource by using the following diagrams:
- Package diagram
- Component diagram
- Deployment diagram