Deriving Best Practices from Development Methodology Base (Part 1)
Total Page:16
File Type:pdf, Size:1020Kb
International Journal of Engineering Research & Technology (IJERT) ISSN: 2278-0181 Vol. 1 Issue 6, August - 2012 Deriving Best Practices from Development Methodology Base (Part 1) Bhushan Thakare Bhushan Bhokse Laxmi Thakare Assistant Professor Assistant Professor Assistant Professor STES Sinhgad Academy of MAEER Maharashtra Academy MAEER Maharashtra Academy Engineering, Kondhwa, Pune, of Engineering, Alandi (D), of Engineering, Alandi (D), Maharashtra, India Pune, Pune, Maharashtra, India Maharashtra, India ABSTRACT abstract form, a process is a sequence of steps—sometimes deprecatingly called a recipe—that aims to guide its users in There are abundant methodologies for the product applying the modelling language for accomplishing a set of development. Out of which only few could have renowned software development tasks. The process thus acts as the because for their universal importance. But some system or dynamic, behavioural component of the methodology, process cannot follow general methodology. Hence some governing the technical development and management sub process follows specific methodology e.g., XP follows Agile processes, and therefore encompassing the phases, methodology. Hence we surveyed a detailed review of procedures, rules, techniques, and tools prescribed by the existing software development methodologies in which methodology, as well as the issues pertaining to mainly on their development processes. The descriptions of documentation and project management.. methodologies fashioned aimed to provide an abstract and structured description in a way that facilitates their elaborate And in the next paper named Deriving Best Practices from analysis for the purposes of improving understanding, and Development Methodology Base (Paper 2) will see ASD making it easier to tailor, select, and evaluate the processes. (Adaptive Software Development), BON (Business Object Notation), Catalysis, Coad and Yourdon, Crystal, Doors General Terms (Design of Object Oriented Real Time Systems), DSDM We are providing a comprehensive review of the processes of (Dynamic Systems Development Method), EROOS (Entity a selection of methodologies. The methodologies reviewed in this article are: Relationship based Object-Oriented Specification), FDD (Feature Driven Development) , FOOM (Functional and Booch, CBD/e (Component Based Development), CRC Object Oriented Methodology) , Hodge-Mock, ICONIX, (Class-Responsibility-Collaborator), Demeter, dX, EUP IDEA (Intelligent Database Environment for Advanced (Enterprise Unified Process), Fusion, HOOD (Hierarchical Object-Oriented Design), Octopus, OMT (Object Modeling Applications), MOSES (Modeling Software and Platform Technique), OOBE (Object-Oriented Business Engineering), Architecture in UML-2 for Simulation-based Performance OOram, OOSE (Object-Oriented Software Engineering), Analysis), MERODE (Model Driven, Existence Dependency OPEN (Object-Oriented Process, Environment and Notation), Relation, Object-Oriented Development), Object COMX OSA (Object-Oriented System Analysis), RDD (Object Communicating X-Machines), Objecteering, OEP (Responsibility-Driven Design), ROPES (Rapid Object- (Object Engineering Process), OOIE (Object-Oriented Oriented Process for Embedded Systems), Scrum, Syntropy and XP (Xtreme Programming) etc. Information Engineering), OOHDM (Object-Oriented Hypermedia Design Model),OOSC (Object-Oriented Keywords Software Construction),OOSP (Object-Oriented Software Methodology, Phases, Software Development, Object Process), OPM (Object-Process Methodology), RAD (Rapid Oriented, Design, Management, Software Engineering. Application Development), RUP (Rational Unified Process)/ 1. INTRODUCTION UML, SDL (Specification and Description Language) / A Software Development Methodology is a framework for SOMT (SDL-oriented Object Modeling Technique), applying software engineering practices to develop software- Shlaer and Mellor methodologies. intensive systems. Software development methodologies provide the means for timely and orderly execution of the 2. LITERATURE SURVEY various finer-grained techniques and methods of software 2.1 Booch: engineering. A software development methodology can be defined as ―a recommended collection of phases, procedures, Booch has modeled object-oriented design as a repeating rules, techniques, tools, documentation, management, and process (referred to as ―The Micro Process‖) within a training used to develop a system‖. lifecycle-level repeating process (referred to as ―The Macro Whereas the modelling language provides developers with a Process‖). means to model the different aspects of the system, the a) Macro Process (Booch). The macro process serves as a process determines what activities should be carried out to controlling framework for the micro process. The macro develop the system, in what order, and how. In its most process tends to follow these steps: www.ijert.org 1 International Journal of Engineering Research & Technology (IJERT) ISSN: 2278-0181 Vol. 1 Issue 6, August - 2012 (1) Conceptualization: Establish core requirements for CRC cards characterize objects by class name, software; responsibilities, and collaborators, as a way of giving learners a direct experience of objects. Three dimensions which (2) Analysis: Develop a model of the system’s desired identify the role of an object in a design: class name, behavior; responsibilities, and collaborators. The class name of an (3) Design: Create architecture for the implementation; object creates a vocabulary for discussing a design. Responsibilities identify problems to be solved. The solutions (4) Evolution: Evolve the implementation through successive will exist in many versions and refinements. A responsibility refinements; serves as a handle for discussing potential solutions. (5) Maintenance: Manage post-delivery evolution. Collaborators objects will send or be sent messages in the course of satisfying responsibilities. b) Micro Process (Booch). The micro process tends to follow these steps: Classes are created that describe real world objects that exist in a system. These classes are assigned responsibilities, i.e., (1) Identify the classes and objects at a given level of data and actions that the class is required to support. A class abstraction. may fulfill a responsibility by itself, or it may collaborate with some other class to fulfill the responsibility. The advantage is (2) Identify the semantics of classes and objects. that the design team can easily move the cards around to (3) Identify the relationships among classes and objects. visualize the design, and modifications to the design can be made quickly by simply replacing cards. (4) Specify the interface and implementation of classes and objects. 2.4 Demeter: 2.2 CBD/e: (Component Base Development) Adaptive programming deals with specifying the connections between objects as loosely as possible and this is called CBD/e is a methodology for allowing organizations to begin "structure-shy" programming. The Demeter system and tools component-based development quickly. CBD/e consists of are all about "Adaptive" programming. two major parts Process and Analysis and Design (A&D) methodology. Law of Demeter (LoD) for functions says that: A method "M" of an object "O" should invoke only the methods of the 1. The CBD/e Process following kinds of objects: The CBD/e process is based on repeating plan which is 1. Itself follows: 2. Its parameters a) Assessment: To decide what your organization wants from CBD. 3. Any objects it creates/instantiates b) Planning: Planning takes place, including selecting the 4. Its direct component objects project that will be executed and the participants for this The basic idea is to avoid invoking methods of a member particular program. object that is returned by another method. When you do this, c) Education: Fundamental training that is required to go you make structural assumptions about the container object to CBD. that may be likely to change. The container may later need to be modified to contain a different number of the contained d) Infrastructure: Your organization’s infrastructure is objects, or it may end up being changed to contain another adjusted to enable component-based development. object which contains the original component object. If the e) Execution: This is where the start of implementation "returned" object isn't a subpart of the object whose method occurs. was invoked, nor of some other object, then it typically is not a violation of LoD to invoke a method of the returned object. f) Improvement: This is where to review the results. Using the LoD you instead ask the container to invoke a 2) The CBD/e Analysis and Design Methodology method on its elements and return the result. The details of A&D methodology uses behavioral analysis and design how the container propagates the message to its elements are techniques to facilitate building components. Behavioral encapsulated by the containing object. analysis and design is based on the concept that the pieces of A side-effect of this is that if you conform to LoD, while it your system are not just chunks of data that are there to be may quite increase the maintainability and adaptiveness of worked by whatever processes you develop. your software system, you also end up having to write lots of The first steps design the specification, which describes the little wrapper methods to propagate methods calls to its solution without any implementation details. The specification components. This problem is addressed by the Demeter tools,