Documente Academic
Documente Profesional
Documente Cultură
UNIT I
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Learning Objectives
The Object-Oriented Paradigm Object-Oriented approach characteristics Traditional versus Modern Object-Oriented Paradigm Key Aspects of Object-Oriented Solution Benefits of OO approach Drawbacks of OO approach Case Study Object Oriented Basic Terms
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Why object orientation? To create sets of objects that work together concurrently to produce s/w that better, model their problem domain that similarly system produced by traditional techniques. - It adapts to 1. Changing requirements 2. Easier to maintain 3. More robust 4. Promote greater design 5. Code reuse - Higher level of abstraction -- Encouragement of good programming techniques - Promotion of reusability
U1. #
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
Benefits of Object Orientation Faster development, Reusability, Increased quality Object technology emphasizes modeling the real world and provides us with the stronger equivalence of the real worlds entities (objects) than other methodologies.
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Object: In an object-oriented system, everything is an object: numbers, arrays, records, fields, files, forms, an invoice, etc. An Object is anything, real or abstract, about which we store data and those methods that manipulate the data. A window object is responsible for things like opening, sizing, and closing itself. A chart object is responsible for things like maintaining its data and labels, and even for drawing itself.
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Objects Attributes Attributes represented by data type. They describe objects states. In the Car example the cars attributes are: color, manufacturer, cost, owner, model, etc. Objects Methods Methods define objects behavior and specify the way in which an Objects data are manipulated. In the Car example the cars methods are: drive it, lock it,carry passenger in it.
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak U1. #
Objects are Grouped in Classes The role of a class is to define the attributes and methods (the state and behavior) of its instances. The class car, for example, defines the property color. Each individual car (object) will have a value for this property, such as "maroon," "yellow" or "white."
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Class Hierarchy An object-oriented system organizes classes into subclass-super hierarchy. At the top of the hierarchy are the most general classes and at the bottom are the most specific A subclass inherits all of the properties and methods (procedures) defined in its super class.
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
OBJECT
An object can be an item, place, person or any other entity. All objects have the following characteristics: Identity: The name associated with an object helps in identifying the object. Example: Play-Ground, Multiplexes, Wall-clock, Class-Room, Court-Room.
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
OBJECT
State: An object can be in many state. Example: TV can be in the following states: (a) On State. (b) Off State. Out of order state. Behavior : What the object does or what is it capable of doing? Example: A person can sit, stand, read, sleep, walk & talk etc. Similarly, a cup can be filled, drunk from, washed, broken etc.
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak U1. #
OBJECT
Object is an identifiable entity with some Characteristics & Behavior. Example: Orange is an Object. Characteristics / Data : (1) Spherical shaped (2) Color Orange Behavior / Functions: (1) It is Juicy. (2) It tastes sweet-sour.
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
OBJECT
Objects are the basic run time entities in an object oriented system. They match closely with real time objects. Objects take up space in memory and have an associated address like a Record in Pascal and a Structure in C. Objects interact by sending Message to one other. E.g. If Customer and Account are two objects in a program then the customer object may send a message to the account object requesting for bank balance without divulging the details of each others data or code.
U1. #
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
Objects
An object is an entity which has a state and a defined set of operations which operate on that state. The state is represented as a set of object attributes. The operations associated with the object provide services to other objects (clients) which request these services when some computation is required. Objects are created according to some object class definition. An object class definition serves as a template for objects. It includes declarations of all the attributes and services which should be associated with an object of that class.
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
OBJECT VISIBILITY
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
CLASS
A class is a group of objects that share common properties & behavior/ relationships. In fact, objects are the variables of the type class. After creating class, one can create any no. of related objects with that class. Classes are user defined data types and behaves like the built-in types of a programming language.
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
CLASS
The syntax used to create an object is similar to create an object integer in C. Example: fruit mango; class employee; Class: Employee; States / Data : Name, Dept, Desig, Basic Behavior / Functions: setbp( ), totsal( ), deduction( )
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
ABSTRACTION
It refers to the act of representing essential features without including the background details or explanations. Example: Switch Board, Railway reservation, Milk Vending machine, Driving a car etc.
Explanation (Driving a Car): (Need to Know): Gear handling, Steering Clutch, Brakes, Accelerator etc. (Not Necessary to know): Internal details Engine details & functions. handling, Use of like wiring,
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
ENCAPSULATION
The wrapping up of data & functions (that operate on the data) into a single unit (called class) is known as ENCAPSULATION. Encapsulation is a way to implement data abstraction. Example: Departmental data, ATM cash counter, Weighing Machine etc. Only Relevant details are exposed and rest are made hidden. [Data Security]
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak U1. #
INHERITANCE
Inheritance is the capability of one class of things to inherent properties from other class. Supports the concept of Hierarchial classification. Ensures the closeness with real world models. Provides Multiple Access Specifiers across the modules (Public, Private & Protected) Supports Reusability that allows the addition of extra features to an existing class without modifying it.
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
POLYMORPHISM / OVERLOADING
A Greek term suggest the ability to take more than one form. It is a property by which the same message can be sent to the objects of different class. Example: Draw a shape (Box, Triangle, Circle etc.), Move ( Chess, Traffic, Army).
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak U1. #
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
POLYMORPHISM (Contd.)
Allows to create multiple definition for operators & functions. Example: + is used for adding numbers / to concatenate two string / Sets of Union and so on. Dynamic Binding/ Late Binding. Run-time dependent. Execution depends on the base of a particular definition.
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Object Diagrams
Object Diagrams describe the static structure of a system at a particular time. Whereas a class model describes all possible situations, an object model describes a particular situation. Object diagrams contain the following elements:
Objects, which represent particular entities. These are instances of classes. Links, which represent particular relationships between objects. These are instances of associations.
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak U1. #
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Data is more stable than functions Functions are not the most stable part of a system, the data is. Over a period of time, the requirements of a system undergo radical change. New uses and needs for the software are discovered; new features are added and old features are removed. During the course of all this change, the underlying heart of the system remains comparatively constant. This heart is the data Encourages good programming techniques
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
- Promotes code reuse The code and designs in object-oriented software development are reusable because they are modeled directly out of the real-world problem-domain. Structured approach focuses on functions Object approach focuses on Object. (data) Good quality software is Correct Robust Extendible Reusable -- Compatible
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak U1. #
Pitfalls of top-down design - Functional viewpoint is difficult to evolve - Real systems are hard to characterize functionally - Functional approach loses focus of data - Traditional approach produces less reusable code
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
An abstraction denotes the essential characteristics of an object that distinguishes it from all other kinds of objects and thus provide crisply-defined, conceptual boundaries, relative to the perspective of the viewer; the process of focusing upon the essential characteristics of an object. Abstraction and encapsulation are complementary concepts. Abstractions focus upon the observable behavior of an object, whereas encapsulation is most often achieved through information hiding, which is the process of hiding all the secrets of an object that do not contribute to its essential characteristics. Typically, the structure of an object is hidden, as well as the implementation of its methods.
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Structured Analysis In Structured Analysis, the focus is only on process and procedures. Modeling techniques used in it are DFD(Data Flow Diagram), Flowcharts,data dictionaries ,decision trees ,decision tables, structure charts etc. This approach is old and is not preferred
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Traditional paradigm: Jolt between analysis (what) and design (how) Object-oriented paradigm: Objects enter from very beginning
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak U1. #
Analysis/Design
Systems analysis
Determine what has to be done Determine the objects
Design
Determine how to do it Design the objects Detailed designdesign each module
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
In More Detail
Object Oriented Analysis Whereas in Object Oriented Analysis, the focus is more on capturing the real world objects in the current scenario that are of importance to the system. It stresses more on data structure and less on procedural structure. In this approach, objects are identified, their relationships among each other, possible states that each object can be in, and finally how all objects collaborate with each other to achieve a broader system goal are identified. Modeling techniques used in it are UML(Unified modeling Language), that can present both structural and behavioural/procedural aspect of the system. UML includes Class Diagram, State Diagram, Use case diagram, Sequence Diagram, etc.
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak U1. #
OOA Phase
Overall question is What? Do not worry about the implementation details The focus is on the real world What are the objects and classes in my program? What the responsibilities of them? In the OOA phase, the overall questions is "What?". As in, "What will my program need to do?", "What will the classes in my program be?", and "What will each class be responsible for?". You do not worry about implementation details in the OOA phase -- there will be plenty of time to worry about them later, and at this point they only get in the way. The focus here is on the real world -- what are the objects, tasks and responsibilities of the real system?
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak U1. #
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
2) Identifying Structures -
this is done in two different ways. First, the generalisationspecialisation structure, which captures the hierarchy among the identified classes. Second, the Whole-Part structure, which is used to model how an object is part of another object, and how objects are composed into larger categories.
3) Defining Subjects -
this is done by partitioning the Class & Object model into larger units. Subjects are groups of Class & Object. The structures identified earlier can be used. 4) Defining Attributes - this is done by identifying information and associations for every instance. This involves identifying the attributes needed to characterise each object. The identified attributes are placed at the correct level in the inheritance hierarchy.
5) Defining Services -
defining the operations of the classes. This is done by identifying the object states and defining services for accessing and altering that state.
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak U1. #
In the OOD phase, the overall question is "How?". As in, "How will this class handle it's responsibilities?", "How can I ensure that this class knows all the information it needs?", "How will classes in my design communicate?". At this point, you are worried about some implementation details, but not all -- what the attributes and methods of a class will be.
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
The essence of Object-oriented Analysis and Design is to emphasize considering a problem domain and logical solution from the perspective of objects (things, concepts, or entities) as shown in figure below. Analysis
Investigation of the problem
Design
Logical solution
construction
Code
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
During Object-oriented Analysis ,there is an emphasis on finding and describing the objects-or concepts-in the problem domain. For example ,in the case of the library information system, some of the concepts include books ,library and students.
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Finally, during construction or object-oriented programming, design components are implemented, such as a book class in C++, java, smalltalk, or visual basic.
The OO and SADT methods provide their own representational notations for constructing a set of models during the development life cycle for a given system.
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Requirements Requirements capture is about discovering what is going to achieve with new piece of software. Analysis Analysis means understanding what are dealing with. Before designing a solution, it needs to be clear about the relevant entities, their properties and their interrelationships. This can involve customers and end users, since theyre likely to be subject-matter experts
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Design
In the design phase, will work out, how to solve the problem. In other words, make decisions based on experience, estimation and intuition, about what software which will write and how will deploy it. System design breaks the system down into logical subsystems (processes) and physical subsystems (computers and networks), decides how machines will communicate, and chooses the right technologies for the job
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Implementation In this phase is writing pieces of code that work together to form subsystems, which in turn collaborate to form the whole system. Testing When the software is complete, it must be tested against the system requirements to see if it fits the original goals.
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Object-Oriented Software Engineering: Objectory Object-oriented software engineering (OOSE), also called Objectory, is a method of object-oriented development with the specific aim to fit the development of large, real-time systems. Objectory is built around several different models: Use case model. Domain object model. Analysis object model. Implementation model. Test model
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak U1. #
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Two different models are developed in analysis; the Requirements Model and the Analysis Model. These are based on requirement specifications and discussions with the prospective users. The first model, the Requirements Model, should make it possible to define the system and to define what functionality should take place within it. For this purpose we develop a conceptual picture of the system using problem domain objects and also specific interface descriptions of the system if it is meaningful for this system. We also describe the system as a number of use cases that are performed by a number of actors.
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak U1. #
The Analysis Model consisting of various object classes: control object, entity objects, and interface objects. The purpose of this model is to find a robust and extensible structure for the system as a base for construction. Each of the object types has its own special purpose for this robustness, and together they will offer the total functionality that was specified in the Requirements Model.
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Construction
We build our system through construction based on the Analysis Model and the Requirements Model created by the analysis process. The construction process lasts until the coding is completed and the included units have been tested. There are three main reasons for a construction process: 1) The Analysis Model is not sufficiently formal. 2) Adaptation must be made to the actual implementation environment. 3) We want to do internal validation of the analysis results.
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
The construction activity produces two models, the Design Model and the Implementation Model. Construction is thus divided into two phases; design and implementation, each of which develops a model. The Design Model is a further refinement and formalization of the Analysis Model where consequences of the implementation environment have been taken into account. The Implementation model is the actual implementation (code) of the system.
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Testing
Testing is an activity to verify that a correct system is being built. Testing is traditionally an expensive activity, primarily because many faults are not detected until late in the development. To do effective testing we must have as a goal that every test should detect a fault
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Characteristics of OOD
Objects are abstractions of real-world or system entities and manage themselves Objects are independent and encapsulate state and representation information. System functionality is expressed in terms of object services Shared data areas are eliminated. Objects communicate by message passing Objects may be distributed and may execute sequentially or in parallel.ex-printer,Memory,CPU etc
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Advantages of OOD
Easier maintenance. Objects may be understood as stand-alone entities Objects are appropriate reusable components For some systems, there may be an obvious mapping from real world entities to system objects
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Polymorphism
is the quality that allows one name to be used for two or more related but technically different purposes. In the following, each graphical object has the same services, although they are implemented differently.
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Encapsulation
is the mechanism that binds together code and the data it manipulates and keeps both safe from outside interference and misuse. In the following, only the services move() and scale() modify the attributes of Circle. The service draw() performs some computation based on the values of the attributes.
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Class Diagrams A graphical representation of a static view A central modeling technique that runs through nearly all object-oriented methods. The richest notation in UML. A class diagram shows the existence of classes and their relationships in the logical view of a system Essential Elements of a UML Class Diagram Class Attributes Operations Relationships Associations Generalization Dependency
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Classes
ClassName attributes
A class is a description of a set of objects that share the same attributes,operations, elationships, and semantics.
Graphically, a class is rendered as a rectangle, usually including its name, attributes, and operations in separate, designated compartments.
operations
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak Software Design (UML)
U1. #
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak Software Design (UML)
U1. #
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak Software Design (UML)
U1. #
Class Operations
Person name : String address : Address birthdate : Date ssn : Id eat sleep work play Operations describe the class behavior and appear in the third compartment.
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak Software Design (UML)
U1. #
What Is Multiplicity?
Multiplicity is the number of instances of one class relates to instance of another class. For each association, there are two multiplicity decisions to make, one for each end of the association.
For each instance of Professor, many Course Offerings may be taught. For each instance of Course Offering, there may be either one or zero Professor as the instructor.
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Multiplicity Indicators
Unspecified Exactly one Zero or more (many, unlimited)
1 0..*
One or more Zero or one (optional scalar role) Specified range Multiple, disjoint ranges
1..* 0..1
2..4 2, 4..6
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
A class is the description of a set of objects having similar attributes, operations, relationships and behavior Attributes Classes have attributes that describe the characteristics of their objects. Attributes are atomic entities with no responsibilities.
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Associations
A semantic relationship between two or more classes that specifies connections among their instances. Example: An Employee works for a Company An association can be viewed as a weak form of aggregation or as a data-oriented relationship between two entities. For example, if there is a car, it must be associated with an owner.
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
An association model
Employee
is-member-of
Department
is-managed-by
manages
Manager
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Association Relationships
An aggregation specifies a whole-part relationship between an aggregate (a whole) and part, where the part can exist independently from the aggregate. Aggregations are denoted by a hollow-diamond adornment on the association.
Engine
Car
Transmission
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak Software Design (UML)
U1. #
Association Relationships
A composition indicates a strong ownership and coincident lifetime of parts by the whole (i.e., they live and die as a whole). Compositions are denoted by a filled-diamond adornment on the association.
Scrollbar
1 1
Window
1 1
Titlebar Menu
1 1 .. *
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak Software Design (UML)
U1. #
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
City
name:String
One-to-one association
Workorder
StickyNote
schedule()
One-to-many association
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak U1. #
Association Relationships
If two classes in a model need to communicate with each other, there must be link between them. An association denotes that link.
Student
Instructor
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak Software Design (UML)
U1. #
Association Relationships
We can indicate the multiplicity of an association by adding multiplicity adornments to the line denoting the association. The example indicates that a Student has one or more Instructors:
Student
1..*
Instructor
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak Software Design (UML)
U1. #
The example indicates that every Instructor has one or more Students:
Student
1..*
Instructor
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak Software Design (UML)
U1. #
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak Software Design (UML)
U1. #
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak Software Design (UML)
U1. #
Association Relationships
We can specify dual associations.
1..* Team
president of
1..*
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak Software Design (UML)
U1. #
The goal of OO analysis is to identify objects and classes that support the problem domain and system's requirements. Some general candidate classes are: Persons Places Things Class Hierarchy Identify class hierarchy Identify commonality among the classes Draw the general-specific class hierarchy.
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
Inheritance
Models "kind of" hierarchy Powerful notation for sharing similarities among classes while preserving their differences UML Notation: An arrow with a triangle
Cell
BloodCell
MuscleCell
NerveCell
Red
White
Smooth
Striate
Cortical
Pyramidal
U1. #
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
A generalisation hierarchy
Employee
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Inheritance is also called the generalization-specialization, gen-spec, or IsA hierarchy. Note that inheritance is a relationship between classes, not objects. Generalized classes are placed higher in the hierarchy while specialized ones are found below. For example, a Vehicle is a generalized class while TruckVehicle and CarVehicle are more specialized ones. In other words, a TruckVehicle is-a-kind-of Vehicle.
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Inheritance hierarchy. The generalized class at the top and the specialized classes below. The specialized class names should reflect the class they were specialized from. For example, employee was specialized from Person.
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
A mechanism for expressing similarity among classes. It portrays generalization (What is the same?) and specialization (What is different?), making common attributes and services explicit within a class hierarchy.
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Aggregation
A special form of association that models a whole-part relationship between an aggregate (the whole) and its parts.
Aggregation is also called whole-part or HasA. For example, an Aircraft contains an Engine or in other words, an Aircraft has an Engine.
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
For example, among other things, a car consists of tires and an engine. Note that the opposite of aggregation is decomposition.
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Aggregation Represents a has-a (whole-part) relationship An object of the whole has objects of the part
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Aggregation
Models "part of" hierarchy Useful for modeling the breakdown of a product into its component parts . UML notation: Like an association but with a small diamond indicating the assembly end of the relationship.
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Aggregation
Automobile
Engine horsepower volume on off serial number year manufacturer model color weight drive purchase 3,4,5 Wheel * 2,4
Brakelight
on off
Door
open close
charge discharge
U1. #
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
A form of aggregation with strong ownership and coincident lifetime as part of the whole. Parts with non-fixed multiplicity may be created after the composite itself, but once created they live and die with it (i.e., they share lifetimes). Such parts can also be explicitly removed before the death of the composite.
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Aggregation is a relatively weaker form of the whole-part relationship, while composition is a relatively stronger form. Composition: Stronger * Composition, also known as the a-part-of , is a form of aggregation with strong ownership to represent the component of a complex object. Composition also is referred to as a part-whole relationship. The UML notation for composition is a solid diamond at the end of a path.
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Aggregation vs Inheritance
Both associations describe trees (hierarchies) Aggregation tree describes a-part-of relationships (also called and-relationship, Has a Relationship,containership) Inheritance tree describes "kind-of" relationships (also called or-relationship,is-a ) Aggregation relates instances (involves two or more different objects)
Dependency
A dependency is a relation between two classes in which a change in one may force changes in the other although there is no explicit association between them. A stereotype may be used to denote the type of the dependency. Indicates a semantic relationship between two (or more) classes It indicates a situation in which a change to the target element may require a change to the source element in the dependency A dependency is shown as a dashed arrow between two model elements
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Class Identification
Identify the boundaries of the system Identify the important entities in the system Class identification is crucial to object-oriented modeling Basic assumption: 1. We can find the classes for a new software system (Forward Engineering) 2. We can identify the classes in an existing system (Reverse Engineering)
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Professor Amit
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
: Professor
Professor Amit Unnamed Object
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Class Diagram
joe: Inspector
mary: Inspector
anonymous: Inspector
Instance Diagram
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
mary: Inspector
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Class Attributes
Person name : String address : Address birthdate : Date ssn : Id
An attribute is a named property of a class that describes the object being modeled. In the class diagram, attributes appear in the second compartment just below the name-compartment.
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak Software Design (UML) U1. #
Class Diagram
Captures the vocabulary of a system
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Class Diagram
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Object Oriented Methodology (OOM) is a system development approach encouraging and facilitating re-use of software components. With this methodology, a computer system can be developed on a component basis which enables the effective re-use of existing components and facilitates the sharing of its components by other systems.
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Object-Oriented Methodology
The object-oriented systems analysis and design methodology classification emerged in the mid- to late 1980s as businesses began to seriously consider object-oriented-programming languages for developing and implementing systems. Even though Simula,, is credited as being the first object-oriented language, popular object-oriented (or object-enabled/enhanced) languages such as Smalltalk, C++, Objective C, and Eiffel came into their own in the 1980s and Java was introduced by Sun Microsystems in mid-1995. Rather than follow the structured, deterministic, and sequential programming paradigm associated with languages such as COBOL, Fortran, C, Basic, PL/I, Ada, Algol and others, these languages follow the approach pioneered by Simula based on objects, attributes, responsibilities, and messages.
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
CHARACTERISTICS OF AN OBJECT-ORIENTED METHODOLOGY 1. Objects 2. classes 3. Abstraction 4. Encapsulation or information hiding 5. Inheritance 6. Polymorphism 7. Message communication 8. Associations 9. Reuse
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Analysis
Begin with the Statement of Requirements and then view the Use Cases. The Use Case document has a Use Case Diagram and a series of flows of events, one for each use case. The analysis phase can be studied both in terms of the "big picture" and in terms of the details of the use cases.
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
The Characteristics of ObjectOriented Design (OOD) The Use of Classes in OOD The use of Inheritance in OOD The Use of Polymorphism in OOD Creating a Class Diagram:
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Design process.
Having looked at the requirements/analysis documents, you can then study the design phase by viewing the CRC cards, the overall Class Diagram, and the Statechart and Interaction Diagrams. There is one CRC card for each class, incorporating all responsibilities of the class arising from all of the use cases, linked to from the icon for the class in either Class Diagram. The CRC cards were created by "walking through" each use case, assigning the responsibility for each task to some class. Note that there are CRC cards for classes that do not appear in the Analysis Class Diagram; the need for these classes became apparent as the other cards were being created.
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
The Class Diagram pulls together all of the structural information from the CRC Cards and shows the needed links between classes. Each class icon is linked to other relevant design documents, including a detailed design for that class. For the major controller classes, there is also a Statechart diagram depicting the various states the corresponding object can be in. Finally, there is one Interaction diagram for each use case, linked to from the use case flow of events. This shows the objects that work together to realize the use case, and the flow of messages between them. The detailed design document was developed directly from the Interaction diagrams and Class Diagram.
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
(RDD)/Class-
(RDD)/Class-Responsibility-
In Responsibility-Driven Design, a model is developed from the requirements specification by the extraction of nouns and verbs from the specification. This provides a basis for the actual implementation. In RDD, for each class, different responsibilities are defined which specify the roles of the objects, and their actions. In order to fulfill these responsibilities, classes need to collaborate with each other. Collaborations are defined to show how the objects will interact. The responsibilities are further grouped into contracts which define a set of requests that objects of the class can support. These contracts are further refined into protocols, which show the specific signature of each operation.
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak U1. #
Classes
- Extract noun phrases from the specification and build a list - - identify candidates for abstract super classes - use categories to look for missing classes - write a short statement for the purpose of each class
Responsibilities
- find responsibilities
- assign responsibilities to classes - find additional responsibilities by looking at the relationships between classes
Collaborations
- find and list collaborations by examining responsibilities associated with classes - identify additional collaborations by looking at relationships between classes - discard and classes that take part in no collaboration (as client or server)
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
CRC Cards
CRC is useful in detecting responsibilities of objects are CRC cards (developed by Kent Beck and Ward Cunningham). CRC stands for Class-Responsibility-Collaborator. They look like:
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
CRC Cards
Identify and clarify objects Understand behaviours for objects and what they must carry out Understand how object cooperate with one another CRC cards are index cards, one for each class, upon which the responsibilities and collaborators of a class are written. Each person holds onto the CRC cards for the classes that they are playing the role of.
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
CRC Cards
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
CRC Cards
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
CRC Cards
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Learning Objectives
OO Methodology
Rumbaugh OMT Booch OOD Jacobson OOSE ObjectOry Hierarchical Object Oriented Design (HOOD) Object Oriented System Design (OOSD) Object Oriented System Analysis (OOSA) Object Oriented Analysis (OOA)
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
OMT Modeling OMT separates modeling into three different parts: An object model, presented by the object model and the data dictionary. A dynamic model, presented by the state diagrams and event flow diagrams. A functional model, presented by data flow and constraints.
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak U1. #
Dynamic
State transition diagrams (network of states and events)
Functional
Based on classical DFD
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Analysis - Model of real-world situation - What ? System Design - Overall architecture (sub-systems) Object Design - Refinement of Design - Algorithms/data structures to implement each class Implementation - Translation of object classes and relationships to a particular object-oriented language
time
System
U1. #
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
technique
class modeling dynamic modeling functional modeling
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
Data-Oriented
Dynamic Model
behavioral aspects what events occur in the system when do they occur and in what order?
Action-Oriented
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Class
ball football baseball
Attributes
radius, weight air pressure liveness
Operations
catch, throw pass, kick, hand-off hit, pitch, tag
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Class Name
InstanceVariable1 InstanceVariable2: type
Method1() Method2(arguments) return type
The class name is at the top, followed by attributes (instance variables) and methods (operations)
Depending on context some information can be hidden such as types or method arguments
(Class Name)
InstanceVariable1 = value InstanceVariable2: type
Method1() Method2(arguments) return type
Objects are represented as rounded rectangles; The objects name is its classname surrounded by parentheses Instance variables can display the values that they have been assigned; pointer types will often point (not shown) to the object being referenced
U1. #
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
Class
attribute_1: data_type_1 = default_1 attribute_2: data_type_2 = default_2 ... attribute_m: data_type_m = default_m
(Class Name)
Instance
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
Instantiation - Example
Person
(Person)
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Inheritance
Classes with similar attributes and operations may be organized hierarchically Common attributes and operations are factored out and assigned to a broad superclass (generalization)
generalization is the is-a relationship superclasses are ancestors, subclasses are descendants
Classes iteratively refined into subclasses that inherit the attributes and operations of the superclass (specialization)
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Superclass
Class Attributes Operations Ball Radius, Weight Throw, Catch
Subclasses Football air pressure pass, kick, hand-off Baseball liveness hit, pitch, tag Basketball air pressure , dimples shoot, dribble, pass
Specialization
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak U1. #
Company
Employs
Employer Employee
Person
Johnson
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
has-capital
(City) Ottawa
has-capital
(Country)
Austria
has-capital
(City)
Vienna
U1. #
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
Aggregation
Aggregation is a special form of association that indicates a part-of relationship between a whole and its parts Useful when the parts do not have independent existence
A part is subordinate to the whole
In an aggregation, properties and operations may be propagated from the whole to its parts
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Window
TitleBar
ScrollBar
Border
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Multilevel aggregation
Microcomputer
1+
Monitor
System box
Mouse
Keyboard
1+
1+
Chassis
CPU
RAM
Fan
U1. #
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
transitions represented as edges between nodes and labeled with an event name
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Start
Whites turn
black moves white moves
checkmate
Black wins
stalemate
Draw stalemate
Blacks turn
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
STATE-1
action-Event / action output-Event / output
guarded-Event [guard-2]
STATE-2
U1. #
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
Superstate (nesting)
event-1
Superstate (concurrency)
substate-1 substate-3
substate-1
substate-2
event-2
event-3
substate-2
substate-4
event-2
(Synchronization)
split-event-0
substate-1
event-1
substate-3
merged-event-3
substate-2
event-2
substate-4
merged-event-4
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Neutral
push R
Reverse
push N
push F
Forward
stop
upshift
upshift
First
downshift
Second
downshift
Third
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Functional Modeling
Identify input and output values Build data flow diagrams showing transformation and functional dependencies Describe functions (in some language)
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Booch OOD
Aimed on physical design and programming rather than requirement and conceptual design Describes two levels of diagram Design level
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Booch OOD
Suggest two development process
Micro Development Process Represents the daily activities of the individual developer
Macro Development Process Serves as the controlling framework for the micro process
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Jacobson OOSE
Originated from Objectory (Object Factory for software development) Aim to fit the development of large real-time system Covers entire life cycle Stress traceability among the different phases (Backward & forward) Usecase concept is core
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Developed by Jacobson. Supports OO concepts of classification, encapsulation and inheritance. Abstraction is promoted by levels. Adds use cases to the OO approach. Composite data and activity definition is not strongly enforced and services are also regarded as objects. Reuse is supported by component libraries. Guidance for analysis is less comprehensive. Target applications: like HOOD real-time systems and engineering systems.
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Objectory
Discipline process for the industrialized development of software, based on a usecase driven design Built around several different models Requirement Model Domain object model Analysis Model Design Model Implementation model Test model
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
OOSE
Object-oriented software engineering (OOSE) is an object modeling language and methodology. Object-Oriented Software Engineering (OOSE) is a software design technique that is used in software design in object-oriented programming. OOSE is developed by Ivar Jacobson in 1992. OOSE is the first objectoriented design methodology that employs use cases in software design. OOSE is one of the precursors of the Unified Modeling Language (UML), such as Booch and OMT. It includes a requirements, an analysis, a design, an implementation and a testing model. Interaction diagrams are similar to UML's sequence diagrams. State transition diagrams are like UML statechart diagrams.
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
HOOD (Hierarchic Object-Oriented Design) is a detailed software design method. It is based on hierarchical decomposition of a software problem. It comprises textual and graphical representations of the design. HOOD main target languages are Ada, Fortran and C. An architectural design method, primarily for Ada, leading to automated checking, documentation and source code generation.
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Object Oriented Role Analysis, Synthesis and Structuring (OORASS), the method focuses on describing patterns of interaction without connecting the interaction to particular objects/instances.
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Data-oriented model
Object-oriented model
Real world
Software system
Real world
Software system
190
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak U1. #
Object-oriented Design
Goal : to design classes identified during analysis phase & user interface Identify additional objects & classes that support implementation of requirements
Eg. add objects for user interface to system (data entry windows, browse windows)
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Three models
Object model Dynamic model Functional model
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Design Goals
Design transforms requirements into
an architecture diagram
subsystems, modules and their relationships
a detailed design
a specification of the abstract interface, data structures, and algorithms of each module
Also develops
a review plan for ensuring the design meets the requirements a test plan for ensuring the implementation meets the design
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Analysis Methods
Functional Decomposition = Functions + Interfaces Data Flow Approach = Data Flow + Bubbles Information Modeling = Entities + Attributes + Relationships Object-Oriented = Objects + Inheritance + Message passing
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Many heuristics for object identification and analysis, which help with initial abstraction and object modeling. Data modeling approach (ER modeling) Models an object relationship network with subclasses. State-transition specifications are constructed for each object and functions are modeled with data-flow diagrams. Produces a composite activity-data model (synthesis not clearly specified) Lack of support for inheritance. Underspecified in the design phase.
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Waterfall Model
Characterized by Feedback loops Documentation-driven Advantages Documentation Maintenance easier Disadvantages Specifications
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Prototyping Model
Linear model Rapid
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Incremental Model
Divide project into builds
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Pr o t o ty p e3 Pr o t o ty p e2 Pr o t o ty p e1 Re q uire m e nts pl an Co n ce pt of o pe ra ti on
Sy st em Pr o du ct De si gn
De tailed De si gn
P2
Co d e Un it T e st
Pla n ne xt ph ase
I nte gr ation pl an
De si gn v alida t io n Ac ce pta nc e T e st
Spiral Model
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak U1. #
O O A
Application Scenario
Identify Actors Identify Classes Build Interface Objects Build Detail Design
Identify Use cases Identify Objects Build Dynamic Model Use Tools & Program for Implementation
O O D
Build Prototype
Test Usage Scenario (Use Case) Test for QA Acceptance Post Implementation Hand Over
U1. #
O O I
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
Support process
for
architecture,
method
or
Tools
How to scale up the method to industry activity
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Tools
Process
Method Architecture
Creative Design
Construction
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Software Industry Direct Analogies with Rational Enterprise Process must yield a foreseeable result, irrespective of which individual performed the job Volume of output doesnt effect the process Possibility to allocate parts of the process to several manufacturers/subcontractors Possible to make use of predefined building blocks and components Possible to plan and calculate the process with great precision. Each person trained for an operation must perform it in a similar manner
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak U1. #
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
12.3%
11.8%
7.5%
5. Technology Incompetence
7.0%
6. Lack of Resources
6.4%
7. Unrealistic Expectations
5.9%
8. Unclear Objectives
5.3%
4.3%
3.7%
Other
23.0%
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
RequisitePro
RequisitePro
requirement
Rose,
Rational
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Objective Questions
Q1. Define the following terms: Object Class Attribute Method Message State Encapsulation Data Abstraction Data Hiding Inheritance Polymorphism Strong and weak typing Overriding Object persistence Containership Generacity
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Objective Questions..
Q2. Which of the following statements are true?
1. According to Rebecca Wirfs-Brock, a stereotype is a high-level classification of an object such as "controller" and "coordinator". 2. According to Jacobson, class stereotypes are: interface object, control object and entity object. 3. Within UML, stereotypes are used for meta-model extensions. 4. All of the above. 5. None of the above.
Q3. Estimate what percentage of your effort and time you spend on Inception, Elaboration, Construction and Transition phases.
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
Short Questions
Q1. Compare object oriented software engineering and classical software engineering. Q2. what is a CRC card? How it helps in the development of Object Oriented System? Q3. Why should begin with the object oriented analysis and object oriented design Q4. Explain why object-oriented programs are said to be more maintainable and reusable as compare to function-oriented programs? Q5. How you will support the object-oriented paradigm over the structure paradigm for software engineering discipline. Q6. What are the requirement elicitation major activities, techniques used and the key deliverables of these activities? Describe Focus Ethnography in short. Q7. Describe the development process with model building Q8. Discuss in short Requirement Change Process Q9. How you represent a class in CRC? Q10. Write short note on constitute of a rational enterprise philosophy.
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak U1. #
Long Questions
Q1. What is requirement elicitation? Explain two techniques of requirement elicitation. Q2. What is a use case? How it is beneficial in requirement phase? Is there any other way to capture requirements? Q3. Which requirement elicitation is most popular? Explain. Q4. Explain object oriented life cycle model. Give a brief comparison of various life cycle models. Q5. Compare and contrast various software development models in tabular form. State the advantage and disadvantage of each model. Q6. List out Requirements Elicitation Techniques. Which one is most popular and why? Q7. Discuss the object oriented software development life cycle. Q8. Discuss different aspects of Booch's methodology for object oriented design. Q9. How Object Model, Dynamic Model and Functional Model are related to each other? Q10. Compare and contrast waterfall, spiral and fountain model. List their advantages and disadvantages. Q11. Compare and contrast various requirement elicitation methods. Q12. Discuss the role of use-cases in object oriented requirement analysis? Q13. In what way does the object oriented approach claim to improve the system development process Q14. List down the top ten risks of conventional processes address by modern objectoriented Process with solution.
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak U1. #
Long Questions..
Q15. List few object languages and compare them Q16. Survey of Software Life Cycle Model with Comparison Chart and elaborate your viewpoint what sequence of activities can be used in general to develop a software in an IT organization. Q17. What are the various software development activities? Draw the object model of the software life cycle. Explain Iterative and prototype model. Q18. What are the constitute of rational enterprise constitute philosophy discuss in short Describe various System development characteristics Q19. Discuss the software development best practices. Q20. Discuss various System Development Characteristics Q21. What factors can be blamed for software failure (over budget, delayed in schedule and fail to meet expectation) and how could the failure have been avoided? Describe Q22. Provide the use case model for software development process. Discuss OOSAD lifecycle model. What are the potential benefits and drawback of it? Q23. Discuss the object oriented systems metrics Suggested by Chidamber and Kemerer.
Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63, by Nitish Pathak
U1. #
References
Ivar Jacobson, Object Oriented Software Engineering, Pearson, 2004. Grady Booch, James Runbaugh, Ivar Jacobson, The UML User Guide, Pearson, 2004 3. R. Fairley, Software Engineering Concepts, Tata McGraw Hill, 1997. 4. P. Jalote, An Integrated approach to Software Engineering, Narosa, 1991. 5. Stephen R. Schach, Classical & Object Oriented Software Engineering, IRWIN, 1996. 6. James Peter, W Pedrycz, Software Engineering, John Wiley & Sons 7. Sommerville, Software Engineering, Addison Wesley, 1999. 8. http://www.gentleware.com/fileadmin/media/archives/userguides/poseidon_u sers_guide/userguide.html 9. http://www.gentleware.com/fileadmin/media/archives/userguides/poseidon_u sers_guide/statemachinediagram.html 10. http://www.developer.com/design/article.php/2238131/State-Diagram-inUML.htm 1. 2.