Day 2 - Software DesignApproving the design - objective To ensure that the software design activity is sufficiently thorough whether the project is ready to proceed... Day 2 - Softwar
Trang 1Software Design and Development
( A guide )
Trang 2Software Design & Development
Day 1 - Definitions and Overview
Day 2 - Software Design
Software Development
Trang 3Day 1 - Definitions & Overview
Definitions
What is software ?
What is software design ?
Trang 4Day 1 - Definitions & Overview
Definitions
Software development life-cycle
Software development process
Software development models
Trang 5Day 1 - Definitions & Overview
What is software ?
Software is computer programs that provide instructions for individual machines to function and for
Trang 6Day 1 - Definitions & Overview
What is software design ?
Consisting of 3 parts :
Conceptual design
Logical design
Trang 7Day 1 - Definitions & Overview
Software design - 3 parts
Conceptual
Logical
Physical Scenarios Services &
Objects, UI Components,
Trang 8Day 1 - Definitions & Overview
Part 1 of Software Design
Conceptual
Scenarios
• Identify business needs
• Understand users’ requirements
• Generate scenarios that reflect
complete & accurate requirements
by involving the customers, users and other stakeholders
Trang 9Day 1 - Definitions & Overview
Part 2 of Software Design
Logical
Services &
Objects, UI,
logical DB
• Organize the solution
• Formulate an abstract model
• Take the scenarios from conceptual
and produces objects & services,
Trang 10Day 1 - Definitions & Overview
Part 3 of Software Design
Physical
Components,
UI &
Physical DB
• Apply real-world technology
constraints incl implementation
& performance considerations,
to the outputs of Logical design by specifying the details of the solution
• Take the outputs of Logical Design
Trang 11Day 1 - Definitions & Overview
What is software development ?
Software development is a process of developing a software system from
requirements ie System, Information
Trang 12Day 1 - Definitions & Overview
What is software development ?
Software development comprises many individual tasks and activities that are performed in a fairly standard manner,
Trang 13Day 1 - Definitions & Overview
• Regulatory
- legal
- government
Trang 14What is a CASE tool ?
S oftware E ngineering
A software engineering process which
provides a disciplined approach to
Day 1 - Definitions & Overview
Trang 15Why do you use a CASE tool ?
Its goal is to ensure the production of
high-quality software, meeting the needs
Day 1 - Definitions & Overview
Trang 16Requirement Mission analysis
stage
Concept Dev Stage
Initiation Phase
Development Phase
System analysis
stage
System design stage
Construct
& acq.
stage
User accept stage
Day 1 - Definitions & Overview
Software development life-cycle
Trang 17Day 1 - Definitions & Overview
Software development life-cycle
Installation, Operation
& maintenance Design, Development,
Production & testing
Trang 18Users / Developers
Day 1 - Definitions & Overview
Software development process
Trang 19Day 1 - Definitions & Overview
Software development models
Trang 20Day 1 - Definitions & Overview
Software development models
Planning &Analysis Design
Assessment Implementation
Trang 21Day 1 - Definitions & Overview
Planning & Mgmt SOW Architecture Plans
Software req Architecture Func Spec Review,sign
Life cycle phases Input Output Controls
Pre Design Func spec Detailed doc Review,sign Detailed Pre Design Detailed spec Review,sign Code & test Detailed spec Final spec Walk-thru
Trang 22Day 1 - Definitions & Overview
Node A
Node B Node C
Node D
Node E Node F
Software Life Cycle
Trang 23Day 1 - Definitions & Overview
Node A
Node B Node C
Node D
Node E
has been identified and an initial
set of software requirements has been prepared
Trang 24Day 1 - Definitions & Overview
Node A
Node B Node C
Node D
Node E Node F
per-formed prior to node B is a DRR where commitments are made.
S/W dev is ready
to begin
Trang 25Day 1 - Definitions & Overview
agreements have been obtained
Trang 26Day 1 - Definitions & Overview
Node A
Node B Node C
Node D
Node E Node F
has been fully reviewed and accepted The component and software test dev.
activities are ready
to begin
Trang 27Day 1 - Definitions & Overview
have been unit tested
Trang 28Day 1 - Definitions & Overview
and all have been tested
Trang 29Day 1 - Definitions & Overview
Trang 30Day 1 - Definitions & Overview
Node A
Node B Node C
Node D
Node E Node F
is ready for full deployment or general customer availability (GCA)
Trang 31Software Design & Development
Day 1 - Definitions and Overview
Day 2 - Software Design
Software Development
Trang 32Software Design
Trang 33Day 2 - Software Design
Software design is the activity which produces details about software being
developed Its objective is to fully characterize how the software will
function in its operational
Trang 34Day 2 - Software Design
The design activity includes an
analysis of the component requirements plus create, lay out and
describe, review, improve, and approve the design
Trang 35Day 2 - Software Design
Design includes an evaluation of the adequacy of the detailed technical requirements, an evaluation of the design choices, and a verification that the design satisfies all requirements
Trang 36Day 2 - Software Design
Software Design Inputs
Software structure diagram & the
Trang 37Day 2 - Software Design
Analyze requirements Create design
Analyze and review
Correct and improve
Reused Designs
D B
Trang 38Day 2 - Software Design Analyzing the requirements
To ensure that requirement is
complete
so that design decision is not left to the developer
Assurance that all requirements will
Trang 39Day 2 - Software Design
What is Prototyping ?
Constructing a simplified version of a
portion of the product, possibly a
simulation, to be able to evaluate
various choices and to answer the
Trang 40Day 2 - Software Design
Prototyping - its benefits
Valuable task to address & resolve
various requirements & design issues
prototyping
tasks begun during planning or new
Trang 41Day 2 - Software Design
Prototyping - its benefits
Multiple prototyping tasks may be
conducted to simultaneously to address various alternative design issues
Trang 42Day 2 - Software Design
Creating the design
By a single person, however various
help are encouraged appropriately in order to obtain good & solid design
Trang 43Day 2 - Software Design
Creating the design - reused design
Reusing previously created & proven
designs is strongly encouraged; it is
frequently beneficial
Trang 44Day 2 - Software Design
Reviewing the design - objective
The objective is to increase the
likelihood that the design is the best
possible, and of high caliber
Trang 45Day 2 - Software Design
Reviewing the design - by
A group of people representing
various software & development skills
possessing special expertise may be
Trang 46Day 2 - Software Design
Reviewing the design - how
In a group setting to the extent
possible
pre-sents & walks thru’ details as needed
Designer responsible for correctness,
Trang 47Day 2 - Software Design
Reviewing the design - why
Will the product satisfy its intended
objectives ?
Does the design satisfy all of its
Trang 48Day 2 - Software Design
Reviewing the design - why
Has expensive, unneeded functionality
or capability been added to the design ?
Could key software requirements be
expanded if requested ?
Trang 49Day 2 - Software Design
Reviewing the design - finally
Scrutinize the list of planned activities
and test activities to ascertain whether any changes or additions are needed
Trang 50Day 2 - Software Design
Correcting & improving the design
Reworked to correct the problems
uncovered, & to implement the
improvements recommended
Trang 51Day 2 - Software Design
Approving the design - objective
To ensure that the software design
activity is sufficiently thorough
whether the project is ready to proceed
Trang 52Day 2 - Software Design
Approving the design
Involves a check to make sure that all
of the outputs are present, and a review
of the revised project activity list to
determine whether some replanning
Trang 53Day 2 - Software Design
Approving the design
need for changing the project plan
The effort spent in revising the project
plan is charged to project structuring
Trang 54Day 2 - Software Design
Design Outputs
The primary output for each design
activity is the design diagram or
equivalent articulation of the design
D
Trang 55Day 2 - Software Design
Design Outputs
as inputs to lower level design activities till they are ready for distribution to
the appropriate programming
D
Trang 56Day 2 - Software Design
Design Outputs
After the design has been approved,
the design artifacts ( usually the design diagram, and possibly an
implementation specification ) are
D
Trang 57Day 2 - Software Design
Analyze requirements Create design
Analyze and review
Correct and improve
Reused Designs
D B
SUMMARY
Trang 58Software Development
Trang 59Day 2 - Software Development
Software development is the activity which creates software and confirms
that the software satisfies its
requirements
Trang 60Day 2 - Software Development
Design the components
Code the components Components Test the
Develop component Tests
Reused components design
E D
Reused components
Component
Trang 61Day 2 - Software Development
Design the software tests
Code the software tests
Test the software tests Prepare
Reused test designs
F D
Reused software tests
Trang 62Day 2 - Software Development
Software Development Inputs
Design diagram ( or equivalent )
matrix
Information about the appropriate
technologies
D
Trang 63Day 2 - Software Development
Designing the component - micro
The software design needs to be
further decomposed to show the details about the program flow, and to handle all of the abnormal processing
Trang 64Day 2 - Software Development
Designing the component - micro
another design activity @ micro level
The standard design activity process
should be used, as modified, to
Trang 65Day 2 - Software Development
Designing the component - includes
Selection of algorithms
Provides all the detail information
Trang 66Day 2 - Software Development
Designing the component - test unit
At this juncture, the requirements for
developing the unit test are known, & the unit test development task is
spawned
Trang 67Day 2 - Software Development
Coding the component - reuse
Reused component design is
encouraged as it increases productivity, reduces development time, and
provides a higher quality
Trang 68Day 2 - Software Development
Coding the component
another means for attaining greater
productivity, reduced development
time, and increased quality as well
Trang 69Day 2 - Software Development
Coding the component - language
Which language will enable the
program to achieve its best
performance ?
Trang 70Day 2 - Software Development
Coding the component - language
Which language is the most
understandable to all who will have to read the source ?
Trang 71Day 2 - Software Development
Coding the component - language
Which language will facilitate
achieving the greatest productivity ?
The choice of programming language
Trang 72Day 2 - Software Development
Testing the component
An informal operability test is
conducted to confirm that the program will execute
Trang 73Day 2 - Software Development
Inspecting the code
A formal inspection of the code is
made
by a team of skilled code reviewers
Trang 74Day 2 - Software Development
Inspecting the code
Code inspections search for hidden
Trang 75Day 2 - Software Development
Inspecting the code
Addresses some key issues :
- does the codes do what the design indicates it should ?
- does the codes satisfy the
Trang 76Day 2 - Software Development
Inspecting the code
Addresses some key issues :
- does the code impact any other
components in an unexpected way ?
- how readily understandable is the
Trang 77Day 2 - Software Development
Inspecting the code
Addresses some key issues :
- does the codes adhere to all
applicable standards ?
- How good is the code ?
Trang 78Day 2 - Software Development
Inspecting the code
A list of standard code inspection issues
as a guide for future code inspections
The list should identify the specific things
Trang 79Day 2 - Software Development
Correcting and improving the
component
This task reworks the software to
correct the problems uncovered, & to implement the improvements
Trang 80Day 2 - Software Development
Preparing the Component Test
This activity may be performed
concurrently with the component
coding activity, and can begin when the component design is completed and
Trang 81Day 2 - Software Development
Preparing the Component Test
evaluates the adequacy of the detailed
component testing requirements, and
verifies that the test design satisfies all its
Trang 82Day 2 - Software Development
Testing the component
Unit test using the standard testing
activity
results for each test have been obtained
Trang 83Day 2 - Software Development
Approving the component
To ensure that the component is
operational and fully tested
made
Trang 84Day 2 - Software Development
Approving the component
A strategy for not approving the
component until there is a good
indication that as many defects as possible have been discovered and
Trang 85Day 2 - Software Development
Component Development Outputs
Primary output for each programming
activity is the software
it is libraried and comes under change
Trang 86Day 2 - Software Development
Design the components
Code the components Components Test the
Develop component Tests
Reused components designs
E D
Reused components
Component
SUMMARY
Trang 87Users / Developers
Day 2 - Software Design & Development
Trang 88Software Design and Development
( END !! )