requirements analysis n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Requirements Analysis PowerPoint Presentation
Download Presentation
Requirements Analysis

Loading in 2 Seconds...

play fullscreen
1 / 128

Requirements Analysis - PowerPoint PPT Presentation


  • 126 Views
  • Uploaded on

Requirements Analysis. Section Three Version: 1.0 Mehr 1383. نگاه اجمال ي. ب ي ان مفهوم تحل ي ل ن ي ازها بررس ي نقشها ي مختلف در تحل ي ل ن ي ازها معرف ي و ي ژگ ي ها ي تحل ي لگر موفق بررس ي وظا ي ف و جا ي گاه و مهارتها ي مورد ن ي از تحل ي لگران مختلف

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Requirements Analysis' - lexi


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
requirements analysis

Requirements Analysis

Section Three

Version: 1.0

Mehr 1383

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

slide2
نگاه اجمالي
  • بيان مفهوم تحليل نيازها
  • بررسي نقشهاي مختلف در تحليل نيازها
  • معرفي ويژگيهاي تحليلگر موفق
  • بررسي وظايف و جايگاه و مهارتهاي مورد نياز تحليلگران مختلف
  • معرفي مدلهاي مختلف به عنوان ابزارهاي تحليل
  • بررسي ديدگاه و روشهاي تحليل شي گرا
  • معرفي اجماليUML به عنوان ابزار مدلسازي

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

slide3
مجموعه پرسشها
  • علت تحليل نيازهاي سيستم چيست؟
  • ويژگيهاييک تحليلگر موفق چيست؟
  • چه افرادي در تيم تحليل حضور دارند و وظايف، جايگاه و مهارتهاي مورد نياز براي هر يک از آنها چيست؟
  • تحليل در ديدگاه شي گرا شامل چه گامهايي است؟
  • فرآيند مدلسازي موارد کاربرد شامل چه گامهايي است؟

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

slide4
راهنماي مدرس ( اسلايدهاي 5-20)

مجموعه اسلايدهاي اين بخش بطور کلي به بررسي تعاريف و مفاهيم پايه در تحليل نيازمنديها مي پردازد. بدين منظور

  • اسلايدهاي 5و6 : به تعريف تحليل نيازمنديها و اهميت آن مي پردازد.
  • اسلايدهاي 7-13: به تعريف سيستم و مشخصات آن، مفاهيم مورد توجه در آن و اهميت آن مي پردازد.
  • در اسلايدهاي 14-15 دو مثال مطرح شده اند.
  • در اسلايدهاي 16-20، نقش تحليل گر سيستم و وظايفش مورد بررسي قرار مي گيرند.

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

requirements analysis definition

What

Requirements Analysis: Definition
  • A modeling activity in which system analyst uses and refines elicited requirements and builds models of data, functional and behavioral domains of software system.

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

why requirements analysis

Why

Why Requirements Analysis
  • Provides necessary artifacts for customer reviews and understanding the system.
  • Provides appropriate inputs for the Design and Test phases.
  • Provides the developer and the customer with the means to assess quality once software is built.
  • Checks completeness, correctness and consistency of the requirements.

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

systems thinking

What

Systems Thinking
  • System
    • A system is an interrelated set of business procedures used within one business unit working together for a purpose
    • A system has nine characteristics
    • A system exists within an environment
    • A boundary separates a system from its environment

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

characteristics of a system

What

Characteristics of a System
  • Components
  • Interrelated Components
  • Boundary
  • Purpose
  • Environment
  • Interfaces
  • Input
  • Output
  • Constraints

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

characteristics of a system1

What

Characteristics of a System

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

systems thinking important system concepts

What

Systems ThinkingImportant System Concepts
  • Decomposition
    • The process of breaking down a system into smaller components
    • Allows the systems analyst to:
      • Break a system into small, manageable subsystems
      • Focus on one area at a time
      • Concentrate on component pertinent to one group of users
      • Build different components at independent times

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

systems thinking important system concepts1

What

Systems ThinkingImportant System Concepts
  • Modularity
    • Process of dividing a system into modules of a relatively uniform size
    • Modules simplify system design
  • Coupling
    • Subsystems that are dependent upon each other are coupled
  • Cohesion
    • Extent to which a subsystem performs a single function

Which is better:

More or less modularity? High or low coupling? High or low cohesion?

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

systems thinking important system concepts2

What

Systems ThinkingImportant System Concepts
  • Logical vs. Physical Modeling
    • Logical System Description
      • Portrays the purpose and function of the system
      • Does not tie the description to a specific physical implementation
    • Physical System Description
      • Focuses on how the system will be materially constructed

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

systems thinking1

Why

Systems Thinking
  • Benefits
    • Identification of a system leads to abstraction
    • From abstraction you can think about essential characteristics of specific system
    • Abstraction allows analyst to gain insights into specific system, to question assumptions, provide documentation and manipulate the system without disrupting the real situation

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

decomposition example
Decomposition Example

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

the systems analyst
The systems analyst

A typical IS department

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

role of a systems analyst

Why

Role of a systems analyst
  • Study problems and needs of an organization
  • Determine best approach to improving organization through use of:
    • People
    • Methods
    • Information technology
  • Help system users and managers define their requirements for new or enhanced systems

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

role of a systems analyst1

What

Role of a Systems Analyst
  • Assess options for system implementation
    • In-house development
    • Outsourced development
    • Outsourced development and operations
    • Commercial application
  • For in-house projects, work with a team of analysts and developers

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

a successful systems analyst

Who

A Successful Systems Analyst
  • Analytical
    • Understanding of organizations
    • Problem solving skills
    • System thinking
      • Ability to see organizations and information systems as systems
  • Technical
    • Understanding of potential and limitations of technology

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

a successful systems analyst1

Who

A Successful Systems Analyst
  • Managerial
    • Ability to manage projects, resources, risk and change
  • Interpersonal
    • Effective written and oral communication skills

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

a successful systems analyst2

Who

A Successful Systems Analyst
  • Works in teams
    • Project Based
    • Includes
      • IS Manager
      • Systems analysts
      • Programmers
      • Users
      • Other specialists

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

22 41
راهنماي مدرس ( اسلايدهاي 22-41)

در اين قسمت، تحليل گران مختلف مورد بررسي قرار مي گيرند. بدين منظور

  • ابتدا نقشهاي مطرح در Business Modeling در RUP مطرح شده و در حين آن
  • مهارتهاي مورد نياز تحليل گران مختلف بررسي شده
  • وظايف تحليل گران بيان شده و
  • جايگاه آنها مورد بررسي قرار مي گيرد.

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

roles for business modeling rup
Roles for Business Modeling (RUP)
  • Business-Process Analyst
  • Business Designer

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

business process analyst rup
Business-Process Analyst (RUP)
  • The business process analyst leads and coordinates business use-case modeling by outlining and delimiting the organization being modeled.
  • The business-process analyst is responsible for the business architecture, outlining and delimiting the organization being modeled.

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

skills of business process analyst
Skills of Business-Process Analyst
  • A good facilitator
  • Excellent communication skills
  • Knowledge of the business domain

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

tasks of business process analyst
Tasks of Business-Process Analyst
  • assess the situation of the target organization where the project's end-product will be deployed
  • understand customer and user requirements, their strategies, and their goals 
  • facilitate modeling of the target organization 
  • discuss and facilitate a business engineering effort, if needed 
  • perform a cost/benefit analysis for any suggested changes in the target organization 
  • discuss and support those who market and sell the end-product of the project 

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

role assignment for business process analyst
Role Assignment for Business-Process Analyst
  • Assign the Business-Process Analyst and Business Designer roles to the same person.
  • Assign the Business-Process Analyst and System Analyst roles to the same person. When the business context needs to be understood, but the organization doesn't have existing Business-Process Analyst skills.
  • Assign the Business-Process Analyst and Test Analyst roles to the same person. Where customers are actively involved in the project definition and ongoing assessment.

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

business designer role rup
Business Designer Role (RUP)
  • Specifies the workflow of business use cases in terms of business workers and business entities.
  • It also distributes the behavior to these business workers and business entities - defining their responsibilities, operations, attributes, and relationships.

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

business designer skills rup
Business Designer Skills (RUP)
  • A good facilitator
  • Adequate communication skills
  • Knowledge of the business domain is helpful but not necessary for everyone acting in this role.
  • Needs to be familiar with the tools used to capture the business models.

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

business designer tasks rup
Business Designer Tasks (RUP)
  • understand customer and user requirements, their strategies, and their goals 
  • facilitate modeling of the target organization 
  • discuss and facilitate a business engineering effort, if needed 
  • take part in defining requirements on the end-product of the project 

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

role assignment for business designer
Role Assignment for Business Designer
  • Consider assigning the Business-Process Analyst and Business Designer roles to the same person. These roles interact a lot, so it can be more efficient to have a single person responsible for both roles.

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

analyst role set in rup
Analyst Role Set in RUP
  • System Analyst
  • Requirements Specifier
  • Additional Roles
    • Reviewer
    • Reviewer Coordinator
    • Technical Reviewer
    • Stakeholder

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

role of a system analyst in rup
Role of a System Analyst in RUP
  • Leads and coordinates requirements elicitation and use-case modeling by outlining the system's functionality and delimiting the system.

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

skills of a system analyst rup
Skills of a System Analyst (RUP)
  • An expert in identifying and understanding problems and opportunities.
  • Ability to articulate the needs that are associated with the key problem to be solved or opportunity to be realized.
  • A good facilitator
  • Above-average communication skills.
  • Knowledge of the business and technology domains
  • Ability to absorb and understand new information quickly.

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

system analyst role assignment rup
System Analyst Role Assignment (RUP)
  • Assign one or more staff member to perform the System Analyst role only: Suitable for large teams or where the requirements are particularly complex, difficult to elicit or where the Vision is particularly challenging to define and manage.
  • Assign one staff member to perform both the System Analyst and Test Manager or Deployment Manager roles: A good option for smaller or resource constrained test teams.

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

requirements specifier role rup
Requirements Specifier Role (RUP)
  • Specifies the details of one or more a parts of the system's functionality by describing one or the aspects of the requirements

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

requirements specifier skills rup
Requirements Specifier Skills (RUP)
  • Good communication skills, both in terms of expressing themselves verbally and in writing.
  • Knowledge of the business and technology domain.
  • Familiar with the productivity tools used to capture the results of the requirements work.

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

role assignment for requirements specifier
Role Assignment for Requirements Specifier
  • Assign one or more staff members to perform the Requirements Specifier role only.
    • In large teams
    • Where there are domain experts available who have significant domain knowledge to specify appropriate requirements.
  • Assign one or more staff members to perform both the Requirements Specifier and Test Analyst roles:
    • Small to mid-sized test teams
    • Where domain experts are available to play both roles.

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

additional analyst roles 1 2
Additional Analyst Roles (1/2)
  • Reviewer: Responsible for providing timely feedback to project team members on the artifacts they have produced.
  • Review Coordinator: Responsible for facilitating formal reviews and inspections, and ensuring that they occur when required and are conducted to a satisfactory standard.

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

additional analyst roles 2 2
Additional Analyst Roles (2/2)
  • Technical Reviewer: Responsible for contributing feedback to the review process. This role is involved in the category of review that deals with the technical review of project artifacts.
  • Stakeholder: Responsible for representing an interest group whose needs must be satisfied by the project.

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

technical reviewer
Technical Reviewer
  • Domain knowledge or subjective matter expertise appropriate to the artifact being reviewed
  • Either:
    • the skills required to produce the artifact being reviewed
    • the responsibility for other artifacts, the content of which this artifact is a transformation of or otherwise reflects in some manner.
    • the responsibility for subsequent activities in which this artifact will be consumed

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

role assignment for technical reviewer
Role Assignment for Technical Reviewer
  • The Technical Reviewer role is assigned to one or more individuals on a case-by-case basis, according to the artifact(s) being reviewed, the teams involved and the availability of staff members to take part in the review.

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

43 58
راهنماي مدرس ( اسلايدهاي 43-58)

در اين مجموعه، مفاهيم مدلسازي و استفاده از آن در مهندسي نرم افزار و روشهاي تحليل مورد بررسي قرار مي گيرند. بدين منظور

  • ابتدا مدل و مدلسازي تعريف مي شود.
  • پس از آن، مدلهاي مختلف به عنوان ابزارهاي تحليل بررسي شده و
  • مدلسازي در مهندسي نرم افزار تعريف مي شود.
  • سپس روشهاي آناليز ساختيافته معرفي شده وبطور کلي روشهاي آناليز نيازمنديها بررسي مي شوند.
  • ديدگاهها و روشهاي تحليل شيء گرا معرفي مي شوند.
  • و در آخر روشهايFormal مطرح مي شوند.

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

what is modeling

What

What is Modeling?
  • Model: A simplified representation of reality.
  • Why simplification?
    • Reality is complex.
    • Many aspects of complexity are unrelated to our problem solving task.
  • An abstractionof a real-world problem that can be represented and manipulated with a computing system.
  • Modeling is a sound and proven technique in engineering.
  • Modeling is one of the key activities in building high quality systems.

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

types of models

Which

Types of Models
  • Iconic: Like the system in a smaller scale.
  • Analog: Behave like the system like an organization chart, diagram, map,…
  • Mathematical (Quantitative)

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

example of a model
Example of a model

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

some modeling techniques
Some modeling techniques

Sketches and drawings

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

http://www.design4plastics.com/case-study.html

some modeling techniques1
Some modeling techniques

CAD drawings and models

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

some modeling techniques2

Payload

Lift Pressure

Lift Pressure

Some modeling techniques
  • Analytic models (equations)

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

some modeling techniques3
Some modeling techniques

Analytical (Matlab)

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

some modeling techniques4
Some modeling techniques

Finite Element Analysis / Computational Fluid Dynamics etc

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

some modeling techniques5
Some modeling techniques

Discrete event modeling

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

modeling in software engineering

What

Modeling in Software Engineering?
  • Better understanding of systems
  • Specifying requirements for checking their correctness, completeness and consistency.
  • Creating and comparing alternative designs with low cost (without the need to implement the system)
  • A basis for implementation (Round-trip engineering)
  • Act as a communication tool.

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

structured analysis methods

How

Structured Analysis Methods
  • DeMarco (1979)
  • Yourdon (1980)
  • Gane and Sarson
  • Ward & Mellor (1985) for Real Time Systems
  • Hatley & Pirbhai (1987) for Real Time Systems.

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

requirements analysis methods
Requirements Analysis Methods
  • Structured Analysis
  • Object Oriented Analysis
  • Formal Methods

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

object oriented analysis methods

How

Object Oriented Analysis Methods
  • About 50 methods, OO Methods War:
    • RA in Rational Unified Process Framework (1997)
    • Booch Method (1993): Booch’93
    • Jacobson Method (1992): OOSE
    • Rumbaugh Method (1991): OMT-2
    • Coad and Yourdon Method (1991)
    • Wirfs-Brock method (1990)

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

formal methods

How

Formal methods
  • Requirements specification techniques can be categorised on a “formality” spectrum
  • Semi-formal and informal methods
    • Use natural language, diagrams, tables and simple notation
    • Include structured analysis and object-oriented analysis
  • Formal methods include:
    • Based on mathematically formal syntax and semantics
    • Include Z, B, VDM, LOTOS

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

formal methods contd

How

Formal methods (contd.)
  • Provide a means for achieving a high degree of confidence that a system will conform to its specification
  • Do not absolute guarantee of correctness
  • Have little directly to offer to the problems of managing software projects
    • However, benefits can be gained from gaining a clear understanding of the task at an early stage

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

formal methods not widespread

How

Formal methods not widespread
  • Formal methods are not widely used amongst software developers
  • Factors contributing to slow acceptance of formal methods:
    • Difficulty in understanding the notations
    • Difficulty in formalising certain aspects of requirements
    • Payoff is not obvious.

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

60 73
راهنماي مدرس ( اسلايدهاي 60-73)

در اين مجموعه، مفاهيم Object Oriented مورد بررسي قرار مي گيرند. بدين منظور

  • مفاهيم اوليه Object Oriented مطرح شده
  • و موارد استفاده از آن بررسي مي شود.
  • سپس آناليز و طراحيObject Oriented مورد بررسي قرار مي گيرد
  • فوايد استفاده از اين روش آناليز
  • و روشهاي اصلي آناليز Object Oriented مطرح مي شوند.

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

analysis operational principles
Analysis Operational Principles

How

  • The information model of a problem must be represented and understood.
  • The functions that the software is to perform must be defined.
  • The behavior of the software must be represented.
  • The models that depict information, function and behavior must be partitioned.
  • The analysis process should move from essential information toward implementation detail.

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

object oriented concepts

What

Object Oriented Concepts
  • OO Systems: Composite, modular constructions, built using abstraction, consisting of components, and organized around data.
  • Abstractions are called objects.
  • Each object has its own properties and functionality.
  • As a group, these objects collaborate to solve the problem they are designed to model
  • Main idea in OO:System construction by using objects, classes, methods as the basic units.
  • Main concepts in OO: Objects, Classes, Attributes, Methods, Operations, Relationships.

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

strengths of object technology

What

Strengths of Object Technology
  • A single paradigm
    • Single language used by users, analysts, designers, implementers
  • Facilitates architectural and code reuse
  • Models more closely reflect the real world
    • More accurately describe corporate data and processes
    • Decomposed based on natural partitioning
    • Easier to understand and maintain
  • Stability
    • A small change in requirements does not mean massive changes in the system under development

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

a simple sales order example

Order

Item

Ship via

A Simple Sales Order Example

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

class diagram for the sales example

Sale

Salesperson

Customer

Product

Vehicle

Corporate

Individual

Truck

Train

Class Diagram for the Sales Example

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

effect of requirements change

Sale

Salesperson

Customer

Product

Vehicle

Corporate

Individual

Truck

Train

Effect of Requirements Change

Suppose a new trucking

company is introduced . . .

Only the Truck class changes

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

where is oo being used

Where

Where Is OO Being Used?
  • GUI based systems
    • OO approaches facilitate the design and implementation of systems with graphical user interfaces (GUIs)

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

where is oo being used1

Where

Where Is OO Being Used?
  • Embedded systems
    • OO methods enable embedded and real-time systems to be developed with higher quality and flexibility

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

where is oo being used2

Where

PC Platforms

  • Workstation

Object Interface

DB and existing applications

Where Is OO Being Used?
  • Client/Server computing
    • OO approaches can encapsulate mainframe information in objects, enabling down-sized applications to be delivered

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

where is oo being used3

Where

Existing Software

Re-engineered Software

Where Is OO Being Used?
  • Re-engineering
    • OO methods allow parts of a system to be re-engineered, protecting investments in existing software applications

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

object oriented analysis and design

OOA

OOD

Develop model

of requirements

Add detail and

design decisions

Developer’s Perspective

User’s Perspective

What

Object-Oriented Analysis and Design

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

object oriented analysis advantages

Why

Object Oriented Analysis Advantages
  • Increasing productivity.
  • Decreasing analysis activity
  • Decreasing Complexity in Design
  • Easier review and verification by customer
  • Increasing reusability

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

ooa method

What

OOA Method
  • Modeling activity based on OO concepts.
  • Every method:
    • Has some steps for performing RA
    • Produces a set of OO models
    • Has a modelinglanguage for representing models.

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

main ooa methods

Which

Main OOA Methods
  • Object Oriented Analysis Methods (About 50 methods, OO Methods War)
    • RA in Rational Unified Process Framework (1997)
    • Booch Method (1993): Booch’93
    • Jacobson Method (1992): OOSE
    • Rumbaugh Method (1991): OMT-2
    • Coad and Yourdon Method (1991)
    • Wirfs-Brock method (1990)

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

75 83
راهنماي مدرس ( اسلايدهاي 75-83)

در اين اسلايدها، UML و دياگرامهاي آن معرفي مي شوند. بدين منظور:

  • ابتدا UML معرفي شده، تاريخچه آن، انواع مدلها در آن و مزاياي استفاده از آن، خصوصيات و دياگرامهاي مختلف آن مورد بررسي قرار مي گيرند.
  • سپس ديدهاي مختلف UML در ارتباط با سيستم و Use Case View بيان مي شوند.

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

a unified approach to ooa

How

A Unified Approach to OOA
  • Use case modeling
    • Identifying actors
    • Identifying use cases
    • Build use case diagram
    • Describing the use cases
  • Class modeling
    • Identifying classes using requirements
    • Identifying attributes and operations for objects
    • Define class relationships
    • Build class model
  • Behavioral modeling
  • Review OOA models

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

unified modeling language chosen modeling language

What

Unified Modeling Language: Chosen Modeling Language
  • The Unified Modeling Language (UML) is described in The Unified Modeling Language for Object-Oriented Development written by Grady Booch, Jim Rumbaugh, and Ivar Jacobson.
    • Available from http:\\www.rational.com
  • Based on the authors’ personal experiences.
  • Incorporates contributions from other methodologists.
  • Co-submitted to the OMG by Rational Software, Microsoft, Hewlett-Packard, Oracle, Texas Instruments, MCI Systemhouse and others.

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

uml history

What

UML: History
  • The Unified Modelling Language is a standard graphical language for modelling object oriented software
    • At the end of the 1980s and the beginning of 1990s, the first object-oriented development processes appeared
    • The proliferation of methods and notations tended to cause considerable confusion
    • Two important methodologists Rumbaugh and Booch decided to merge their approaches in 1994.
      • They worked together at the Rational Software Corporation
    • In 1995, another methodologist, Jacobson, joined the team
      • His work focused on use cases
    • In 1997 the Object Management Group (OMG) started the process of UML standardization

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

inputs to uml

Fusion

Meyer

Operation descriptions,

Message numbering

Before and after

conditions

Embley

Harel

Singleton classes,

High-level view

State charts

Gamma, et.al

Wirfs-Brock

Frameworks, patterns,

notes

Responsibilities

Odell

Shlaer - Mellor

Classification

Object Lifecycles

Inputs to UML

Booch

Rumbaugh

Jacobson

UML

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

benefits of the unified modeling language

Why

Benefits of the Unified Modeling Language
  • Defines a seamless mapping from analysis to design to implementation
  • Defines an expressive and consistent notation
    • Makes it easier to communicate with others
    • Helps point out omissions and inconsistencies
    • Supports both small and large-scale analysis and design

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

uml features

Why

UML features
    • It has detailed semantics
    • It has extension mechanisms
    • It has an associated textual language
      • Object Constraint Language (OCL)
  • The objective of UML is to assist in software development
      • It is not a methodology

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

uml diagrams

What

UML diagrams
  • Class diagrams
    • describe classes and their relationships
  • Interaction diagrams
    • show the behaviour of systems in terms of how objects interact with each other
  • State diagrams and activity diagrams
    • show how systems behave internally
  • Component and deployment diagrams
    • show how the various components of systems are arranged logically and physically

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

uml views of a system

What

UML Views of a System

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

what is use case view

What

What is Use-Case View?

It addresses the understandability and usability of the system

System

  • This view looks atactors and use cases along with their interactions.
  • The diagrams in this view are:
  • 1.use case diagrams
  • 2.sequence diagrams(*)
  • 3.collaboration diagrams(*)
    • (*) they belongs to this view as use case realizations

Actor

Use case

Relationship

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

85 106
راهنماي مدرس ( اسلايدهاي 85-106)

در اين مجموعه، Use Case Modeling و Use Case Diagram و مفاهيم و اجزاء مطرح در آن مورد بررسي قرار مي گيرند. بدين منظور

  • ابتدا فرايند Use Case Modeling و فوائد استفاده از آن بررسي شده و قدمهاي اصليUse Case Modeling و چگونگي انجام آنها مورد بررسي قرار مي گيرد.
  • سپس Class Diagram و قدمهايClass Modeling شرح داده مي شوند.
  • پس از آن State Transition Diagram و مدلسازي رفتاري بررسي شده و
  • Pattern معرفي مي شود.

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

use case modeling

What

Use Case Modeling
  • Use case modeling is the process of modeling a system’s functions in terms of business events, who initiated the events, and how the system responds to the events.

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

use case modeling benefits

Why

Use Case Modeling Benefits
  • As a basis to help identify objects and their high-level relationships and responsibilities.
  • A view of system behavior from an external person’s viewpoint.
  • An effective tool for validating requirements.
  • An effective communication tool.
  • As a basis for a test plan.
  • As a basis for a user’s manual.

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

use case modeling process

How

Use Case Modeling Process

Step 1: Identifying Actors

Step 2: Identifying Use Cases

Step 3: Constructing a Use Case Model

Step 4: Describe the Use Cases

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

who reads use case documentation

Who

Who Reads Use-Case Documentation?
  • Customer -- approve what the system should do
  • Users -- provide system understanding
  • System Developers -- document system behavior
  • Reviewers --Examine the flow of events
  • System Analysts (System Designer) -- provide the basis for analysis and design
  • System Tester -- as a base for test cases
  • Project Leader -- project planning
  • Technical Writer -- When writing the user’s guide for the end users

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

essentials of uml class diagrams

What

Essentials of UML Class Diagrams
  • The main symbols shown on class diagrams are:
    • Classes
        • represent the types of data themselves
    • Associations
        • represent linkages between instances of classes
    • Attributes
        • are simple data found in classes and their instances
    • Operations
        • represent the functions performed by the classes and their instances
    • Generalizations
        • group classes into inheritance hierarchies

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

class modeling

How

Class Modeling
  • Step 1: Find the Potential Objects
    • Underlining (or highlighting) the use case nouns
  • Step 2: Select the Proposed Objects
    • Removing the nouns that represent:
      • Synonyms
      • Nouns outside the scope of the system
      • Nouns that are roles without unique behavior or are external roles
      • Unclear nouns that need focus
      • Nouns that are really actions or attributes

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

finding objects

How

Finding Objects
  • Objects are identified by examining the nouns and noun phrases in use cases and scenarios
  • Nouns found may be:
    • Objects
    • Description of the state of an object
    • External entities and/or Actors
    • None of the above

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

filtering nouns

How

Filtering Nouns
  • When underlining nouns, be aware that:
    • Several terms may refer to the same object
    • One term may refer to more than one object
    • Natural language is very ambiguous
  • This approach can identify many unimportant objects
    • The list of nouns must be filtered
  • A word of caution
    • Any noun can be ‘verb’ed; any verb can be ‘noun’ed
      • Results are heavily dependent on the writing skill of the author(s)

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

looking at the nouns

What

Looking at the Nouns
  • The following requirement was written for a banking system
    • “Legal requirements shall be taken into account”
  • If ONLY the nouns are considered, what will happen?

Bottom line: Each noun must be considered in the

context of the problem domain -- it cannot stand by itself

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

what is a state transition diagram

What

What is a State Transition Diagram?
  • A state transition diagramis used to show the life history of a given class, the events that cause a transition from one state to another, and the actions that result from a state change
  • State spaceof a given class is the enumeration of all the possible states of an object
  • The state of an object is one of the possible conditions in which an object may exist
    • It encompasses all of the properties of the object
      • Usually static
    • Plus the current values of each of these properties
      • Usually dynamic

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

behavioral modeling

What

Behavioral Modeling
  • Behavior: Reaction to Events
  • Behavioral Model: Used to represent and understand the behavior of the system, a part of a system or system objects.
  • Represented by UML state-machine diagram.
  • Helps in correct implementation.

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

where to start behavioral modeling

Where

Where to start Behavioral Modeling?
  • During analysis, initially concentrate on the behavior of the classes with significant dynamic behavior
  • For a given class look for possible states by:
    • Evaluating attribute values
    • Evaluating operations
    • Define the rules for each state and
    • Identify the valid transactions between states
  • Examine message trace or object message diagrams that involve the class being modeled
    • The interval between two operations may be a state

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

building state machine diagram

How

Building State-machine diagram

1- Identifying entities with complex behavior.

In analysis: Business Actors, domain classes with complex behavior and variable states.

In design: Boundary and Control classes.

2- Identifying start and stop states.

3- Identifying the events that affects entities.

4- Tracing event effects and identifying internal states.

5- Identifying entry and exit actions of each state

6- Expanding each state into sub-states (if needed)

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

introduction to patterns

What

Introduction to Patterns
  • The recurring aspects of designs are called design patterns.
    • A pattern is the outline of a reusable solution to a general problem encountered in a particular context
    • Many of them have been systematically documented for all software developers to use
    • A good pattern should
      • Be as general as possible
      • Contain a solution that has been proven to effectively solve the problem in the indicated context.

Studying patterns is an effective way to learn from the experience of others

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

pattern description

What

Pattern description

Context:

  • The general situation in which the pattern applies

Problem:

  • A short sentence or two raising the main difficulty.

Forces:

  • The issues or concerns to consider when solving the problem

Solution:

  • The recommended way to solve the problem in the given context.
    • ‘to balance the forces’

Antipatterns: (Optional)

  • Solutions that are inferior or do not work in this context.

Related patterns: (Optional)

  • Patterns that are similar to this pattern.

References:

  • Who developed or inspired the pattern.

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

the player role pattern

What

The Player-Role Pattern
  • Context:
    • A role is a particular set of properties associated with an object in a particular context.
    • An object may play different roles in different contexts.
  • Problem:
    • How do you best model players and roles so that a player can change roles or possess multiple roles?

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

player role

What

Player-Role
  • Forces:
    • It is desirable to improve encapsulation by capturing the information associated with each separate role in a class.
    • You want to avoid multiple inheritance.
    • You cannot allow an instance to change class
  • Solution:

«Player»

«AbstractRole»

«Role1»

«Role2»

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

player role1
Player-Role
  • Example 1:

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

player role2
Player-Role
  • Example 2:

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

player role3

What

Player-Role
  • Antipatterns:
    • Merge all the properties and behaviours into a single «Player» class and not have «Role» classes at all.
    • Create roles as subclasses of the «Player» class.

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

difficulties and risks when creating class diagrams
Difficulties and Risks When Creating Class Diagrams

What

  • Patterns are not a panacea:
    • Whenever you see an indication that a pattern should be applied, you might be tempted to blindly apply the pattern. However this can lead to unwise design decisions.
  • Resolution:
    • Always understand in depth the forces that need to be balanced, and when other patterns better balance the forces.
    • Make sure you justify each design decision carefully.

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

difficulties and risks when creating class diagrams1
Difficulties and Risks When Creating Class Diagrams

What

  • Developing patterns is hard
    • Writing a good pattern takes considerable work.
    • A poor pattern can be hard to apply correctly
  • Resolution:
    • Do not write patterns for others to use until you have considerable experience both in software design and in the use of patterns.
    • Take an in-depth course on patterns.
    • Iteratively refine your patterns, and have them peer reviewed at each iteration.

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

slide107
پاسخ به پرسشها
  • علت تحليل نيازهاي سيستم چيست؟
  • ويژگيهاييک تحليلگر موفق چيست؟
  • چه افرادي در تيم تحليل حضور دارند و وظايف، جايگاه و مهارتهاي مورد نياز براي هر يک از آنها چيست؟
  • تحليل در ديدگاه شي گرا شامل چه گامهايي است؟
  • فرآيند مدلسازي موارد کاربرد شامل چه گامهايي است؟

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

why requirements analysis1

Why

Why Requirements Analysis
  • Provides necessary artifacts for customer reviews and understanding the system.
  • Provides appropriate inputs for the Design and Test phases.
  • Provides the developer and the customer with the means to assess quality once software is built.
  • Checks completeness, correctness and consistency of the requirements.

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

slide109
پاسخ به پرسشها
  • علت تحليل نيازهاي سيستم چيست؟
  • ويژگيهاييک تحليلگر موفق چيست؟
  • چه افرادي در تيم تحليل حضور دارند و وظايف، جايگاه و مهارتهاي مورد نياز براي هر يک از آنها چيست؟
  • تحليل در ديدگاه شي گرا شامل چه گامهايي است؟
  • فرآيند مدلسازي موارد کاربرد شامل چه گامهايي است؟

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

a successful systems analyst3

Who

A Successful Systems Analyst
  • Analytical
    • Understanding of organizations
    • Problem solving skills
    • System thinking
      • Ability to see organizations and information systems as systems
  • Technical
    • Understanding of potential and limitations of technology

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

a successful systems analyst4

Who

A Successful Systems Analyst
  • Managerial
    • Ability to manage projects, resources, risk and change
  • Interpersonal
    • Effective written and oral communication skills

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

a successful systems analyst5

Who

A Successful Systems Analyst
  • Works in teams
    • Project Based
    • Includes
      • IS Manager
      • Systems analysts
      • Programmers
      • Users
      • Other specialists

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

slide113
پاسخ به پرسشها
  • علت تحليل نيازهاي سيستم چيست؟
  • ويژگيهاييک تحليلگر موفق چيست؟
  • چه افرادي در تيم تحليل حضور دارند و وظايف، جايگاه و مهارتهاي مورد نياز براي هر يک از آنها چيست؟
  • تحليل در ديدگاه شي گرا شامل چه گامهايي است؟
  • فرآيند مدلسازي موارد کاربرد شامل چه گامهايي است؟

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

analyst role set in rup1
Analyst Role Set in RUP
  • System Analyst
  • Requirements Specifier
  • Additional Roles
    • Reviewer
    • Reviewer Coordinator
    • Technical Reviewer
    • Stakeholder

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

role of a system analyst in rup1
Role of a System Analyst in RUP
  • Leads and coordinates requirements elicitation and use-case modeling by outlining the system's functionality and delimiting the system.

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

skills of a system analyst rup1
Skills of a System Analyst (RUP)
  • An expert in identifying and understanding problems and opportunities.
  • Ability to articulate the needs that are associated with the key problem to be solved or opportunity to be realized.
  • A good facilitator
  • Above-average communication skills.
  • Knowledge of the business and technology domains
  • Ability to absorb and understand new information quickly.

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

system analyst role assignment rup1
System Analyst Role Assignment (RUP)
  • Assign one or more staff member to perform the System Analyst role only: Suitable for large teams or where the requirements are particularly complex, difficult to elicit or where the Vision is particularly challenging to define and manage.
  • Assign one staff member to perform both the System Analyst and Test Manager or Deployment Manager roles: A good option for smaller or resource constrained test teams.

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

requirements specifier role rup1
Requirements Specifier Role (RUP)
  • Specifies the details of one or more a parts of the system's functionality by describing one or the aspects of the requirements

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

requirements specifier skills rup1
Requirements Specifier Skills (RUP)
  • Good communication skills, both in terms of expressing themselves verbally and in writing.
  • Knowledge of the business and technology domain.
  • Familiar with the productivity tools used to capture the results of the requirements work.

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

role assignment for requirements specifier1
Role Assignment for Requirements Specifier
  • Assign one or more staff members to perform the Requirements Specifier role only.
    • In large teams
    • Where there are domain experts available who have significant domain knowledge to specify appropriate requirements.
  • Assign one or more staff members to perform both the Requirements Specifier and Test Analyst roles:
    • Small to mid-sized test teams
    • Where domain experts are available to play both roles.

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

additional analyst roles 1 21
Additional Analyst Roles (1/2)
  • Reviewer: Responsible for providing timely feedback to project team members on the artifacts they have produced.
  • Review Coordinator: Responsible for facilitating formal reviews and inspections, and ensuring that they occur when required and are conducted to a satisfactory standard.

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

additional analyst roles 2 21
Additional Analyst Roles (2/2)
  • Technical Reviewer: Responsible for contributing feedback to the review process. This role is involved in the category of review that deals with the technical review of project artifacts.
  • Stakeholder: Responsible for representing an interest group whose needs must be satisfied by the project.

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

technical reviewer1
Technical Reviewer
  • Domain knowledge or subjective matter expertise appropriate to the artifact being reviewed
  • Either:
    • the skills required to produce the artifact being reviewed
    • the responsibility for other artifacts, the content of which this artifact is a transformation of or otherwise reflects in some manner.
    • the responsibility for subsequent activities in which this artifact will be consumed

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

role assignment for technical reviewer1
Role Assignment for Technical Reviewer
  • The Technical Reviewer role is assigned to one or more individuals on a case-by-case basis, according to the artifact(s) being reviewed, the teams involved and the availability of staff members to take part in the review.

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

slide125
پاسخ به پرسشها
  • علت تحليل نيازهاي سيستم چيست؟
  • ويژگيهاييک تحليلگر موفق چيست؟
  • چه افرادي در تيم تحليل حضور دارند و وظايف، جايگاه و مهارتهاي مورد نياز براي هر يک از آنها چيست؟
  • تحليل در ديدگاه شي گرا شامل چه گامهايي است؟
  • فرآيند مدلسازي موارد کاربرد شامل چه گامهايي است؟

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

analysis operational principles1
Analysis Operational Principles

How

  • The information model of a problem must be represented and understood.
  • The functions that the software is to perform must be defined.
  • The behavior of the software must be represented.
  • The models that depict information, function and behavior must be partitioned.
  • The analysis process should move from essential information toward implementation detail.

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

slide127
پاسخ به پرسشها
  • علت تحليل نيازهاي سيستم چيست؟
  • ويژگيهاييک تحليلگر موفق چيست؟
  • چه افرادي در تيم تحليل حضور دارند و وظايف، جايگاه و مهارتهاي مورد نياز براي هر يک از آنها چيست؟
  • تحليل در ديدگاه شي گرا شامل چه گامهايي است؟
  • فرآيند مدلسازي موارد کاربرد شامل چه گامهايي است؟

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory

use case modeling process1

How

Use Case Modeling Process

Step 1: Identifying Actors

Step 2: Identifying Use Cases

Step 3: Constructing a Use Case Model

Step 4: Describe the Use Cases

Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory