System Design O Adjust Class Structure example essay topic
It implements "is a" relationships between objects. Inheritance takes advantage of the commonality amongst objects to reduce complexity. One class inherits part or all of the public description of another base class and instances inherit all the properties and methods of the classes which they contain e.g. Polymorphism: A concept in type theory according to which a name (such as a variable declaration) may denote objects of many different classes that are related by some common super-class. Thus any object denoted by this name is able to respond to some common set of operations in different ways. For example Object Oriented Life Cycle: The OO Life Cycle of a software development project can have several incremental steps.
Each of these increments consists of Iteration Cycles whereby specific phases of development are carried out. Each cycle consists of an Analysis, Design, Implementation and Testing phase where certain deliverables are produced. The iterations are repetitive by nature as the project evolves over time. Analysis: The analyst looks at the existing real world scenario for which a computer based solution may be appropriate. This stage consists of 2 parts. 1) Domain Modelling or Elaboration: Use Case diagrams are produced to indicate the main actors and functions of the system and determine the scope of the eventual system, both what can in included and what should be excluded.
A Conceptual Model used be developed with highlights the main classes and their attributes. A Behaviour Model consisting of a state diagram showing how the events of the system affect the objects. Domain Analysis Domain analysis is concerned with devising a precise, understandable, and correct model of the real world. Object oriented analysis provides the designer with an understanding of the problem in preparation for design. o Object discovery o Identifying relationships o Defining operations o Identifying attributes o Re-using abstractions with inheritance o Applying patterns to recurring problems 2) Software Specification: System requirements are extended to include further detail of the intended software solution to the business problem / requirements.
Use Case - in further detail including exception conditions and common behaviour. Analysis Model. Behaviour Model or sequence diagram. Deliverables: o High level Use Case model o Project plan o Expanded Use Case model o System scenario diagrams o Event list o Software requirements specification Design: During system design, the architecture of the system is chosen.
The architecture establishes common tactical policies that must be used by different elements of the system. Using the analysis model and expanding it to cater for the operations required by the system. Model the behaviour through collaboration diagrams and work out which classes are responsible for which operations. Use Case models are used to design storyboards for the User Interface of the system.
System Design During system design, the architecture of the system is chosen. The architecture establishes common tactical policies that must be used by different elements of the system. o Organizing the system into subsystems o Identifying concurrency o Allocating subsystems to processors and processes o Selecting data store implementation strategies o Selecting control strategies o Establishing trade-off priorities o Applying patterns to common design problems o Collect classes into packages and subsystems o Refine class package structure to reduce coupling and enhance re-usability Object Design Object design determines the full definition of the classes and associations used in the implementation as well as the interfaces and algorithms of the methods used to implement the operations. o Design algorithms to implement operations o Optimise access paths to data o Implement software control by refining strategies selected during system design o Adjust class structure to increase inheritance o Design implementation of associations o Determine the exact representation of object attributes Implementation / Testing: The software is physically written by the programmer using the pre-selected programming language. The programs will have integral documentation and as the system is being developed test and user documentation will also be produced. Once tests are passed by the system it is installed on the clients site.
Classes are tested independently for ease. Inheritance allows for less duplication of testing. System can then be phased in for full production. Maintenance: System is handed over to the customer and will be altered / amended over time due to new user / client requirements. Due to OO and a modular approach the system will be easily maintained.
Existing documentation (class diagrams) will make it simple to identify any subsequent changes to attributes and the whole OO life cycle can be used again to incrementally and iteratively implement new enhancements to the system. Advantages of Traditional Life Cycle: Tasks in phases can be assigned to specialised teams. Project progress evaluated at the end of each phase. Manage projects with high levels of risks.
Clearly defined deliverables at each stage. Project Managers can clearly see and understand the progress Of such a linear approach. Disadvantages of Traditional Life Cycle: Real life does rarely follows such a simplistic sequential life cycle. Iterations are inevitable. Time passes between the system analysis / design and implementation stages. The life cycle does not respond well to business changes during the project.
Advantages of Object Oriented Approach: Reusability of components saves time and money. Encourages modularity. System maintenance is easier since objects are independent. Disadvantages of Object Oriented Approach: Harder to project manage as the approach can seem never ending. Difficulties inherent with persistent objects.