软件工程导论Part2 Modeling
Part2 Modeling
Chap7 Understanding Requirements
System Engineering
Elements of a computer-based system
Software
Hardware
People
Database
Documentation
Procedures
Systems A hierarchy of macro-element
Requirements Engineering
-
Inception(起始过程) ask a set of questions that establish …
- basic understanding of the problem
- the people who want a solution
- the nature of the solution that is desired, and
- the effectiveness of preliminary communication and collaboration between the customer and the developer
-
Elicitation(导出过程) elicit requirements from all stakeholders
The goal is
- to identify the problem
- propose elements of the solution
- negotiate different approaches, and
- specify a preliminary set of solution requirements
-
Elaboration(精化过程) create an analysis model that identifies data, function and behavioral requirements
- Negotiation(协商过程) agree on a deliverable system that is realistic for developers and customers
-
Specification(规格说明)— can be any one (or more) of the following:
- A written document
- A set of models
- A formal mathematical
- A collection of user scenarios (use-cases)
- A prototype
-
Validation(验证过程)— a review mechanism that looks for
- errors in content or interpretation
- areas where clarification may be required
- missing information
- inconsistencies (a major problem when large products or systems are
engineered) - conflicting or unrealistic (unachievable) requirements
-
Requirements management(管理过程)
Chap 8-10 Requirements Modeling
Requirements Modeling
-
Scenario-based
system from the user’s point of view
-
Data
shows how data are transformed inside the system -
Class-oriented
defines objects, attributes, and relationships -
Flow-oriented
shows how data are transformed inside the system -
Behavioral
show the impact of events on the system states
需求模型必须实现的三个目标:
- 描述客户需要什么
- 为软件设计奠定基础
- 定义在软件完成后可以被确认的一组需求
Chap8 Scenario-Based Methods
用例图 用户故事
Chap9 Class-Based Methods
- Requirements Modeling Strategies
- Structured Analysis
① structured analysis considers data and the processes that transform the data as separate entities.
- Data objects are modeled in a way that defines their attributes and relationships.
- Processes that manipulate data objects are modeled in a manner that shows how they transform data as data objects flow through the system.
② A second approach to analysis modeled, called object-oriented analysis, focuses on
- the definition of classes and
- the manner in which they collaborate with one another to effect customer requirements
- Object-oriented Analysis
The definition of classes
CRC card Class-responsibility-collaborator (CRC) model
Analysis Packages
Various elements of the analysis model (e.g., usecases, analysis classes) are categorized in a manner that packages them as a grouping.
The plus sign preceding the analysis class name in each package indicates that the classes have public visibility and are therefore accessible from other packages.
Other symbols can precede an element within a package. A minus sign indicates that an element is hidden from all other packages and a symbol indicates that an element is accessible only to packages contained within a given package.
Chap10 Behavioral Modeling
State Diagram
- state — a set of observable circum-stances that characterizes the behavior of a system at a given time
- state transition — the movement from one state to another
- event — an occurrence that causes the system to exhibit some predictable form of behavior
- action — process that occurs as a consequence of making a transition
Sequence Diagram
Chap 11 Design Concepts
Design
- Data/Class design – transforms analysis classes into implementation classes and data structures
- Architectural design – defines relationships among the major software structural elements
- Interface design – defines how software elements, hardware elements, and end-users communicate
- Component-level design – transforms structural elements into procedural descriptions of software components
Design and quality
Design Principles
Fundamental Concepts
Chap 12-14 Design Methods
Chap12 Behavioral Modeling
1 What is Architecture
software components, the externally visible properties of those components, and the relationships among them 软件组件 外部可见属性 关系
2 Architectural Styles
Software style is a method to form a structure and structure relationship with integrity, universality and generality
software style is a specific basic structure
-
Data flow architectures 数据流体系架构
- batch processing, pipes and filters
-
Call and return architectures
- main program /subprogram, object-oriented system, layer system
-
Independent component architectures 独立组件架构
- event system
-
Virtual machine architectures 虚拟机架构
- interpreter, rule-based system
-
Repository architectures 仓库风格的体系结构
- database system, blackboard system, etc
3 Architectural Patterns
4 Architectural Design
5 Architecture Reviews 架构评审
- Assess(评估) the ability of the software architecture to meet the systems quality requirements and identify potential risks.
- Have the potential to reduce project costs by detecting design problems early.
- Often make use of experience-based reviews,prototype evaluation, scenario reviews, and checklists 基于经验的审查、原型评估、场景审查和检查清单
6 Agility and Architecture 敏捷架构
Chap13 Component Level Design
1 The Concepts of Component & Component Level Design
Component-level design defines the data structures, algorithms, interface characteristics, and communication mechanisms allocated to each component
2 Basic Design Principles
-
The Open-Closed Principle (OCP). 开闭原则
A module [component] should be open for extension but closed for modification. 对扩展开放,对修改关闭
-
The Liskov Substitution Principle (LSP) 里氏替换原则
Subclasses should be substitutable for their base classes 子类可以替代父类
-
Dependency Inversion Principle (DIP). 依赖倒置原则
Depend on abstractions. Do not depend on concretions.”
-
The Interface Segregation Principle (ISP). 接口分离原则
许多特定于客户端的接口比一个通用接口要好
-
Etc.
聊聊软件开发的REP、CCP、CRP原则-腾讯云开发者社区-腾讯云
3 Cohesion & Coupling
Cohesion
Coupling 耦合
4 Component Level Design
Chap14 User Interface Design
1 Golden Rules for UI Design
Place the user in control
Reduce the user’s memory load
Make the interface consistent
2 User Interface Design Models
3 User Interface Design Process
-
Interface Analysis
• User Analysis
• Task Analysis and Modeling
• Analysis of Display Content
• the environment -
Interface Design Steps & Design Issues
Response time
Help facilities
Error handling
Menu and command labeling
Application accessibility
Internationalization -
Design Evaluation Cycle 设计评估周期