Software Requirements

本文介绍了软件需求工程的基础概念,包括功能性与非功能性需求的区别,用户需求与系统需求的定义方式,以及如何组织需求文档等内容。并通过实例展示了不同类型的软件需求。

Software Requirements

Slide 2
Objectives
 To introduce the concepts of user and system
requirements
 To describe functional and non-functional
requirements
 To explain how software requirements may be
organised in a requirements document

Slide 3
Topics covered
 Functional and non-functional requirements
 User requirements
 System requirements
 Interface specification
 The software requirements document

Slide 4
Requirements engineering
 The process of establishing the services that the
customer requires from a system and the
constraints under which it operates and is
developed.
 The requirements themselves are the
descriptions of the system services and
constraints that are generated during the
requirements engineering process.

Slide 5
What is a requirement?
 It may range from a high-level abstract statement
of a service or of a system constraint to a
detailed mathematical functional specification.
 This is inevitable as requirements may serve a
dual function
• May be the basis for a bid for a contract - therefore
must be open to interpretation;
• May be the basis for the contract itself - therefore
must be defined in detail;
• Both these statements may be called requirements.

Slide 6
Requirements abstraction (Davis)
ÒIf a company wishes to let a contract for a large software development project, it
must define its needs in a sufficiently abstract way that a solution is not pre-defined.
The requirements must be written so that several contractors can bid for the contract,
offering, perhaps, different ways of meeting the client organi sationÕsn eeds. Once a
contract has been awarded, the contractor must write a system definition for the client
in more detail so that the client understands and can validate what the software will
do. Both of these documents may be called the requirements document for the
system.Ó

Slide 7
Types of requirement
 User requirements
• Statements in natural language plus diagrams of the
services the system provides and its operational
constraints. Written for customers.
 System requirements
• A structured document setting out detailed
descriptions of the system’s functions, services and
operational constraints. Defines what should be
implemented so may be part of a contract between
client and contractor.

Slide 8
Definitions and specifications 1111111111111a aeehaxxxttesaxe.u.............cpxy.c.ehhtovoo vv12222222345 efrttyy teoevecedyTeysitp eeemfeee eeiai iee.lts .eerpxre tpresi dFEETWrrs ddl bhdiehrpa, onpsost rsyeuisnnetrcte prnetdeehae ineneaahirpteefartsxnh btsnaace rhadd h tenbdcc raniellaertttellhwatosln aene SUeeemysmmse terre ennrqett suqd

Slide 9
RequiremenSSSSSSSCCCCtyyyyys aaareeeccciiiagvveedegsssssroonnnsrrc pllllohhhlleddtttttiiiietffeeeoosneeeeeiiieeeerotteerttteee)ppsmmmmmwwnnnntseeerrrrree SrrsSayUeeteepoirmmsqqoseetfeuuen cteedwrmiiinnrrfettisssciagn

Slide 10
Functional and non-functional requirements
 Functional requirements
• Statements of services the system should provide, how the
system should react to particular inputs and how the system
should behave in particular situations.
 Non-functional requirements
• constraints on the services or functions offered by the system
such as timing constraints, constraints on the development
process, standards, etc.
 Domain requirements
• Requirements that come from the application domain of the
system and that reflect characteristics of that domain.

Slide 11
Functional requirements
 Describe functionality or system services.
 Depend on the type of software, expected users
and the type of system where the software is
used.
 Functional user requirements may be high-level
statements of what the system should do but
functional system requirements should describe
the system services in detail.

Slide 12
The LIBSYS system
 A library system that provides a single interface
to a number of databases of articles in different
libraries.
 Users can search for, download and print these
articles for personal study.

Slide 13
Examples of functional requirements
 The user shall be able to search either all of the
initial set of databases or select a subset from it.
 The system shall provide appropriate viewers for
the user to read documents in the document
store.
 Every order shall be allocated a unique identifier
(ORDER_ID) which the user shall be able to
copy to the account’s permanent storage area.

Slide 14
Requirements imprecision
 Problems arise when requirements are not
precisely stated.
 Ambiguous requirements may be interpreted in
different ways by developers and users.
 Consider the term ‘appropriate viewers’
• User intention - special purpose viewer for each
different document type;
• Developer interpretation - Provide a text viewer that
shows the contents of the document.

Slide 15
Requirements completeness and consistency
 In principle, requirements should be both complete and
consistent.
 Complete
• They should include descriptions of all facilities
required.
 Consistent
• There should be no conflicts or contradictions in the
descriptions of the system facilities.
 In practice, it is impossible to produce a complete and
consistent requirements document.

Slide 16
Non-functional requirements
 These define system properties and constraints
e.g. reliability, response time and storage
requirements. Constraints are I/O device
capability, system representations, etc.
 Process requirements may also be specified
mandating a particular CASE system,
programming language or development method.
 Non-functional requirements may be more critical
than functional requirements. If these are not
met, the system is useless.

Slide 17
Non-functional classifications
 Product requirements
• Requirements which specify that the delivered product must
behave in a particular way e.g. execution speed, reliability, etc.
 Organisational requirements
• Requirements which are a consequence of organisational
policies and procedures e.g. process standards used,
implementation requirements, etc.
 External requirements
• Requirements which arise from factors which are external to the
system and its development process e.g. interoperability
requirements, legislative requirements, etc.

Slide 18
Non-functional requirement types
rerPeUefoebemreEfeqqrrmemriSeiqsreRmelaufeubcqremaDipueqveelreenPmoiittiieubqiIereaemriayrrlnuqencaeertmImreriionuyeqncearebiSmtnierltuetenPlqevdaeoresmrptEeisiynuiqeceipqtmtrrieeLtstrmcSrnusieeqlnetveaeermytsiynutsluiqqiieysmmrtinaeuhernretletisrinuuyearePoeqmdrNOrreeueeuqqemmiorcrerEnuuegntqeemtiixa-srrnnuntfetteiuissrnrsnntacsattilioonnaall

Slide 19
Non-functional requirements examples
 Product requirement
8.1 The user interface for LIBSYS shall be implemented as simple HTML
without frames or Java applets.
 Organisational requirement
9.3.2 The system development process and deliverable documents shall
conform to the process and deliverables defined in XYZCo-SPSTAN-
95.
 External requirement
7.6.5 The system shall not disclose any personal information about
customers apart from their name and reference number to the
operators of the system.

Slide 20
Goals and requirements
 Non-functional requirements may be very difficult to state
precisely and imprecise requirements may be difficult to
verify.
 Goal
• A general intention of the user such as ease of use.
 Verifiable non-functional requirement
• A statement using some measure that can be objectively
tested.
 Goals are helpful to developers as they convey the
intentions of the system users.

Slide 21
Examples
 A system goal
• The system should be easy to use by experienced controllers
and should be organised in such a way that user errors are
minimised.
 A verifiable non-functional requirement
• Experienced controllers shall be able to use all the system
functions after a total of two hours training. After this training,
the average number of errors made by experienced users shall
not exceed two per day.

Slide 22
Requirements measures
Pr
op
er
t
y
M
ea
su
r
e
Speed Processed transactions/second
User/Event response time
Screen ref resh time
Size M Bytes
Number of ROM chips
Ease of us e Training time
Number of h elp f rames
Reliability Mean time to failure
Probability of unavailability
Rate of f ailure occurrence
Availability
Robustness Time to restart after f ailure
Percentage of events causing failure
Probability of data corruption on f ailure
Portability Percentage of target dependent statements
Number of target systems

Slide 23
Requirements interaction
 Conflicts between different non-functional
requirements are common in complex systems.
 Spacecraft system
• To minimise weight, the number of separate chips in
the system should be minimised.
• To minimise power consumption, lower power chips
should be used.
• However, using low power chips may mean that
more chips have to be used. Which is the most
critical requirement?

Slide 24
Domain requirements
 Derived from the application domain and
describe system characteristics and features that
reflect the domain.
 Domain requirements be new functional
requirements, constraints on existing
requirements or define specific computations.
 If domain requirements are not satisfied, the
system may be unworkable.

Slide 25
Library system domain requirements
 There shall be a standard user interface to all
databases which shall be based on the Z39.50
standard.
 Because of copyright restrictions, some
documents must be deleted immediately on
arrival. Depending on the user ’ s requirements,
these documents will either be printed locally on
the system server for manually forwarding to the
user or routed to a network printer.

Slide 26
Train protection system
 The deceleration of the train shall be computed
as:
• Dtrain = Dcontrol + Dgradient
where Dgradient is 9.81ms2 * compensated
gradient/alpha and where the values of 9.81ms2
/alpha are known for different types of train.

Slide 27
Domain requirements problems
 Understandability
• Requirements are expressed in the language of the
application domain;
• This is often not understood by software engineers
developing the system.
 Implicitness
• Domain specialists understand the area so well that
they do not think of making the domain requirements
explicit.

Slide 28
User requirements
 Should describe functional and non-functional
requirements in such a way that they are
understandable by system users who don’t have
detailed technical knowledge.
 User requirements are defined using natural
language, tables and diagrams as these can be
understood by all users.

Slide 29
Problems with natural language
 Lack of clarity
• Precision is difficult without making the document
difficult to read.
 Requirements confusion
• Functional and non-functional requirements tend to
be mixed-up.
 Requirements amalgamation
• Several different requirements may be expressed
together.

Slide 30
LIBSYS requirement
4..5
LIBSYS shall provide a financial accounting system
that maintains records of all payments made by users of
the system. System managers may configure this system
so that regular users may receive discounted rates.

Slide 31
Editor grid requirement
2.6 Grid facilities
iltser2adf.To assist in the positioning of entities on a diagram,
the user may turn on a grid in either centimetres or inches, via an
option on the control panel. Initially, the grid is off. The grid may be
turned on and off at any time during an editing session and can be
toggled between inches and centimetres at any time. A grid option
will be provided on the reduce-to-fit view but the number of grid
lines shown will be reduced to avoid filling the smaller diagram
with grid lines.

Slide 32
Requirement problems
 Database requirements includes both conceptual and
detailed information
• Describes the concept of a financial accounting system that is
to be included in LIBSYS;
• However, it also includes the detail that managers can
configure this system - this is unnecessary at this level.
 Grid requirement mixes three different kinds of
requirement
• Conceptual functional requirement (the need for a grid);
• Non-functional requirement (grid units);
• Non-functional UI requirement (grid switching).


.
This grid shall be a
passive grid where the alignment of entities is the user's responsibility.
Rationale: A grid helps the user to create a tidy diagram with well-space d
entities. Although an active grid, where entities 'snap-to' grid lines can be usef ul,
the positioning is imprecise. The user is the best person to decide where entities
should be positioned.
Specification: ECLIPSE/WS/Tools/DE/FS Section 5.6
Source: Ray Wilson, Glasgow Off ice

Slide 34
Guidelines for writing requirements
 Invent a standard format and use it for all
requirements.
 Use language in a consistent way. Use shall for
mandatory requirements, should for desirable
requirements.
 Use text highlighting to identify key parts of the
requirement.
 Avoid the use of computer jargon.

Slide 35
System requirements
 More detailed specifications of system functions,
services and constraints than user requirements.
 They are intended to be a basis for designing the
system.
 They may be incorporated into the system
contract.
 System requirements may be defined or
illustrated using system models discussed in
Chapter 8.

Slide 36
Requirements and design
 In principle, requirements should state what the
system should do and the design should
describe how it does this.
 In practice, requirements and design are
inseparable
• A system architecture may be designed to structure
the requirements;
• The system may inter-operate with other systems
that generate design requirements;
• The use of a specific design may be a domain
requirement.

Slide 37
Problems with NL specification
 Ambiguity
• The readers and writers of the requirement must
interpret the same words in the same way. NL is
naturally ambiguous so this is very difficult.
 Over-flexibility
• The same thing may be said in a number of different
ways in the specification.
 Lack of modularisation
• NL structures are inadequate to structure system
requirements.

Slide 38
Alternatives to NL specification
No
t
at
i
o
n
De
s
cr
ip
t
i
o
n
Structured natural
language
This approach depends on defining standard forms or templates to express the
requirements specification.
Design
description
language s
This approach uses a language like a programming langu age but with more abstract
features to specify the requirements by defining an operational model of the system.
This approach is not now widely used although it can be useful for interface
specifications.
Graphical
notations
A graphical languag e, supplemented by text annotations is used to define the
functional requirements for the system. An early example of such a graphical
language was SADT. Now, use-case descriptions and sequence d iagrams are
commonly used .
Mathematical
specifications
These are notations based on mathematical concep ts such as finite-state machines or
sets. These unambiguous specifications reduce the argu ments between customer and
contractor about system functionality. However, most customers donÕt understand
formal specifications and are reluctant to accept it as a system contract.

Slide 39
Structured language specifications
 The freedom of the requirements writer is limited
by a predefined template for requirements.
 All requirements are written in a standard way.
 The terminology used in the description may be
limited.
 The advantage is that the most of the
expressiveness of natural language is
maintained but a degree of uniformity is imposed
on the specification.

Slide 40
Form-based specifications
 Definition of the function or entity.
 Description of inputs and where they come from.
 Description of outputs and where they go to.
 Indication of other entities required.
 Pre and post conditions (if appropriate).
 The side effects (if any) of the function.

Slide 41
Form-based node specification
Insulin Pump/Control Software/SRS/3.3.2
F
un
c
t
io
n
Compute insulin dose: Saf e sugar level
D
e
s
cr
i
p
t
i
on
Computes the dose of insulin to be delivered when the current measured sugar level is in
the saf e zone between 3 and 7 units.
Inp
u
ts
Current sugar reading (r2), the previous two readings (r0 and r1)
S
o
u
r
c
e
Current sugar reading f rom sensor. Other readings f rom memory.
Ou
t
puts
CompDose Ð the dose in insulin to be delivered
D
e
s
t
in
a
t
i
o
n
Main control loop
A
ct
i
o
n:
CompDose is zero if the sugar level is stable or fa lling or if the level is increasing but the rate of
increase is decreasing. If the level is increasing and the rate of increase is increasing, then CompDose is
computed by dividing the diff erence between the current sugar level and the previous level by 4 and
rounding the result. If the result, is rounded to zero then CompDose is set to the minimum dose that can
be delivered.
R
e
q
u
i
re
s
Two previous read ings so that the rate of change of sugar level can be computed.
Pre
-
c
on
d
i
t
i
o
n
The insulin reservoir contains at least the maximum allowed single dose of insulin..
P
os
t
-
c
o
n
di
t
i
o
n
r0 is replace d by r1 then r1 is replaced by r2
S
i
d
e
-
e
f
f
e
ct
s
None

Slide 42
Tabular specification
 Used to supplement natural language.
 Particularly useful when you have to define a
number of possible alternative courses of action.

Slide 43
Tabular specification
C
o
nd
i
t
i
o
n
A
ct
i
o
n
Sugar level falling (r2 < r1) CompDose = 0
Sugar level stable (r2 = r1) CompDose = 0
Sugar level increasing and rate of
increase decreasing ((r2-r1)<(r1-r0))
CompDose = 0
Sugar level increasing and rate of
increase stable or increasing. ((r2-r1) ³
(r1-r0))
CompDose = round ((r2-r1)/4)
If rounded result = 0 then
CompDose = MinimumDose

Slide 44
Graphical models
 Graphical models are most useful when you
need to show how state changes or where you
need to describe a sequence of actions.
 Different graphical models are explained in
Chapter 8.

Slide 45
Sequence diagrams
 These show the sequence of events that take
place during some user interaction with a
system.
 You read them from top to bottom to see the
order of the actions that take place.
 Cash withdrawal from an ATM
• Validate card;
• Handle request;
• Complete transaction.

Slide 46
Sequence dWi<Cii<AOPiRaCfACCCPngtnriaA<h<TImacIsmeaDpBDaaaCmBvC oNNdefsuei crMrsrDAtaeaTeeaohadaxidrdxofMeh lo nlabrwbrlrau ciicuiataredhrdnwpdtitdienerenne nataqt wt cp p tnmaOm mtccbclu(r rattureaaeeaeeiiKosoeeor mmsosqshrnvqvdpennteuobueueo>Validate Handle tCraonmspacletitoen

Slide 47
Interface specification
 Most systems must operate with other systems
and the operating interfaces must be specified as
part of the requirements.
 Three types of interface may have to be defined
• Procedural interfaces;
• Data structures that are exchanged;
• Data representations.
 Formal notations are an effective technique for
interface specification.

Slide 48
PDL interface description
interface PrintServer {
// def ines an abstract printer server
// requires: interface Printer, interface PrintDoc
// provides: initialize, print, displayPrintQueue, cancelPrintJob, switchPrinter
void initialize ( Printer p ) ;
void print ( Printer p, PrintDoc d ) ;
void displayPrintQueue ( Printer p ) ;
void cancelPrintJob (Printer p, PrintDoc d) ;
void switchPrinter (Printer p1, Printer p2, PrintDoc d) ;
} //PrintServer

Slide 49
The requirements document
 The requirements document is the official
statement of what is required of the system
developers.
 Should include both a definition of user
requirements and a specification of the system
requirements.
 It is NOT a design document. As far as possible,
it should set of WHAT the system should do
rather than HOW it should do it

Slide 50
Users of a requirements document
dUtehsveee stlyhosept SeyinsustdUUetgbheynoeesesmsdrc ee tsduese ttyetrmmehhsvssetee teatde MeSyinseagteenmrasgers
cSyusrSmsstreeptephaoemeqeedemcucy tiiti effhtryryhees emmctihhre meSyinsaUtuegthpitenensseamrdet rsere tenrhlsaaetnat

Slide 51
IEEE requirements standard
 Defines a generic structure for a requirements
document that must be instantiated for each
specific system.
• Introduction.
• General description.
• Specific requirements.
• Appendices.
• Index.

Slide 52
Requirements document structure
 Preface
 Introduction
 Glossary
 User requirements definition
 System architecture
 System requirements specification
 System models
 System evolution
 Appendices
 Index

Slide 53
Key points
 Requirements set out what the system should do and
define constraints on its operation and implementation.
 Functional requirements set out services the system
should provide.
 Non-functional requirements constrain the system being
developed or the development process.
 User requirements are high-level statements of what the
system should do. User requirements should be written
using natural language, tables and diagrams.

Slide 54
Key points
 System requirements are intended to
communicate the functions that the system
should provide.
 A software requirements document is an agreed
statement of the system requirements.
 The IEEE standard is a useful starting point for
defining more detailed specific requirements
standards.

Activity Diagram Use Case Diagram Class Diagram State Diagram Sequence Diagram JUNIT Java loosely Coupled 低耦合 week1 week2 Software Process 什么是Software Process软件过程: Software process models Waterfall model瀑布模型 Incremental development 增量开发 Reuse-oriented software engineering 面向复用的软件开发 Software Process Activities week3 Agile Framework敏捷开发 AGILE METHODS 敏捷开发方法 敏捷开发的例子 Scrum框架 **Roles**角色 **Activities**活动 **Artifacts**产出 week4 Requirements Functional Requirement Non-functional Requirement The Software Requirements Document软件需求文档: **需求发现Requirements discovery**: REQUIREMENTS VALIDATION需求验证 week5 The jelled team Software Engineering KNOWLEDGE week6 System Modeling Context models Interaction models Structural models Behavioral models Model-driven engineering week8 Class-based Model Behavior-based Model State Machine Diagram Sequence Diagram week9 软件设计 Design modeling Abstraction 抽象 Modularity 模块化 Coupling 耦合 Cohesion 内聚 Object-oriented design 面向对象设计 week10 Architectual Design UML diagrams (systems architecture) Architectural Views Architectural patterns The Model-View-Controller (MVC) pattern Layered pattern/Architecture Repository pattern week11 Component-Level Design Component-level design An object-oriented view面向对象视角 A conventional/traditional view A process view Design and Implementation Sequence models State machine models week12 Interface Design The golden rules User Analysis Task Analysis User Interface Design Patterns User Interface Design Issues Design Ecaluation week13 Software Validation软件验证 An **input-output model** of program testing: 这些知识点都是什么
最新发布
09-02
### Activity Diagram 活动图是一种行为图,用于描述系统内的活动流程,展示从一个活动到另一个活动的控制流,类似于流程图,能清晰呈现业务流程或算法步骤,比如用户在电商系统中的购物流程,从商品浏览、加入购物车到下单支付等一系列活动的先后顺序和逻辑关系。 ### Use Case Diagram 用例图主要展示系统的功能需求,通过描述系统的参与者(如用户、外部系统等)与系统提供的用例(如“登录”“查询信息”等功能)之间的关系,来呈现系统的功能边界和使用场景,帮助利益相关者理解系统的功能范围。 ### Class Diagram 类图是软件工程中最常用的静态结构图,用于描述系统中的类、类的属性和操作,以及类与类之间的关系(如继承、关联、聚合等)。它就像建筑设计图,为系统的实现提供了一个蓝图,能让开发者清晰了解系统的静态结构。例如,在一个图书馆管理系统中,“图书”“读者”“借阅记录”等可以用类来表示,它们之间的关系可以通过类图展示。 ### State Diagram 状态图用于描述对象在其生命周期内所经历的各种状态,以及导致状态转换的事件。以电梯系统为例,电梯有“上升”“下降”“停止”等状态,状态图可以清晰展示电梯在不同事件(如用户按下楼层按钮)触发下的状态转换。 ### Sequence Diagram 序列图是一种交互图,强调对象之间消息传递的时间顺序,展示对象之间如何协作完成一个特定的任务。它以时间为轴,从上到下显示消息的传递顺序,能直观反映系统中对象之间的交互过程,比如在一个在线支付系统中,用户、银行系统、支付平台等对象之间的消息交互可以通过序列图清晰呈现。 ```plantuml @startuml actor User participant "Payment Platform" as PP participant "Bank System" as BS User -> PP: 发起支付请求 PP -> BS: 验证支付信息 BS --> PP: 返回验证结果 PP --> User: 显示支付结果 @enduml ``` ### JUNIT JUnit是一个用于编写和运行可重复测试的Java单元测试框架,它能帮助开发者对代码中的最小可测试单元(如方法)进行测试,确保代码的正确性和稳定性。通过JUnit,开发者可以编写一系列测试用例,对代码的各种情况进行验证,及时发现和修复潜在的问题。 ### Java loosely Coupled Java松散耦合指的是在Java开发中,各个组件或模块之间的依赖关系尽可能弱化。这样当一个组件发生变化时,对其他组件的影响最小,提高了系统的可维护性和可扩展性。例如,通过接口和依赖注入等技术实现组件之间的松散耦合,一个模块只依赖于另一个模块的接口,而不是具体实现类。 ### Software Process 软件过程是指在软件生命周期中,为了获得高质量软件所需要完成的一系列活动的集合。它包括需求分析、设计、编码、测试、维护等阶段,是将用户需求转化为软件产品的一系列步骤和方法。 ### Software process models 软件过程模型是对软件过程的抽象和简化,是软件开发实际过程的理想化描述。常见的软件过程模型有瀑布模型、增量模型、敏捷模型等,不同的模型适用于不同的项目特点和需求。 ### Waterfall model 瀑布模型是一种传统的软件开发模型,它将软件开发过程划分为线性的、顺序的阶段,每个阶段都有明确的输入和输出,只有前一个阶段完成后才能进入下一个阶段,就像瀑布流水一样,依次向下流动。其阶段通常包括需求分析、设计、编码、测试、维护等。 ### Incremental development 增量开发是一种软件开发方法,将软件项目分解为多个增量,每个增量都包含部分功能,逐步开发和交付。每个增量都是一个可运行的版本,随着增量的不断增加,软件的功能逐渐完善。这种方法可以让用户更早地看到软件的部分功能,及时反馈意见,同时也降低了项目风险。 ### Reuse - oriented software engineering 面向复用的软件工程强调在软件开发过程中尽可能复用已有的软件资产(如代码、设计、文档等),以提高开发效率、降低成本和提高软件质量。通过建立软件资产库,对可复用的资产进行管理和维护,开发者可以在新项目中快速获取和使用这些资产。 ### Software Process Activities 软件过程活动是软件过程中具体的操作和任务,包括需求获取、需求分析、设计、编码、测试、维护等活动,这些活动相互关联,共同构成了软件的开发过程。 ### Agile Framework 敏捷框架是一组软件开发的原则和实践,强调快速响应变化、团队协作和客户参与。它以迭代和增量的方式进行软件开发,通过频繁的交付和反馈,不断调整项目方向,以满足用户的需求。 ### AGILE METHODS 敏捷方法是基于敏捷框架的一系列具体开发方法,如Scrum、XP(极限编程)等。这些方法强调团队的自组织、快速迭代、客户参与和持续改进,以应对软件开发过程中的不确定性和变化。 ### Scrum框架 Scrum是一种敏捷项目管理框架,它定义了角色、活动和工件,通过迭代的方式进行软件开发。Scrum团队有产品负责人、Scrum Master和开发团队成员三个角色,通过冲刺(Sprint)进行迭代开发,每个冲刺都有明确的目标和交付物。 ### Roles 在软件开发中,角色指的是参与项目的不同人员所承担的职责和任务。常见的角色有项目经理、需求分析师、设计师、程序员、测试人员等,每个角色都有其特定的技能和职责,共同协作完成软件项目。 ### Activities 活动在软件开发中是指为了实现项目目标而进行的具体操作和任务,如需求调研、设计评审、代码编写、测试执行等。不同的角色负责不同的活动,这些活动按照一定的顺序和规则进行,以确保项目的顺利进行。 ### Artifacts 工件是软件开发过程中产生的各种文档、模型、代码等产物。例如,需求规格说明书、设计文档、测试用例、源代码等都是软件项目中的工件,它们记录了项目的各个阶段的信息,是项目管理和沟通的重要依据。 ### Requirements 需求是指用户对软件系统的功能、性能、行为等方面的期望和要求。它是软件开发的基础,所有的开发活动都围绕需求展开。 ### Functional Requirement 功能需求明确了软件系统必须具备的功能,描述了系统应该做什么。例如,在一个在线购物系统中,“用户可以搜索商品”“用户可以添加商品到购物车”等都是功能需求。 ### Non - functional Requirement 非功能需求关注软件系统的质量属性,如性能、可靠性、安全性、易用性等。例如,系统的响应时间不能超过1秒、系统要具备数据备份和恢复功能、系统要对用户信息进行加密保护等都属于非功能需求。 ### The Software Requirements Document 软件需求文档是对软件系统需求的详细描述,它记录了用户的需求、系统的功能和性能要求等信息,是软件开发团队和用户之间的重要沟通文档,也是后续设计和开发的依据。 ### Requirements discovery 需求发现是指通过与用户、客户、领域专家等进行沟通和交流,获取软件系统需求的过程。在这个过程中,需要运用各种方法(如访谈、问卷调查、观察等)收集用户的需求和期望。 ### REQUIREMENTS VALIDATION 需求验证是对需求的正确性、完整性、一致性等进行检查和确认的过程。通过需求验证,可以确保需求文档准确反映用户的实际需求,避免在后续开发过程中出现需求偏差导致的问题。 ### The jelled team 凝聚团队是指一个高效协作、目标一致的团队。在这样的团队中,成员之间相互信任、相互支持,能够充分发挥各自的优势,共同完成项目目标。 ### Software Engineering KNOWLEDGE 软件工程知识涵盖了软件工程领域的各种理论、方法、技术和实践经验,包括软件过程、软件设计、软件测试、项目管理等方面的知识,是从业者进行软件开发和管理的基础。 ### System Modeling 系统建模是指对软件系统进行抽象和描述的过程,通过建立各种模型(如功能模型、结构模型、行为模型等)来理解和表达系统的特性和行为,为系统的设计和实现提供指导。 ### Context models 上下文模型用于描述系统与外部环境之间的交互关系,展示系统的边界和外部实体(如用户、其他系统等)。它可以帮助开发者理解系统所处的环境,明确系统的输入和输出。 ### Interaction models 交互模型主要关注系统中对象之间的交互方式和过程,如序列图、协作图等都属于交互模型,用于展示对象之间如何通过消息传递来完成特定的任务。 ### Structural models 结构模型描述系统的静态结构,如类图、组件图等,展示系统中各个元素(如类、组件等)之间的关系和组成方式。 ### Behavioral models 行为模型用于描述系统的动态行为,如状态图、活动图等,展示系统在不同条件下的行为变化和状态转换。 ### Model - driven engineering 模型驱动工程是一种软件开发方法,强调以模型为核心,通过模型的转换和生成来实现软件的开发。它将系统的需求和设计用模型表示,然后通过自动化工具将模型转换为代码,提高开发效率和质量。 ### Class - based Model 基于类的模型是以类为基本构建单元的模型,通过定义类的属性和方法,以及类之间的关系来描述系统的结构和行为。类图就是一种典型的基于类的模型。 ### Behavior - based Model 基于行为的模型侧重于描述系统的行为,通过状态图、活动图等方式展示系统在不同情况下的行为变化和状态转换。 ### State Machine Diagram 状态机图是一种行为图,用于描述对象的状态和状态之间的转换。它与状态图类似,强调对象在其生命周期内的状态变化和触发状态转换的事件。 ### 软件设计 软件设计是将软件需求转化为软件实现方案的过程,包括架构设计、详细设计等阶段。软件设计的目标是确保软件系统具有良好的结构、可维护性、可扩展性等。 ### Design modeling 设计建模是软件设计过程中的重要环节,通过建立各种模型(如UML图)来描述软件系统的设计方案,帮助开发者理解和沟通系统的设计思路。 ### Abstraction 抽象是指忽略事物的非本质细节,只关注事物的本质特征和关键属性。在软件设计中,抽象可以帮助开发者从宏观层面理解系统,将复杂的问题简化。例如,在设计一个图形处理系统时,可以将“图形”抽象为具有“颜色”“形状”等属性的对象,而不考虑具体的图形实现细节。 ### Modularity 模块化是将软件系统划分为多个独立的模块,每个模块具有明确的功能和职责,模块之间通过接口进行交互。模块化可以提高软件的可维护性、可复用性和可扩展性,就像搭积木一样,不同的模块可以方便地组合和替换。 ### Coupling 耦合是指模块之间的依赖程度,反映了模块之间的关联紧密程度。高耦合意味着模块之间的依赖关系复杂,一个模块的变化可能会影响到其他模块;低耦合则表示模块之间的独立性强,一个模块的变化对其他模块的影响较小。 ### Cohesion 内聚是指模块内部元素之间的关联程度,反映了模块功能的单一性和完整性。高内聚的模块内部元素紧密相关,只完成一个特定的功能;低内聚的模块可能包含多个不相关的功能,不利于维护和复用。 ### Object - oriented design 面向对象设计是一种基于对象的设计方法,它将数据和操作数据的方法封装在对象中,通过对象之间的交互来实现系统的功能。面向对象设计具有封装、继承、多态等特性,能提高软件的可维护性、可扩展性和可复用性。 ### Architectual Design 架构设计是软件设计的高层次设计,关注系统的整体结构和组织方式,确定系统的主要组件、组件之间的关系以及系统与外部环境的交互方式。架构设计为系统的实现提供了一个宏观的框架,对系统的性能、可维护性等方面有重要影响。 ### UML diagrams (systems architecture) UML(统一建模语言)图在系统架构设计中用于可视化、规范说明和构造系统架构。常见的UML图(如类图、序列图、状态图等)可以从不同角度展示系统的架构,帮助开发者和利益相关者理解系统的结构和行为。 ### Architectural Views 架构视图是从不同的视角来描述系统架构,每个视图关注系统的不同方面。常见的架构视图有逻辑视图(关注系统的功能结构)、进程视图(关注系统的并发和进程管理)、物理视图(关注系统的硬件部署)等。 ### Architectural patterns 架构模式是经过实践验证的、可复用的架构解决方案,它描述了在特定场景下如何组织系统的结构和组件。常见的架构模式有MVC模式、分层模式、仓库模式等。 ### The Model - View - Controller (MVC) pattern MVC模式是一种经典的软件架构模式,将软件系统分为模型(Model)、视图(View)和控制器(Controller)三个部分。模型负责处理数据和业务逻辑,视图负责展示数据给用户,控制器负责接收用户的输入并协调模型和视图的交互。例如,在一个Web应用中,数据库中的数据可以作为模型,网页界面作为视图,服务器端的代码作为控制器。 ### Layered pattern/Architecture 分层架构将系统划分为多个层次,每个层次具有特定的功能和职责,层次之间通过接口进行交互。常见的分层架构有三层架构(表示层、业务逻辑层、数据访问层),这种架构模式提高了系统的可维护性和可扩展性,不同层次可以独立开发和维护。 ### Repository pattern 仓库模式是一种数据访问模式,它将数据访问逻辑封装在一个仓库类中,为业务逻辑层提供统一的数据访问接口。通过仓库模式,业务逻辑层不需要关心数据的具体存储方式和访问细节,提高了代码的可测试性和可维护性。 ### Component - Level Design 组件级设计关注系统中各个组件的详细设计,包括组件的功能、接口、内部实现等方面。在组件级设计中,需要考虑组件的独立性、可复用性和可维护性。 ### An object - oriented view 面向对象视图是从面向对象的角度来理解和设计系统,强调对象的封装、继承和多态等特性,通过对象之间的交互来实现系统的功能。 ### A conventional/traditional view 传统视图通常指的是基于结构化编程的设计方法,强调程序的顺序执行和模块化设计,通过函数和数据结构来构建系统。 ### A process view 过程视图关注系统的执行过程和动态行为,描述系统中各个进程或线程的执行顺序和交互关系,例如通过活动图、状态图等方式展示系统的过程视图。 ### Design and Implementation 设计和实现是软件开发过程中的两个重要阶段,设计阶段确定系统的架构和详细设计方案,实现阶段根据设计方案编写代码,将设计转化为可运行的软件系统。 ### Sequence models 序列模型(如序列图)用于描述对象之间的消息传递顺序和交互过程,展示系统中各个对象如何协作完成特定的任务。 ### State machine models 状态机模型(如状态图)用于描述对象在其生命周期内的状态变化和状态转换,帮助开发者理解对象的行为和状态管理。 ### Interface Design 接口设计是指设计系统中各个组件之间的交互接口,包括接口的定义、参数、返回值等。良好的接口设计可以提高组件之间的兼容性和可交互性,降低组件之间的耦合度。 ### The golden rules 黄金规则通常指的是在用户界面设计中遵循的一些基本原则,如用户控制和自由、一致性、反馈等。这些规则可以帮助设计出易用、高效的用户界面。 ### User Analysis 用户分析是对系统的目标用户进行研究和了解的过程,包括用户的特征、需求、使用习惯等方面。通过用户分析,可以设计出更符合用户需求的软件系统。 ### Task Analysis 任务分析是对用户在使用系统时需要完成的任务进行详细分析的过程,包括任务的步骤、输入、输出等。任务分析可以帮助设计者了解用户的操作需求,优化系统的功能和界面设计。 ### User Interface Design Patterns 用户界面设计模式是指在用户界面设计中常用的一些设计解决方案,如导航栏、菜单、按钮等。这些设计模式经过实践验证,能够提高用户界面的易用性和一致性。 ### User Interface Design Issues 用户界面设计问题是指在用户界面设计过程中可能遇到的各种问题,如界面布局不合理、操作流程复杂、信息显示不清晰等。解决这些问题需要设计者充分考虑用户的需求和使用体验。 ### Design Ecaluation 设计评估是对设计方案进行评价和审查的过程,通过各种方法(如评审、测试等)评估设计的质量、可行性和有效性,及时发现和解决设计中存在的问题。 ### Software Validation 软件验证是确保软件系统满足用户需求和规定的标准的过程,包括功能验证、性能验证、安全性验证等方面。通过软件验证,可以保证软件系统的质量和可靠性。 ### An input - output model of program testing 程序测试的输入 - 输出模型是一种测试方法,通过给程序提供不同的输入数据,观察程序的输出结果,来验证程序的正确性。这种模型简单直观,是软件测试中常用的方法之一。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值