Page 195 -
P. 195

178   Chapter 7   Design and implementation




                      FPO   Structured design methods

                     Structured design methods propose that software design should be tackled in a methodical way. Designing a
                     system involves following the steps of the method and refining the design of a system at increasingly detailed
                     levels. In the 1990s, there were a number of competing methods for object-oriented design. However, the
                     inventors of the most commonly used methods came together and invented the UML, which unified the
                     notations used in the different methods.
                     Rather than focus on methods, most discussions now are about processes where design is seen as part of the
                     overall software development process. The Rational Unified Process (RUP) is a good example of a generic
                     development process.
                                    http://www.SoftwareEngineering-9.com/Web/Structured-methods/


                                    2.  To introduce important implementation issues that are not usually covered in
                                        programming books. These include software reuse, configuration management,
                                        and open source development.

                                       As there are a vast number of different development platforms, the chapter is not
                                    biased towards any particular programming language or implementation technology.
                                    Therefore, I have presented all examples using the UML rather than in a program-
                                    ming language such as Java or Python.


                               7.1 Object-oriented design using the UML


                                    An object-oriented system is made up of interacting objects that maintain their own
                                    local state and provide operations on that state. The representation of the state is pri-
                                    vate and cannot be accessed directly from outside the object. Object-oriented design
                                    processes involve designing object classes and the relationships between these
                                    classes. These classes define the objects in the system and their interactions. When
                                    the design is realized as an executing program, the objects are created dynamically
                                    from these class definitions.
                                       Object-oriented systems are easier to change than systems developed using func-
                                    tional approaches. Objects include both data and operations to manipulate that data.
                                    They may therefore be understood and modified as stand-alone entities. Changing the
                                    implementation of an object or adding services should not affect other system objects.
                                    Because objects are associated with things, there is often a clear mapping between real-
                                    world entities (such as hardware components) and their controlling objects in the sys-
                                    tem. This improves the understandability, and hence the maintainability, of the design.
                                       To develop a system design from concept to detailed, object-oriented design,
                                    there are several things that you need to do:
                                    1.  Understand and define the context and the external interactions with the system.

                                    2.  Design the system architecture.
   190   191   192   193   194   195   196   197   198   199   200