Unified Software Engineering With Java
Book information
Description
Unified Software Engineering with Java is ideal for courses in introductory software engineering, Java programming, Java software engineering, and software development methodology with Java, offered in departments of computer science, computer and information sciences, software engineering, information systems, and information technology. Today’s programmers need more than just programming prowess ― they need to understand object-oriented design, software quality assurance, and software project management. This unique text teaches the fundamentals of Java programming in the context of object-oriented software engineering and a Unified-Process-based software development methodology. Written with the understanding that the introduction to software engineering and Java can be daunting, this text uses illustrative examples and real-life applications to make learning easier. Cover Contents Preface 1 Introduction to Java in the Context of Software Engineering 1.1 Getting Acquainted 1.2 What Is Java Programming? 1.2.1 What is Software Engineering? 1.3 Learning Objectives 1.3.1 Learning Layout 1.3.2 Learning Connections 1.4 Executive Summary 1.5 Learning Modules 1.5.1 Concepts 1.5.2 Unified Process–Based Methodology Overview 1.5.3 Position in Process 1.5.4 Domain Model 1.5.5 Scenarios 1.5.6 The Unified Modeling Language 1.6 The Java Programming Language 1.6.1 Historical Perspective on Java 1.6.2 Java Basics 1.7 Relationships 1.7.1 Caveats and Complexities 1.8 Example: The Voting Program 1.8.1 Project (System) Vision 1.8.2 Project Description 1.8.3 Stakeholder Analysis 1.8.4 Customer Profile 1.8.5 Market Analysis 1.8.6 Risk Analysis 1.8.7 Business Use Case Model and Use Cases 1.8.8 Competitive Analysis 1.8.9 Distribution Plan 1.8.10 Financial Plan 1.8.11 High-Level Project Plan 1.8.12 Recommendations 1.9 Ongoing Case Study 1.9.1 Introduction 1.9.2 Initial Concept 1.9.3 Business Justification 1.9.4 Stakeholder Analysis 1.9.5 Case Assignments 1.10 Resources: Connections • People • Companies 1.11 Summary and Recommendations 1.12 Review Questions 1.13 Glossary – Terminology – Concepts 1.14 Exercises 1.15 Setting up a Java Development Environment 1.15.1 Versions of Java 1.15.2 Class and Classpath Setup 1.16 Java Programming Exercises 2 Experimenting with Classes and Objects 2.1 Learning Objectives 2.1.1 Learning Layout 2.1.2 Learning Connections 2.2 Executive Summary 2.3 Learning Modules 2.3.1 Concepts 2.3.2 Position in Process 2.4 The Purpose of Object Orientation in Software Engineering 2.5 Problems with Procedural Programming 2.6 How O-O Solves Software Development Problems 2.7 Understanding Object Orientation 2.8 Object-Orientation in Java 2.8.1 Java Classes and Objects 2.9 Architecture and Class Hierarchy 2.10 Economies of Reuse 2.10.1 Quality 2.10.2 Consistency 2.10.3 Implement Once 2.10.4 Flexibility 2.11 Use Case Models and Classes 2.12 "Real-Life" Variations 2.13 Translating Generic Class Descriptions into Java Classes 2.14 Unified Modeling Language Perspective 2.15 A Simple Java Program: The Voting Program Prototype 2.16 Relationships 2.16.1 Caveats and Complexities 2.17 Example: The Voting Program 2.17.1 The Domain Model 2.17.2 Requirements Specification Outline 2.17.3 Deliverables 2.17.4 Other Requirements 2.18 Ongoing Case Study 2.18.1 Market Analysis 2.18.2 Risk Management 2.18.3 Business Use Case Model and Business Use Cases 2.18.4 Competitive Analysis 2.18.5 Distribution Plan (Pricing, Packaging, Promotion, Positioning) 2.18.6 Financial Plan (Revenue Plan, Budget, Cash Flow Analysis ROI Analysis) 2.18.7 High-Level Project Plan 2.18.8 Recommendations 2.18.9 Case Assignments 2.19 Resources: Connections • People • Companies 2.20 Summary and Recommendations 2.21 Review Questions 2.22 Glossary – Terminology – Concepts 2.23 Exercises 3 The Structure and Syntax of Java 3.1 Learning Objectives 3.1.1 Learning Layout 3.1.2 Learning Connections 3.2 Executive Summary 3.3 Learning a Programming Language 3.3.1 For the Novice 3.3.2 For the Experienced Software Engineer 3.3.3 Similarities to Other O-O Programming Languages 3.4 Learning Modules 3.4.1 Concepts 3.5 The Java Family of Classes and Packages 3.6 Third-Party Components 3.7 Software Quality Assurance 3.8 Position in Process 3.8.1 Design Model 3.8.2 Component Design 3.8.3 Class Hierarchy 3.8.4 System Architecture 3.8.5 Prototyping 3.9 Relationships 3.9.1 Caveats and Complexities 3.10 Example: The Voting Program 3.10.1 Component Design 3.10.2 Class Hierarchy 3.10.3 System Architecture 3.10.4 Prototype 3.10.5 Design Specification, Quality Assurance Specification, and Configuration Management Plan 3.11 Ongoing Case Study 3.12 Resources: Connections • People • Companies 3.13 Summary and Recommendations 3.14 Review Questions 3.15 Glossary – Terminology – Concepts 3.16 Exercises 3.17 Optional Chapter Addendum: LibraryManager, an Application Example 3.17.1 Program Code 3.17.2 Analysis 4 Design and Development of Java Applications 4.1 Learning Objectives 4.1.1 Software Engineering Methodology 4.1.2 Java Syntax and Structure 4.1.3 Object Orientation 4.1.4 Software Quality Assurance 4.1.5 Attitude and Motivation 4.1.6 Learning Layout 4.1.7 Learning Connections 4.2 Executive Summary 4.3 Learning Modules 4.3.1 Software Engineering History 4.3.2 Process Models 4.3.3 "Object Thinking" 4.3.4 Object Orientation 4.3.5 Java Control Structures 4.4 Position in Process 4.4.1 Design Specification 4.4.2 Unit Test Specification 4.4.3 Quality Assurance Plan 4.4.4 Configuration Management Plan 4.4.5 Documentation Plan 4.5 Example: The Voting Program 4.5.1 Introduction 4.5.2 Functional Overview 4.5.3 System Architecture 4.5.4 Class Hierarchy 4.5.5 Component Definition and Design 4.5.6 Prototype Description and Evaluation 4.5.7 Environment 4.5.8 Supporting Disciplines 4.6 Ongoing Case Study 4.7 Resources: Connections • People • Companies 4.8 Summary and Recommendations 4.9 Review Questions 4.10 Glossary – Terminology – Concepts 4.11 Exercises 4.12 Optional Chapter Addendum: Pattern-Driven Design 4.12.1 Pattern Principle 1: High Cohesion 4.12.2 Pattern Principle 2: Low Coupling 4.12.3 Most Popular Patterns 5 Architecture-Driven Component Development 5.1 Learning Objectives 5.1.1 Revisiting System and Software Architecture 5.1.2 Java Component Interaction and Integration 5.1.3 Learning Layout 5.1.4 Learning Connections 5.2 Executive Summary 5.3 Learning Modules 5.3.1 Concepts 5.3.2 Architectural Perspectives 5.3.3 Developing Java Components 5.3.4 Java Class Interaction 5.3.5 Java Objects 5.3.6 Methods and Constructors 5.3.7 Polymorphism: Method Overloading 5.3.8 Polymorphism: Method Overriding 5.3.9 Inheritance: Extending Classes 5.3.10 Inheritance: Implementing Interfaces 5.3.11 User Interface: An Introduction 5.3.12 User Input and User Input Validation 5.4 Position in Process 5.4.1 Component Implementation 5.4.2 Unit Testing 5.4.3 Build Management 5.5 Example: The Voting Program 5.5.1 Components 5.6 Ongoing Case Study 5.6.1 Some Notes on the Model Home Interior Design Business 5.7 Resources: Connections • People • Companies 5.8 Summary and Recommendations 5.9 Review Questions 5.10 Glossary – Terminology – Concepts 5.11 Exercises 6 Introduction to Distributed Computing Concepts 6.1 Learning Objectives 6.1.1 Creating Value 6.1.2 Agile Techniques 6.1.3 Learning Layout 6.1.4 Learning Connections 6.2 Executive Summary 6.3 Learning Modules 6.3.1 Concepts 6.3.2 Agile Methods and Rapid Application Development 6.3.3 Distributed Java Applications 6.3.4 Methodology, Tools, and Distributed Solutions 6.3.5 Information Persistence 6.4 Position in Process 6.4.1 Class and Object Integration 6.4.2 Package Integration 6.4.3 Subsystem Integration 6.4.4 System Integration 6.4.5 Integration Testing 6.5 Iterative Improvements 6.6 Example: The Voting Program 6.6.1 The Voting Program—Updated: UserInterfacePresentation Class 6.7 On-going Case Study 6.8 Resources: Connections • People • Companies 6.9 Summary and Recommendations 6.10 Review Questions 6.11 Glossary – Terminology – Concepts 6.12 Exercises 7 Interfacing with Users 7.1 Learning Objectives 7.1.1 User Interface Requirements 7.1.2 User Interface Design Best Practices 7.1.3 Java Graphical User Interface Programming 7.1.4 Learning Layout 7.1.5 Learning Connections 7.2 Executive Summary 7.3 Learning Modules 7.3.1 Model-View Controller Design Pattern 7.3.2 User Interface Design Principles 7.3.3 Java User Interface Components 7.3.4 Containers 7.3.5 Layout Managers 7.3.6 Display Elements 7.3.7 Interactive Elements 7.3.8 Event Handling 7.3.9 Types of Applications 7.4 Position in Process 7.4.1 Alpha Testing 7.4.2 Beta Testing 7.4.3 Early Access Testing 7.5 Example 7.5.1 Example Explanation 7.6 Case Study 7.7 Resources 7.8 Summary and Recommendations 7.9 Review Questions 7.10 Glossary – Terminology – Concepts 7.11 Exercises 8 Implementing Java Programs 8.1 Learning Objectives 8.1.1 Learning Layout 8.1.2 Program Structure 8.1.3 Multiple Concurrent Tasks 8.1.4 Multimedia 8.1.5 Learning Connections 8.2 Executive Summary 8.3 Learning Modules 8.3.1 End User Perspective 8.3.2 Administrator Perspective 8.3.3 Process Perspective 8.3.4 Software Engineering Perspective 8.3.5 Data Perspective 8.3.6 Logic Perspective 8.3.7 System Perspective 8.3.8 Multitasking—Multiple Threads 8.3.9 Animation Using Multithreading 8.3.10 Handling Sound 8.3.11 Handling Exceptions 8.4 Position in Process 8.5 Example and Explanation 8.6 Case Study 8.7 Resources 8.7.1 Connections 8.7.2 People 8.7.3 Companies 8.8 Summary and Recommendations 8.9 Review Questions 8.10 Glossary – Terminology – Concepts 8.11 Exercises 9 Software Quality Assurance 9.1 Learning Objectives 9.1.1 Learning Layout 9.1.2 Learning Connections 9.2 Executive Summary 9.3 Learning Modules 9.3.1 Software Quality Assurance 9.3.2 Java Application Structure 9.4 Position in Process 9.5 Example 9.5.1 Example Explanation 9.5.2 Practical Application 9.6 Resources 9.6.1 Connections 9.6.2 Companies 9.7 Summary and Recommendations 9.8 Review Questions 9.9 Glossary – Terminology – Concepts 9.10 Exercises 10 Information Management in Java 10.1 Learning Objectives 10.1.1 Learning Layout 10.1.2 Learning Connections 10.2 Executive Summary 10.3 Learning Modules 10.3.1 Information Life-cycle 10.3.2 Data and File Structures 10.3.3 16-Bit Character I/O 10.3.4 Persistence and Serialization 10.3.5 Example File I/O Programs 10.3.6 Database Access 10.4 Position in the Process 10.5 Example 10.5.1 Example Explanation 10.5.2 Practical Application 10.6 Resources 10.6.1 Connections 10.6.2 Companies 10.7 Summary and Recommendations 10.8 Review Questions 10.9 Glossary – Terminology – Concepts 10.10 Exercises 11 Reality Check: Java Programs in the Real World 11.1 Learning Objectives 11.1.1 Learning Layout 11.1.2 Learning Connections 11.2 Executive Summary 11.3 Learning Modules 11.3.1 Standalone Applications 11.3.2 Client-Server Applications 11.3.3 Web-Centric Distributed Applications 11.3.4 Patterns 11.4 Position in Process 11.5 Example 11.5.1 Example Explanation 11.5.2 Practical Application 11.5.3 Time Boxing 11.6 Resources 11.7 Summary 11.8 Review Questions 11.9 Glossary – Terminology – Concepts 11.10 Exercises 12 Software Integration and Deployment 12.1 Learning Objectives 12.1.1 Learning Layout 12.1.2 Learning Connections 12.2 Executive Summary 12.3 Learning Modules 12.3.1 System Integration 12.3.2 Solution Deployment 12.3.3 Abstract Data Structures 12.4 Position in Process 12.5 Data Structure Example Application: Linked List 12.6 Resources 12.6.1 Connections 12.6.2 People 12.6.3 Companies 12.7 Summary and Recommendations 12.8 Review Questions 12.9 Glossary – Terminology – Concepts 12.10 Exercises 13 Java on Various Computer Platforms 13.1 Learning Objectives 13.1.1 Learning Layout 13.1.2 Learning Connections 13.2 Executive Summary 13.3 Learning Modules 13.3.1 Java HotSpot™ Virtual Machines 13.3.2 Java on Sun Microsystems Computers 13.3.3 Java on IBM Computers 13.3.4 Java on Hewlett-Packard Computers 13.3.5 Java on Other Platforms 13.3.6 Java on Special Devices 13.3.7 Java and Microsoft? 13.3.8 Java Development Tools 13.3.9 UML Development Tools 13.3.10 Networking with Java 13.4 Example 13.4.1 Example Explanation 13.4.2 Practical Application 13.4.3 Source Code Control, a Subset of Configuration Management 13.5 Position in Process 13.6 Resources 13.6.1 Connections 13.6.2 Companies 13.7 Summary and Recommendations 13.8 Review Questions 13.9 Glossary – Terminology – Concepts 13.10 Exercises 14 Advanced Topics in Java Software Engineering 14.1 Learning Objectives 14.1.1 Learning Layout 14.1.2 Learning Connections 14.2 Executive Summary 14.3 Learning Modules 14.3.1 Mobile Applications 14.3.2 Web and Application Services 14.4 Summary Comments 14.5 Position in Process 14.5.1 Documentation 14.5.2 Technical Marketing 14.6 Example 14.6.1 Example Explanation 14.6.2 Practical Application 14.7 Resources 14.7.1 Connections 14.7.2 People 14.8 Summary 14.9 Review Questions 14.10 Glossary – Terminology – Concepts 14.11 Exercises 15 The Unified Modeling Language: A Primer 15.1 Learning Objectives 15.1.1 Learning Layout 15.1.2 Learning Connections 15.2 Executive Summary 15.3 Learning Modules 15.3.1 Class and Object Diagrams 15.3.2 Use Case Diagram 15.3.3 Activity Diagram 15.3.4 Sequence Diagram 15.3.5 Communication Diagram 15.3.6 State Machine Diagram 15.3.7 Deployment Diagram 15.4 Resources: Connections • People • Companies 15.5 Summary and Recommendations 15.6 Review Questions 15.7 Glossary – Terminology – Concepts 15.8 Exercises Index A B C D E F G H I J K L M N O P Q R S T U V W X
Similar books
Computer Aided Software Engineering
1996 · PDF
MySQL® Notes for Professionals book
2018 · PDF
MrExcel 2022: Boosting Excel
2022 · PDF
MrExcel 2022: Boosting Excel
2022 · PDF
Session C11: Ancient Cultural Landscapes in South Europe – their Ecological Setting and Evolution, Session C22: Gardeners from South America, Session S04: Agro-Pastoralism and Early Metallurgy Sessions, Session WS29: The Idea of Enclosure in Recent Iberian Prehistory, Session C88: Rhytmes et causalites des dynamiques de l'anthropisation en Europe entre 6500 ET 500 BC: Hypotheses socio-culturelles et/ou climatiques: Proceedings of the XV UISPP World Congress (Lisbon 4-9 September 2006) / Actes du XV Congrès Mondial (Lisbonne 4-9 Septembre 2006) Vol.36
2010 · PDF
THE BRITISH ARMY IN INDIA: ITS PRESERVATION BY AN APPROPRIATE CLOTHING, HOUSING, LOCATING, RECREATIVE EMPLOYMENT, AND HOPEFUL ENCOURAGEMENT OF THE TROOPS. with AN APPENDIX ON INDIA : THE CLIMATE OP ITS HILLS ; THE DEVELOPMENT OF ITS RESODRCBS, INDUSTRY, AND ARTS ; THE ADMINISTRATION OF JUSTICE ; THE BLACK ACT ; THE PROGRESS OF CHRISTIANITY ; THE TRAFFIC IN OPIUM ; THE VALUE OF INDIA ; PERMANENT CAUSES OF DISAFFECTION, AND OF THE RECENT REBELLION ; THE TRADITIONARY POLICY; MISGOVERNMENT BY NATIVE RULERS ; ANNEXATIONS OF THEIR TERRITORY, ETC.
1858 · PDF
Idries Shah 27 Books Collection : A Perfumed Scorpion, A Veiled Gazelle, Caravan of Dreams, Darkest England, Destination Mecca, Evenings with Idries Shah, Knowing How to Know, Learning How to Learn, Letters and Lectures of Idries Shah, Neglected aspects of Sufi study, Observations, Oriental Magic, Reflections, Seeker after Truth, Special Illumination, Special Problems in the study of Sufi ideas, Sufi thought and action, Tales of the Dervishes, The Dermis Probe, The Elephant in the Dark, The Englishman Handbook, Idries Shah Antology, The Magic Monastery, The natives are restless, wisdom of the Idiots PDF.
2022 · PDF
The travels of Capts. Lewis and Clarke from St. Louis, by way of the Missouri and Columbia rivers, to the Pacific ocean; performed in the years 1804, 1805 & 1806, by order of the government of the United States. Containing delineations of the manners, customs, religion, &c. of the Indians, comp. from various authentic sources, and original documents, and a summary of the Statistical view of the Indian nations, from the official communication of Meriwether Lewis. Illustrated with a map of the country, inhabited by the western tribes of Indians
1809 · PDF