Transcript Chapter 7

Chapter 7:
Software Engineering
Computer Science: An Overview
Tenth Edition
by
J. Glenn Brookshear
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Chapter 7: Software Engineering
•
•
•
•
•
•
•
•
7.1 The Software Engineering Discipline
7.2 The Software Life Cycle
7.3 Software Engineering Methodologies
7.4 Modularity
7.5 Tools of the Trade
7.6 Testing
7.7 Documentation
7.8 Software Ownership and Liability
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
7-2
The Software Engineering
Discipline(学科)
• Distinct from other engineering fields
– Prefabricated(预先制造的) components
– Metrics(度量学)
• Practitioners(实践派) versus Theoreticians(
理论派)
• Professional Organizations: ACM, IEEE,
etc.
– Codes of professional ethics
– Standards
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
7-3
Computer Aided Software
Engineering (CASE,计算机辅助软件
工程) tools
•
•
•
•
•
•
Project planning(设计系统)
Project management(项目管理)
Documentation(文档编制)
Prototyping and simulation(原型与仿真)
Interface design(界面设计)
Programming(编程)
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
7-4
Figure 7.1 The software life cycle(生
命周期)
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
7-5
Figure 7.2 The development phase of
the software life cycle
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
7-6
Analysis Stage
• Requirements
– Application oriented
• Specifications(规格)
– Technically oriented
• Software requirements document
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
7-7
Design Stage
• Methodologies and tools (discussed later)
• Human interface (psychology and
ergonomics(人类工程学))
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
7-8
Implementation(实现) Stage
• Create system from design
– Write programs
– Create data files
– Develop databases
• Role of “software analyst” versus
“programmer”
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
7-9
Testing Stage
• Validation testing
– Confirm that system meets specifications
• Defect testing
– Find bugs(故障,错误)
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
7-10
Software Engineering
Methodologies
• Waterfall Model(瀑布模型)
• Incremental(增量) Model/Iterative(迭代)
Model
– Prototyping(原型开发) (Evolutionary(演化式)
vs. Throwaway(抛弃式))
• Open-source Development(开放源代码)
• Extreme Programming(XP,极限编程)
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
7-11
Modularity(模块化)
• Procedures -- Imperative paradigm
– Structure charts(结构图)
• Objects -- Object-oriented paradigm
– Collaboration diagrams
• Components -- Component architecture
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
7-12
Figure 7.3 A simple structure chart
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
7-13
Figure 7.4 The structure of
PlayerClass and its instances
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
7-14
Figure 7.5 The interaction between
objects resulting from PlayerA’s
serve
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
7-15
Figure 7.6 A structure chart
including data coupling(耦合)
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
7-16
Coupling versus Cohesion
• Coupling
– Control coupling(控制耦合)
– Data coupling(数据耦合)
• Cohesion(内聚)
– Logical cohesion(逻辑内聚)
– Functional cohesion(功能内聚)
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
7-17
Figure 7.7 Logical and functional
cohesion within an object
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
7-18
Tools of the Trade(行业工具)
• Data Flow Diagram(数据流图)
• Entity-Relationship Diagram(实体关系图)
– One-to-one relation
– One-to-many relation
– Many-to-many relation
• Data Dictionary
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
7-19
Figure 7.8 A simple dataflow diagram
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
7-20
Figure 7.9 A simple use case diagram
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
7-21
Figure 7.10 A simple class diagram
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
7-22
Unified Modeling Language(统一建模
语言)
• Use Case Diagram(用例图)
– Use cases
– Actors(参与者)
• Class Diagram
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
7-23
Figure 7.11 One-to-one, one-to-many, and
many-to-many relationships between
entities of types X and Y
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
7-24
Figure 7.12 A class diagram
depicting(描述) generalizations(泛化)
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
7-25
Figure 7.13 A sequence diagram
depicting a generic volley
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
7-26
Structured Walkthroughs(结构化走查)
• “Theatrical(舞台表演)” experiment
• Class-responsibility-collaboration cards
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
7-27
Design Patterns(设计模式)
• Well designed “templates” for solving recurring(
反复出现) problems
• Examples:
– Adapter pattern(适配器模式): Used to adapter a
module’s interface to current needs
– Decorator pattern(装饰者模式): Used to control the
complexity involved when many different combinations
of the same activities are required
• Inspired by the work of Christopher Alexander in
architecture
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
7-28
Software Testing Strategies
• Glass-box testing(白盒测试)
– Pareto principle(帕累托法则)
– Basis path testing
• Black-box testing(黑盒测试)
– Boundary value analysis(边界值分析)
– Redundancy testing(冗余测试)
– Beta testing
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
7-29
Documentation(文档编制)
• User Documentation(用户文档)
– Printed book for all customers
– On-line help modules
• System Documentation(系统文档)
– Source code
– Design documents
• Technical Documentation(技术文档)
– For installing, customizing, updating, etc.
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
7-30
Software Ownership(软件所有权)
• Copyright(版权)
– The “substantial(本质) similarity” test
– Filtration(过滤) criteria: what is not
copyrightable(版权的)
• Features covered by standards
• Characteristics dictated(口述) by software purpose
• Components in the public domain
– The “look and feel” argument
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
7-31
Software Ownership (continued)
• Patents(专利)
– “Natural laws” are traditionally not patentable
• Trade secrets
– Non-disclosure agreements are legally
enforceable(可实施的)
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
7-32