Harinya works based on Object Oriented Analysis and Design and follows UML concepts & Design Patterns for designing the software.
OOAD
The examination of a problem by modeling it as a group of interacting objects. An object is defined by its class, data elements and behaviour. For example; in an order processing system, an invoice is a class, and printing, viewing and totalling are examples of its behaviour. Objects (individual invoices) inherit this behaviour and combine it with their own data elements. Transforming an object-oriented model into the specifications required to create the system. Moving from object-oriented analysis to object-oriented design is accomplished by expanding the model into more and more detail. A design method in which a system is modelled as a collection of cooperating objects and individual objects are treated as instances of a class within a class hierarchy. Four stages can be identified: identify the classes and objects, identify their semantics, identify their relationships and specify class and object interfaces and implementation. Object-oriented design is one of the stages of object-oriented programming.
UML
Modeling is the designing of software applications before coding. Modeling is an Essential Part of large software projects, and helpful to medium and even small projects as well. A model plays the analogous role in software development that blueprints and other plans (site maps, elevations, physical models) play in the building of a skyscraper. Using a model, those responsible for a software development project's success can assure themselves that business functionality is complete and correct, end-user needs are met, and program design supports requirements for scalability, robustness, security, extendibility, and other characteristics, before implementation in code renders changes difficult and expensive to make. Unified Modeling Language helps us specify, visualize, and document models of software systems, including their structure and design, in a way that meets all of these requirements. Using any one of the large number of UML-based tools on the market, we can analyze our future application's requirements and design a solution that meets them, representing the results using UML's thirteen standard diagram types.
Design Patterns
There are different types of design patterns used for the high level design like MVC (Model-View-Controller), Singleton and Factory depends on the platform and technologies.
- Several problems can arise when applications contain a mixture of data access code, business logic code, and presentation code. Such applications are difficult to maintain, because interdependencies between all of the components cause strong ripple effects whenever a change is made anywhere. The Model-View-Controller design pattern solves these problems by decoupling data access, business logic, and data presentation and user interaction.
- Singleton pattern should be used when we must ensure that only one instance of a class is created and when the instance must be available through all the code. A special care should be taken in multithreading environments when multible threads must access the same resources through the same singleton object.
- Factory pattern should be used when a framework delegate the creation of objects derived from a common superclass to the factory - we need flexibility in adding new types of objects that must be created by the class.
There are various tools that we are using for the architectural design of the proposed system.
Rational Rose
Rational Rose is an object-oriented Unified Modeling Language (UML) software design tool intended for visual modeling and component construction of enterprise-level software applications. Two popular features of Rational Rose are its ability to provide iterative development and round-trip engineering.
Enterprise Architect
Enterprise Architect is a collaborative modeling, design and management platform based on UML and related standards. An enterprise wide solution for visualizing, analyzing, modeling, testing and maintaining a wide range of systems, software, processes and architectures.
MS Visio
Microsoft Visio enables easy assembly of diagrams through dragging predefined Microsoft SmartShapes symbols coupled with powerful search capabilities to locate the right shape, whether it is on a computer or the Web. |