Data Management

profilekrish21
DMA605DataManagement-Week6.pdf

Moving from Analysis Modeling to Design Modeling

Dr. Ardeshir Badr

Objectives

• Understand the verification and validation of the analysis model

• Understand the transition from analysis to design

• Understand the use of factoring, partitions, and layers

Analysis Modeling Versus Design Modeling • Purpose of analysis is to figure out what the business needs are

• Purpose of design is to decide how to build the system

• Analysis Modeling focuses on functional requirements of an evolving system

• Design Modeling incorporates the nonfunctional requirements, that is, how the system will operate: • Operational requirements • Performance requirements • Security requirements • Cultural and political requirements

Validate functional, structural, and behavioral models

Create a set of factored and partitioned analysis model

Illustrate the class and method design using the class specification contracts and method specification

Design database, map objects to database objects; design file structure used for object persistence

Design User interface layer

Design physical architecture layer using deployment diagrams, and hardware and software specifications

System specification

• The goal of the design is to create a blue print that can be used to build the system

• Examine several design strategies and decide which one to choose from

• Design strategies can be:

• Build the system from scratch

• Purchase a ready product and customize it

• Outsource the system development to other companies

• The viability of each strategy should be investigated by the project team

• The strategy chosen influences the tasks during the design

• Regardless of the design strategy, the design of classes and methods needs to be done

• Class diagrams, contract specification, method specification, and database design are used by development team to implement the system

Transition from Analysis to Design

• Before moving from analysis representation to design representation, we need to make sure that the models are consistent

• The process of ensuring consistency among models is called balancing the models

• Balancing models: • Balancing Functional and Structural Models

• Balancing Functional and Behavioral Models

• Balancing Structural and Behavioral Models

Verifying and Validating the Analysis Models

Functional Models

Behavioral Models

Structural Models

• Ensure that use case diagrams, activity diagrams, and use case descriptions agree with class diagrams and object diagrams

• Balancing in 4 steps: 1. Every class on a class diagram must be associated with at least one use case, and

every use case must be associated with at least one class

2. Every action on an activity diagram and every event in a use case description should relate to one or more operations in a class on a class diagram, and vice versa

3. Every object node on an activity diagram must be associated with an instance of a class on a class diagram

4. Every attribute and association relationship in a class on a class diagram should be related to the subject or object of an event in a use case description

Balancing Functional and Structural Models

Functional Models

Activity Diagrams

Use Case Diagrams

Use Case Description

including

Contains

Flows Object nodes

Actions

HasKinds

Object flows

Control flows

Contains

Relationships

Actors

EventsStakeholders

Contains

Use Cases

Have

Scenarios

Structural Models

Class Diagram

Object Diagram

including

Contains

Classes Associations/ Relationships

Contains

Attributes Operations

Objects

Contains

InstanceOf

HasKinds

Association Generalization

HasKinds

Association Class

AssociatedWith

AssociatedWith

AssociatedWith

AssociatedWith

Relationship among Functional and Structural Models

• The analysis models are evolved into design models by adding system environment or solution

domain details to them

• From a Unified Process perspective we are moving from analysis workflow into design workflow

and moving further into elaboration phase and particularly construction phase

• An approach to evolve analysis models into design models is the use of:

• Factoring

• Partition and Collaborations

• Layers

Evolving the Analysis Models into Design Models After Balancing the Use Cases, Activity Diagrams, and Class/Object Diagrams

• Factoring is the process of reviewing a set of classes and factoring out similarities into a new separate class

• The new class can have class can have superclass relationship to existing classes through generalization

• Example: Factoring out the similar methods and attributes from the Doctor, Nurse, Receptionist classes can result in Employee superclass

• Abstraction: Creating higher level ideas from a set of ideas, for example, Employee class is abstracted from Doctor, Nurse, and Receptionist classes. Abstraction can identify abstract classes or concrete classes

• Refinement process is the opposite of abstraction, for example, we can identify additional subclasses of the Employee class, namely Secretary, or Book Keeper

Factoring

• The purpose of identifying collaborations and partitions is to determine which classes should be grouped together in design

• A partition is the decomposition of a large system into its component subsystems, for example, an accounting system could be functionally decomposed into an account payable, account receivable, and a payroll system. Partitions depend on messages sent among the objects, or in other words depend on collaboration

• We can model collaboration between objects in terms of client, server, and contract. A client is an instance of a class that sends message to an instance of another class for a method to be executed. A server is the instance of a class that receives the message, and a contract is the specification that formalizes the interaction between the client and the server objects. The potential partitions can be built by looking at the number of contracts between objects. The more contracts there are between objects, the more likely that objects belong to the same partition

Partition and Collaboration

• A layer represents an element of the software architecture of the evolving system. We use MVC (Model View Controller) as a model

• Layers: • Foundation: Contains foundation classes, for example, fundamental types (integers, real numbers,

character strings) and container classes (lists, trees, graphs, sets, stacks, queues) and utility classes (date, money). The foundation classes are usually included in the IDE (Integrated Development Environment)

• Problem Domain: The analysis workflow and what we have been focusing up until now

• Data Management: Addresses the persistence of objects in the system, for example, creates a RDBMS to store objects data. The classes in this layer deal with how objects can be stored and retrieved from a data store

• Human Computer Interaction: Contain classes that deal with human interactions with a system, for example, buttons, drop down lists, text fields

• Physical Architecture: Addresses how the developed software will execute on specific computers and networks, and contains classes that deal with communications between the software, the operating system and the network. Choice of operating system, memory requirements, physical data storage, input/output technology, standardization, virtualization, grid computing, distributed computing, and web services are also addressed in this layer

Layer

• Custom Development: Building a system from the scratch by development team which gives much control over the software developed and builds technical and functional skills within the company, however, consumes a lot of human resources and can become a risky venture

• Packaged Software: Companies have needs that can be met by packaged software, for example, payroll or accounting. Buying these developed and tested software makes more sense than developing them from the scratch. Packaged software can range from small to huge ERPs (Enterprise Resource Planning)

• Outsourcing: Hiring an external vendor to create the system, which requires two way coordination, exchange of information, and trust. Cloud service providers are often outsourced by many companies. Before outsourcing, a company must have gone through analysis workflow properly and thoroughly, and choose the right outsourcing company with the right skills and a good track record

Design Strategies

Custom development Packaged software Outsourcing

Business need The business need is unique The business need is common The business need is not core to the business

In house experience In house functional and technical experience exists

In house functional experience exists

In house functional or technical experience does not exist

Project skills There is a desire to build in house skills

The skills are not strategic The decision to outsource is a strategic decision

Project management The project has a skilled PM and a proven methodology

The project has a PM that can coordinate the vendor’s efforts

The project has a skilled PM at the level of the organization that matches the scope of the outsourcing deal

Time frame The time frame is flexible The time frame is short The time frame is short or flexible

Selecting a Design Strategy

• Request For Proposal (RFP): A document that contains the system specifications and asks a formal proposal from one or more potential vendors, developers, or service providers to provide their solutions. Once the winning vendor is chosen, a contract is signed by both parties

• Alternative Matrix: Is used to organize the pros and cons of the design alternatives in a way that the best solution can be chosen

Selecting an Acquisition Strategy

Evaluation Criteria Relative Importance (Weight)

Alternative 1:

Score (1-5)

Weighted Score

Alternative 2

Score (1-5)

Weighted Score

Technical Issues:

• Criterion 1

• Criterion 2

Economic Issues:

• Criterion 3

• Criterion 4

Organizational Issues:

• Criterion 5

• Criterion 6

Total 100

Activity

• Research the internet to find a cloud service provider that can offer payroll SAAS. Describe the provider and list the advantages and dis- advantages of the service and service provider.

• Select a design strategy for the following project:

ABC consulting is a firm specialized in IT consulting. The company has a legacy recruiting system that is running on on-premise servers. The current recruiting system is not capable of scaling to response to high demands. ABC consulting is looking to renovating their recruiting system. Can you suggest a design strategy that fits the requirements of this company. Discuss the merits of your choice.

Before next class

• Go through the slides of this class plus the notes you have taken

• Go through the exercises, discussions, and examples

• Read the slides for next class (will be available one day prior to next class)

• Continue working on your project

• Continue working on your assignments

• Work on your presentation