Object-Oriented Systems Analysis and Design



Similar documents
Engineering Design. Software. Theory and Practice. Carlos E. Otero. CRC Press. Taylor & Francis Croup. Taylor St Francis Croup, an Informa business

Contents. Introduction and System Engineering 1. Introduction 2. Software Process and Methodology 16. System Engineering 53

How To Understand The Software Development Lifecycle

A Comparison of SOA Methodologies Analysis & Design Phases

The Unified Software Development Process

Masters of Science in Software & Information Systems

How To Write A Diagram

Requirements Engineering

What is a life cycle model?

Software Engineering. System Models. Based on Software Engineering, 7 th Edition by Ian Sommerville

The Rap on RUP : An Introduction to the Rational Unified Process

Time Monitoring Tool Software Development Plan. Version <1.1>

In this Lecture you will Learn: Development Process. Unified Software Development Process. Best Practice

Software Factories: Assembling Applications with Patterns, Models, Frameworks, and Tools

In this Lecture you will Learn: Systems Development Methodologies. Why Methodology? Why Methodology?

Component Based Development in Software Engineering

Software Engineering. Software Processes. Based on Software Engineering, 7 th Edition by Ian Sommerville

Design of Enterprise Systems

UNIFACE Component-based. Development Methodology UNIFACE V Revision 0 Dec 2000 UMET

Table of Contents. CHAPTER 1 Web-Based Systems 1. CHAPTER 2 Web Engineering 12. CHAPTER 3 A Web Engineering Process 24

Karunya University Dept. of Information Technology

To introduce software process models To describe three generic process models and when they may be used

Software Development Process Models and their Impacts on Requirements Engineering Organizational Requirements Engineering

Assuming the Role of Systems Analyst & Analysis Alternatives

CS 389 Software Engineering. Lecture 2 Chapter 2 Software Processes. Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed.

Sparx Systems Enterprise Architect for Team Players

Basic Unified Process: A Process for Small and Agile Projects

Quantification and Traceability of Requirements

Software Engineering/Courses Description Introduction to Software Engineering Credit Hours: 3 Prerequisite: (Computer Programming 2).

Chap 1. Introduction to Software Architecture

SOMA, RUP and RMC: the right combination for Service Oriented Architecture

Obj ect-oriented Construction Handbook

Software Engineering Question Bank

IT2404 Systems Analysis and Design (Compulsory)

CS 487. Week 8. Reference: 1. Software engineering, roger s. pressman. Reading: 1. Ian Sommerville, Chapter 3. Objective:

Business Analyst Work Plan. Presented by: Billie Johnson, CBAP CSM

Table of Contents. Preface. Chapter 1 Introduction 1.1 Background. 1.2 Problem description. 1.3 The role of standardization. 1.4 Scope and objectives

REQUIREMENTS SPECIFICATION AND MANAGEMENT. Requirements Analysis and Specification

Architecture Centric Development in Software Product Lines

Using Use Cases for requirements capture. Pete McBreen McBreen.Consulting

Increasing Development Knowledge with EPFC

ISSUES OF STRUCTURED VS. OBJECT-ORIENTED METHODOLOGY OF SYSTEMS ANALYSIS AND DESIGN

Business Systems Analysis Certificate Program. Millennium Communications & Training Inc. 2013, All rights reserved

Preface. PART I Background, Principles, Overview 1

SYSTEMS ANALYSIS DESIGN

Questions? Assignment. Techniques for Gathering Requirements. Gathering and Analysing Requirements

Software Lifecycles Models

Phase 2 Systems Analysis. Dr. Feng-Jen Yang

11 Tips to make the requirements definition process more effective and results more usable

Data Modeling Basics

IV. Software Lifecycles

Classical Software Life Cycle Models

Demystified CONTENTS Acknowledgments xvii Introduction xix CHAPTER 1 Database Fundamentals CHAPTER 2 Exploring Relational Database Components

(BA122) Software Engineer s Workshop (SEW)

Plan-Driven Methodologies

Development and Management

AppFabric. Pro Windows Server. Stephen Kaufman. Danny Garber. Apress. INFORMATIONSBIBLIOTHbK TECHNISCHE. U N! V En SIT AT S R!

Modellistica Medica. Maria Grazia Pia, INFN Genova. Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico

COSC 3351 Software Design. Recap for the first quiz. Edgar Gabriel. Spring For the 1 st Quiz

How To Understand Software Engineering

BAL2-1 Professional Skills for the Business Analyst

ADVANCED BUSINESS ANALYST (ABA) STUDY GUIDE

Swirl. Multiplayer Gaming Simplified. CS4512 Systems Analysis and Design. Assignment Marque Browne Manuel Honegger

Agile Business Process Modelling Framework and Enterprise Architecture.

Universiti Teknologi MARA. Requirement Analysis Using UML Approach for Research Management System (RMS)

Fundamentals of Information Systems, Fifth Edition. Chapter 8 Systems Development

Engineering. Software. Eric J. Braude. Michael E. Bernstein. Modern Approaches UNIVERSITATSBIBLIOTHEK HANNOVER ' TECHNISCHE INFORM ATIONSBIBLIOTHEK

SOFT 423: Software Requirements

Decomposition into Parts. Software Engineering, Lecture 4. Data and Function Cohesion. Allocation of Functions and Data. Component Interfaces

Software Development Life Cycle (SDLC)

Object-Oriented Design Guidelines

The Software Process. The Unified Process (Cont.) The Unified Process (Cont.)

Unit I Page No. 1 System Development Object Basics Development Life Cycle Methodologies Patterns Frameworks Unified Approach UML

Appendix 2-A. Application and System Development Requirements

Modern Industrial Automation Software Design

Chapter 7: Software Engineering

How To Design Software

Chapter 10 Practical Database Design Methodology and Use of UML Diagrams

Unit 1 Learning Objectives

Service Oriented Architecture and Its Advantages

RUP Design. Purpose of Analysis & Design. Analysis & Design Workflow. Define Candidate Architecture. Create Initial Architecture Sketch

TABLE OF CONTENT CHAPTER TITLE PAGE TITLE DECLARATION DEDICATION ACKNOWLEDGEMENTS ABSTRACT ABSTRAK

SERVICE-ORIENTED MODELING FRAMEWORK (SOMF ) SERVICE-ORIENTED SOFTWARE ARCHITECTURE MODEL LANGUAGE SPECIFICATIONS

Software Process and Models

INFORMATION TECHNOLOGY GUIDELINE

s от Systems Analysis and Design

SAULTCOLLEGE OF APPLIED ARTS AND TECHNOLOGY SAULT STE. MARIE, ONTARIO COURSE OUTLINE

SOFTWARE ENGINEERING PROGRAM

SERVICE-ORIENTED MODELING FRAMEWORK (SOMF ) SERVICE-ORIENTED DISCOVERY AND ANALYSIS MODEL LANGUAGE SPECIFICATIONS

Contents RELATIONAL DATABASES

Open Source egovernment Reference Architecture Osera.modeldriven.org. Copyright 2006 Data Access Technologies, Inc. Slide 1

Chapter 4 Software Lifecycle and Performance Analysis

TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW

Component Based Development Methods - comparison

Software Engineering. Session 3 Main Theme Requirements Definition & Management Processes and Tools Dr. Jean-Claude Franchitti

Software Development in the Large!

Development Methodologies

Transcription:

Object-Oriented Systems Analysis and Design Noushin Ashrafi Professor of Information System University of Massachusetts-Boston Hessam Ashrafi Software Architect Pearson Education International

CONTENTS Preface xii Acknowledgments About the Authors xviii xix PART I: THE FOUNDATIONS 1 CHAPTER 1 Information Systems 1 1. Overview 1 Chapter Topics 1 Introduction 1 2. Introducing Information Systems 3 Information 3 System 6 The Information System 9 The Information Technology 10 Applications and Systems 13 3. The Information System as Product 14 Business and Information Systems 15 The Business of Information Systems 15 Infrastructural Information Systems 16 The Enterprise of Software Development 17 CHAPTER 2 The Concept of Object Orientation 30 1. Overview 30 Chapter Topics 30 Introduction 30 2. Introducing Objects 31 Real Objects 31 Virtual Objects 36 3. The Origins of Object-Oriented Technology 44 Object-Oriented Languages 45 4. Object-Oriented Modeling 46 5. The Unified Modeling Language (UML) 47 CHAPTER 3 Methodology 54 1. Overview 54 Chapter Topics 54 Introduction 54 2. Introducing Methodology 55 Defining Methodology 55 Generalization, Abstraction & Innovation 56 Challenges of Methodology 57 iv

Methodologies in Parallel 59 Methodology & Technology 60 Variations on a Theme 60 Organization as Methodology 61 Methodology as Product 61 Benefits & Risks 61 3. Concepts in Software Development Methodologies What Do Methodologies Address? 64 The Ad Hoc Approach 65 System Development Life Cycle (SDLC) 65 Agile Methodologies 72 The Capability Maturity Model (CMM) 75 Modeling 77 Object-Oriented Development 80 4. Project Management Concepts 81 Defining Project 82 Project Management & Software Development 92 PART II: ANALYSIS 101 CHAPTER 4 Gathering Requirements 101 1. Overview 101 Chapter Topics 101 Introduction 101 2. Defining Requirements 103 3. Requirements Discovery 103 4. Classifying Requirements 105 Functional Requirements 105 Nonfunctional Requirements 106 5. Techniques for Eliciting Requirements 109 Interviews 109 Questionnaires 117 Elicitation Workshops 120 Field Trips & Observation 121 Modeling 123 6. Sources & Authorities 125 Sponsors 125 Domain Experts 125 Stakeholders 126 Users 127 Reverse Engineering 127 7. Managing Requirements 129 8. Case History: Waiden Medical Center 130 The Rise 131 The Decline 131 The Revival 132 Inception of the Project 132 Initial Requirements 135 9. Deliverables 135

CHAPTER 5 Domain Analysis 145 1. Overview 145 Chapter Topics 145 Introduction 146 2. Problems, Solutions, and Requirements 148 Problems vs. Solutions 148 Problem Space vs. Solution Space 150 Requirements vs. Product Specifications 152 3. Domain Definition 154 The Meaning of Domain 154 The Domain Scope 155 Domains and Subsystems 156 Walden's Domain Definitions 157 4. Domain Analysis 159 Finding Domain Concepts 160 Domain Dictionary 164 Beyond Application Boundaries 168 5. Business Rules 169 Definition and Significance 170 Classification 170 Managing Business Rules 173 6. Deliverables 176 CHAPTER 6 Behavioral Modeling I: Use Cases: The Basics 181 1. Overview 181 Chapter Topics 181 Introduction 182 2. Introducing Use Cases 183 What Use Case Modeling Is 183 What Use Case Modeling Is Not 184 Components of a Use Case 185 Use Cases in the Modeling Spectrum 194 3. Develop Initial Use Cases 195 From Domain Analysis to Use Cases 195 Identify Prominent Actors 196 Identify Major Use Cases 199 Develop Context Diagram 201 4. Deliverables 202 CHAPTER 7 Behavioral Modeling II: Developing Use Cases 206 1. Overview 206 Chapter Topics 207 Introduction 207 2. Develop Base Use Cases 208 What a "Base" Use Case Is 208 The Template 209 Template Fields 209 3. Actor Generalization 223 4. Dependencies: Include and Extend 225 Extend Relationship 225

Include Relationship 227 Use Case Diagram for Dependencies 228 5. Use Case Generalization 229 Make Appointment: New Requirement 229 One Goal, Two Use Cases 230 The Parent 231 The Children 231 Replacing Alternates 232 6. Use Case Diagram 232 7. Separating and Joining Use Cases 233 Delineating Use Cases 233 Dividing Use Cases 235 8. Activity Diagram 238 9. Uses of Use Cases 238 10. Use Case Supplements 241 11. Deliverables 243 CHAPTER 8 Structural Modeling 248 1. Overview 248 Chapter Topics 248 Introduction 249 2. Introducing Structural Modeling 249 3. Classes & Structural Modeling 251 Classes as Object Templates 251 Classes as Building Blocks 252 Objects as Black Boxes 253 Interface 254 Structuring the Interface 256 Composite & Collection Objects 258 4. Finding Classes 259 From Use Cases to Classes 259 Elaborating Classes 267 5. Relationships 276 Association 276 Class Diagram 277 Multiplicity 279 Aggregation & Composition 281 Constraints 282 Generalization & Specialization 283 6. Deliverables 285 CHAPTER 9 Dynamic Modeling 293 1. Overview 293 Chapter Topics 293 Introduction 294 2. Introducing Dynamic Modeling 295 3. Object Interaction 297 Messages 297 Methods 303 vii

Accessor Operations 304 Events 305 4. Dynamic Diagrams 310 Sequence Diagram 310 Collaboration Diagram 319 Statechart Diagram 322 Activity Diagram 326 5. Deliverables 327 PART III: DESIGN 335 CHAPTER 10 The Design Challenge 335 1. Overview 335 Chapter Topics 335 Introduction 336 2. Introducing Design 338 Defining Design 338 From Analysis to Design 340 Concrete Modeling: Logical & Physical 342 The Design Paradigms 343 The Significance of Domain Analysis 344 3. Design Concepts 345 Design Objects 347 UML Extension Mechanisms 349 4. Packaging 358 CHAPTER 11 Application Design I: Flow & Control 368 1. Overview 368 Chapter Topics 368 Introduction 369 2. Introducing Flow & Control 370 3. Plotting the Flow 371 Moving to Design: Magnifying the Use Case Flow 371 The Flow Object 374 The Life Cycle Object 375 The Dataset 378 The Application Control 379 4. Defining Concrete Classes 383 Methods Revisited 384 Deriving Methods from Messages 385 Exposing Attributes 387 Construction & Destruction of Objects 389 Overloading Methods 389 5. The Web Control Model 390 6. Deliverables 393 CHAPTER 12 Application Design II: The User Interface 399 1. Overview 399 Chapter Topics 399 Introduction 400 viii

2. Introducing the User Interface 401 The Responsibilities of the User Interface 402 The Evolution of the User Interface 403 User Interface Objects 403 3. The Language of the User Interface 404 The Metaphors 404 The Roles 405 The Grammar of the User Interface 417 4. Shaping Messages into the User Interface 419 Mapping Parameters & Attributes 420 Constraints in UI Design 424 5. Modeling the User Interface 425 Class Diagrams 426 Navigation 429 Storyhoarding 429 Simulation & Prototyping 432 6. Deliverables 435 CHAPTER 13 Application Design III: Database & Persistence 441 1. Overview 441 Chapter Topics 442 Introduction 442 2. Data & Data Management 443 Data 443 Data Management 445 The Database Management System (DBMS) 448 3. The Relational Model 453 Tables 454 The Foreign Key 456 Data Integrity 457 SQL 461 Data Normalization 467 Intersection Tables 473 Lookup Tables 476 Modeling the Relational Database 477 4. Designing Persistence 480 Mapping to Relational Databases 480 The Persistence Layer 485 5. Deliverables 489 CHAPTER 14 Patterns 496 1. Overview 496 Chapter Topics 496 Introduction 497 2. Introducing Patterns 497 The Background 498 The Pattern Language 500 The Risks 501 3. Design Patterns 502 Factory Method 503 The Object Adapter 505 ix

4. Analysis Patterns 506 Measurement & Historical Mapping 507 5. Modeling Patterns 508 Dynamic Object Types 509 6. Anti-Patterns 510 Functional Decomposition 510 7. Deliverables 512 CHAPTER 15 Components & Reuse 516 1. Overview 516 Chapter Topics 516 Introduction 517 2. Areas of Reuse 517 3. Inheritance Reuse 519 Implementation Inheritance 519 Interface Inheritance 522 Emulating Inheritance by Composition 525 4. Components 527 Defining Components 528 Modeling Components 531 Component-Based Development (CBD) 534 5. Deliverables 537 CHAPTER 16 Architecture 542 1. Overview 542 Chapter Topics 542 Introduction 543 2. Architectural Concepts 545 Defining Architecture 545 3. The Architecture of the Information System 555 Technology 556 Components & Applications 558 Data Management 563 Modeling & Conceptualization 564 Workflow 565 4. Architectural Patterns 566 The Layering Pattern 567 5. Deliverables 572 CHAPTER 17 Implementation 581 1. Overview 581 Chapter Topics 581 Introduction 581 2. Coding 582 The Choice of the Language 584 Programming Tools 585 Coding Standards 588 Code Review 589 x

Refences 606 Index 611 3. Testing 590 Levels of Testing 591 Testing & Object Orientation 592 4. Deployment 593 The Deployment Diagram 594 User Training 596 Change & Maintenance 599 5. Deliverables 600 xi