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