You are on page 1of 5

Object Oriented Analysis and Design Chapter 1 Introduction

1. System Development

System development refers to all the activities that go into producing an information system solution. Software development activities are as follows: Analysis Modeling Design Implementation Testing Maintenance

1.1 Software Development Methodology It is a series of processes that, if followed can lead to development of an application. The software processes describe how the work is to be carried out to achieve the original goal based on the system requirements. Each process consists of a number of steps and rules that should be performed during development. The software development process will continue to exist as long as the development system is in operation. 2. Two Views of Software Development SSAD (Structured System Analysis and Design) It concentrates on the functionality of your system i.e. it is function oriented OOAD (Object Oriented Analysis and Design) It concentrates on the data i.e. main building block is objects thus it is known as object oriented. 2.1 SSADM Structured systems analysis and design methodology (SSADM) is a set of standards for systems analysis and application design. It uses a formal methodical approach to the analysis and design of information systems. It was developed by Learmonth Burchett Management Systems (LBMS) and the Central Computer Telecommunications Agency (CCTA) in 1980-1981 as a standard for developing British database projects. The SSADM is an open methodology based on the waterfall model. It has been used by many commercial businesses, consultants, educational establishments and CASE tool developers.

SSADM follows the waterfall life cycle model starting from the feasibility study to the physical design stage of development. One of the main features of SSADM is the intensive user involvement in the requirements analysis stage. The users are made to sign off each stage as they are completed assuring that requirements are met. The users are provided with clear, easily understandable documentation consisting of various diagrammatic representations of the system. SSADM breaks up a development project into stages, modules, steps and tasks. The first and foremost model developed in SSADM is the data model. It is a part of requirements gathering and consists of well defined stages, steps and products SSADM divides an application development project into modules, stages, steps, and tasks, and provides a framework for describing projects in a fashion suited to managing the project. SSADM's objectives are to: Develop better quality systems Make projects resilient to the loss of staff. Enable projects to be supported by computer-based tools such as computer-aided software engineering systems Improve project management & control Make more effective use of experienced and inexperienced development staff Establish a framework for good communications between participants in a project

2.1.1 Techniques in SSADM Logical Data Modeling: This involves the process of identifying, modeling and documenting data as a part of system requirements gathering. The data are classified further into entities and relationships. Data Flow Modeling: This involves tracking the data flow in an information system. It clearly analyzes the processes, data stores, external entities and data movement. Entity Behavior Modeling: This involves identifying and documenting the events influencing each entity and the sequence in which these events happen. 2.1.2 Characteristics of SSADM Dividing a project into small modules with well defined objectives Useful during requirements specification and system design stage. Diagrammatic representation and other useful modeling techniques. Simple and easily understood by clients and developers. Performing activities in a sequence. 2.1.3 Stages in SSADM Determining feasibility Investigating the current environment Determining business systems options

Defining requirements Determining technical system options Creating the logical design Creating the physical design

2.2 OOAD Object-oriented analysis and design (OOAD) is the principal industry-proven methodology for developing high-quality object-oriented systems. This prevailing software development methodology involves three aspects: Object-Oriented Analysis (OOA) Object Oriented Design (OOD) Object Oriented Programming (OOP) 2.2.1 Object Oriented Analysis Deals with the design requirements and overall architecture of a system, and is focused on describing what the system should do in terms of key objects in the problem domain. Definition: Object Oriented Analysis is a method of analysis that examines requirements from the perspective of the classes and objects found in the vocabulary of the problem domain 2.2.2Object Oriented Design Which translates system architecture into programming constructs (such as interfaces, classes, and method descriptions). Definition: Object Oriented design is a method of design encompassing the process of object oriented decomposition and a notation for depicting both logical and physical as well as static and dynamic models of the system under design. 2.2.3 Object Oriented Programming Which implements these programming constructs. Definition: Object Oriented Programming is a method of implementation in which programs are organized as cooperative collections of objects, each of which represents an instance of some class and whose classes are all members of a hierarchy of classes united via inheritance relationships.

3. Key Differences between Structured and Object-Oriented Analysis and Design Structured Methodology SDLC Focus Risk Reuse Maturity Suitable for Process High Low Mature and widespread Object-Oriented Iterative/Incremental Objects Low High Emerging (1997)

Well-defined projects with stable user Risky large projects with changing user requirements requirements

Phase

Structured

Object-Oriented

Analysis Structuring Requirement Engineering Requirements Use Case Model (find Uses Cases, Flow of Events, Activity Diagram) DFDs Structured English Object Model Find Classes & class relations Decision Table / Tree Object Interaction: Sequence & collaboration ER Analysis Diagram, State Machine Diagram, Object to ER Mapping Design DB design (DB normalization) GUI Design (forms & reports) Physical DB design Design elements Design System Architecture Design classes: Checking The Model, Combine Classes, Splitting Classes, Eliminate Classes Design components GUI design

4. Object Orientation

The prevalence of programming languages such as Java, C++, Object Pascal, C#, and Visual Basic make it incredibly clear that object-oriented technology has become the approach of choice for new development projects. Although procedural languages such as COBOL and PASCAL will likely be with us for decades it is clear that most organizations now consider these environments as legacy technologies that must be maintained and ideally retired at some point. Application Developers are required to have an understanding of object orientation if they are to be effective. This includes understanding basic concepts such as inheritance, polymorphism, and object persistence. Furthermore, all developers should have a basic understanding of the industry-standard Unified Modeling Language (UML).

4.1 Why Object Orientation? Higher level of abstraction SSA supports abstraction at function level whereas Object Oriented approach supports abstraction at the object level. Seamless transition among different phases of software development The traditional approach to software development requires different styles and methodologies for each step of process.

But object oriented approach, essentially uses the same language to talk about analysis, design, programming and database design. This seamless approach reduces the level of complexity and redundancy and makes for clearer, more robust system development.

Encouragement of good programming techniques By raising the level of abstraction from the function level to the object level and by focusing on the real world aspects of the system, the object oriented method tends to promote clearer designs, which are easier to implement and provides for better overall communication

Promotion of reusability Objects are reusable because they are modeled directly out of a real world problem domain Each object stands by itself or within a small circle of peers.