System Development (SD) : - SD refers to all activities that go into producing an
information systems solution. Like systems analysis,
modeling, design, implementation, testing and maintenance. A software development methodology is a series of
processes that can lead to the development of an
application/software. Used to perform certain action on certain data. output Two orthogonal views of software Traditional approach focuses on the functions of the system and says software as a collection of programs (or functions /procedures ) and isolated data. Which follows structured approach and uses traditional models like waterfall… Object oriented approach centers on the object, which combines data and functionality i.e., Programs = Algorithms + Data Structures develop software by building self – contained modules or objects that can be easily replaced, modified and reused. Structured Vs object oriented Object Oriented Modeling Object oriented… software is a collection of discrete objects that encapsulate their data as well as the functionality of model real–world events “objects” A software design technique that is used in software design in object-oriented programming. Why object oriented? easier to evolve, more flexible, more robust, and more reusable than a top – down approach. Allows higher level of abstraction: at object level encapsulates (attribute/data and function/method ) Seamless transition among different phases: uses same language .. Promotes of reusability: objects are reusable because they are modeled directly out of a real – world problem domain. Why object oriented Study of 280,000 projects completed in 2000 Only about 1 in 4 was a success Legal Implications of the Current Situation 2002 survey of information technology organizations 78% have been involved in disputes that ended in litigation(court) For the organizations that entered into litigation: In 67% of the disputes, the functionality of the information system as delivered did not meet not up to the claims of the developers In 56% of the disputes, the promised delivery date slipped several times In 45% of the disputes, the defects were so severe that the information system was unusable Object oriented concepts Objects are Grouped in Classes :a set of objects that share a common structure and a common behavior. Attributes: Object state and properties . Class hierarchy attributes and methods of a super class are inherited by its subclasses Messages the means by which objects exchange information with one another Inheritance provides a means for allowing subclasses to reuse existing super class data and procedures provides mechanism for propagating changes OO Concepts … Multiple Inheritance: Some object–oriented systems permit a class to inherit its state (attributes) and behaviors from more than one super class. Polymorphism: It means that the same operation may behave differently on different classes. Object Relationships: (aggregation, association and generalization) cardinality. Encapsulation, or information hiding, is the feature of separating the external aspects of an object, from the internal implementation details of that object. Persistence, override, method, coupling, cohesion…(read more) 10 Generally
The program is composed of different objects those have
some responsibilities toward each other as well as toward the system. The objects attributes to fulfill the responsibilities and objects perform some operations on the attributes & pass messages between each other for the same Object – Oriented System Development Life Cycle The basic software development life cycle consists of analysis, design, implementation, testing and refinement. Its main aim is to transform users’ needs into a software solution. The development is a process of change, refinement,
transformation or addition to the existing product.
The software development process can be viewed as a series
of transformations, where the output of one transformation
becomes input of the subsequent transformation Transformation 1 (analysis) translates the users’ needs into system requirements & responsibilities. Transformation 2 (design ) Transformation 3 (implementation) : refines the detailed design into the system deployment that will satisfy the users’ needs. It represents embedding s/w product within its operational environment. Requirements analysis: the analyst works with— end users, and domain experts to enumerate the use cases that are key to the system’s operation. Objective: Requirements analysis essentially forms a contract between the customer and the developers on what they system is to provide. Deliverables: System charter—outlines the responsibilities of the system. System function statement—outlines the key use cases of the system. Domain analysis: an o-o model of the real-world system is developed. Good domain analysis also adds appropriate levels of abstraction. This allows structures to be built that will be reusable in many other domains. Deliverables: Class diagrams—identify key classes of the domain. Inheritance diagrams—show which classes inherit from other classes. (Do not over-use inheritance!) Use-case diagrams—illustrate how objects will interact to carry out key functions. System design :an effective and efficient implementation is defined. Deliverables Architectural descriptions—capture major design decisions, such as choice of processors, language, etc. Executable-release descriptions—define the goals and content of successive executable release implementations. Package diagrams—partition the system into high- level groupings of classes and objects. Component diagrams—show how the classes relate to the actual code. Specify the libraries and subsystems Sequence diagrams, which show the detailed operational logic to carry out functions. Relationship of OO A&D Object Oriented Methodologies Numbers of methodology are modeling the business
problem and implementing the application in an object
oriented fashion. to solve the traditional problem The major differences is documentation of information, &
modeling notations and language. What is the problem ?
The three major methodologies and their modeling
notations developed by Rumbaugh et al., Booch and
Jacobson which are the origins of the Unified Modeling Language. Each method has its strengths. Rumbaugh method is well-suited for describing the object model or the static structure of the system. The Jacobson et al, good for producing user – driven analysis models. The Booch method produces detailed object–oriented design models. Rambaugh et al.’s Object Modeling Technique(OMT) : OMT is a fast, intuitive approach for identifying and modeling all the objects making up a system. class, attributes, method, inheritance and association also can be expressed easily. OMT consists of four phases Analysis: -objects ,dynamic and functional models System Design: -structure of basic architecture of system Object Design: detail design document, Implementation: OMT separates modeling into three different parts. An object model, presented by the object model and the data dictionary. A dynamic model presented by the state diagrams and even flow diagrams. A functional model presented by data flow and constraints Booch Methodology : - It is a widely used object oriented method that helps us design our system using the object paradigm. It covers the analysis and design phases of an object oriented system. Consists Class diagrams, Object diagrams, State Transition diagrams, Module diagrams Process diagrams, Interaction programs. Jacobson Et Al. Methodology: - It cover the entire life cycle and stress traceability between different phases, both forward and backward. Unified Approach (UA) : - UA is a methodology for software development is based on methodologies by Booch, Rumbaugh and Jacobson. It tries to combine best practices, processes, and guidelines along with UML notations & diagrams UA to s/w development revolves around the following process & concepts: – Use–case driven development, Object–oriented analysis, Object– oriented design, Incremental development prototyping and Continuous testing. The Unified Process is iterative and incremental Modeling: - A model is an abstract representation of a system constructed to understand the system prior to building or modifying it. Models can represent static or dynamic situations Static Model: It can be viewed as a snapshot of a system’s parameters at rest or at a specific point in time. It is used to represent structural or static aspect of system. It assume stability and absence of change in data over time. Dynamic Model: It can viewed as collection of procedures or behaviors taken together which reflect behavior of system over time.