cs1402-mayjune-2006 - pdfmachine from broadgun · pdf filecs1402-ooad œkey part-a: 1 ......
TRANSCRIPT
1
id17990959 pdfMachine by Broadgun Software - a great PDF writer! - a great PDF creator! - http://www.pdfmachine.com http://www.broadgun.com
2
3
4
5
6
7
8
1
id17990959 pdfMachine by Broadgun Software - a great PDF writer! - a great PDF creator! - http://www.pdfmachine.com http://www.broadgun.com
2
3
4
5
6
7
8
1
id11824921 pdfMachine by Broadgun Software - a great PDF writer! - a great PDF creator! - http://www.pdfmachine.com http://www.broadgun.com
2
3
4
NOV/DEC 2007
CS1402-OOAD �KEY PART-A: 1. Traditional & OO views of software:
- OO view explains that software as a collection of programs and isolated data.
- Traditional focuses on the functions of the system.
2. . Difference between messages and function
Message is a instruction, but method / function are implementation
Message says �What to do�, but function says �How to do�.
3. Unified Approach: The main aim is to combine the best practices, processes, methodologies and guidelines along with UML. Components are: - Use case driven development -Object oriented analysis -Object oriented design -Incremental development and prototyping -continuous testing
4. Functionalities of OMT models
Object model � describes the structure of the system
Dynamic model � used to depict states, transitions, events.
Functional model � shows the flow of data between different processes.
5. Difference between pattern and framework
Design patterns are more abstract than frameworks
Design patterns are smaller architectural elements than frameworks
Design patterns are less specialized than frameworks.
6. Meta Model: The Object Management Group (OMG) has developed a met modeling architecture to define the Unified Modeling Language (UML), called the Meta-Object Facility (MOF).
5
The Meta-Object Facility is a standard for model-driven engineering, designed as a four-layered architecture. 7.CRC: -the basic idea is an object either can accomplish a certain responsibility itself or it may require the assistance of other objects. It must collaborate with those objects to fulfill its responsibility. 8.Coupling & Cohesion: Coupling- describes how dependant one object is on another object (that it uses). Objects that are loosely coupled can be changed quite radically without impacting each other Cohesion - Does the class have a single purpose? In 25 words or less, write a description for each class that describes its purpose, behavior, and collaborations with other classes. 9.Design axioms:
Axiom1-the independence axiom Axiom2-the information axiom Corollaries: Corollary1-uncoupled design with less information content Corollary2-single prupose Corollary3-Large no of simple classes Corollary4-Strong mapping Corollary5-Standardization Corollary6-Design with inheritance
10. Public and Private Protocol:
Public protocol: defines the stated behavior of the class as accessible by all classes.Private protocol: It is accessible only to operations of that class
6
7
8
9
10
11
12
13
1
id12732312 pdfMachine by Broadgun Software - a great PDF writer! - a great PDF creator! - http://www.pdfmachine.com http://www.broadgun.com
2
3
4
3. April/May 2008
CS1402 � OOAD KEY
Part � A
1. Yes.IN OOAD, everything is assumed as a object. Here, implementation is hidden.
2. Difference between messages and function
Message is a instruction, but method / function are implementation Message says �What to do�, but function says �How to do�.
3. Anti pattern
- Anti pattern is a �Worst practice� or �lesson learned�.
4. Models in OMT approach:
Object model OMT dynamic model OMT functional model
5. Need of Micro process in Booch method:
To identify classes and objects To identify class and object semantics To identify class and object relationships To identify class and object interfaces and implementation.
6. a) Difference between uses and extends relation
- �uses� relation is used to show the generalization - �extends� relation is used to denote the subclass.
b) Difference between actor and user
7. Why CRC is useful?
- CRC cards are 4� * 6� index cards - Cheap, portable, readily available.
8. a) Data coupling
o Data is passed between components
5
Stamp coupling
o Data structure is passed between components; only part of it used
b) cooperative & Distributed processing
The distributed processing means distribution of applications and business logic across multiple processing platforms. Distributed processing implies that processing will occur on more than one processor in order for a transaction to be completed. Cooperative processing is computing that requires two or more distinct processors to complete a single transaction. It is a form of distributed computing in which two or more distinct processes are required to complete a single business transaction. Cooperative processing can also be considered to be a distributed processing, if communication between processors is performed through a message-passing architecture.
9. Metaphors: It is an analogy that relates two unrelated things by using one to denote the other.
10.Usability
ISO defines Usability as the effectiveness, efficiency, and satisfaction with which a specified set of users can achieve a specified set of tasks in particular environments. It requires, _ Defining tasks. _ Defining users _ A means for measuring effectiveness, efficiency, and satisfaction
PART B
11)a ) i) diagram
ii) Object & class relationships.
Object Oriented Analysis Real-world concepts are modeled as classes with corresponding state,behavior, and collaborations. No transformation. � OOA directly maps the problem domain directly into a model,instead of mapping them indirectly into functions or data flows. � The same model is used throughout the software engineering process during analysis, design and implementation. Minimizes volatility and maximizes resiliency. � The focus is on classes, not function and data. Reuse is enhanced.
6
� Classification - Classes are relatively stable over time. � Encapsulation - Classes with well-defined state and behavior. � Inheritance - Specializing classes for specific applicat
Possible OO Diagrams/Views These may be on separate diagrams or part of the same diagram. Class Diagram. � A graph which shows the static structure of the model. � Includes classes, class structure (attributes and operations), and class relationships (inheritance, aggregation, associations). Object Diagram, � A graph of class instances. � Includes objects, object states, and object collaborations. � May be static and show a snapshot of system state at a point in time. � May be dynamic and show how system state changes over a period of time. Other diagrams are covered elsewhere. � DFD, ERD, STD, etc. b) Systems Development using OO. Object Oriented Analysis � Use case driven _ Collaboration _ Role _ Use � case Modeling � Object oriented design Goal � design the classes _ Design and refine classes, attributes, methods, structures and associations. Guidelines of OOD. � Prototyping _ Horizontal _ Vertical _ Analysis _ Domain � Component based development _ Component Wrapper _ Software Components _ Rapid Application Development � Incremental Testing _ Testing should be performed in every phase to find errors. � Reusability
12) a) Unified approach:
� Establishes a unifying and unitary framework by utilizing UML. � The processes are: _ Use case driven development.
7
_ Object oriented analysis. _ Object oriented design. _ Incremental development and prototyping _ Continuous testing. � Methods and technologies employed include: _ UML _ Layered approach. _ Repository. _ CBD. � Object oriented Analysis. _ Identify actors. _ Develop a simple process model. _ Develop the use case. _ Develop interaction diagrams. _ Identify classes. � Object oriented design _ Design classes, attributes, methods etc. _ Design the access Design the access layer. _ Design the prototype user interface. _ User satisfaction and usability tests. _ Iterate and refine the design. � Continuous testing � UML � modeling language � Repository _ Allows maximum reuse of previous experience. _ Should be accessible by many people. � Layered approach _ The business layer. o Displaying results. o Data access details _ The user interface or view layer. o Responding to user interaction. o Displaying business objects. _ The access layer. o Translate request. o Translate results.
12) b) Digital Library System
Draw class diagram, sequence, use case
13)a) refer hard copy
13) b) Noun phrase approach to identify classes:
8
Complimentary Analysis Approaches A number of additional activities can be used which are complimentary to object-oriented analysis and design methodologies. Domain Analysis. � Identify classes which are common to all applications in this domain. Scenario Planning or Use-Case Analysis. � Identify operations patterns by users initiating some sequence of interrelated events. CRC Cards. � Class-Responsibility-Collaboration cards. Informal English. � Identify key concepts from textual description of the problem. Domain Analysis Domain analysis seeks to identify the classes and objects that are common to all applications of a given domain. � For example: all accounting systems have certain classes in common. � Try to compare the system you are developing to a generalized class of systems. Complimentary Analysis Approaches A number of additional activities can be used which are complimentary to object-oriented analysis and design methodologies. Domain Analysis. � Identify classes which are common to all applications in this domain. Scenario Planning or Use-Case Analysis. � Identify operations patterns by users initiating some sequence of interrelated events. CRC Cards. � Class-Responsibility-Collaboration cards. Informal English. � Identify key concepts from textual description of the problem. Domain Analysis Domain analysis seeks to identify the classes and objects that are common to all applications of a given domain. � For example: all accounting systems have certain classes in common.
� Try to compare the system you are developing to a generalized class of systems14) a) Design Axioms:
An axiom is a fundamental truth that always is observed to be valid and for which there is no counterexample or exception. The axioms cannot be proven or derived but they cannot be invalidated by counterexamples or exceptions. There are two design axioms applied to object-oriented design. Axiom 1 deals with relationships between system components and Axiom 2 deals with the complexity of design. Axiom 1: The independence axiom. Maintain the independence of components. Axiom 2: The information axiom. Minimize the information content of the design. A corollary is a proposition that follows from an axiom or another proposition that has been proven. A corollary is shown to be valid if its referent axioms and deductive steps are valid. The design rules or corollaries derived from
9
design axioms are stated below. Corollary 1: Uncoupled design with less information content. Corollary 2: Single purpose. Corollary 3: Large number of simple classes. Corollary 4: Strong mapping. Corollary 5: Standardization. Corollary 6: Design with inheritance.
14)b) Access layer:
The process of creating an access class for the business classes is as follows: _ For every business class identified, mirror the business class package. _ Define relationships. _ Simplify classes and relationships. _ Iterate and refine.
15)a) View layer:
The view layer macro process consists of two steps: _ For every class identified, determine if the class interacts with a human actor. If so, perform the following; otherwise, move to the next class. o Identify the view (interface) objects for the class. o Define the relationships among the view (interface) objects. _ Iterate and refine
15)b) i) user satisfaction:
_ Create a user satisfaction test for your own project _ Conduct test regularly and frequently _ Read the comments very carefully, especially if they express a strong feeling. _ Use the information from user satisfaction test, usability test, reactions to prototypes, interviews recorded, and other comments to improve the product. Important benefit of user satisfaction testing is you can continue using it even after the product is delivered. Is the process of quantifying the usability test with some measurable attributes. � Objectives. � Guidelines.
ii) Quality assurance testing:
Debugging � Types of errors _ Language or syntax. _ Run time. _ Logic.
10
� Types of QA _ Error based _ Scenario based � Strategies. _ Black box _ White box _ Top down _ Bottom up.
1
id12428203 pdfMachine by Broadgun Software - a great PDF writer! - a great PDF creator! - http://www.pdfmachine.com http://www.broadgun.com
2
3
4
NOV/DEC 2008 �KEY
Part A 1. An object is an instatiated class or an abstraction of something within the problem domain. Object is a real- world entity, identifiably separate from its surroundings, has a well defined set of attributes and a well-defined set of procedures or methods. Properties (or attributes) describe the state (data) of an object. Methods (procedures) define its behavior. Object means a combination of data and logic that represents some real-world entity. (E.g.) Car is an object Color, manufacturer, cost, owner etc are attributes. Drive it, lock it, tow it, carry passengers in it are all methods. 2. Coupling describes how dependant one object is on another object (that it uses). Objects that are loosely coupled can be changed quite radically without impacting each other 3. UML, Unified Modeling Language, is a standard notation for the modeling of real-world objects as a first step in developing an object oriented program. It describes one consistent language for specifying, visualizing, constructing and documenting the artifacts of software systems. 4. Use Case: � A set of scenarios related by a common actor and a goal � A description of sequences of actions performed by a given system to produce a result for an actor - Use cases specify the expected behaviour [what], and not the exact method of making it happen [how] -Use cases are created based on identified functional requirements but are not mapped one-to-one to requirements -Use cases once specified can be denoted using a clear and precise visual modeling language such as UML. 5. . class CFloatPoint, which has two members: x and y, which are both of type �float�,
and a function "Empty()" which resets both members to value 0.00000. First draw the class itself: Then add the members x and y to be visible in the model:
5
6. Aggregation is used to represent ownership or a whole/part relationship, and
composition is used to represent an even stronger form of ownership.
7.Analysis-Design
Object-oriented analysis (OOA) applies object-modeling techniques to analyze the functional requirements for a system. OOA focuses on what the system does. Object-oriented design (OOD) elaborates the analysis models to produce implementation specifications. OOD on how the system does it.
8. Successful software:
Analysis of a problem and the design of a solution is a necessary prerequisite to the creation of a successful software program. The combination of Object Oriented Analysis and Design with Object Oriented Software Development results in a reliable process that produces quality software in a fast and predictable manner.
9. Two aspects of the S/w quality:
Verification � Am I building the product right? Validation � Am I building the right product?
10.Functional Requirements:
-OOD-Object Oriented Design
-OOA-Object Oriented Analysis
System Use Cases and Actors , Primitive Use Cases and the Basic Flow, Writing Effective Use Case Descriptions , Writing Sub-flows and Alternate Flows , 'Include' and 'Extend' Relationships , Modeling Browser-Based Applications
PART B
11)a) i) Object is a real- world entity, identifiably separate from its surroundings, has a well defined set of attributes and a well-defined set of procedures or methods. Properties (or attributes) describe the state (data) of an object. Methods (procedures) define its behavior. Object means a combination of data and logic that represents some real-world entity. (E.g.) Car is an object Color, manufacturer, cost, owner etc are attributes. Drive it, lock it, tow it, carry passengers in it are all methods. Object behavior is described in methods or procedures. Behavior denotes the collection of methods that abstractly describes what an object is capable of doing. Each procedure defines and describes a particular behavior of an object. Methods encapsulate the behavior of the object. Objects take responsibility for their own behavior.
6
ii) The motivation factor behind object-oriented system development is the desire to make software development easier and more natural by raising the level of abstraction to the point where the level of abstraction to the point where applications can be implemented in the same terms n which they are described by users. Object Oriented Analysis Real-world concepts are modeled as classes with corresponding state, behavior, and collaborations. No transformation. � OOA directly maps the problem domain directly into a model, instead of mapping them indirectly into functions or data flows. � The same model is used throughout the software engineering process during analysis, design and implementation. Minimizes volatility and maximizes resiliency. � The focus is on classes, not function and data. Reuse is enhanced. � Classification - Classes are relatively stable over time. � Encapsulation - Classes with well-defined state and behavior. � Inheritance - Specializing classes for specific applicat Abstraction The process of modelling real-world objects. When you create a class you create an abstraction of a real-world object (like a dictionary definition of that real-world object).
Unified Modeling Language, or UML:
The Unified Modeling Language, or UML, as it is popularly known by its TLA (three-letter acronym!), is the language that can be used to model systems and make them readable. This essentially means that UML provides the ability to capture the characteristics of a system by using notations. UML provides a wide array of simple, easy to understand notations for documenting systems based on the object-oriented design principles. These notations are called the nine diagrams of UML.
UML stands for "standardization!" -Different languages have been used for depicting systems using object-oriented methodology. The prominent among these were the Rumbaugh methodology, the Booch methodology, and the Jacobson methodology. The problem was that, although each methodology had its advantages, they were essentially disparate. Hence, if you had to work on different projects that used any of these methodologies, you had to be well versed with each of these methodologies. The Unified Modeling Language is just that. It "unifies" the design principles of each of these methodologies into a single, standard, language that can be easily applied across the board for all object-oriented systems. UML does not have any dependencies with respect to any technologies or languages. This implies that you can use UML to model applications and systems based on either of the current hot technologies; for example, J2EE and .NET. Every effort has been made to keep UML as a clear and concise modeling language without being tied down to any technologies
7
11.b) i) OO features:
Object � combination of data and logic that represents a real world entity. In an OOS everything is an object. Instance of a class. Class � used to distinguish objects from others. Object properties � represent the state of an Object. Behavior � the collection of methods that abstractly the object is capable of doing. Messages � Non-specific function calls. Encapsulation or Information Hiding � principle of concealing the internal data and procedures of an object. Class Hierarchy � organizing classes into sub class � super class hierarchy. Inheritance � property that allows the objects to be built from other objects. Dynamic Inheritance Multiple Inheritance Polymorphism � the same operation may behave differently on different classes. Association � relationship between objects and classes. Aggregation - collection of objects or an attribute which can be an object itself.
ii) OOS life cycle:
Traditional Systems Lifecycle 1.Structured Systems Analysis and Design (SSAD). Main techniques used are data flow diagramming and entity modelling. Advantages of the traditional systems lifecycle approach
systematic approach which makes it easier to plan and manage the tasks of systems development
most analysts, designers and programmers are familiar with the method Disadvantages of the traditional systems lifecycle approach 2. Prototyping Prototyping consists of building an experimental system rapidly and inexpensively for end users to evaluate. Advantages of prototyping
Most useful when there is uncertainty concerning requirements or design solutions
Especially valuable for the design of the end user interface (on-line display, data entry screen, reports or web pages)
Encourages intense user involvement through the systems development lifecycle, therefore more likely to meet user requirements
Better suited to smaller systems Disadvantages of prototyping
May gloss over essential steps in the systems development lifecycle May not be scalable to accommodate large volumes of data or large numbers of
users Costly, time consuming, inflexible.
8
3. Rapid Application Development Using CASE tools, re-usable software, object-oriented software tools, prototyping and fourth-generation languages is helping system builders create working systems much more quickly than traditional structured approaches. Advantages of RAD
Speed of development Involvement of users
Disadvantages of RAD Difficult to sign off system
4.Object-Oriented Systems Development Object-oriented systems development differs from traditional methodologies by combining data and procedures into one unified object rather than separately modelling business processes and data. Advantages of Object-Oriented
Objects are easily re-usable Reduce time and cost Improved maintainability and quality Can be used with rapid prototyping
Disadvantages of Object-oriented Because technologies and methodologies are not mature or stable, potential benefits
may not be attained Large investment in training required
12.a.) i) The Booch methodology consists of the following diagrams: _ Class diagrams. _ Object diagrams. _ State transition diagrams. _ Module diagrams. _ Process diagrams. _ Interaction diagrams
The macro development process consists of the following steps: - Conceptualization _ Establish the core requirements and develop a prototype. - Analysis and development of the model _ Use the class diagram to describe the roles and responsibilities of objects. Use the object diagram to describe the desired behavior of the system. - Design or create the system architecture. _ Use the class diagram to decide what classes exist and how they relate to each other, the object diagram to decide what mechanisms are used, the module diagram to map out where each class and object should be declared, and the process diagram to determine to which processor to allocate a process. - Evolution or implementation- _ Refine the system through much iteration.
9
- Maintenance-Make localized changes to the system to add new requirements and eliminate bugs.
The micro process is a description of the day-to-day activities by a single or small group of software developers. It consists of the following steps.
Identify classes and objects. Identify class and object semantics. Identify class and object relationships. Identify class and object interface and implementation.
ii) Unified Approach:
Establishes a unifying and unitary framework by utilizing UML. � The processes are:
Use case driven development. Object oriented analysis. Object oriented design. Incremental development and prototyping Continuous testing.
� Methods and technologies employed include: 1. UML 2. Layered approach. 3. Repository. 4. CBD.
� Object oriented Analysis. 1. Identify actors. 2. Develop a simple process model. 3. Develop the use case. 4. Develop interaction diagrams. 5. Identify classes.
� Object oriented design Design classes, attributes, methods etc. Design the access layer. Design the prototype user interface. User satisfaction and usability tests. Iterate and refine the design.
� Continuous testing � UML � modeling language � Repository _ Allows maximum reuse of previous experience. _ Should be accessible by many people. � Layered approach The business layer.
Displaying results. Data access details
_ The user interface or view layer.
10
Responding to user interaction. Displaying business objects.
_ The access layer. Translate request. Translate results.
12) b). UML Diagrams
1. Use case diagram 2. Sequence diagram 3. Collaboration diagram 4. State diagram 5. Class diagram 6. Object diagram 7. Component diagram 8. Deployment diagram 9. Activity diagram
Use Case Diagram:
-Used for describing a set of user scenarios - Mainly used for capturing user requirements - Work like a contract between end user and software developers
Class Diagram:
Used for describing structure and behavior in the use cases Provide a conceptual model of the system in terms of entities and their
relationships Used for requirement capture, end-user interaction Detailed class diagrams are used for developers
Sequence Diagram: Sequence diagrams demonstrate the behavior of objects in a use case by
describing the objects and the messages they pass. The horizontal dimension shows the objects participating in the interaction. The vertical arrangement of messages indicates their order.
State Diagram: State Diagrams show the sequences of states an object goes through during its life
cycle in response to stimuli, together with its responses and actions; an abstraction of all possible behaviors.
13.a) i) Automatic Washing machine: ii) Use Case: Use cases are scenarios for understanding system requirements. A use case is
11
an interaction between users and a system. The use-case model captures the goal of the user and the responsibility of the system to its users. The use-case model employs extends and uses relationships. The use cases are described as one of the following: _ Nonformal text with no clear flow of events _ Text with a clear flow of events _ Formal style using pseudo code. 14)a)i) Access Layer: � Main idea � create a set of classes that know how to communicate with the places where data reside. � Provides a link between the business or view objects and the data storage. � Access layer performs two tasks. _ Translate the request _ Translate the results. � Benefits. _ Provides easy migration of developing technologies. _ Able to address the modest needs of the two tier architecture. � The process. _ Access class � interacts with a non-human actor. The steps involved are: ° Mirror the business class package. ° Define relationships. ° Simplify classes and relationships. ° Iterate and refine. The steps involved in designing with persistent attributes are: ° Determine if the class has persistent data. ° Mirror the business class package. ° Define relationships. ° Simplify classes and relationships. ° Iterate and refine. ii) Design Axioms: An axiom is a fundamental truth that always is observed to be valid and for which there is no counterexample or exception. The axioms cannot be proven or derived but they cannot be invalidated by counterexamples or exceptions. There are two design axioms applied to object-oriented design. Axiom 1 deals with relationships between system components and Axiom 2 deals with the complexity of design. Axiom 1: The independence axiom. Maintain the independence of components. Axiom 2: The information axiom. Minimize the information content of the design. 14)b) i) Object Interoperability:
12
Interoperability can be defined as the ability of two or more entities to communicate and cooperate despite differences in the implementation language, the execution environment or the model abstraction. Basically, three main levels of interoperability between objects can be distinguised: the syntactic level (names and signatures of operations), the protocol level (partial ordering between exchanged messages and blocking conditions), and the semantic level ("meaning" of operations). ii) Object Storage Object Files (Sequential and Random) Relational databases Object-relational databases Object-oriented databases 15)a ) i) System Usability: ISO defines Usability as the effectiveness, efficiency, and satisfaction with which a specified set of users can achieve a specified set of tasks in particular environments. It requires, _ Defining tasks. _ Defining users _ A means for measuring effectiveness, efficiency, and satisfaction ii) Interface Objects: Creating a user interface generally consists of three steps. _ Create the user interface objects (such as buttons, data entry fields). _ Link or assign the appropriate behaviors or actions to these user interface objects and their events. _ Test, debug, then add more by going back to step 1.
13
15)b)i) Software Quality: - Qualities of a good design: Correct Complete Changeable (for maintenance, evolution) Simple Efficient (or other performance issues) Correctness:
It should lead to a correct implementation Completeness:
It should do everything Other issues: security, safety, availability ii) User Satisfaction measurement Create a user satisfaction test for your own project _ Conduct test regularly and frequently _ Read the comments very carefully, especially if they express a strong feeling. _ Use the information from user satisfaction test, usability test, reactions to prototypes, interviews recorded, and other comments to improve the product. Important benefit of user satisfaction testing is you can continue using it even after the product is delivered.
14
e
e
e
e