Data Management
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