OOAD Unit-4 Notes PDF
Document Details
Uploaded by PreEminentFreedom5705
Sandip University, Nashik
Tags
Related
Summary
These notes provide an overview of object-oriented analysis and design (OOAD) concepts, including the phases of object-oriented analysis, design, and implementation. It also describes the system development life cycle (SDLC).
Full Transcript
OOAD Unit-4 Development Stages: The Object-Oriented Modelling (OOM) technique visualizes things in an application by using models organized around objects. Any software development approach goes through the following stages − Analysis, Desi...
OOAD Unit-4 Development Stages: The Object-Oriented Modelling (OOM) technique visualizes things in an application by using models organized around objects. Any software development approach goes through the following stages − Analysis, Design, and Implementation. In object-oriented software engineering, the software developer identifies and organizes the application in terms of object-oriented concepts, prior to their final representation in any specific programming language or software tools. Phases in Object-Oriented Software Development The major phases of software development using object–oriented methodology are object- oriented analysis, object-oriented design, and object-oriented implementation. Object–Oriented Analysis In this stage, the problem is formulated, user requirements are identified, and then a model is built based upon real–world objects. The analysis produces models on how the desired system should function and how it must be developed. The models do not include any implementation details so that it can be understood and examined by any non–technical application expert. Object–Oriented Design Object-oriented design includes two main stages, namely, system design and object design. System Design In this stage, the complete architecture of the desired system is designed. The system is conceived as a set of interacting subsystems that in turn is composed of a hierarchy of interacting objects, grouped into classes. System design is done according to both the system analysis model and the proposed system architecture. Here, the emphasis is on the objects comprising the system rather than the processes in the system. Object Design In this phase, a design model is developed based on both the models developed in the system analysis phase and the architecture designed in the system design phase. All the classes required are identified. The designer decides whether − new classes are to be created from scratch, any existing classes can be used in their original form, or new classes should be inherited from the existing classes. The associations between the identified classes are established and the hierarchies of classes are identified. Besides, the developer designs the internal details of the classes and their associations, i.e., the data structure for each attribute and the algorithms for the operations. Object–Oriented Implementation and Testing In this stage, the design model developed in the object design is translated into code in an appropriate programming language or software tool. The databases are created and the specific hardware requirements are ascertained. Once the code is in shape, it is tested using specialized techniques to identify and remove the errors in the code. Development Life Cycle: An effective System Development Life Cycle (SDLC) should result in a high quality system that meets customer expectations, reaches completion within time and cost evaluations, and works effectively and efficiently in the current and planned Information Technology infrastructure. System Development Life Cycle (SDLC) is a conceptual model which includes policies and procedures for developing or altering systems throughout their life cycles. SDLC is used by analysts to develop an information system. SDLC includes the following activities − requirements design implementation testing deployment operations maintenance Phases of SDLC Systems Development Life Cycle is a systematic approach which explicitly breaks down the work into phases that are required to implement either new or modified Information System. Feasibility Study or Planning Define the problem and scope of existing system. Overview the new system and determine its objectives. Confirm project feasibility and produce the project Schedule. During this phase, threats, constraints, integration and security of system are also considered. A feasibility report for the entire project is created at the end of this phase. Analysis and Specification Gather, analyze, and validate the information. Define the requirements and prototypes for new system. Evaluate the alternatives and prioritize the requirements. Examine the information needs of end-user and enhances the system goal. A Software Requirement Specification (SRS) document, which specifies the software, hardware, functional, and network requirements of the system is prepared at the end of this phase. System Design Includes the design of application, network, databases, user interfaces, and system interfaces. Transform the SRS document into logical structure, which contains detailed and complete set of specifications that can be implemented in a programming language. Create a contingency, training, maintenance, and operation plan. Review the proposed design. Ensure that the final design must meet the requirements stated in SRS document. Finally, prepare a design document which will be used during next phases. Implementation Implement the design into source code through coding. Combine all the modules together into training environment that detects errors and defects. A test report which contains errors is prepared through test plan that includes test related tasks such as test case generation, testing criteria, and resource allocation for testing. Integrate the information system into its environment and install the new system. Maintenance/Support Include all the activities such as phone support or physical on-site support for users that is required once the system is installing. Implement the changes that software might undergo over a period of time, or implement any new requirements after the software is deployed at the customer location. It also includes handling the residual errors and resolve any issues that may exist in the system even after the testing phase. Maintenance and support may be needed for a longer time for large systems and for a short time for smaller systems. Devising a system concept: hen devising a system concept in object-oriented analysis and design (OOAD), you can consider the following: Defining objects Map entities to classes and create a class diagram from the conceptual diagram Identifying attributes Identify the attributes and their models Using design patterns Design patterns are descriptions of solutions to common problems in a context Using models Use three types of models to describe a system from different perspectives: Class model: Describes the static structure of objects and their relationships State model: Describes the aspects of an object that change over time Interaction model: Describes how objects interact to achieve broader results OOAD is a technical approach that uses visual modeling and object-oriented programming to analyze and design systems, applications, or businesses. It's similar to the approach proposed in General Systems Theory. Elaborating a concept: Elaboration is the initial series of iterations during which, on a normal project: the core, risky software architecture is programmed and tested the majority of requirements are discovered and stabilized the major risks are mitigated or retired Build the core architecture, resolve the high-risk elements, define most requirements, and estimate the overall schedule and resources. Elaboration is the initial series of iterations during which the team does serious investigation, implements (programs and tests) the core architecture, clarifies most requirements, and tackles the high-risk issues. Elaboration often consists of two or more iterations; Each iteration is recommended to be between two and six weeks; prefer the shorter versions unless the team size is massive. Each iteration is time boxed, i.e its end date is fixed. Elaboration is not a design phase or a phase when the models are fully developed in preparation for implementation in the construction step that would be an example of superimposing waterfall ideas on iterative development and the UP. During this phase, no prototypes are created ; rather, the code and design are production-quality portions of the final system. Architectural prototype means a production subset of the final system. More commonly it is called the executable architecture or architectural baseline. Key Ideas and Best Practices will manifest in elaboration: do short time boxed risk-driven iterations start programming early adaptively design, implement, and test the core and risky parts of the architecture test early, often, realistically adapt based on feedback from tests, users, developers write most of the use cases and other requirements in detail, through a series of workshops, once per elaboration iteration Preparing a problem statement: A problem statement is a concise description of the problem or issues a project seeks to address. The problem statement identifies the current state, the desired future state and any gaps between the two. A problem statement is an important communication tool that can help ensure everyone working on a project knows what the problem they need to address is and why the project is important. Importance of a problem statement A problem statement is important to a process improvement project because it helps clearly identify the goals of the project and outline the scope of a project. It also helps guide the activities and decisions of the people who are working on the project. The problem statement can help a business or organization gain support and buy-in for a process improvement project. What are the key elements of a problem statement? There are four key elements you can include when writing a problem statement: 1. Ideal situation Problem statements often begin by describing what the ideal situation would be if there wasn't a problem you needed to address. This section can identify the goals and scope of the project, and create a clear understanding of what the ideal environment will be once the issue has been resolved. 2. Reality The next section of your problem statement can describe what the current reality is for your company or organization. This section will identify what the problem is, state why it is a problem, and identify who the problem is impacting. It will also describe when and where the problem was identified. 3. Consequences After describing the current reality, your problem statement can focus on the consequences of the problem. This section describes the effects of the problem by describing how the people affected by the problem are being impacted and quantifying how much the problem is impacting them. Common consequences can include the loss of time, money, resources, competitive advantage and productivity. 4. Proposal The proposal section of a problem statement may contain various possible solutions to the problem, but it is important to remember that it does not need to identify a specific solution. The purpose of the proposal section should be to guide the project team on how they can research, investigate and resolve the problem. How to write a problem statement? A good problem statement can be created by identifying and answering several questions related to the problem. The process used to write a problem statement can involve answering questions using a method commonly known as 5W2H.This process involves identifying what the problem is, why it is a problem, when and where the problem was identified, who the problem impacts, how they are impacted by the problem and how much of an impact the problem has. You can use the following process to craft a problem statement that addresses the following: 1. Identify the problem Before you can begin writing your problem statement, it is important to identify what the problem is. 2. Begin your statement with your ideal situation Next, you can begin writing your problem statement by describing what the ideal environment would look like if your problem didn't exist. This section can be used to describe what your company hopes to accomplish as a result of the process improvement project. 3. Describe current gaps This step involves writing the reality section of your problem statement. Your goal in this section is to clearly identify what the current environment looks like. It is advisable to identify what the problem is, what is causing the problem, and why it is an issue. Also consider describing when, where, and how you were able to identify the problem. 4. State the consequences of the problem Next, write the consequences section of your problem statement. This section is used to quantify and support the claim of what the problem is. You can use this section to identify specific numbers such as the amount of time or revenue being lost or the number of resources being wasted. It is important to include concrete numbers that support your claims in this section. 5. Propose addressing the problem You can end your statement with a proposal section. In this section, consider identifying how your company will make progress toward reaching your goals and accomplishing your ideal environment. While you may choose to identify several possible solutions in this section, it is more important to focus on identifying how your company will find those solutions than it is to identify the specific solution that will be used. Overview of Analysis: In the system analysis or object-oriented analysis phase of software development, the system requirements are determined, the classes are identified and the relationships among classes are identified. The three analysis techniques that are used in conjunction with each other for object-oriented analysis are object modelling, dynamic modelling, and functional modelling. Object Modelling Object modelling develops the static structure of the software system in terms of objects. It identifies the objects, the classes into which the objects can be grouped into and the relationships between the objects. It also identifies the main attributes and operations that characterize each class. The process of object modelling can be visualized in the following steps − Identify objects and group into classes Identify the relationships among classes Create user object model diagram Define user object attributes Define the operations that should be performed on the classes Review glossary Dynamic Modelling After the static behavior of the system is analyzed, its behavior with respect to time and external changes needs to be examined. This is the purpose of dynamic modelling. Dynamic Modelling can be defined as “a way of describing how an individual object responds to events, either internal events triggered by other objects, or external events triggered by the outside world”. The process of dynamic modelling can be visualized in the following steps − Identify states of each object Identify events and analyze the applicability of actions Construct dynamic model diagram, comprising of state transition diagrams Express each state in terms of object attributes Validate the state–transition diagrams drawn Functional Modelling Functional Modelling is the final component of object-oriented analysis. The functional model shows the processes that are performed within an object and how the data changes as it moves between methods. It specifies the meaning of the operations of object modelling and the actions of dynamic modelling. The functional model corresponds to the data flow diagram of traditional structured analysis. The process of functional modelling can be visualized in the following steps − Identify all the inputs and outputs Construct data flow diagrams showing functional dependencies State the purpose of each function Identify constraints Specify optimization criteria Structured Analysis vs. Object Oriented Analysis The Structured Analysis/Structured Design (SASD) approach is the traditional approach of software development based upon the waterfall model. The phases of development of a system using SASD are − Feasibility Study Requirement Analysis and Specification System Design Implementation Post-implementation Review Now, we will look at the relative advantages and disadvantages of structured analysis approach and object-oriented analysis approach. Advantages/Disadvantages of Object Oriented Analysis Advantages Disadvantages Functionality is restricted within objects. This Focuses on data rather than the procedures as may pose a problem for systems which are in Structured Analysis. intrinsically procedural or computational in nature. The principles of encapsulation and data hiding help the developer to develop systems It cannot identify which objects would generate that cannot be tampered by other parts of the an optimal system design. system. The principles of encapsulation and data The object-oriented models do not easily show hiding help the developer to develop systems the communications between the objects in the that cannot be tampered by other parts of the system. system. It allows effective management of software All the interfaces between the objects cannot be complexity by the virtue of modularity. represented in a single diagram. It can be upgraded from small to large systems at a greater ease than in systems following structured analysis. Advantages/Disadvantages of Structured Analysis Advantages Disadvantages In traditional structured analysis models, As it follows a top-down approach in contrast to one phase should be completed before the bottom-up approach of object-oriented analysis, it next phase. This poses a problem in can be more easily comprehended than OOA. design, particularly if errors crop up or requirements change. It is based upon functionality. The overall purpose The initial cost of constructing the system is identified and then functional decomposition is is high, since the whole system needs to done for developing the software. The emphasis not be designed at once leaving very little only gives a better understanding of the system but option to add functionality later. also generates more complete systems. The specifications in it are written in simple English It does not support reusability of code. language, and hence can be more easily analyzed by So, the time and cost of development is non-technical personnel. inherently high. Domain Class Model: First step in analyzing the requirements is to construct a domain model. Static structure of the real world system is captured. The domain model describes real-world classes and their relationships to each other. Information for the domain model comes from the problem statement, artifacts from related systems, expert knowledge of the application domain and general knowledge of the real world. The steps to be performed to construct a domain class model: Find Classes. Prepare a data dictionary. Find associations. Find attributes of objects and links. Organize and simplify classes using inheritance. Verify that access paths exist for likely queries. Iterate and refine the model. Reconsider the level of abstraction. Group classes into packages Finding classes Classes often correspond to nouns. Eg- ” a reservation system sell tickets to performances at various theater”- Tentative classes would be Reservation, System, Tickets, Performance and Theaters. Idea is to capture concepts. not all nouns are concepts, and concepts are also expressed in other parts of speech. Domain State Model: The Following steps are performed in constructing a domain state model Identifying classes with states Finding states Finding Events Building state diagrams Evaluating state diagrams After running thro the above steps, the domain state model obtained is a shown in Figure. Domain Interaction Model: The Interaction model is seldom important for domain analysis. The Interaction model is an important aspect of application modeling The interaction model is the third leg of the modeling tripod and describes interactions with in a system. The class model describes the objects in a system and their relationships, the state model describes the life cycles of the objects, and the interaction model describes how the objects interact. The interaction model describes how objects interact to produce useful results. Itis a holistic view of behavior across many objects, whereas the state model is a reductionist view of behavior that examines each object individually. Both the state model and the interaction model are needed to describe behavior fully. They complement each other by viewing behavior from two different perspectives. Interactions can be modeled at different levels of abstraction. At a high level, use cases describe how a system interacts with outside actors. Each use case represents a piece of functionality that a system provides to its users. Use cases are helpful for capturing informal requirements. Sequence diagrams provide more detail and show the messages exchanged among a set of objects over time. Messages include both asynchronous signals and procedure calls. Sequence diagrams are good for showing the behavior sequences seen by users of a system. And finally, activity diagrams provide further detail and show the flow of control among the steps of a computation. Activity diagrams can show data flows as well as control flows. Activity diagrams document the steps necessary to implement an operation or a business process referenced in a sequence diagram.