1 / 51

Object Oriented System Analysis and Design (INSY/432)

Object Oriented System Analysis and Design (INSY/432) . By Temtim Assefa February 2014. Course Objectives. To explain how a software design may be represented as a set of interacting objects that manage their own state and operations

marlie
Download Presentation

Object Oriented System Analysis and Design (INSY/432)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Object Oriented System Analysis and Design (INSY/432) By TemtimAssefa February 2014

  2. Course Objectives • To explain how a software design may be represented as a set of interacting objects that manage their own state and operations • To describe the activities in the object-oriented design process • To introduce various models that can be used to describe an object-oriented design • To show how the UML may be used to represent these models

  3. CHAPTER –I Topics • Definitions and basic concepts (system/software, system thinking..) • Structured Vs OO approaches • Basic object orientation concepts • Process models (waterfall, Prototyping, Iterative, RUP) • Work flows (Phases)- in object orientation

  4. System Concepts - Review • What is a system? • A set of interrelated components that work in collaboration to achieve common objectives • System characteristics • Purpose, Components, input, output, interfaces, boundary, environment, constraints • Type of System • Living Vs Non-living • Open vs Closed • What is systems thinking? • Why we need system thinking? • What is an Information system? • A system that generates useful and meaningful information to end users • There are different types of IS Daniel B.

  5. Terminologies • Information system and software as products of system development • System development as a process • Participants and roles in System Development • Users • Mangers (owners) • Analysts • Designers • Programmers • Consultants Daniel B.

  6. Software development • It is initiated • by end users • real problems on the day to day task • By mangers • Looking for effectiveness and efficiency • By technical personnel • Sensing new opportunities and technologies

  7. What is system/software? • Computer programs and associated documentation such as requirements, design models and user manuals. • Software products may be developed for a particular customer or may be developed for a general market. • System products may be • Generic - developed to be sold to a range of different customers e.g. PC software such as Excel or Word. • Bespoke (custom) - developed for a single customer according to their specification. Daniel B.

  8. What are the attributes of good system/software? • The software should deliver the required functionality and performance to the user and should be maintainable, dependable and acceptable. • Maintainability • Software must evolve to meet changing needs; • Dependability • Software must be trustworthy; • Efficiency • Software should not make wasteful use of system resources; • Acceptability (meet users requirement) • Software must accepted by the users for which it was designed. This means it must be understandable, usable and compatible with other systems. Daniel B.

  9. Software Quality... • Usability • Users can learn it and fast and get their job done easily • Efficiency • It doesn’t waste resources such as CPU time and memory • Reliability • It does what it is required to do without failing • Maintainability • It can be easily changed • Reusability • Its parts can be used in other projects, so reprogramming is not needed Daniel B.

  10. QUALITY SOFTWARE Perspectives of System/Software Quality Customer: User: solves problems at easy to learn; an acceptable cost in efficient to use; terms of money paid and helps get work done resources used Development manager: Developer: sells more and easy to design; pleases customers easy to maintain; while costing less easy to reuse its parts to develop and maintain

  11. Types of system/Software... • Based on application nature • Custom • For a specific customer • Generic • Sold on open market • Often called • COTS (Commercial Off The Shelf) • Shrink-wrapped • Embedded • Built into hardware • Hard to change Daniel B.

  12. Software Development Life Cycle • SDLC has several clearly defined phases • Requirements gathering What does the user want? • Systems analysis Understanding/documenting requirements • Design Planning a possible solution • Implementation Building a solution • Testing the implementation Ensuring it meets requirements • Requirements gathering and systems analysis are performed iteratively. • Design/Implementation/Testing are done sequentially. Daniel B.

  13. Challenges of System Development • How well are systems built? • Total Failure 15% • “Challenged” 51% • Successful 34% • In 1994 Successful System was only 17%! • Challenged means… • Delayed, budget, or lacking critical features/requirements Daniel B.

  14. System development / Software Engineering Process • A process used to create a software system • Consists of: • Methods (steps) • A sequence of step-by-step approaches that help develop the information system • Techniques • Processes that the analyst follows to ensure thorough, complete and comprehensive analysis and design • Tools • Computer programs that aid in applying techniques Daniel B.

  15. Structured Vs Object Oriented Approaches • Structured paradigm • Modes processes and data separately • Suitable for small sized software • Object oriented paradigm • Integrates process and data together • Objects are identified as having data and function Daniel B.

  16. Object-oriented development • Object-oriented analysis, design and programming are related but distinct. • OOA is concerned with developing an object model of the application domain. • OOD is concerned with developing an object-oriented system model to implement requirements. • OOP is concerned with realising an OOD using an OO programming language such as Java or C++.

  17. Characteristics of OOD • Objects are abstractions of real-world or system entities and manage themselves. • Objects are independent and encapsulate state and representation information. • System functionality is expressed in terms of object services. • Shared data areas are eliminated. Objects communicate by message passing. • Objects may be distributed and may execute sequentially or in parallel.

  18. Interacting objects

  19. Object Orientation Abstraction Encapsulation Modularity Hierarchy Basic Principles of Object Orientation

  20. Salesperson Not saying Which salesperson – just a salesperson in general!!! Product Customer What is Abstraction? Manages Complexity

  21. What is Encapsulation? • Hide implementation from clients • Clients depend on interface How does an object encapsulate? What does it encapsulate? Improves Resiliency

  22. What is Modularity? • The breaking up of something complex into manageable pieces Order Entry Order Processing System Order Fulfillment Billing Manages Complexity

  23. Increasing abstraction Decreasing abstraction What is Hierarchy? Asset • Levels of abstraction Security BankAccount RealEstate Savings Checking Stock Bond Elements at the same level of the hierarchy should be at the same level of abstraction

  24. Advantages of OOD • Easier maintenance. Objects may be understood as stand-alone entities. • Objects are potentially reusable components. • For some systems, there may be an obvious mapping from real world entities to system objects.

  25. Basic Concepts of Object Orientation • Object • Class • Attribute • Operation • Interface (Polymorphism) • Component • Package • Subsystem • Relationships

  26. Truck Chemical Process Linked List What is an Object? • Informally, an object represents an entity, either physical, conceptual, or software • Physical entity • Conceptual entity • Software entity Linked list

  27. A More Formal Definition • An object is a concept, abstraction, or thing with sharp boundaries and meaning for an application • An object is something that has: • State • Behavior • Identity

  28. Professor Clark Representing Objects • An object is represented as rectangles with underlined names : Professor a + b = 10 ProfessorClark Class Name Only ProfessorClark : Professor Object Name Only Class and Object Name (stay tuned for classes)

  29. A More Formal Definition • An object is a concept, abstraction, or thing with sharp boundaries and meaning for an application • An object is something that has: • State • Behavior • Identity

  30. Professor Clark Representing Objects • An object is represented as rectangles with underlined names : Professor a + b = 10 ProfessorClark Class Name Only ProfessorClark : Professor Object Name Only Class and Object Name (stay tuned for classes)

  31. What is a Class? • A class is a description of a group of objects with common properties (attributes), behavior (operations), relationships, and semantics • An object is an instance of a class • A class is an abstraction in that it: • Emphasizes relevant characteristics • Suppresses other characteristics OO Principle: Abstraction

  32. Sample Class Class Course Properties Name Location Days offered Credit hours Start time End time Behavior Add a student Delete a student Get course roster Determine if it is full a + b = 10

  33. Class Name Professor name Attributes empID Operations create( ) save( ) delete( ) change( ) Class Compartments • A class is comprised of three sections • The first section contains the class name • The second section shows the structure (attributes) • The third section shows the behavior (operations)

  34. Professor Smith Professor Mellon Professor Jones The Relationship Between Classes and Objects • A class is an abstract definition of an object • It defines the structure and behavior of each object in the class • It serves as a template for creating objects • Objects are grouped into classes Class Professor Objects

  35. :person :person Person name = Kebede age = 26 Sex = male name age sex name = Martha age = 20 Sex = Female What is an Attribute? Object Class Attribute Attribute Value Attribute describes a class. It is equivalent to adjective

  36. CourseOffering :CourseOffering :CourseOffering number = 101 startTime = 900 endTime = 1100 number = 104 startTime = 1300 endTime = 1500 number startTime endTime What is an Attribute? Object Class Attribute Attribute Value

  37. CourseOffering addStudent deleteStudent getStartTime getEndTime What is an Operation? Class Operation An executable procedure that is encapsulated in a class and is designed to operate on one or more data attributes that are defined as part of the class. A method is invoked via message passing.

  38. Messages

  39. Manufacturer B Manufacturer C Manufacturer A What is Polymorphism? • The ability to hide many different implementations behind a single interface OO Principle:Encapsulation

  40. Pyramid Circle Cube <<interface>> Shape Draw Move Scale Rotate What is an Interface? • Interfaces formalize polymorphism • Interfaces support “plug-and-play” architectures Realization relationship (stay tuned for realization relationships)

  41. <<DLL>> Component Name Component Interface What is a Component? • A non-trivial, nearly independent, and replaceable part of a system that fulfills a clear function in the context of a well-defined architecture • A component may be • A source code component • A run time components or • An executable component OO Principle:Encapsulation <<EXE>> Executable Name Source File Name

  42. What is a Package? • A package is a general purpose mechanism for organizing elements into groups • A model element which can contain other model elements OO Principle:Modularity Package Name

  43. Realization <<subsystem>> Subsystem Name Subsystem Interface Interface What is a Subsystem? • A combination of a package (can contain other model elements) and a class (has behavior) • Realizes one or more interfaces which define its behavior OO Principles: Encapsulation and Modularity (stay tuned for realization relationship)

  44. <<subsystem>> Component Name Component Interface Subsystems and Components • Components are the physical realization of an abstraction in the design • Subsystems can be used to represent the componentin the design Design Model Implementation Model Component Name Component Interface OO Principles: Encapsulation and Modularity

  45. Relationships • Association • Aggregation • Composition • Dependency • Generalization • Realization

  46. Association Name Works for Professor University Professor University Association Class Relationships: Association • Models a semantic connection among classes Role Names Employee Employer

  47. Student Schedule Relationships: Aggregation • A special form of association that models a whole-part relationship between an aggregate (the whole) and its parts Whole Part Aggregation

  48. Person bodyOrgans Relationships: Composition • A form of aggregation with strong ownership and coincident lifetimes • The parts cannot survive the whole/aggregate Whole Part Aggregation

  49. Student Schedule Example: Multiplicity and Navigation Multiplicity 1 0..* Navigation

  50. Review: Introduction to Object Orientation • What are the four basic principles of object orientation? Provide a brief description of each. • What is an Object and what is a Class? What is the difference between them? • What is an Attribute? • What is an Operation? • What is an Interface? What is Polymorphism? • What is a Component? (continued)

More Related