实用软件工程(英文版)

实用软件工程(英文版)
作 者: 马查斯泽克
出版社: 机械工业出版社
丛编项: 经典原版书库
版权说明: 本书为出版图书,暂不支持在线阅读,请支持正版图书
标 签: 暂缺
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

  LeszekA.Maciaszek澳大利亚悉尼麦考里大学副教授。他是企业级应用的设计与实现、数据库和对象技术方面的专业顾问。除本书外,他还著有《DatabaseDesignandImplementation》和《RequirementsAnalysisandSystemsDesign》等书。相关图书软件过程改进(英文版)80X86汇编语言与计算机体系结构计算机体系结构:量化研究方法:第3版计算机科学概论(英文版·第2版)分布式系统概念设计调和分析导论(英文第三版)人工智能:智能系统指南(英文版)第二版电力系统分析(英文版·第2版)面向计算机科学的数理逻辑:系统建模与推理(英文版·第2版)数学规划导论英文版抽样理论与方法(英文版)Java2专家导引(英文版·第3版)复分析基础及工程应用(英文版.第3版)机器视觉教程(英文版)(含盘)支持向量机导论(英文版)电子设计自动化基础(英文版)Java程序设计导论(英文版·第5版)数据挖掘:实用机器学习技术(英文版·第2版)UML参考手册(第2版)Java教程(英文版·第2版)软件需求管理:用例方法(英文版·第2版)数字通信导论离散事件系统仿真(英文版·第4版)复杂SoC设计(英文版)基于FPGA的系统设计(英文版)UML参考手册(英文版·第2版)计算理论导引计算机取证(英文版)EffectiveC#(英文版)基于用例的面向方面软件开发(英文版)UNIX教程(英文版·第2版)软件测试(英文版第2版)设计模式精解(英文版第2版)Linux内核编程必读-经典原版书库实分析和概率论-经典原版书库(英文版.第2版)

内容简介

在实践中应该如何进行软件工程?如何开发现今的企业级应用?《实用软件工程(英文版)(附光盘1张)》用大量实例给出了答案。《实用软件工程(英文版)(附光盘1张)》讨论了如何将理论与行业实践联系起来,即集中精力进行系统设计和实现以及着手解决重要的实践问题。书中以一个主要的案例研究和两个小型的案例研究 (经过改编以适应教学的需要) 为中心展开叙述,提供了针对大型系统开发的软件工程,全面论述了开发生命周期、建模语言、工程工具、项目规划以及过程管理。通过主要案例研究的三次迭代,说明了迭代和增量式开发的概念。《实用软件工程(英文版)(附光盘1张)》特点●强调面向对象的建模和程序设计。●针对需求分析和详细设计,广泛使用UML和模式。●认识到数据库和数据工程在软件工程中的重要性。●解释组件和业务对象。●覆盖多层解决方案 (包括GUI和Web客户) ,通过Web和应用服务器扩展到数据库。●突出应用架构设计和重构。《实用软件工程(英文版)(附光盘1张)》将改变读者学习软件工程知识的方式,帮助IT专业人员改进软件开发实践,并带给读者新的开发思想和方向。随书光盘中包括软件开发工具、案例研究模型以及Java和数据库代码等。

图书目录

Guided tour

Preface

Acknowledgements

Part 1 Software Projects

Chapter 1 Software Development Lifecycle

1.1 Software Engineering Quintessence

1.1.1 Software System is less than Enterprise Information System

1.1.2 Software Process is part of Business Process

1.1.3 Software Engineering is different from Traditional Engineering

1.1.4 Software Engineering is more than Programming

1.1.5 Software Engineering is about Modeling

1.1.6 Software System is Complex

1.2 Lifecycle Phases

1.2.1 Requirements Analysis

1.2.2 System Design

1.2.3 Implementation

1.2.4 Integration and Deployment

1.2.5 Operation and Maintenance

1.3 Lifecycle Models

1.3.1 Waterfall Lifecycle with Feedback

1.3.2 Iterative Lifecycle with Increments

Spiral model

Rational Unified Process (RUP)

Model Driven Architecture (MDA)

Agile lifecycle with short cycles

Summary

Key Terms

Review Questions

Chapter 2 Software Modeling Language

2.1 Structured Modeling Language

2.1.1 Data Flow Modeling

2.1.2 Entity-Relationship Modeling

2.2 Object-Oriented Modeling Language

2.2.1 Class Diagrams

2.2.2 Use Case Diagrams

2.2.3 Interaction Diagrams

Sequence diagrams

Collaboration (communication) diagrams

2.2.4 Statechart Diagrams

2.2.5 Activity Diagrams

2.2.6 Implementation Diagrams

Component diagrams

Deployment diagrams

Summary

Key Terms

Review Questions

Problem-Solving Exercises

Chapter 3 Software Engineering Tools

3.1 Project Management Tools

3.1.1 Project Scheduling and Controlling

3.1.2 Aligning Project and Performance Management with

Strategic Objectives

3.1.3 Unifying Project Management with Web-Based Collaboration

and Content Management

3.1.4 Unifying Project Management with Web-Based Portfolio

Management

3.1.5 Integrating ProjeCt Management with Metrics

3.1.6 Integrating Project Management with Risk Management

3.2 System Modeling Tools

3.2.1 Managing Requirements

3.2.2 Visual UML Modeling

3.2.3 Report Generation

3.2.4 Database Modeling

3.3 Integrated Development Environments

3.3.1 Routine Programming Tasks

Writing the program

Executing the program

Debugging the program

3.3.2 Integration with Software Modeling

3.3.3 Enterprise Application Development

3.3.4 Integration with Business Components

3.3.5 Integration with Change and Configuration Management

3.4 Change and Configuration Management Tools

3.4.1 Support for Changes

3.4.2 Support for Versions

3.4.3 Support for System Building

3.4.4 Support for Reengineering

Summary

Key Terms

Review Questions

Problem-Solving Exercises

Chapter 4 Software Project Planning and Tracking

4.1 Project Plan Development

4.2 Project Scheduling

4.2.1 Tasks, Milestones, and Deliverables

4.2.2 Task Scheduling in a Bar Chart

4.2.3 Resources and Resource Calendars

4.2.4 Effort-Driven Scheduling in a Bar Chart

4.2.5 Resource Underallocation and Overallocation

4.3 Project Budget Estimation

4.3.1 Schedule-Driven Budget Estimation

4.3.2 Algorithmic Budget Estimation

Principles of algorithmic models

COCOMO 81

COCOMO II

4.4 Tracking Project Progress

4.4.1 Tracking the Schedule

4.4.2 Tracking the Budget

Actual costs from schedule

Actual costs from accounting

Earned value

Summary

Key Terms

Review Questions

Problem-Solving Exercises

Chapter 5 Software Process Management

5.1 People Management

5.1.1 Acquiring and Motivating People

Team creation

Motivational theories

5.1.2 Project Communications

Forms of communication

Lines of communication

Factors in communication

Communication in conflict resolution

5.1.3 Team Development

5.2 Risk Management

5.2.1 Risk Identification

5.2.2 Risk Assessment

5.2.3 Risk Handling

5.3 Quality Management

5.3.1 Software Qualities

5.3.2 Quality Control

Software testing

Testing techniques

Test planning

5.3.3 Quality Assurance

Checklists

Reviews

Audits

5.4 Change and Configuration Management

5.4.1 Requirements Changes

5.4.2 Artifact Versions

5.4.3 Defects and Enhancements

5.4.4 Metrics

Summary

Key Terms

Review Questions

Part 2 From Requirements via Architectural Design to

Software Release

Chapter 6 Business Object Model

6.1 Advertising Expenditure Measurement- The Business

6.2 Business Context Diagram

6.3 Business Use Case Model

6.3.1 Business Use Cases and Business Actors

6.3.2 Business Use Case Model for AEM

6.3.3 Alternative Business Use Case Model for AEM

6.4 Business Glossary

6.4.1 Business Glossary for AEM

6.5 Business Class Model

6.5.1 Business Entities

6.5.2 Business Class Model for AEM

6.5.3 Alternative Business Class Model for AEM

Summary

Key Terms

Review Questions

Discussion Questions

Case Study Questions

Problem-Solving Exercises

Case Study Exercises

Minicase - Advertising Expenditure Measurement

Chapter 7 Domain Object Model

7.1 Contact Management - The Domain

7.2 Domain Use Case Model

7.2.1 Use Cases and Actors

7.2.2 Use Case Relationships

7.2.3 Use Case Model for Contact Management

7.2.4 Alternative Use Case Model for Contact Management

7.3 Domain Glossary

7.3.1 Domain Glossary for Contact Management

7.4 Domain Class Model

7.4.1 Classes and Attributes

7.4.2 Class Relationships

7.4.3 Class Model for Contact Management

7.4.4 Alternative Class Model for Contact Management

Summary

Key Terms

Review Questions

Discussion Questions

Case Study Questions

Problem-Solving Exercises

Case Study Exercises

Minicase - Time Logging

Chapter 8 Iteration 1 Requirements and Object Model

8.1 Use Case Model

8.2 Use Case Document

8.2.1 Brief Description, Preconditions, and Postconditions

8.2.2 Basic Flow

8.2.3 Subflows

8.2.4 Exception Flows

8.3 Conceptual Classes

8.4 Supplementary Specification

Summary

Key Terms

Review Questions

Discussion Questions

Case Study Questions

Problem-Solving Exercises

Case Study Exercises

Minicase - Time Logging

Chapter 9 Architectural Design

9.1 Architectural Layers and Dependency Management

9.1.1 Architectural Modules

Design classes

Packages

9.1.2 Package Dependencies

9.1.3 Layer Dependencies

9.1.4 Class Dependencies

9.1.5 Inheritance Dependencies

Inheritance without polymorphism

Extension and restriction inheritance

Down-calls

Up-calls

9.1.6 Method Dependencies

Method dependencies in the presence of delegation

Method dependencies in the presence of

implementation inheritance

9.1.7 Interfaces

Implementation dependency

Usage dependency

Breaking circular dependencies with interfaces

9.1.8 Event Processing

Event processing and layer dependencies

Event processing and interfaces

9.1.9 Acquaintance

Acquaintance dependencies and interfaces

Acquaintance package

9.2 Architectural Frameworks

9.2.1 Model-View-Controller

9.2.2 Presentation-Control-Mediator-Entity-Foundation

PCMEF layers

PCMEF principles

Acquaintance in PCMEF+

Deployment of PCMEF layers

9.3 Architectural Patterns

9.3.1 Facade

9.3.2 Abstract Factory

9.3.3 Chain of Responsibility

9.3.4 Observer

9.3.5 Mediator

Summary

Key Terms

Review Questions

Prob/em-Solving Exercises

Case Study Exercises

Minicase - Contact/nformation Management

Chapter 10 Database Design and Programming

10.1 Quick Tutorial in Relational Databases from a Software

Engineering Viewpoint

10.1.1 Table

10.1.2 Referential Integrity

10.1.3 Conceptual versus Logical Database Models

10.1.4 Implementing Business Rules

10.1.5 Programming Database Application Logic

10.1.6 Indexes

10.2 Mapping Transient Objects to Persistent Records

10.2.1 Object Databases, SQL:1999, and Impedance Mismatch

10.2.2 Object-Relational Mapping

Mapping a one-to-many association and aggregation

Mapping a many-to-many association

Mapping a one-to-one association

Mapping a one-to-many recursive association

Mapping a many-to-many recursive association

Mapping generalization

10.3 Database Design and Creation for Email Management

10.3.1 Database Model

10.3.2 Creating the Database Schema

10.3.3 Sample Database Content

Summary

Key Terms

Review Questions

Discussion Questions

Case Study Questions

Problem-Solving Exercises

Case Study Exercises

Minicase - Contact Information Management

Chapter 11 Class and Interaction Design

11.1 Finding Classes from Use Case Requirements

11,1.1 Finding Classes from Use Case Requirements for

Email Management

11.1.2 Initial Class Design for Email Management

Constants in interface

11.2 Architectural Elaboration of Class Design

11.2.1 Architectural Elaboration of Class Design for Email Management

11.2.2 Class Design for Email Management after Architectural Elaboration

11.2.3 Class Instantiation

Who instantiates the first object?

Instantiation diagram for Email Management

11.3 Interactions

11.3.1 Sequence Diagrams

11.3.2 Communication Diagrams

11.3.3 Interaction Overview Diagrams

11.4 Interactions for Email Management

11.4.1 The 'Login' Interaction

11,4.2 The 'Exit' Interaction

11.4.3 The 'View Unsent Messages' Interaction

11.4.4 The 'Display Message Text' Interaction

11.4.5 The 'Email Message' Interaction

11.4.6 The 'Incorrect User Name or Password' Interaction

11.4.7 The 'Incorrect Option' Interaction

11.4.8 The 'Too Many Messages' Interaction

11.4.9 The 'Email Could Not Be Sent' Interaction

Summary

Key Terms

Review Questions

Discussion Questions

Case Study Questions

Problem-Solving Exercises

Case Study Exercises

Minicase- Time Logging System

Minicase - Contact Information Management

Chapter 12 Programming and Testing

12.1 Quick Tutorial in Java from a Software Engineenng Viewpoint

12.1.1 Class

12.1.2 Class Associations and Collections

From conceptual to design class model

Java collections

Associations on entity objects

C++ parameterized types

12.1.3 Database Access in Java

Comparison of JDBC and SQLJ

Establishing a database connection

Executing SQL statements

Calling stored procedures and functions

12.2 Test-Driven Development

12.2,1 JUnit Framework

12.2.2 Test-Driven Development in Email Management

12.3 Acceptance and Regression Testing

12.3.1 Test Scripts in Email Management

12.3,2 Test Input, Output, and Regression Testing in Email Management

12.3.3 Implementation of Test Script in Email Management

12.4 Iteration 1 Runtime Screenshots

Summary

Key Terms

Review Questions

Problem-Solving Exercises

Tutorial and Case Study Exercises

Minicase- Time Logging System

Minicase - Contact Information Management

Chapter 13 Iteration 1 Annotated Code

13.1 Code Overview

13.2 Package Acquaintance

13.2.1 Interface IAConstants

13.2.2 Interface IAEmployee

13.2.3 Interface IAContact

13.2.4 Interface IAOutMessage

13.3 Package Presentation

13.3.1 Class PMain

13.3.2 Class PConsole

Constructing a PConsole object

Displaying Iogin and menu

Viewing outmessages

Requesting to email an outmessage

13.4 Package Control

13.4.1 Class CActioner

Constructing a CActioner object

Initiating Iogin

Routing retrieval of outmessages

Emailing an outmessage

Using JavaMailTM API

13.5 Package Entity

13.5.1 Interface IEDataSupplier

Object identifiers and identity field pattern

13.5.2 Class EEmployee

Constructing an EEmployee object

Getting unsent outmessages

Removing sent outmessages

13.5.3 Class EContact

Constructing an EContact object

Getting unsent outmessages

Removing sent outmessages

13.5.4 Class EOutMessage

Constructing an EOutMessage object

Getting and setting a contact for Outmessage

Getting and setting a creator employee for outmessage

Getting and setting a sender employee for outmessage

13.6 Package Mediator

13.6.1 Crass MBroker

Constructing an MBroker object

Requesting Iogin connection

Creating Employees Cache

Retrieving unsent outmessages

Creating an outmessages cache

Creating a contacts cache

Updating outmessages after emailing and restoring the cache

13.7 Package Foundation

13.7.1 Class FConnection

Constructing an FConnection object

Obtaining database connection

13.7.2 Class FReader

13.7.3 Class FVVriter

Summary

Key Terms

Iteration 1 Questions and Exercises

Part 3 Software Refactoring and User

Interface Development

Chapter 14 Iteration 2 Requirements and Object Model

14.1 Use Case Model

14.2 Use Case Document

14.2.1 Bdef Description, Preconditions, and Postconditions

14.2.2 Basic Flow

14.2.3 Subflows

14.2.4 Exception Flows

14.3 Conceptual Classes and Relational Tables

14.4 Supplementary Specification

Summary

Key Terms

Review Questions

Chapter 15 Architectural Refactodng

15.1 Refactoring Targets

15.2 Refactodng Methods

15.2.1 Extract Class

15.2.2 Subsume Method

15.2.3 Extract Interface

15.3 Refactoring Patterns

15.3.1 Identity Map

15.3.2 Data Mapper

Load - check-out

Unload- check-in

15.3.3 Alternative Data Mapper Strategies

Many data mappers

Metadata mapping

15.3.4 Lazy Load

Lazy Initialization

Virtual Proxy

OID Proxy

Navigation in Identity Map

Navigation in Entity Classes

15.3.5 Unit of Work

15.4 Refactored Class Model

Summary

Key Terms

Review Questions

Discussion Questions

Case Study Questions

Problem-Solving Exercises

Chapter 16 User Interface Design and Programming

16.1 User Interface Design Guidelines

16.1.1 User in Control

16.1.2 Interface Consistency

16.1.3 Interface Forgiveness

16.1.4 Interface Adaptability

16.2 User Interface Components

16.2.1 Containers

Layout management

Layering management

16.2.2 Menus

16.2.3 Controls

16.3 User Interface Event Handling

16.4 Patterns and the User Interface

16.4.1 Observer

16.4.2 Decorator

16.4.3 Chain of Responsibility

16.4.4 Command

16.5 User Interface for Email Management

Summary

Key Terms

Review Questions

Problem-Solving Exercises

Chapter 17 Web-Based User Interface Design and Programming-

17.1 Enabling Technologies for the Web Client Tier

17.1.1 Basic HTML

17.1.2 Scripting Language

17.1.3 Applet: Thin and Thick

17.2 Enabling Technologies for the Web Server Tier

17.2.1 Servlet

17.2.2 JSP

17.3 Transactions on Stateless Internet Systems

17.4 Patterns and the Web

17.4.1 Observer

17.4.2 Composite

17.4.3 Factory Method

17.4.4 Strategy

17.4.5 Decorator

17.4.6 Model-View-Controller

17.4.7 Front Controller

17.4.8 Reuse of Tags in JSP

17.4.9 Decoupled Control: Struts

17.5 Servlet Implementation of Email Management

Summary

Key Terms

Review Questions

Prob/em-So/ving Exercises

Chapter 18 Iteration 2 Annotated Code

18.1 Code Overview

18.2 Package Acquaintance

18.2.1 Interface IAEmployee

18.3 Package Presentation

18.3.1 Class PWindow

Constructing and launching PWindow

Data retrieval in PWindow

Filter activation

18.3.2 Class PMessageDetailWindow

18.3.3 Class PMessageTableModel

18.3.4 Class PDisplayList

18.3.5 Class PDisplayList.Filter

18.4 Package Control

18.4.1 Class CAdmin

18.4.2 Class CMsgSeeker

18.5 Package Entity

18.5.1 Class EldentityMap

18.6 Package Mediator

18.6.1 Class MModerator

18.6.2 Class MDataMapper

Outmessage retrievals and loading

Outmessage saving and unloading

18.7 Presentation Layer: Applet Version

18.8 Presentation Layer: Servlet Version

18.8.1 Class PEMS

Login in servlet

Showing outmessages in servlet

18.8.2 Class PEMSEdit

Summary

Key Terms

Iteration 2 Questions and Exercises

Part 4 Data Engineering and Business Components

Chapter 19 Iteration 3 Requirements and Object Model

19.1 Use Case Model

19.2 Use Case Document

19.2.1 Bdef Description, Preconditions, and Postconditions

19.2.2 Basic Flow

19.2.3 Subflows

19.2.4 Exception Flows

19.3 Conceptual Classes and Relational Tables

19.4 Supplementary Specification

19.5 Database Specification

Summary

Key Terms

Review Questions

Chapter 20 Security and Integrity

20.1 Designing Security

20.1.1 Discretionary Authorization

System and object privileges

Programmatic discretionary authorization

20.1,2 Mandatory Authorization

20.1.3 Enterprise Authorization

20.2 Designing Integrity

20.2.1 Null and Default Constraints

20.2.2 Domain and Check Constraints

20.2.3 Unique and Primary Keys

20.2.4 Foreign Keys

20.2.5 Triggers

20.3 Security and Integrity in Email Management

20.3.1 Security in Email Management

Explicit Authorization table

Using individual schemas, global schema, and stored procedures

Using individual schemas, global schema, views, and

stored procedures

Authorization administration

20.3.2 Integrity in Email Management

Summary

Key Terms

Review Questions

Problem-Solving Exercises

Chapter 21 Transactions and Concurrency

21.1 Concurrency in System Transactions

21.1.1 ACID Properties

21.1.2 Isolation Levels

21.1.3 Lock Modes and Levels

21.1.4 Transactional Models

21.1.5 Concurrency Control Schemes

21.2 Concurrency in Business Transactions

21.2.1 Business Transaction Execution Contexts

21.2.2 Business Transactions and Component Technology

21.2.3 Transaction Services across Tiers

Web tier

Application tier

Database tier

21.2.4 Offline Concurrency Patterns

Unit of Work

Optimistic Offline Lock

Pessimistic Offline Lock

21.3 Transactions and Concurrency in Email Management

21.3.1 Flat Transaction Model

21.3.2 Unit of Work and Transactional Support

Summary

Key Terms

Review Questions

Problem-Solving Exercises

Chapter 22 Business Components

22.1 Enterprise JavaBeans

22.1.1 EJB Fundamentals

22.1.2 Entity Beans

22.1.3 Session Beans

22.2 Business Components for Java

22.2.1 Creating Entity Components

XML for entity components

Java for entity components

22.2.2 Creating View Components

XML for view components

Java for view components

22.2.3 Creating the Application Module

Summary

Key Terms

Review Questions

Chapter 23 Iteration 3 Annotated Code

23.1 Code Overview

23.2 Package Acquaintance

23.2.1 Interface IAReportEntry

23.3 Package Presentation

23.3.1 Class PWindow

Populating the report contact list

Report window

Activity report

Printing the report

Populating the report table

Showing the authorization window

Conversion from rule matrix to authorization table

Saving modified authorization rules

Conversion from authorization table to rule matrix

Deleting an outmessage

Modifying an outmessage

Creating an outmessage

23.3.2 Class PTableWindow

Dynamic registration of buttons

Adding listeners to dynamically generated buttons

Button return status

Printing in PTableWindow

23.4 Package Control

23.5 Package Entity

23.5.1 Class EldentityMap

Report registration and removat

Report retrieval

23.6 Package Mediator

23.6.1 Class MModerator

Authorization rules

Report retdeval

Creating an outmessage

Updating an outmessage

23.6.2 Class MDataMapper

Changes to previous methods

Report retrieval in MDataMapper

Authorization rules loading in MDataMapper

Saving authorization rules in MDataMapper

23.6.3 Class MUnitOfWork

Acquiring MUnitOfWork

New entity registration in MUnitOfWork

Dirty entity registration in MUnitOfWork

Entity removal in MUnitOfWork

Committing MUnitONVork

Execution of a transaction

Starting a transaction

23.7 Package Foundation

23.7.1 Transactions on FConnection

23.7.2 Execute Statements in FWdter

23.7.3 Querying the Database in FReader

23.8 Database Code

23.8.1 Ref Cursor for ResultSet

23.8.2 Retrieval of Outmessages

23.8.3 Retrieval of Departmental Outmessages

23.8.4 Deleting an Outmessage

23.8.5 Creating an Outmessage

23.8.6 Report Generation

23.8.7 Trigger on OutMessage Table

Summary

Key Terms

Iteration 3 Questions and Exercises

Bibliography

Index

The accompanying CD