1. 2. 3. 4. 5. 6. 7.

System development activities consist of systems analysis, modeling, design, implementation, testing, maintenance. Major elements of object model are Abstraction, Encapsulation, Modularity and Hierarchy. Minor element of object model are – Typing, Concurrency and Persistence Good design stipulates high cohesion and low coupling. Abstract class can only be inherited. Attributes describe the static characteristics of objects and methods define its behavior. UML can be used to model a broad range of systems, a few of which are information systems, technical systems, distributed systems, business systems and real-time systems. 8. Explain how encapsulation violates with inheritance. With Inheritance Encapsulation can be violated in Three Ways. a. The subclass might access an instance variable of its superclass. b. The subclass might call a private operation of its superclass. c. The subclass might refer directly to superclasses of its superclass. Different languages trade off support for encapsulation and inheritance in different ways. For example, the interface of a C++ class may have three parts: private parts, which declare members that are accessible only to the class itself, protected parts, which declare members that are accessible only to the class and its subclasses, and public parts, which are accessible to all the classes. 9. What does dynamic binding offer for object orientation? Polymorphism exists when the features of inheritance and dynamic binding interact. Polymorphism represents a concept in type theory in which a single name (such as variable declaration) may denote objects of many different classes that are related by some common superclass. Any object denoted by this name is therefore able to respond to some common set of operations. Polymorphism (or many forms) enables a class within an inheritance hierarchy to be represented simultaneously as itself and as any superclass within its inheritance hierarchy. Polymorphism is not the same as method overloading or method overriding (which is known instead as ad-hoc polymorphism). Polymorphism is only concerned with the application of specific implementations to an interface or a more generic base class. 10. What is software – Software is the term associated with the programs that are written to manage the various resources of a computer system and perform certain designated useful tasks. Software can be further classified into system software and application software. 11. What is difference between overriding and overloading? Overloading is when we define two methods with the same name, in the same class, distinguished by their signatures. Overriding is when we redefine a method that has already been defined in a parent class using the exact same signature. Overloading is resolved at compile time. Overriding is resolved at runtime based on the type of the implicit first parameters. Overloading can occur within a single class, as well as among subclasses within an inheritance hierarchy. Because the various signatures for an overloaded operation are unique, the proper method can be determined at compile-time. 12. What is abstract class? Give example. An Abstract Class is a class that is used only as a base class for other classes or subclasses. We do not (need not, or even cannot) Instantiate from an abstract class. Abstract classes can only be inherited. Abstract class is introduced to make it possible to store a set of attributes and methods common to several classes in one place. Abstract Class example, using System; abstract class MyBaseC // Abstract class { protected int x = 100; protected int y = 150; public abstract void MyMethod(); // Abstract method public abstract int GetX { get; } // Abstract property public abstract int GetY { get; } // Abstract property } class MyDerivedC: MyBaseC { public override void MyMethod() { x++; y++;} public override int GetX { get {return x+10;} } // overriding property public override int GetY { get {return y+10; }} // overriding property public static void Main() { MyDerivedC mC = new MyDerivedC(); mC.MyMethod(); Console.WriteLine("x = {0}, y = {1}", mC.GetX, mC.GetY); }} Output: 110 and 160


It integrates best practices and supports higher-level development concepts such as collaborations. UML is important because it provides users a ready-to-use. Good design stipulates ‘high cohesion and low coupling’.The UML is not a visual programming language. It is the result. Constructing and documenting the artifact of a software-intensive system. 5. Project Plans. Tests. there are structures that go beyond what can be represented in a programming language. Concurrent use of shared resources can be a source of indeterminacy leading to issues such as deadlock. Persistence: Persistence is the ability of an object to survive the lifetime of the OS process in which it resides. patterns and components. we simplify the understanding of a system. Concurrency: Concurrency is a property of systems in which several computations are executing simultaneously. Abstraction – Abstraction is the process of representing only the important features and hiding the background details and explanations from the user. UML is a Language for Specifying Specifying means building models that are precise. strong typing introduces semantic dependencies such that even small changes in the interface of a base class require recompilation of all subclasses. UML is a Language for Constructing . 3. It is used for Visualizing. but which have connection with other modules. Modularity – Modularization consists of dividing a program into modules which can be compiled separately. expressive visual modeling language so they can develop and exchange meaningful models. Example. UML is a Language for Documenting . Data that exists between versions of a program. These artifacts include: Requirements. there is a dark side to strong typing. In all interesting system. It provides extensibility and specialization mechanisms to extend the core concepts. For Example – We don’t know the inner details of the Monitor of our PC? What happen when we switch ON Monitor? Does this matter to us what is happening inside the Monitor? No Right. 4. and Releases. 14. Data that exists between executions of a program. Encapsulation – Abstraction focuses on the observable behavior of an object. Important thing for us is weather Monitor is ON or NOT. whereas encapsulation focuses on the implementation that gives rise to that behavior and this is achieved through information hiding. Prototypes. Temporary results in expression evaluation. Different types of object persistence are – 1.A software solution is made up by all sorts of artifacts in addition to raw executable code. Cohesion is the interdependency within a module and coupling is the dependency between modules. Traditional programming languages usually address only the first three kinds of object persistence. What is UML? What is the importance of UML? UML is an industry standard modeling language with a rich graphical notation. and potentially interacting with each other. Strong typing enforces certain design decision. The two most important hierarchies in a complex system are its class structure (the “is a” hierarchy) and its object structure (the “part of” hierarchy). but its models can be directly connected to a variety of programming. the number of possible execution paths in the system can be extremely large. We build models so we can better understand the system we are developing. frameworks. Typing: A type is a strict characterization of structural or behavioral properties which a collection of entities share. Source code. Programming languages can be strongly typed. The UML addresses the specification of all the important analysis. persistence of the last two kinds is typically achieved by File system or Relational Database or Object-Database. Encapsulation is the mechanism by which the abstraction is implemented. Explain major elements of object model. weakly typed or even untyped. Because computations in a concurrent system can interact with each other while they are executing. and comprehensive set of diagrams and elements. Data that live longer than the program. Saving Bank Account Bank Account Fix Deposit Account Recurring Deposit Account Explain minor elements of object model. wherein one class shares the structure and behavior defined in another class. UML is a Language for Visualizing . or on physically separated processors. is an object that encapsulates many technologies that might not be understood clearly by most people who benefit from it. 2. for instance. clear and complete. 2 . and the resulting outcome can be indefinite.13. However. Modules serve as the physical containers in which we declare the classes and objects of our logical design. Inheritance is an important “is-a” hierarchy and defines relationships among classes. Hierarchy – Set of abstractions forms a hierarchy and by identifying hierarchies. The radio. Specifying. and so is particularly relevant as the complexity of our system grows. Architecture.Something are best modeled textually. other are best modeled graphically. Hierarchy is a ranking or ordering of abstractions. Local variables in procedures. Design. Particularly. The computations may be executing on time-shared threads on the same processor.

is used for Private.” Practice 1 . 3 . Design classes. Creates Process diagram and Activity diagram. Efficient and appropriate use of notations is very important for making a complete and meaningful model. Practice 2 .g. Describe run time architecture – Here we identify active classes and threads. designing. Active Class Notation . Best practice of software engineering. . and Supplementary specifications. and write operations into the third. on. Class Notation .Illustrate active classes with a thicker border. Place the name of the class in the first partition (centered.Use visibility markers to signify who can access the information contained within a class. # is used for Protected and + is used for Public. 16. E. Each iteration is focused on defining.Use component architecture – A system should be designed in such way it can gracefully accumulate new changes without changing all the components. and Class diagram (if required).Software Patterns: Software Patterns describe how to solve typical problems that appear in many application scenarios in similar ways. IOC (Inversion of Control) can be implemented which helps in loading the components at run time and helps in developing TDD (Test Driven Development). organizing. Association Notation . We should try to use best and suitable design patterns to design the software. We should use right design pattern for data persistence. Sequence and collaboration diagram. Using Interface and Dependency injection. Multiplicity Notation . or application domain. Use case description. analyzing. Analysis artifacts – Below are done. List the various notations among classes. and Object diagram. or below the association line. Various development errors can be avoided using software patterns. Use a filled arrow to indicate the direction of the relationship. Practice 4 . End product of design – Below are done. building and testing some set of requirements. State chart diagram.15. bolded.Make sure you solve the right problem and build the right system by taking a systematic approach to getting. list the attributes in the second partition. or rule that is followed regardless of the development methodology. Various steps in UML. Use case realization. Scrum is widely used methodology in Agile development lifecycle. technique.A technique that is used to deliver the functionality of a system in a successive series of releases of increasing completeness. Roles represent the way the two classes see each other.Manage requirements . Visibility Notation . Describe distribution – Here we create deployment diagram. During requirements gathering we develop the – Use case diagram. UML notations are the most important elements in modeling. Best Practice of software engineering is “A principle. packages and subsystems. and capitalized). Class diagram. Practice 3 .Place association names above. language. Analysis classes. Place roles near the end of an association. documenting and managing the changing requirements of a software application.Develop iteratively .Illustrate classes with rectangles divided into compartments. 17.Place multiplicity notations near the ends of an association.

2. 4 . G. not a program. 1. the existing parts of the design would only change minimally.Practice 5 . Miscommunication . The team will find it especially difficult to provide deliverables as per customer’s expectations since the requirements were unclear or incomplete at the beginning. Why is Persistence Important? a.Though communication and collaboration are not the stages of an SDLC. Makes it easier to reuse. C. Unrealistic schedule and Estimation . Frequent changes . easier to develop and manage.Continuously verify quality . communication is the backbone for collaborating and getting things done. And there are many tasks that just can’t be split up to be done by many people or teams at once. we get Object Oriented databases. 4. Below check points should be used in OOA phase.. They simply have to be done “one foot in front of the other. then the team will find it difficult to proceed on schedule.Model visually .Control how and when changes are introduced into project artifacts and who introduces the changes. H.Many projects still follow Waterfall SDLC. Responsibility.Manage change . So in case of inadequate testing no one knows whether or not the software working as per expectation until customers complain or systems crash. Good hierarchy is linked by IsA relationships. Explain OOA check points. B. Unifying Persistence with Object Model. D. the object continues to exist after its creator ceases to exist) and /or space ( i. If the requirements are not very clear and complete. 3. Many systems provide an OO Skin over a RDBMS 20. It describes the world. Offers the programmers of database systems the abstraction power of object technology. Every person you add to a project adds friction to the project as well – things like the time needed to bring them up to speed or coordinate their work with other people. A. Information with different rates of change is separated. it includes identifying the measures and criteria and the implementation of a process to ensure that the resulting product has achieved the desired degree of quality. stand-up meetings and virtual brainstorming or through web-based SDLC management tools. It helps improve a team’s ability to manage software complexity.It is not just developing a software which meets the users needs and expectations. especially for the first few months.Fred Brooks illustrated a common project management mistake with his famous statement that just because one woman can have a baby in nine months does not mean that nine women can have a baby in one month. But it throws the whole development team very much off the schedule and cost estimates if the team has to keep revising the code to add features often. What is Persistence and why it is important? The property of an object by which its existence exceeds time (i. And we still see this come up time and time again — the idea that throwing more people at a problem can make it be fixed quicker. control.e. this is just not true.” 6. Minimum assumptions of language or system. C. There should be no redundancy. B. 5.. Bad scheduling is bound to have a ripple effect on development. Practice 6 . the object’s location moves from the address space in which it was created). testing and deployment stages of an SDLC. Whether communication is done through documentation. Poor Requirement .Many a time project managers force too much work within too less man-hours either because of inexperience or because of other constraints such as limited budget or lack of clarity in customer’s business. D. 18. The classes are relatively small.They let us maintain consistency among a system’s artifacts: its requirements. If the requirements were extended to include more things. Smalltalk provides support for persistence. Each class in the design should have a list of responsibilities and collaborators that describe what the class does within the system. my experience has been that there is a tipping point where adding people actually slows the work down more than it speeds things up. Most OOPL do not support persistence directly. information sharing and knowledge exchange is required for the project to meet quality standards and deliver on schedule.The business side of the customer may consider adding features during development stage as minor changes. E. One object doesn’t do everything. In fact. F. Inadequate testing – A software development requires adequate testing and the effort should be one third of development. Explain briefly the software development problems. and communication are distributed. design and implementation. 19. Practice 7 . The “pregnant woman” mistake .e. Sadly.

21. Cards are divided in three sections. 22. library and patron. Object-oriented programming can be called as a new programming pattern that will help us develop software that is more reliable. The three fundamental units of Object.  Every class should have at least one service. The responsibilities of an object are expressed by a handful of short verb phrases. Most modeling techniques used for analysis and design involve graphic languages.  Every class should have at least one attribute or object connection. we are worried about some implementation details. These graphic languages are sets of symbols. and “What will each class be responsible for?” We don’t worry about implementation details in the OOA phase. Those classes that are required by a class to complete the responsibility are identified as collaborator. 5 . the more powerful and concise the design will be. A responsibility serves as a handle for discussing potential solutions. Responsibility. a book software object may have a title attribute and a print method. For example. easily maintainable and reusable.oriented programming are objects. some of the concepts include books. Explain OOD check points. the overall questions are “What?” As in. The more that can be expressed by these phrases. but not all — what the attributes and methods of a class will be. Modeling enables us to cope with the complexity of a system. “What will the classes in my program be?”. and not about seminars. During OOD. and describes the information on the card. Below check points should be used in OOD phase. Seminar is included in the list of collaborators of Student card. DEFINITIONS: OOA. each containing an active verb. To do this. The symbols are used according to certain rules of methodology for communicating the complex relationships of information more clearly than descriptive text. However. The class name of an object creates a vocabulary for discussing a design. UML is the widely used unified modeling language. It forces programmers to plan out their code in order to have a better flowing program. a student needs to know if a spot is available in the seminar and. These software objects have attributes and methods.  There are no unnecessary middlemen. 24. in a library system. Responsibilities identify problems to be solved. What the student needs to do is interact with the card labeled Seminar to sign up for a seminar. During OOA phase. Therefore. he then needs to be added to the seminar. students only have information about themselves (their names and so forth). 23. Explain CRC model with the help of example. To illustrate. in the case of the library system.  Attributes and services are as high in the inheritance hierarchy as possible.Below is CRC card example for a student enrollment in seminar. No object is the clear “center” of the information flow. OOD AND OOP Object-oriented analysis (OOA) is a method of analysis that examines requirements from the perspective of the classes and objects found in the vocabulary of the problem domain. In the top of the card we write name of the class and in the body we write list of class responsibilities on the left and collaborators on the right. methods and messages. What is Model? A model is an abstract representation of a system which is constructed to understand the system prior to building or modifying it. because reality is too complex or large. During OOD phase.  No object knows about every other object in the system. CRC stands for Class. Object-oriented programming (OOP) is a method of implementation in which programs are organized as cooperative collection of objects each of which represents an instance of some classes are all members of a hierarchy of classes united via inheritance relationships. Example . there is an emphasis on defining logical software Objects that will ultimately be implemented in an Object-oriented programming language. During OOA. Object-oriented design (OOD) is the process of planning a system of interacting objects for the purpose of solving a software problem. A model is simplified representation of reality. We need to find just the right set of words to describe our objects. A CRC model is really a collection of standard index cards that represent classes. Collaborator. there is an emphasis on finding and describing the objects or concepts in the problem domain. if so.  Objects connect to other objects only if they need information from them.

and relationships in a parent model element and then reuse them in one or more child model elements. The model element at the tail of the arrow depends on the model element at the arrow head. dynamic behavior. OOA focuses on what the system does. we must only define for the child the attributes.25. employs and employed by). operations. Two classes may be aware of each other existence. such as the Unified Modeling Language (UML). There are three kinds of relationships among object: Links and Aggregation / Composition Link . some stack space. Each object represents some entity of interest in the system being modeled. Aggregation may or may not denote physical containment. a user process (the whole) within a computer operating system might be constructed from a program memory. Explain various relationships among classes. It indicates a semantic relationship between two or more classes. and run-time deployment of these collaborating objects. 6 . Dependency – Dependency is a weaker form of relationship which indicates that one class depends on another because it uses it at some point of time. We can add generalization relationships to capture attributes. What is Object-oriented Analysis and Design ? explain. By implication. and its behavior. 27.g. and some parts). The arrow may be labeled with an optional stereotype and an optional name. As yet another example. and is characterized by its class.Rumbaugh defines a link as a physical or conceptual connection between objects. deployment. A Link is an instance of an association and both are bi-directional.It is an association which denotes a whole/part relationship among objects with the ability to navigate from the whole (aggregate) to its parts (attributes). The relationship between any two objects includes the assumptions that each makes about the other. Because the child model elements in generalizations inherit the attributes. It is possible for an object to navigate to its container only if this knowledge is part of the object’s state. A dependency is shown as a dashed arrow between two model elements. he multiplicity of the aggregate end may not exceed one. A link is a specific form of an association through which an object (the client) takes the services of another object (the supplier). he parts of a composition may include classes and association. 26. There are a number of different notations for representing these models. Example in an automated system for retail point of sale. and the class Sale denotes the transaction through which several products were last sold. An object collaborates with other objects through its links. OOD on how the system does it. Three major relationship exist among classes – Association. some wheels. this association suggests bi-directional navigation. Where ambiguity appears. and use-case diagrams to indicate that the child receives all of the attributes. Both aggregation and composition enable modeling at two-levels of abstraction: the whole or the part. including what operations can be performed and what behavior results. operations. a team aggregates players. Generalization and Dependencies Association –It is set of structural relationships among classes. and an execution context (its parts). and relationships of the parent. Object-oriented design (OOD) elaborates the analysis models to produce implementation specifications.. (e. or relationships that are distinct from the parent. operations. Product N 1 Sale Product last Sale Generalization – Generalization is a relationship in which one model element (the child) is based on another model element (the parent).Composition is a form of aggregation with strong ownership and coincident lifetime of part with the whole. For example. and relationships that are defined in the parent. Explain the different kind of relationships among object. two of our key abstraction includes products and sale. a directional arrow can be added to clarify an Association or Link name. During implementation Links will become pointers or references to objects. component. -Aggregation and composition are two related (and often confused) relationships that associate a whole with its parts. As another example a car (the whole) might be constructed of an engine. Various models can be created to show the static structure. operations. Composition . Aggregation and Composition Aggregation . its state (data elements). The class Product denotes the products sold as part of sale. Object-oriented analysis and design (OOAD) is a software engineering approach that models a system as a group of interacting objects. Object-oriented analysis (OOA) applies object-modeling techniques to analyze the functional requirements for a system. Generalization relationships are used in class.

yet the wheel would continue to exist. Elements in an aggregation have existence and identify outside of the whole. -. a wheel can be removed from a car and can be moved to a heap of tires or mounted on another car.When a user process is created. they can be related to each other using a number of relationships. numbers of class diagrams are limited. It represents an instance of the Order management system at a particular time of purchase. Aggregation vs.28. An object diagram is a graph of instances. a part within a composition has no existence outside the whole.To create a class diagram. Class diagram is a graphical representation of the static view of the system and represents different aspects of the application. Both enable modeling at multiple levels of abstraction: whole or part In an aggregation association. The same notations as for class diagrams are used. So it describes a particular aspect of the entire application. -. For example. -. A collection of class diagrams represent the whole system. When a user process is destroyed. a particular stack space does not exist without being contained within a specific user process. stack space and execution context are also created. the program memory. -. in a composition association.  The use of object diagrams is fairly limited. In fact. If you can navigate to the whole in a composition. What is class diagram? Explain with example. Composition -Both denote whole-part relationships. They are not as important as class diagrams but can be used to exemplify a complex class what the actual instances and the relationships could look like. it shows a snapshot of the detailed state of a system at a point in time.First of all Order and Customer are identified as the two elements of the system and they have a one to many relationship because a customer can have multiple orders. stack space.The two inherited classes have all the properties as the Order class. 29. mainly to show examples of data structures. and execution context die too. -. A object diagram is an instance of a class diagram.We would keep Order class is an abstract class and it has two concrete classes (inheritance relationship) SpecialOrder and NormalOrder. It has the following objects . while composition is a relatively stronger form. SpecialOrder and NormalOrder 30. -.Following diagram is an example of an Order System of an application. parts can be associated with multiple wholes (often at the same time). -. To capture a particular system. for example.Example . For example. the classes have to be identified and described and when a number of classes exist. For example. So only those instances are considered which are having impact on the system and have important data and association. with two exceptions: objects are written with and all instances in a relationship are shown.In contrast.Generally UML diagrams are not directly mapped with any object oriented programming languages but the class diagram is an exception and can be directly implemented in an OOP language that has the construct for a class. including objects and data values. This is because the lifetimes of the whole and parts correspond. then you are guaranteed to be able to navigate to the parts. The wheel. -. the program memory.So the following class diagram has been drawn considering all the points mentioned above: 7 . In addition. after the wheel is removed from the car. Class diagram represents internal structure of a class and their relationships to other things. But if we consider object diagrams then we can have unlimited number of instances which are unique in nature. Order. has an existence and identity outside of the car. the car could be destroyed. parts are associated only with one whole. The lifetime of the parts in a composition is bound to the lifetime of the whole. With the help of example explain object diagram. Aggregation is a relatively weaker form of the whole-part relationship. In addition they have additional functions like dispatch () and receive ().Customer. The following diagram is an example of an object diagram. the parts and the whole within an aggregation can have different lifetimes. -.

In particular.collaboration diagrams are used to describe the structural organizations of the objects taking part in the interaction. 32. 8 . From the name Interaction it is clear that the diagram is used to describe some type of interactions among the different elements in the model. Sequence Diagram – Refer above question. Collaboration Diagram . The basic purposes of both the diagrams are similar.31. Explain interaction diagram with the help of an example. It does not show the associations among the objects. So this interaction is a part of dynamic behavior of the system. Sequence diagram emphasizes on time sequence of messages and collaboration diagram emphasizes on the structural organization of the objects that send and receive messages. The horizontal dimension represents different objects. But the difference is that the sequence diagram does not describe the object organization where as the collaboration diagram shows the object organization. A sequence diagram has two dimensions. B. The vertical dimension represents time. Now to choose between these two diagrams the main emphasis is given on the type of requirement. A sequence diagram shows an interaction arranged in time sequence. There is no significance to the horizontal ordering of the objects. If the time sequence is important then sequence diagram is used and if object organization is required then collaboration diagram is used. It is better for real-time specifications and for complex scenarios. This interactive behavior is represented in UML by two diagrams known as Sequence diagram and Collaboration diagram. A. With the help of example explain sequence diagram with concurrent objects. Normally time proceeds down the page. Method calls are similar to that of a sequence diagram. it shows the objects participating in the interaction by their “lifelines” and the messages that they exchange arranged in time sequence.

Scalability. Caching server and Servers The application is assumed to be a web based application which is deployed in a clustered environment using server 1. Component Diagram – Component diagrams are used to describe the physical artifacts of a system. This artifact includes files. Nodes are nothing but physical hardware used to deploy the application. A deployment diagram consists of nodes. A well prepared component diagram is also important for other aspects like application performance.2 API. 9 . Deployment diagram – The name Deployment itself describes the purpose of the diagram. Maintainability and Portability. Here I have shown nodes as: Monitor. server 2 and server 3. The arrowed lines from the Reporting Tool component to the Billboard Service. Deployment diagram represents the deployment view of a system. Deployment diagrams are useful for system engineers. It is related to the component diagram. So the purpose of this diagram is different. Servlet 2. The user is connecting to the application using internet.2 API. and JDBC API components mean that the Reporting Tool is dependent on those three components. Two type of implementation diagram are component diagram and deployment diagram. and JDBC API. Implementation diagram shows aspects of model implementation. Modem. Initially the system is designed using different UML diagrams and then when the artifacts are ready component diagrams are used to get an idea of the implementation. Billboard Service. Because the components are deployed using the deployment diagrams. maintenance etc. The control is flowing from the caching server to the clustered environment. An efficient deployment diagram is very important because it controls Performance. The following deployment diagram is a sample to give an idea of the deployment view of order management system. including source code structure and run-time implementation structure. Deployment diagrams are used for describing the hardware components where software components are deployed.33. executables. Explain implementation diagram with the help of example. Below diagram shows four components: Reporting Tool. But it is prepared well in advance to visualize the implementation details. Component diagrams are used during the implementation phase of an application. This diagram is very important because without it the application cannot be implemented efficiently. libraries etc. Servlet 2.

Design process is typically split into two distinct phases: Object-Oriented Analysis (OOA) and Object Oriented Design (OOD). 40. This allows the model to be used throughout the development process. Abstraction allows us to ignore the details of a problem and concentrate on the whole picture. changes usually require extensive pruning and grafting. measuring the consistency of product requirements with respect to the design specification.34. the requirements of a system undergo radical change. New uses and needs for the software are discovered. For example. -. updating. Top-down design does not preclude the creation of general routines that are shared among many programs. verification.The functional viewpoint is difficult to change and evolve Every real-world system undergoes change and evolution.A use case is a sequence of actions that provide a measurable value to an actor. design. 41. new features are added and old features are removed.Correspondence measures how well the delivered system corresponds to the needs of the problem. in terms of its state changes and message passing. programming and (if using an Object-oriented DBMS) database design. Usually. correctness. Use Cases have become the starting point of many current Object Oriented (OO) development methodologies.  The functional approach loses sight of the data – As you can see from the example above. What is quality software? Explain. -. Pitfall of top-down design.MERITS OF OBJECT APPROACH. etc… There is no one function central to these diverse concerns. It should provide a value to an actor 35. Behavior is how an object acts and reacts.  Object orientation works at a higher level of abstraction – One of our most powerful techniques is the form of selective amnesia called ‘Abstraction’. But when the system changes and new requirements are added. reduces the level of complexity and redundancy. Q . Verification is the task of determining correctness (am I building the product right?). 37. runs fast) or internal characteristics (e. To provide the ability to trace functional requirements into actual classes and operations in the system. -.Correctness determines whether or not the system correctly computes the results based on the rules created during the system analysis and design . Since it is unlikely that this exact set of requirements will return in the next problem. The characteristics of a use case are -.  Real systems are hard to characterize functionally – Most large systems do not have a top.  Encourages good programming techniques – Class are designed with single responsibility so that changing one class has no impact on the other class and so the impact is minimized. Over a period of time. 38. Another way to look at it is a use case describes a way in which a real-world actor interacts with the system. Because the software is designed around a relatively fixed tree structure. Primary purpose of Use Case. easy to use. the data is.Quality in software can be measured by external characteristics (e. CORRECTNESS. 3. -. -. inserting and querying a database table). 39. To provide a base for performing system tests that verifies the system. During the course of all this change. deleting. -. a database system involves tools for querying data. changing data.Four quality measures: correspondence. the underlying heart of the system remains comparatively constant. and makes for a cleaner system architecture and design.g. 36.High-quality software provides users with an application that meets their needs and expectations. modular design.Validation is the task of predicting correspondence (am I building the right product?). 10 . the same data is shared among a number of functions (for example. What is Use Case? Explain with the help of example. Since the decomposition only highlights the functional aspects of the problem. The attribute values are dependent upon the values of other attributes are called – Derived Attribute. They generally serve as both a foundation and entry point for the rest of the analysis and development process. the functional architecture becomes more and more unwieldy. -.  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. and validation.  Data is more stable than functions – Functions are not the most stable part of a system.  Software life cycle requires no vaulting (Jump) – The object-oriented approach uses essentially the same language to talk about analysis.  Functional orientation produces less reusable code – Each program element is designed with only a limited set of requirements in mind. the influence of the data structures on the problem is lost. Various design patterns are used which provides solution to common problem and makes the system more accurate. This heart is the data.It is used to decide and describe the functional requirements of the system. Four Quality measures are CORRESPONDENCE. keeping data consistent.g. VARIFICATION AND VALIDATION. the top-down design does not capture anything about the data involved in the program. -. To give a clear and consistent description of what the system should do. It should always be initiated by actor. 2. Functions always do something to data. This streamlines the entire software development process. the program’s design and code is not general and reusable.It should be complete. readable code).