J.14. Wrap-Up

Now that we have presented the complete ATM implementation, you can see that many issues arose during implementation for which we did not provide detailed UML diagrams. This is not uncommon in an object-oriented design and implementation experience. For example, many attributes listed in the class diagrams were implemented as C# properties so that clients of the classes could gain controlled access to the underlying private instance variables. We did not make all of these properties during our design process, because there was nothing in the requirements document or our design process to indicate that certain attributes would eventually need to be accessed outside of their classes.

We also encountered various issues with simulating hardware. A real-world ATM is a hardware device that does not have a complete computer keyboard. One problem with using a computer keyboard to simulate the keypad is that the user can enter non-digits as input. We did not spend much time dealing with such issues, because this problem is not possible in a real ATM, which has only a numeric keypad. However, having to think about issues like this is a good thing. Quite typically, software designs for complete systems involve simulating hardware devices like the cash dispenser and keypad. Despite the fact that some aspects of our ATM may seem contrived, in real-world systems, hardware design and implementation often occurs in parallel with software design and implementation. In such cases, the software cannot be implemented in final form because the hardware is not yet ready. So, software developers must simulate the hardware, as we have done in this case study.

Congratulations on completing the entire software engineering ATM case study! We hope you found this experience to be valuable and that it reinforced many of the concepts that you learned in Chapters 111. We would sincerely appreciate your comments, criticisms and suggestions. You can reach us at deitel@deitel.com. We will respond promptly.

Preface

Index

    Introduction to Computers, the Internet and Visual C#

    Introduction to the Visual C# 2005 Express Edition IDE

    Introduction to C# Applications

    Introduction to Classes and Objects

    Control Statements: Part 1

    Control Statements: Part 2

    Methods: A Deeper Look

    Arrays

    Classes and Objects: A Deeper Look

    Object-Oriented Programming: Inheritance

    Polymorphism, Interfaces & Operator Overloading

    Exception Handling

    Graphical User Interface Concepts: Part 1

    Graphical User Interface Concepts: Part 2

    Multithreading

    Strings, Characters and Regular Expressions

    Graphics and Multimedia

    Files and Streams

    Extensible Markup Language (XML)

    Database, SQL and ADO.NET

    ASP.NET 2.0, Web Forms and Web Controls

    Web Services

    Networking: Streams-Based Sockets and Datagrams

    Searching and Sorting

    Data Structures

    Generics

    Collections

    Appendix A. Operator Precedence Chart

    Appendix B. Number Systems

    Appendix C. Using the Visual Studio 2005 Debugger

    Appendix D. ASCII Character Set

    Appendix E. Unicode®

    Appendix F. Introduction to XHTML: Part 1

    Appendix G. Introduction to XHTML: Part 2

    Appendix H. HTML/XHTML Special Characters

    Appendix I. HTML/XHTML Colors

    Appendix J. ATM Case Study Code

    Appendix K. UML 2: Additional Diagram Types

    Appendix L. Simple Types

    Index



    Visual C# How to Program
    Visual C# 2005 How to Program (2nd Edition)
    ISBN: 0131525239
    EAN: 2147483647
    Year: 2004
    Pages: 600

    Flylib.com © 2008-2020.
    If you may any questions please contact us: flylib@qtcs.net