Showing posts with label OO Design. Show all posts
Showing posts with label OO Design. Show all posts

Wednesday, August 17, 2016

Object Oriented Design - Lecture 3: Use Cases

This post is the note of lecture 2 of the course "Object Oriented System Analysis and Design". Videos can be viewed at https://www.youtube.com/watch?v=ODeQ0rF59kI&index=3&list=PL6XklZATqYx9dj72MKG6wLYjljeB2odra.

Lecture 3

1.Use cases definition

  1. Definition: use case is an activity that system performs, usually in response to a request by a user.
  2. Use cases define functional requirements.
  3. Two techniques to identify use cases:
    1. user goal technique
    2. event decomposition

2.User goal technique

Seldom use. 

3.Event decomposition technique


  1. Type of Events
    1. external event: an event that occurs outside the system, usually initialized by an external agent/actor.
    2. internal event:
      1. temporal event: ana event that occurs as a result of reaching a point in time (e.g., 
  2. The decomposition process:
    1. Identify the event that occurs to which the system must respond.
    2. For each event name a use case (verb-noun) that describes what the system should do
    3. CRUD decomposition: Create, Read/Report, Update, Delete
      Steps:
      1. Identify all domain classes (e.g., Customer, Seller, etc)
      2. Check whether we need CRUD functions
      3. When integrating applications, make sure it is clear which application is responsible for adding and maintaining the data, and which system merely uses the data.
  3. Use case diagram















Saturday, August 13, 2016

Object Oriented Design - Lecture 2: Strategic Planning and Related Design

This post is the note of lecture 2 of the course "Object Oriented System Analysis and Design". Videos can be viewed at https://www.youtube.com/watch?v=ODeQ0rF59kI&index=3&list=PL6XklZATqYx9dj72MKG6wLYjljeB2odra.

Lecture 2

1. Planning method - strategic planning

  1. Definition of the technology architecture (infrastructure)
    1. the set of computing hardware
    2. network hardware/topology
    3. system software employed by the organization
  2. Application architecture
    1. information system, subsystem, supporting technology
      e.g. update the RMO system due to customer expectation, modern technological capability, etc.
      [What we have]
      1. Supply Chain Management System (SCM)
        (5 years old, Java/Oracle, tradeshow system will interface with SCM)
      2. Phone/Mail Order System
        (12 years old, Visual Studio/MS SQL, reached capacity, minimal integration)
      3. Retail Store System
        (order package solution, minimal integration)
      4. Customer Support System (CSS)
        (web-based system, etc)
    2. Information Diagram

2.Analysis, understand the details of the problem


  1. Gather detailed information (interviews, questionnaires, etc.)
  2. Define system requirements: modeling functional/non-functional requirements.
  3. Prioritize requirements.
  4. Develop user-interface dialogs.
  5. Evaluate requirements with users.

 Define system requirements (FURPS+)

  1. Functional requirements: APIs that should be implemented in the system.
  2. Non-functional requirements:
    1. Usability requirements: how easy it is to use the system (UI). (Need to consider whether the user can be trained.)
    2. Reliability requirements: reliable for the day and night? or just day?
    3. Performance requirements: response time, etc.
    4. Secure requirements: encryption, etc.
    5. + more other categories.

 Models and Modeling

  1. After collecting information, create models which can be:
    1. Textual models
    2. Graphical models -  diagram, schematic
      1. use case diagram
      2. class diagram
      3. sequence diagram
      4. common diagram
      5. state machine diagram
    3. Mathematical models

Friday, August 12, 2016

Object Oriented Design - Lecture 1: Introduction to SDLC

This post is the note of lecture 1 of the course "Object Oriented System Analysis and Design". Videos can be viewed at https://www.youtube.com/watch?v=ODeQ0rF59kI&index=3&list=PL6XklZATqYx9dj72MKG6wLYjljeB2odra.

Lecture 1

  1. System Design Methodology

  1. System Design Lifecycle (SDLC)

    1. Identify the problem and obtain approval
    2. Plan the project
    3. Understand the details of the problem or need
    4. Design the system components (Draw a diagram)
    5. Build, test, and integrate system components
    6. Deploy the system
2. Actual approaches used to develop a particular information system
  1. Unified process
  2. Extreme programming
  3. Scrum (suitable for team work)
  4. Agile development (emphasizes flexibility to anticipate new requirement during development)
3.RMO example to illustrate SDLC
  1. Need/requirement
    1. Small information system
    2. Being added to large supply chain management system
    3. Demonstrate one iteration of the small project, assuming there are more
  2. Look through all six phases in SDLC
    1. Phase 1: Identify the problem
      • Problem: purchasing agents attend appareal and fabric trade show around the whold to order new products from supplier.
      • Need: build a new information system (app) to track information about supplier and new products while at trade show.
    2. Phase 2: Plan 
      • System vision document (problem description + system capability + business benefits).
      • Work breakdown structure (tasks, whose responsibility, estimated working hours)
    3. Phase 3: Analysis (understand the details of the problem or need)
      • Basic ideas:   supplier subsystem + product subsystem
      • Use cases (一般包括增删查改) + a use case diagram:
         
        Supplier: look up suppliers; enter/update/delete supplier information; look up contact; enter/update/delete contact information, etc
          Product: look up product information; enter/update/delete product information; upload product image, etc
      • Information diagram (for supplier/product, what information we should have)
    4. Phase 4: Design
      • Design databases: table design, key-index identification, attribute types, referential integrity
      • Design the system's high level structure: 
        • Browser, window, smart phone
        • Architectural configuration (components)
        • Class diagram
        • Subsystem architecture
    5. Phase 5: Implementation
    6. Phase 6: Maintenance