Www.techstudent.co.cc Analysis and Design. PROCESS OVERVIEW A software development process provides...

19
www.techstudent.co.cc www.techstudent.co.cc Analysis and Analysis and Design Design

Transcript of Www.techstudent.co.cc Analysis and Design. PROCESS OVERVIEW A software development process provides...

Page 1: Www.techstudent.co.cc Analysis and Design.  PROCESS OVERVIEW A software development process provides a basis for the organized production.

www.techstudent.co.ccwww.techstudent.co.cc

Analysis and DesignAnalysis and Design

Page 2: Www.techstudent.co.cc Analysis and Design.  PROCESS OVERVIEW A software development process provides a basis for the organized production.

www.techstudent.co.ccwww.techstudent.co.cc

PROCESS OVERVIEWPROCESS OVERVIEW

A software development process provides a basis for A software development process provides a basis for the organized production of software, using a the organized production of software, using a collection of predefined techniques and notations. collection of predefined techniques and notations.

Development StagesDevelopment Stages• System conceptionSystem conception

• AnalysisAnalysis

• System designSystem design

• Class designClass design

• ImplementationImplementation

• TestingTesting

• TrainingTraining

• DeploymentDeployment

• MaintenanceMaintenance

Page 3: Www.techstudent.co.cc Analysis and Design.  PROCESS OVERVIEW A software development process provides a basis for the organized production.

www.techstudent.co.ccwww.techstudent.co.cc

Development Life CycleDevelopment Life Cycle

An OO approach to software development supports An OO approach to software development supports multiple life-cycle styles. multiple life-cycle styles.

• Waterfall DevelopmentWaterfall Development

• Iterative DevelopmentIterative Development Evolutionary modelEvolutionary model Throw way modelThrow way model

Page 4: Www.techstudent.co.cc Analysis and Design.  PROCESS OVERVIEW A software development process provides a basis for the organized production.

www.techstudent.co.ccwww.techstudent.co.cc

Waterfall ModelWaterfall Model

Page 5: Www.techstudent.co.cc Analysis and Design.  PROCESS OVERVIEW A software development process provides a basis for the organized production.

www.techstudent.co.ccwww.techstudent.co.cc

Evolutionary Prototyping ModelEvolutionary Prototyping Model

Requirementsspecification

Some initialdevelopment

Prototypeversion 1

Some moredevelopment

Prototypeversion 2

etc.

Continue till prototype is

matured

Page 6: Www.techstudent.co.cc Analysis and Design.  PROCESS OVERVIEW A software development process provides a basis for the organized production.

www.techstudent.co.ccwww.techstudent.co.cc

Decision

Throwaway Prototyping ModelThrowaway Prototyping Model

Requirementsspecification

Some minimaldevelopment

The prototype

Discardprototype

not acceptable acceptable

Go on with normal system development

Page 7: Www.techstudent.co.cc Analysis and Design.  PROCESS OVERVIEW A software development process provides a basis for the organized production.

www.techstudent.co.ccwww.techstudent.co.cc

System ConceptionSystem Conception System conception deals with the genesis of an System conception deals with the genesis of an

application.application. Most ideas for new systems are extensions of existing Most ideas for new systems are extensions of existing

ideas.ideas. Different ways to find new system conceptsDifferent ways to find new system concepts

• New functionalityNew functionality

• StreamliningStreamlining

• SimplificationSimplification

• AutomationAutomation

• IntegrationIntegration

• AnalogiesAnalogies

• Globalization Globalization

Page 8: Www.techstudent.co.cc Analysis and Design.  PROCESS OVERVIEW A software development process provides a basis for the organized production.

www.techstudent.co.ccwww.techstudent.co.cc

Elaborating a conceptElaborating a concept

A good system must answer the following A good system must answer the following questionsquestions• Who is the application for?Who is the application for?

• What problem will it solve?What problem will it solve?

• Where will it be used?Where will it be used?

• When is it needed?When is it needed?

• Why is it needed?Why is it needed?

• How will it workHow will it work

Page 9: Www.techstudent.co.cc Analysis and Design.  PROCESS OVERVIEW A software development process provides a basis for the organized production.

www.techstudent.co.ccwww.techstudent.co.cc

Preparing a problem statementPreparing a problem statement Once you have fleshed out the raw idea by answering high-level questions, you are ready to write a requirements statement that outlines Once you have fleshed out the raw idea by answering high-level questions, you are ready to write a requirements statement that outlines

the goals and general approach of the desired system.the goals and general approach of the desired system.

Kinds of RequirementsKinds of Requirements

Requirements Requirements StatementStatement DesignDesign ImplementationImplementation

Problem ScopeProblem Scope

What is neededWhat is needed

Application contextApplication context

AssumptionsAssumptions

Performance needsPerformance needs

General approachGeneral approach

AlgorithmsAlgorithms

Data StructuresData Structures

ArchitectureArchitecture

OptimizationsOptimizations

Capacity planningCapacity planning

PlatformsPlatforms

Hardware SpecsHardware Specs

Software librariesSoftware libraries

Interface standardsInterface standards

Page 10: Www.techstudent.co.cc Analysis and Design.  PROCESS OVERVIEW A software development process provides a basis for the organized production.

www.techstudent.co.ccwww.techstudent.co.cc

Domain AnalysisDomain Analysis

Domain analysis is concerned with devising a Domain analysis is concerned with devising a precise, concise, understandable and correct model precise, concise, understandable and correct model of the real world. of the real world.

Must understand the requirementsMust understand the requirements For building a model, you mustFor building a model, you must

• Interview business expertsInterview business experts

• Examine the requirements statementsExamine the requirements statements

• Scrutinize related artifactsScrutinize related artifacts

Domain analysis Domain analysis Application AnalysisApplication Analysis

Page 11: Www.techstudent.co.cc Analysis and Design.  PROCESS OVERVIEW A software development process provides a basis for the organized production.

www.techstudent.co.ccwww.techstudent.co.cc

Domain Class ModelDomain Class Model

Domain model shows the static structure of the real Domain model shows the static structure of the real world system and organize it into workable pieces. world system and organize it into workable pieces. It describes the real-world classes and their It describes the real-world classes and their relationships to each other. During analysis the relationships to each other. During analysis the class model precedes the state and interaction class model precedes the state and interaction model.model.

To construct a class model find classes and To construct a class model find classes and associations first, as they provide overall structure associations first, as they provide overall structure and approach to the problem. Then attributes to and approach to the problem. Then attributes to describe the basic network of classes and describe the basic network of classes and associations. Then combine and organize classes associations. Then combine and organize classes using inheritance. using inheritance.

Page 12: Www.techstudent.co.cc Analysis and Design.  PROCESS OVERVIEW A software development process provides a basis for the organized production.

www.techstudent.co.ccwww.techstudent.co.cc

Domain Class ModelDomain Class Model

Finding a class Finding a class • You can find many classes by considering nouns. You can find many classes by considering nouns.

Keeping the right classesKeeping the right classes

Discard unnecessary and incorrect classes according to Discard unnecessary and incorrect classes according to the following criteria.the following criteria.

Redundant Classes, Irrelevant Classes, Vague classes, Redundant Classes, Irrelevant Classes, Vague classes, Attributes, Operations, Roles, Implementation Attributes, Operations, Roles, Implementation constructs, Derived classes constructs, Derived classes

Page 13: Www.techstudent.co.cc Analysis and Design.  PROCESS OVERVIEW A software development process provides a basis for the organized production.

www.techstudent.co.ccwww.techstudent.co.cc

Domain Class ModelDomain Class Model

Preparing a Data Dictionary Preparing a Data Dictionary • Precise description of each class.Precise description of each class.

• Scope of current problem.Scope of current problem.

• Associations, Attributes, Operations, enumeration values, Associations, Attributes, Operations, enumeration values, Assumptions and restrictions. Assumptions and restrictions.

Finding AssociationFinding Association• It is a structural relationship between two or more classes.It is a structural relationship between two or more classes.

• Eg. Relate PERSON and COMPANY with the association ‘Eg. Relate PERSON and COMPANY with the association ‘WORKFORWORKFOR’’

Keeping the right Association Keeping the right Association

Discard unnecessary and incorrect associations. Discard unnecessary and incorrect associations. Association between eliminated classes, Irrelevant or Association between eliminated classes, Irrelevant or implementation associations, Actions, Ternary implementation associations, Actions, Ternary association, Derived association.association, Derived association.

Page 14: Www.techstudent.co.cc Analysis and Design.  PROCESS OVERVIEW A software development process provides a basis for the organized production.

www.techstudent.co.ccwww.techstudent.co.cc

Domain Class ModelDomain Class Model

Further specify the semantics of associations as Further specify the semantics of associations as followsfollows

Association end names, Qualified associations, Association end names, Qualified associations, Multiplicity, Missing associations, Aggregation.Multiplicity, Missing associations, Aggregation.

Finding AttributesFinding Attributes• Data properties of individual objects.Data properties of individual objects.

• Only consider attributes directly relevant to the application. Only consider attributes directly relevant to the application.

Keeping the right Attribute Keeping the right Attribute

Eliminate unnecessary and incorrect attributes Eliminate unnecessary and incorrect attributes with Objects, Qualifiers, Names, Identifiers, Attributes with Objects, Qualifiers, Names, Identifiers, Attributes on associations, Internal values, Fine detail, Discount on associations, Internal values, Fine detail, Discount attributes, Boolean attributes.attributes, Boolean attributes.

Page 15: Www.techstudent.co.cc Analysis and Design.  PROCESS OVERVIEW A software development process provides a basis for the organized production.

www.techstudent.co.ccwww.techstudent.co.cc

Domain Class ModelDomain Class Model

Refining with inheritanceRefining with inheritance

Inheritance can be added in two directions. Inheritance can be added in two directions. By generalizing common aspects of existing classes By generalizing common aspects of existing classes into a super class (bottom up) or by specializing into a super class (bottom up) or by specializing existing classes into multiple subclass (top down). existing classes into multiple subclass (top down).

Testing Access PathsTesting Access Paths

Trace access paths through the class model Trace access paths through the class model to see if they yield sensible results. Where a unique to see if they yield sensible results. Where a unique value is expected, is there a path yielding a unique value is expected, is there a path yielding a unique result? result?

Page 16: Www.techstudent.co.cc Analysis and Design.  PROCESS OVERVIEW A software development process provides a basis for the organized production.

www.techstudent.co.ccwww.techstudent.co.cc

Domain Class ModelDomain Class Model

Iterating a class modelIterating a class model

A class model is rarely correct after a single A class model is rarely correct after a single pass. The entire software development process is pass. The entire software development process is one of continual iteration; different parts of a model one of continual iteration; different parts of a model are often at different stages of completion. are often at different stages of completion.

Shifting the level of AbstractionShifting the level of Abstraction Grouping classes into packagesGrouping classes into packages

Page 17: Www.techstudent.co.cc Analysis and Design.  PROCESS OVERVIEW A software development process provides a basis for the organized production.

www.techstudent.co.ccwww.techstudent.co.cc

Domain State ModelDomain State Model

Some domain objects pass through qualitatively Some domain objects pass through qualitatively distinct states during their lifetime. There may be distinct states during their lifetime. There may be different constraints on attributes values, different different constraints on attributes values, different associations or multiplicities in the various states, associations or multiplicities in the various states, different operations that may be invoked, different different operations that may be invoked, different behavior of the operations and so on. It is often behavior of the operations and so on. It is often useful to construct state diagram of such a domain useful to construct state diagram of such a domain class. It describes various states that the objects can class. It describes various states that the objects can assume, the properties and constraints of the object assume, the properties and constraints of the object in various states and the events that take an object in various states and the events that take an object from one state to another. Most domain classes do from one state to another. Most domain classes do not require state diagrams and can be adequately not require state diagrams and can be adequately described by a list of operations. described by a list of operations.

Page 18: Www.techstudent.co.cc Analysis and Design.  PROCESS OVERVIEW A software development process provides a basis for the organized production.

www.techstudent.co.ccwww.techstudent.co.cc

Domain State ModelDomain State Model

Steps for constructing a domain state Steps for constructing a domain state model. model. • Identifying Classes with statesIdentifying Classes with states

• Finding statesFinding states

• Finding eventsFinding events

• Building State DiagramBuilding State Diagram

• Evaluating state diagramEvaluating state diagram

Page 19: Www.techstudent.co.cc Analysis and Design.  PROCESS OVERVIEW A software development process provides a basis for the organized production.

www.techstudent.co.ccwww.techstudent.co.cc

Domain Interaction ModelDomain Interaction Model

The interaction model is seldom important for The interaction model is seldom important for domain analysis. During domain analysis the domain analysis. During domain analysis the emphasis is on key concepts and deep structural emphasis is on key concepts and deep structural relationships and not users’ view of them. Its an relationships and not users’ view of them. Its an important aspect of application modeling.important aspect of application modeling.

Iterating the analysisIterating the analysis

Most analysis model require more that one Most analysis model require more that one pass to complete pass to complete • Refining the analysis modelRefining the analysis model

• Restating the requirementsRestating the requirements

• Analysis and Design Analysis and Design