StudentShare
Contact Us
Sign In / Sign Up for FREE
Search
Go to advanced search...
Free

Unified Software Development Process and OOAD - Report Example

Cite this document
Summary
The author of the "Unified Software Development Process and OOAD" paper examines characteristics of RUP and OOAD, opportunities of using RUP with OOAD, applying the unified software development process to OOAD, and the future of the software development process. …
Download full paper File format: .doc, available for editing
GRAB THE BEST PAPER93.6% of users find it useful

Extract of sample "Unified Software Development Process and OOAD"

Unified Software Development Process and OOAD Student Name: Student P number: Module: Module code: Submission deadline: Introduction Development of software application has transitioned from just, writing of codes to a process that entails transforming user’s requirements into a software application or system. Therefore, software development processes are a series of activities and stages through which the transformation goes. From a conceptual base point of view, software development process can be categorized into either structured oriented or object oriented. The Unified process (Unified Software Development Process) is a common software development process dubbed iterative and incremental software development process. An extensive and well-documented version of the Unified process is the Rational Unified Process. Ideally, the Unified process is more of a framework than a process. It has been customized for easy implementation in most organizations (Jacobson Booch & Rumbaugh 2002). As for OOAD (Object Oriented Analysis and Design) is more of an approach than a process. In software engineering, OOAD is an approach taken during a software development process to model systems during development. The models of the systems are perceived as a group of objects that are interacting. The objects are a representation of the entity the represent in the developed system. Their behaviors, class and state generally characterize models within the developed systems. Furthermore, OOAD can be broadly split into OO analysis and OO designing. OO analysis is mostly applied in the analysis of functional requirements of the system being developed. OOA employs object-modeling techniques during a system analysis phase. On-the-other- hand OO designing OOD conceptualizes the analysis models from OOA produce a system design specification (implementation specifications) of a system. Conclusively OOA is aimed at achieving what the system will accomplish (functionalities), and OOD is aimed at achieving on how the system will accomplish its objectives (Booch, Maksimchuk, Eagle, Young, Conallen & Houston 2007). Overview Motivation: In recent times, usability and interaction are systems aspects that are perceived as the most relevant attributes to be considered in any application development. As a result, software developers are utilizing HCI (Human Computer Interaction) techniques to produce quality and useful software products. Ideally, extensive efforts have been made to provide knowledge of how software development process can be utilized and fine-tuned to allow development of more efficient, robust and reliable user interfaces. With the Rational Unified process in mind, research on how best UML (Unified Modeling Language) can be implemented in software development process to produce better applications. Notations such as UML in software development best represent OOAD models (Jacobson Booch & Rumbaugh 2002). History: IBM developed the Rational Unified Process after it acquired Rational Software in the year 2003. The Rational unified process is included in the RMC (Rational Method Composer) which is a product from IBM. The RMC allows for customization of development process to suite organizations in their software development processes. Some experienced companies, came up with six best approaches to software engineering and these approaches were, Iterative development (with risk possible of primary iteration), requirement management, implementation of component-based architecture, visually modeling of software products, progressive (continuously) quality verification and control changes. These approaches led to development of rational products. They greatly helped customers be in position to deliver quality products. In addition, predictability of customers’ development efforts was easy to comprehend. One Philip Kruchten was asked to sum up these approaches into knowledge that was more accessible. As a result, Philip Kruchten produced a process that is today known as RUP (Rational Unified process). As for OOAD, was initially implemented on programing languages such as Simula and Smalltalk. However, it was until the year 1982. One Grady Booch wrote a paper titled OOAD, and is seen as the pioneer of OOAD. Through this transition, emerged two books that were published around the year 1990. First, the book by Rumbaugh and it was titled Object Oriented Modeling and Design. The other book was published by Booch method and the book was titled Object Oriented design with Application. These two books were combined to form the UML notation for OOAD. Later on, Rational Corporation, the creator of Objectory Method joined the Unified Method (UML) (Booch, Maksimchuk, Eagle, Young, Conallen & Houston 2007). Current Situation: With pressure and interest to deliver quality products extension of the ULM in a RUP is eminent especially in developing user interfaces. The adaptation of these two approaches, that is, the UML and the RUP not only promote development of quality and robust systems but also advancement in the development of UI (user interfaces). Characteristics of RUP and OOAD RUP: Primarily, the RUP is an iterative process. As opposed to the traditional waterfall system life cycle, an iterative approach advocates for constant refinement and better comprehension of problem at hand. As a result, an incremental growth of better systems during development based on the numerous cycles they undergo. In addition, there are better chances of discovering potential setbacks or problems prone to the system hence adequate measure to curb them can be devised and implemented. Secondly, RUP is more about development of models as opposed to paperwork. Rich semantic representation of systems under development is easily interpreted with the option of electronically implementing these interpretations. Thirdly, RUP is Architecture-Centric when adapted for software development. Basing on robust existing architecture, RUP facilitates parallel development by reducing workload and redundancy in the development process. Fourthly, development processes in the RUP are use case oriented. Emphases on understanding how the system will be used after development are primary in the RUP. Alignments of requirements gathering to the testing processes are advocated by via the use case notations. In addition, this provides traceability threads through development of the expected software system. Another characteristic of the RUP is that it supports OO techniques. It supports the concepts such as classes, objects and their relationships. Finally, yet importantly is that RUP is configurable. Despite there not being a suitable methodology for all software, RUP can be tailor made to suit any software development project (Jacobson Booch & Rumbaugh 2002). OOAD: Objects are the fundamental components of any object-oriented system. The interaction of these objects provides an overview of any OO system. Among the characteristics of OOAD are Information hiding, data abstraction, encapsulation, modularity, polymorphism and inheritance. Information hiding is the ability for one to hide the information within a program that is susceptible to change. As a result, these protect other programs from changing once the design decisions are altered (Hoffer George & Valacich 2008). Data abstraction on the other hand entails abstracting, definition of objects that represent abstract actors that cannot only perform actions but also change and report their state while in communication with other objects. Encapsulation is when data structure and internal mechanism is hidden of a software component is hidden behind a defined interface. Modularity is also a character trait of OOAD and it is primary concerned with the extent to which software can be made up by assembly of smaller software (modules). Conceptually, modules are used to tackle different problems or concern of systems. After their development and testing (unit testing), they are integrated to form the final system. Polymorphism is the ability for objects to have more than one form. On the other hand, different objects can command common interfaces once called. Finally, yet importantly is the formation of classes from classes that have already been defined. This concept or rather character trait in OOAD is called inheritance (Hoffer George & Valacich 2008). Opportunities of using RUP with OOAD RUP advocates for configurability in the designing states and considering that, OOAD considerably simplifies any software development process hence time is saved in development. The ability to reuse code, production of robust systems through OOAD is better complemented by RUP concept of reuse of existing frameworks in the development stages. Communication is better in OOAD as there is no separation between analysis and design. Ideally, in RUP iteration in the development phase leads to constant revisiting of previous stages to understand the problem at hand. These features best combine to produce stronger and dependable systems. Resiliency of software to change advocates for development of less complicated systems as RUP promotes reusability of software frameworks or modules. In addition to module reuse, quality systems are developed through constant refinement of existing modules (Jacobson Booch & Rumbaugh 2002). Challenges In designing of systems, the initial design deliverables are always way simplified to be adequate. In RUP and OOAD, emphasis is mostly on the lines of code as opposed to other development processes like the Structured System Analysis and Design (SSAD). The determination of classes and objects for an entire system is rather challenging. OOAD and RUP are not dynamic. In designing and development despite there being other suitable methods circumstances can force these approaches be used throughout the process. Lastly, reuse is among the major advantage of these approaches. However, poor implementation procedure on the reuse of modules can lead to poor systems (Ivar & Maksimchuk 2012). Applying the Unified Software Development Process to OOAD The RUP is divided into four major processes. These processes are Inception, Elaboration, Construction and Transition. Ideally, OOAD will be implemented in the RUP in all stages necessary. From the Inception stage, its objectives are establishing a business case and scope for the project. Secondly is to outline all use case and functional requirements for the design trade-offs. Ideally, OOAD comes into play in this stage. OOA deals with what the system is expected to do. Primarily using use case from OOAD comes into play from this first phase of the RUP. In the elaboration stage, when capturing the requirements of the system, OOA is adapted. These requirements will be used in the delivery of a system design. OOD concepts and UML is adapted at this stage. Deliverables of the analysis phase form the inputs for the designing. Considering that, OOD is about how the system is to achieve its objectives (Ivar & Maksimchuk 2012). The OOD techniques are also adapted in the succeeding phase that is the construction phase. Apart from defining the use case, common UML diagrams are useful in this phase. Finally, yet importantly, is the transition phase. Despite little involvement with the OOAD technique, refinement of the developed system from information collected can lead back to previous phases where OOAD was implemented. Case Study The below case study was for Pemek Brada, Department of Computer science. The project characteristics included development of a new application that could be used within the department. Most importantly, they were to use OOAD alongside RUP approach for the project. During their Inception phase, their objectives were to understand what system to build. They had to define the version key, use cases and actors of the system. Secondly, they had to identify key functionalities of the system. After outlaying the functionalities, they had to determine at least one possible solution to the problem at hand. Cost, schedule and all the risks to be anticipated of the project were defined as well. Lastly, the team had to settle on the approach or solution to follow to solve the problem (Ivar & Maksimchuk 2012). During the elaboration phase, further review of the requirements was performed. Here after, designing of the solution based on the requirements followed next. Next was the implementation and validation of design. This is followed by reduction of key risks and refinement of the designs and the clarification of the process and setting up an environment for the development of the system (Jacobson Booch & Rumbaugh 2002). In the construction phase, some approached was proposed to minimize the development cost and time. This was to save on resources by capitalizing of the advantages of the RUP available to them. This was to be succeeded by the development of a complete product ready for the transition phase. After the development of the product, the transition phase followed nest. Several adequate testings were done prior to using the new product. In addition, all shortcomings of the system seen after implementation were revised and the product refined (Podeswa 2005). The Future of Software Development Process Software development process has transitioned over the years. From the structured system development phases to Object Oriented Development methodologies, it is safe to say the there is more to come. Ideally, during the years, experience has led to development of more flexible and easier approaches to adapt when developing software systems. Furthermore, software tools such as CASE tools are designed to suit more advanced and applicable approaches for software development. It is without a doubt that the presence of UML in various phases of a software development process brings about quality in the end software products. Quality of software is measured in terms of usability. Despite there being other qualities, usability is the most vital of them all. Moreover, cost, time and skilled personnel resources are well utilized by adaptation of UML, OOAD and RUP. This is greatly because of presence of CASE tools that greatly help in any software development processes. In addition, to software development, technology is ever advancing. With technology advancement, comes newer and more efficient ways of achieving or doing things. For instance mobile technology and cloud computing, these are aspects that change the software development techniques and approaches that we know today. Despite these technologies, I believe nothing much will change in the software development processes. However, refinement of the software development processes to accommodate new technology is inevitable. Most of the technology in place is related to software components. As newer technology is unveiled, most likely a piece of software is bound to support it. Conclusively, more applicable ways of adapting these new technologies within the software development processes is not that far away (Podeswa 2005). References Booch, G., Maksimchuk, R., Eagle, M., Young, B., Conallen, J., & Houston, K 2007, Object Oriented Analysis and Design with Application. Addison Wesley, Reading MA. Hoffer, J., George, J., & Valacich, J 2008, Modern System Analysis and Design. Persons Prentice Hall, Upper Saddle River, New Jersey. Jacobson, L., Booch, G., & Rumbaugh, J., 2002, The Unified Software Development Process. Reading mass, Addison Wesley. Ivar, J., & Maksimchuk, R., 2012, Unified Software Development. Pearson Education, New Jersey. Podeswa, H 2005, Business Object-Oriented Modeling for Business Analysts. Course Technology, Boston MA. Read More
Cite this document
  • APA
  • MLA
  • CHICAGO
(Unified Software Development Process and OOAD Report Example | Topics and Well Written Essays - 2250 words, n.d.)
Unified Software Development Process and OOAD Report Example | Topics and Well Written Essays - 2250 words. https://studentshare.org/design-technology/2048559-unified-software-development-process-and-ooad
(Unified Software Development Process and OOAD Report Example | Topics and Well Written Essays - 2250 Words)
Unified Software Development Process and OOAD Report Example | Topics and Well Written Essays - 2250 Words. https://studentshare.org/design-technology/2048559-unified-software-development-process-and-ooad.
“Unified Software Development Process and OOAD Report Example | Topics and Well Written Essays - 2250 Words”. https://studentshare.org/design-technology/2048559-unified-software-development-process-and-ooad.
  • Cited: 0 times

CHECK THESE SAMPLES OF Unified Software Development Process and OOAD

Contemporary Software Systems: Singularity

A process cannot dynamically load or generate code.... hellip;  Singularity is a Microsoft Research project to develop techniques and tools for building dependable systems that address the challenges faced by contemporary software systems.... Singularity will improve software reliability and boost research in programming language and tools.... Singularity is based on advances in programming languages and programming tools to develop and build a new system architecture and operating system (named Singularity), with the aim of producing a more robust and dependable software platform....
10 Pages (2500 words) Term Paper

Reflection paper

Trojan is a large capital software development company.... Numerous change management methods such like business process re-engineering have been advanced to achieve this seeming need.... Simulation models, for instance, can vigorously form diverse samples of stricture standards such like arrival rates or service intervals which can assist in the detection of process holdup of and appropriate choices.... Simulation models can offer a graphical exhibition of process models that can be interactively abridged and vibrant to show process dynamics....
5 Pages (1250 words) Book Report/Review

Installation project

There have been recent developments where 4D CAD facilitates the visual examination of schedule simulation and progress management issues, which… Thus, it serves as an important tool for supporting the decision-making process.... In the problem at hand, we need to make an installation that makes 4 dimensional space visualization at San Francisco Airport....
5 Pages (1250 words) Assignment

Design for the project

From the research "Design for the project," it is clear that system design refers to the process of defining the components, modules, interfaces, and data for a system to satisfy the specified requirements.... It usually is a systematic and a rigorous action.... hellip; Various design methods and tools shall be used so as to ensure that the design is in correspondence with the requirements....
16 Pages (4000 words) Essay

Contemporary Software Systems

The paper 'Contemporary software Systems' presents problems that create challenges and opportunities for broad new OS research.... hellip; Singularity is a Microsoft Research project to develop techniques and tools for building dependable systems that address the challenges faced by contemporary software systems.... Singularity will improve software reliability and boost research in programming language and tools.... Singularity is based on advances in programming languages and programming tools to develop and build a new system architecture and operating system (named Singularity), with the aim of producing a more robust and dependable software platform....
10 Pages (2500 words) Case Study

Privacy Issues Related to Cyberspace

he study has considered IBM, Microsoft and Oracle, for the learning, which are three top software companies in the US.... They are also the top three software organizations in the world.... Microsoft is known to be the largest software company in the list of the software companies, where the revenues of the company are recorded to be twice as that of IBM....
10 Pages (2500 words) Assignment

Planning an Application Server Migration

This is because the server will be used as a cloud desktop thus providing the following services: Hosting desktops remote users' access to corporate files and data, Mobile users and Application development (Pivot, 2014).... This assignment "Planning an Application Server Migration" shows planning an application server migration for a large international purchasing company that has just bought a growing local company that manufactures western wear at several locations....
10 Pages (2500 words) Assignment

IT Application Development

The act of sharing and processing of information becomes simpler in the process.... Big software vendors too are integrating XML into their software products in order to support online availability at any one time.... … IntroductionIn many organizations or business enterprises today, there are existences of increased stand-alone application systems that are used for day-to-day running of business operations....
7 Pages (1750 words) Assignment
sponsored ads
We use cookies to create the best experience for you. Keep on browsing if you are OK with that, or find out how to manage cookies.
Contact Us