Bharathar University OOA notes.txt

download Bharathar University OOA notes.txt

of 6

Transcript of Bharathar University OOA notes.txt

  • 7/28/2019 Bharathar University OOA notes.txt

    1/6

    OOSD Life cycle ( Object oriented software development cycle)

    The object-oriented software development life cycle (SDLC) consists of the following processes: object-oriented analysis, object-oriented design, Prototying, Component based development and incremental testing.

    ? Object-oriented analysis-use case driven? Object-oriented design? Prototyping? Component-based development? Incremental testing

    1. Object-oriented analysis-use case drivenThe object-oriented analysis phase of software development is concerned withdetermining the system requirements and identifying classes and their re1ationship toother classes in the problem domain. To understand the system requirements, we need toidentify the users or the actors. Who are the actors and how do they use the system? Inobject-oriented as well as traditional development, scenarios are used to help analystsunderstand requirements. However, these scenarios may be treated informally or not fully

    documented. Ivar Jacobson came up with the concept of the use case, his name forascenario to describe the user computer system interaction. The concept worked sowellthat it became a primary element in system development.

    2. Object Oriented DesignThe goal of object-oriented design (OOD) is to design the classes identified during the analysis phase and the user interface. During this phase, we identify and define additional objects and classes that support implementation of the requirements. First, build the object model based on objects and their relationships,then iterate and refine the model: .Design and refineclasses. .Design and refine attributes. .Design and refine methods. .Design and

    refinestructures. .Design and refine associations.

    3. Prototyping

    A prototype enables you to fully understand how easy or difficult it will be toimplement some of the features of the system. It also can give users a chance tocomment on the usability and usefulness of the user interface design and lets you assess the fit between the software tools selected, the functional specification, and the user needs. Additionally, prototyping can further define the use cases, and it actually makes use-case modeling much easier.

    Prototypes have been categorized in various ways. The following categories are

    some of the commonly accepted prototypes and represent very distinct ways of viewing aprototype, each having its own strengths:

    Horizontal Prototype : (is a simulation of the interface but contains no functionality) Vertical Prototype : (is a subset of the system features with complete functionality) Analysis Prototype : (is an aid for exploring the problem domain)Domain prototype (is an aid for the incremental development of the ultimate softw

  • 7/28/2019 Bharathar University OOA notes.txt

    2/6

    are solution.)A horizontal prototype is a simulation of the interface (that is, it has the entireuser interface that will be in the full-featured system) but contains no functionality. Thishas the advantages of being very quick to implement, providing a good overall feel of thesystem, and allowing users to evaluate the interface on the basis of their normal, expectedperception of the system.

    A vertical prototype is a subset of the system features with complete functionality.The principal advantage of this method is that the few implemented functions canbe tested in great depth. In practice, prototypes are a hybrid between horizontal andvertical: The major portions of the interface are established so the user can get the feel ofthe system, and features having a high degree of risk are prototyped with much morefunctionality.

    An analysis prototype is an aid for exploring the problem domain. This class ofprototype is used to inform the user and demonstrate the proof of a concept. It

    is not usedas the basis of development, however, and is discarded when it has served its purpose.The final product will use the concepts exposed by the prototype, not its code.

    A domain prototype is an aid for the incremental development of the ultimate software solution. It often is used as a tool for the staged delivery of subsystemsto the users or other membersof the development team. It demonstrates the feasibility of the implementation and eventually will evolve into a deliverable product.

    3. IMPLEMENTATION: COMPONENT-BASED DEVELOPMENT ( Figure 4.1)

    Component-based development (CBD) is an industrialized approach to the softwaredevelopment process. Application development moves from custom development to assembly of prebuilt, pretested, reusable software components that operate with each other. Two basic ideas underlie component-based development.

    First, the application development can be improved significantly if applicationscan be assembled quickly from prefabricated software components. Second, an increasingly large collection of interpretable software components could be made available to developers in both general and specialist catalogs. Put together, these two ideas move application development from a craft activity to an industrialprocess fit to meet the needs of modern, highly dynamic, competitive, global businesses. The industrialization of application development is akin to similar transformations that occurred in other human endeavors.

    An application wrapper surrounds a complete system, both code and data. Thiswrapper then provides an interface that can interact with both the legacy and the newsoftware systems available.

    The software components are the functional units of a program, building blocksoffering a collection of reusable services. A software component can request a servicefrom another component or deliver its own services on request. The delivery of s

  • 7/28/2019 Bharathar University OOA notes.txt

    3/6

    ervicesis independent, which means that components work together to accomplish a task.Ofcourse, components may depend on one another without interfering with each other. Eachcomponent is unaware of the context or inner workings of the other components. In short,the object-oriented concept addresses analysis.

    Rapidapplication developmentRapidapplication development (RAD) is a set of tools and techniques that can beused to buildan application faster than typically possible with traditional methods. The termoften isused in conjuction with software prototyping. It is widely held that, to achieveRAD, thedeveloper sacrifices the quality of the product for a quicker delivery. This isnotnecessarily the case.

    5. INCREMENTAL TESTING

    Software development and all of its activities including testing are an iterativ

    e process. If you wait until after development to test an application for bugs and performance, you could be wasting thousands of dollars and hours of time.

    If you wait until after development to test an application for bugs andperformance, you could be wasting thousands of dollars and hours of time. That'swhathappened at Bankers Trust in 1992: "Our testing was very complete and good, butit wascosting a lot of money and would add months onto a project," says Glenn Shimamoto,vice president of technology and strategic planning at the New York bank . In on

    e case,testing added nearly six months to the development of a funds transfer application. Theproblem was that developers would turn over applications to a quality assurance(QA)group for testing only after development was completed. Since the QA group wasn'tincluded in the initial plan, it had no clear picture of the system characteristics until itcame time to test.

    6. REUSABILITY

    A major benefit of object-oriented system development is reusability, and this isthe most difficult promise to deliver on. For an object to be really reusable, much moreeffort must be spent designing it. The potential benefits of reuse are clear: increased reliability, reduced time and cost for development, and improved consistency

    The reuse strategy can be based on the following:

  • 7/28/2019 Bharathar University OOA notes.txt

    4/6

    ? .Information hiding (encapsulation).? .Conformance to naming standards.? .Creation and administration of an object repository.? .Encouragement by strategic management of reuse as opposed to constantredevelopment.

    The essence of the software process is the transformation of users needs into a software solution. The O-O SDLC is an iterative process and is divided into analysis, design, prototyping/ implementation, and testing.

    OBJECT ORIENTED METHODOLOGIES

    A methodology is explained as the science of methods. A method is a set of procedures in which a specific goal is approached step by step.

    Here, we look at the methodologies developed by Rumbaugh et al., Booch, and Jacobson which are the origins of the Unified Modeling Language (UML) and the basesof the UA

    RUMBAUGHS OB.JECTMODELING TECHNIQUE

    The object modeling technique (OMT) presented by Jim Rumbaugh and his coworkersdescribes a method for the analysis, design, and implementation of a system using an object-oriented technique. OMT. OMT is a fast. intuitive approach for identifying and modeling all the objects making up a system.

    OMT consists of four phases, which can be performed iteratively:

    1. Analysis. The results are objects and dynamic and functional models.

    2. System design. The results are a structure of the basic architecture of the system alongwith high-level strategy decisions.

    3. Object design. This phase produces a design document, consisting of detailedobjectsstatic, dynamic, and functional models.4. Implementation. This activity produces reusable, extendible, and robust code.

    OMT separates modeling into three different parts:

    1. An object model, presented by the object model and the data dictionary.2. A dynamic model, presented by the state diagrams and event flow diagrams.3. A functional model, presented by data flow and constraints.

    THE OBJECT MODELThe object model describes the structure of objects in a system: their identity,relationships to other objects, attributes, and operations. The object model isrepresented graphically with an object diagram (see Fig ). The object diagram contains classes interconnected by association lines. Each class represents a setof individual objects. The association lines establish relationships among theclasses. Each association line represents a set of links from the objects of oneclass to the objects of another class.

  • 7/28/2019 Bharathar University OOA notes.txt

    5/6

    THE OMT DYNAMIC MODELOMT provides a detailed and comprehensive dynamic model, in addition toletting you depict states, transitions, events, and actions. The OMT state transitiondiagram is a network of states and events (see Fig). Each state receives one ormoreevents, at which time it makes the transition to the next state. The next statedepends onthe current state as well as the events.

    THE OMT FUNCTIONAL MODELThe OMT data flow diagram (DFD) shows the flow of data between different processes in a business. An OMT DFD provides a simple and intuitive method for describing business processes without focusing on the details of computer systems.

    Booch Methodology

    The Booch methodology covers the analysis and design phases of an object oriented system. Booch sometimes is criticized for his large set of symbols.

    The Booch method consists of the following:

    diagrams:Class diagrams

    Object diagramsState transition diagramsModule diagramsProcess diagramsInteraction diagrams

    The data flowlines include arrows to show the direction of data element movement

    .The circles represent processes. The boxes represent external entities.A data store reveals the storage of data.The Booch methodology prescribes a macro development process and a micro development process.

    The macro development process consists of the following steps:

    1. Conceptualization. During conceptualization, you establish the core requirements of

  • 7/28/2019 Bharathar University OOA notes.txt

    6/6

    the system. You establish a set of goals and develop a prototype to prove the concept.

    2. Analysis and development of the model. In this step, you use the class diagram to describe the roles and responsibilities objects are to carry out in performing the desired behavior of the system. Then, you use the object diagram to describe the desired behavior of the system in terms of scenarios or, alternatively, use the interaction diagram to describe behavior of the system in terms of scenarios.

    3. Design or create the system architecture. In the design phase, you use the class diagram to decide what classes exist and how they relate to each other. Next, you use the object diagram to decide what mechanisms are used to regulate howobjects collaborate. Then, you use the module diagram to map out where each class and object should be declared. Finally, you use the process diagram to determine to which processor to allocate a process. Also, determine the schedules for multiple processes on each relevant processor.

    4. Evolution or implementation. Successively refine the system through many iterations.Produce a stream of software implementations (or executable releases), each of which is arefinement of the prior one.

    5. Maintenance. Make localized changes to the system to add new requirements andeliminate bugs.

    THEMICRO DEVELOPMENT PROCESS

    Each macro development process has its own micro development processes. The micro process is a description of the day-to-day activities by a single or small group of software developers, which could look blurry to an outside viewer, since the analysis and design phases are not clearly defined.

    An alarm class state transition diagram with Booch notation. This diagram cancapture the state of a class based on a stimulus. For example, a stimulus causes

    the classto perform some processing, followed by a transition to another state. In this case, thealarm silenced state can be changed to alarm sounding state and vice versa.

    The micro development process consists of the following steps:1. Identify classes and objects.2. Identify class and object semantics.3. Identify class and object relationships.4. Identify class and object inteifaces and implementation.

    This is the end of the Booch model.

    Object oriented database - 202