Www.techstudent.co.cc Analysis and Design. PROCESS OVERVIEW A software development process provides...
-
Upload
esmond-chandler -
Category
Documents
-
view
222 -
download
0
Transcript of Www.techstudent.co.cc Analysis and Design. PROCESS OVERVIEW A software development process provides...
www.techstudent.co.ccwww.techstudent.co.cc
Analysis and DesignAnalysis and Design
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
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
www.techstudent.co.ccwww.techstudent.co.cc
Waterfall ModelWaterfall Model
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
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
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
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
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
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
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.
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
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.
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.
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?
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
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.
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
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