Lect 1 4 SE II Updated

You might also like

Download as pdf
Download as pdf
You are on page 1of 40
Object Oriented Analysis & Design Books . Required: 2 Applying UI. and Pattems: An introduction to Object. ‘Analysis and Design and Iterative Development,” 34 Edition, by Craig Larman’ = Other books of interest (Reference): “Modern System analysis and Design” 4" edition , by Hoffer ‘Design Patterns," by E. Gamma, R. Helm, R. Johnson, and J Vissi “The Unified Modeling Language Reference Manual,” by J Rumbaugh, |. Jacobson and G: Booch Why Object-Oriented? “The "software crises” came about when people realized the major problems in software development were not algorithmic, but were caused by communication difficulties and the management of complexity” no The Whorfian Hypothesis: The language in which an idea is thought or expressed colors or directs in a very emphatic manner the nature of the thought Why Object-Oriented? Software Complexity = No two parts are alike = Have many times more states even than computer = Scaling up is not repetition of the same elements in larger sizes. Complexity of software is an essential property Complexity increase the problems like a Lack of proper communications a Enumerating a Reduces possible states of the program Why Object-Oriented. Dealing with complexity using OO Development Technique = Two Strong weapons to attack complexity 2 Decomposition : Decomposition of a bigger problem into small manageable fragments a Abstraction : “Abstraction means focusing on the essential elements of a complex problem and ignoring those elements that are unessential making it easier to comprehend the problem in its entirety.” = Abstraction is the basis for models and a reliable model is the basis of all sound engineering practices. All about to implement “Object Model” = Consisting of objects and classes. Describes what will be necessary to make the desired software product. = The object model is the result of OOA and OOD and the basis for implementation. There exists no standard object model The following aspects should in any case be contained in a good object model: a Abstraction Encapsulation Modularity Hierarchy Typing Concurrency Persistence Object Model (Continue...) = Abstraction: "An abstraction denotes the essential characteristics of an object that distinguish it from all other kinds of objects and thus provide crisply defined conceptual boundaries, relative to the perspective of the view". Encapsulation: ‘It is the process of compartmentalizing the elements of an abstraction that constitute its structure and behavior, it serves to separate the contractual interface of an abstraction and its implementation” Modularity:" It is the property of a system that has been decomposed into a set of cohesive and loosely coupled modules” = Hierarchy:" /t is a ranking or ordering of abstractions” Object Model (Continue...) = Typing: "It is the enforcement of the class of an object, such that objects of different types may not be interchanged, or at the most, they may be interchanged only in a very restricted ways ” Concurrency:" the property that distinguishes an active object form one that is not active” Persistence:" the property of an object through which its existence transcends time( i.e. the object continues to exist after its creator ceases to exist) and/or space( i.e. the object's location moves from address space in which it was created)” What is OOAD? = Analysis — understanding, finding and describing concepts in the problem domain. Design — understanding and defining software solution/objects that represent the analysis concepts and will eventually be implemented in code. OOAD — Analysis in object-oriented and design in object-oriented. A software development approach that emphasizes a logical solution based on objects. Object Oriented Analysis (OOA) Object oriented analysis is the process of translating a description of a problem into an object model “An object can be defined as a software bundle of variables and related methods” “A class can be defined as a blueprint or prototype that defines the variables and methods common to all objects of a certain kind” Objects are instances of classes and each class represents some abstraction of a behavior that is defined in the system requirements Object oriented programming (OOP) = OOP is a programming style using a object oriented language to implement the software product based on the object model. = Object oriented languages uses objects as fundamental building blocks and the resulting software product will consist of a collection of collaborating objects How to Do OOAD ? = Use Rational Unified Process (RUP) or any other iterative model = Use Unified Modeling Language (UML) = Use (OO) Design Pattems (Reusable solutions to typical problems = Each design pattem systematically names, explains, and evaluates an important and recurring design in object-oriented systems.” [Gamma] Terminologies What is OBJECT? A “concept” is an idea or notion that we apply to the things, or objects, in our awareness ‘An "object" is anything to which a concept applies. Thing drawn from the problem domain or solution space. 2 4. allving person in the problem domain, a software component in the solution space. Asstructure that ~ has identity (i... discrete and distinguishable), and - bundles together attributes (the data part, or state) and behavior (the function/code part) Itis an instance of a collective concept. i... a class. Terminologies What is CLASS? a collection of objects that share common properties, attributes, behavior and semantics, in general ‘Accollection of objects wih ine same data structure (atinbutes, state variables) ang behavior (function/code/operations) in the solutn space. ‘A blueprint or definition of objects. ‘Aactory or instanvating objects. ‘The description of a collection of related components. Classification ‘2 Grouping of common objects into a class Instance. 2 An object created by a class, Instantiation. 9 The act of creating an instance. Cf. Containment. Objects that contain other objects as components. Teams erminologies What is OPERATION? ‘An “operation” is a process that can be requested as a unit. It is the mechanism for state change (i.e., event). - Behavior across different kinds of objects What is MESSAGE? = specify what behavior receiver objects need to perform =~ details of how to perform are left up to the receiver = - State information is accessed via messages What is METHOD? ~ specify how operations are to be carried out (hence implements a message) =~ must have access to data = = can manipulate data directly Specific implementation of an operation by a certain class Te erminologies Specialization The act of defining one class as a refinement of another. Subclass A class defined in terms of a specialization of a super class using inheritance. Super class A class serving as a base for inheritance in a class hierarchy Inheritance Automatic duplication of super class attribute and behavior definitions in subclass. What is generalization? What is over-generalization? Terminologies = Software Development Process(SDP):A proper approach to track down the activities, planned for a particular software project The guide map for software development, which consists of many complex interrelated activities Software Development Life Cycle(SDLC):The most common activities of all SDP s are performed into phases, which combined, are called as Software Development Life Cycle (SDLC). Software Development Methodology (SDM): Complex nature and heavy requirement creep requires development strategies often referred to as software development methodologies (SDM), which is combination of a software process model (SPM) and one or several software development techniques (SDT). SS Terminologies Process “A process defines who is doing what and how to reach a certain goal”. [Jacobson, Booch and Rumbaugh] Software process “A set of activities. methods, practices, and transformations (performed by people) to develop and maintain software and the associated product." [CMM for Software V 1.1] Software Development Process Model (SDPM) “A method to organize the activities related to creation, delivery. and maintenance of software systems” e.g. Unified Process Model(RUP). Water Fall Model, RAD etc Software Development Technique (SDT) “A technique which fusther enhance the capability to perform a certain activity/task of a SPM” e.g. Object Oriented Development, Structural Development, Prototyping. Time Boxing ete What is Analysis and Design: = Analysis emphasizes an investigation of the problem rather than how a solution is defined = Design emphasizes a logical solution, how the system fulfills the requirements Analysis and Design (cont) = Division between A&D is fuzzy = A&D activities exist on a continuum = Some practitioners can classify an activity as analysis while others put it into design category More analysis oriented More design oriented ee -what -how requirements -logical solution investigation of domain -understanding and -understanding of problem description of solution OO Analy = 00 Analysis requires domain knowledge and OO analysis expertise a Hence, there is a need for both a domain expert and an OO analysis expert 2 Domain expert is always right about decisions relating to problem domain a Ifyou are lucky, these two experts are the same person = 00 Analysis identifies 2 Concepts in the problem domain a Relationships among those concepts a Attributes of those concepts Introduction To Unified Modeling Language (UML) “Owing a hammer doesn’t make one an architect” = Analysing and designing a system from an object perspective is critical = UML a amainly diagrammatic notation for modelling systems using object-oriented concepts. = Patterns a Problem-solution formulas that codify exemplary design principles Unified Modeling Language (UML) An effort by Rational to standardize OOA&D notation UML attempts to combine the best of the best from = Data Modeling concepts (Entity Relationship Diagrams) © Business Modeling (work flow) © Object Modeling = Component Modeling “A graphical language for visualizing, specifying, constructing, and documenting the artifacts of a software intensive system” [Booch] Offers vocabulary and rules for communication Focus on conceptual and physical representations of a system Not a process but a language UML History = OO languages appear mid 70's to late 80's = Between '89 and '94, OO methods increased from 10 to 50. = Unification of ideas began in mid 90's. 5 Rumbaugh joins Booch at Rational '94 v0 8 draft Unified Method ‘95, Jacobson joins Rational ‘95. UML v0.9 in June 96 UML 1.0 offered to OMG in January ’97, UML 1.1 offered to OMG in July °97 Maintenance through OMG RTF UML 1.2in June ‘98 UML 1.3 in fall 99 2 UML 2.0in 2005 = Rational now has 2 Grady Booch - Fusion 5 James Rumbaugh — Object Modeling Technique (OMT) 5 Ivar Jacobson — Object-onented Software Engineering: A Use Case Approach (Objectary) UML is for Visual Modeling - A picture is worth a thousand words! = UML Uses standard graphical notations = Semi-formal = Captures Business Process from enterprise information systems to distributed Web-based applications and even to hard real time embedded systems Sales Places Ord Representative $$ Customer FulfilllOrder Item ea Business Process Ships the Item Three (3) basic building blocks of UML a Things : important modeling concepts (individual ones as the primitive kinds) a Relationships tying individual things (i.e., their concepts) a Diagrams grouping interrelated collections of things and relationships 3 basic building blocks of UML Thing: Structural — nouns of UML models. Behavioral — dynamic (verbal) parts of UML models. Grouping — organizational parts of UML models. Annotational — explanatory parts of UML models. Structural Things in UML- 7 Kinds Nouns of UML models. Conceptual or physical elements Active Class Class Collaboration Event Mgr Window thread age - time soe & Chain of suspend() pent) Responsibility lush() close( ) - - stop) move() @ Ce) Biss | TWindow Use Case Interface Component Structural Things in UML name —[ Window 1. Class origin A description of a set of objects that share the same “75 _size attributes. operations, relationships, and semantics. oranons—, eee Usually tmplements one or mare interfaces. - cess Cf. Active Class 2. Interface A collection of operations that specify a service (for a resource or an action) of a class or component. It describes the externally visible behavior of that a ene [=

You might also like