Professional Documents
Culture Documents
3. Justify that UML is a language for modeling, visualizing, specifying, constructing, and documenting ?
Ans:The Unified Modelling Language is a graphical modelling language that provides us with syntax for describing the major element of software systems. The UML is gaining adoption as a single, industry wide language. The UML was originally designed by the three amigos at rational crop: Grady Booch Rumbaugh Jacobson The Language is very rich and carries with it many aspects of software engineering best practices: Modeling :- The language provides a vocabulary and the rules for combining words in that vocabulary for the purpose of communication. A modelling language is a language whose vocabulary and rules focus on the conceptual and physical representation of a system. A modelling language such as the UML is thus a standard language for software blueprints. Modeling yields an understanding of system. No one model is ever sufficient. You often need multiple models that are connected to one another in order to understand anything but the most trivial system. Visualizing: - The UML is more than just a bunch of graphical symbols. Behind each symbol in the UML notation is a well defined semantics. In this manner, one developer can write a model in the UML, and another developer, or even another tool, can interpret that model unambiguously some things are best modelled textually. Other are best modelled graphically. The UML is such a graphical language. Using UML you can produce explicit models that facilitate communication. Specifying: - Specifying means building models that are precise, unambiguous and complete. The UML addresses the specification of all the important analysis, design and implementation decisions that must be in developing and deploying a software intensive system. This mapping permits forward engineering. The generation of code from a UML model into a programming language. The reverse is also possible. You can reconstruct a model from an implementation back into the UML. Reverse engineering is not magic. The UML is sufficiently expressive and un ambiguous to permit the direct execution of model, the simulation of systems and the instrumentation of running systems. Documenting :- The UML addresses the documentation of systems architecture and all of its details. The UML also provide a language for
expressing requirements and for tests. The UML provide a language for modelling the activities of project planning and release management. A healthy software organization produces all sorts of artefacts in addition to raw executable code. These artefacts include: Requirements Architecture Design Source Code Project plans Tests Prototypes Releases
4. What are the potential advantages of treating two related classes as subclasses of some super class?
Ans:Classes are composed from structural and behavioral constituents .Programming languages that include classes as a programming construct offer support for various class-related features, and the syntax required to use these features varies greatly from one programming language to another. Every class implements (or realizes) an interface by providing structure and behavior. Structure consists of data and state, and behavior consists of code that specifies how methods are implemented. There is a distinction between the definition of an interface and the implementation of that interface; however, this line is blurred in many programming languages because class declarations both define and implement an interface. Some languages, however, provide features that separate interface and implementation. For example, an abstract class can define an interface without providing implementation.Languages that support class inheritance also allow classes to inherit interfaces from the classes that they are derived from. In languages that support access specifiers, the interface of a class is considered to be the set of public members of the class, including both methods and attributes any private members or internal data structures are not intended to be depended on by external code and thus are not part of the interface. This approach has the benefit that client code can assume that the operations of an interface are available for use whenever the client has access to the object. Many languages support the concept of information hiding and encapsulation, typically with access specifiers for class members. Access specifiers control access to class members. Some access specifiers may also control how
classes inherit such constraints. Their primary purpose is to separate the interface of a class from its implementation.
5. How is responsibility-driven design used as a guide for deciding how to allocate operations to classes?
Ans:The principle of responsibility-driven design states that, if class A sends a message to class B telling it to do something, it is the responsibility of class B to perform the requested operation. The harder part is determining to which class each operation should be allocated. The sequence of the realization of the Estimate funds available for week use case of the star foundation case study includes the message 3:request estimated return on investments for week. The weekly return on investments is computed by summing the estimated annual return of each investment and dividing by 52.thus, the star foundation case study must include the operation getAnnulReturnonInvestment so that, for each object of investment class, the estimated annual return on that investment can be determined, it is not important whether the message to determine the estimated annual return is sent from star application class, or any other class. Identifying the operations to be allocated to the various classes is usually straightforward. It is not important whether the message to determine the estimated annual return is sent from star application class, asset class, or any other class.
The aim of the requirement work flow is to ensure that the developer build the right information system. This is achieved by describing the target information system sufficiently clearly and accurately that the two main stakeholders, the client and the developers, can agree on what the information system should do and should not do. In order to achieve this, the requirements have to be fully understood by the client.
The Analysis Workflow :The purpose of the analysis workflow is to analyze and refine the requirements. By doing this we achieve the detailed understanding of the requirement that we must have to develop an information system correctly and to maintain it easily. It would be simpler to develop an information system by continuing with further iterations of the requirements workflow until we obtain the necessary understanding of the target information system.
The Design Workflow :During the design workflow we refine the analysis workflow until the material is in a form that can be implemented by the programmers. In addition, a number of requirements need to be finalized at this time, including choice of programming language, as well as reuse and portability issues.
The implementation Workflow :The aim of the implementation workflow is to implement the target information system in the selected implementation language. More precisely, a large information system is partitioned into smaller subsystems, which are then implemented in parallel by coding teams. The subsystems, in turn, consist of components or code artefacts. .