software design and coding conecpts
TRANSCRIPT
-
8/3/2019 Software Design and Coding Conecpts
1/15
-
8/3/2019 Software Design and Coding Conecpts
2/15
What is design? Representation of something that is to be built. Design - > Implementation Example of designs in real life:
Blue print of a building architecture Plan for conducting a workshop Course plan
The process of applying various techniques and principlesfor the purpose of defining a device, a process or a system
in sufficient detail to permit its physical realization In sw engg the goal of the design phase is to transform the
requirements specified in the SRS document in a structurethat is suitable for implementation in some programminglanguage.
-
8/3/2019 Software Design and Coding Conecpts
3/15
What is design?An iterative process transforming requirements
into a blueprint for constructing the software.
-
8/3/2019 Software Design and Coding Conecpts
4/15
Design in software engg Process Design
Product Design
-
8/3/2019 Software Design and Coding Conecpts
5/15
Process design Design for the process of carrying out the design
Methodology selection
Project planning/execution plans Process & documentation standards
Resource allocation charts
Quality and reliability methods
-
8/3/2019 Software Design and Coding Conecpts
6/15
Product Design Design activities can be braodly classified into two
important parts: Preliminary (or high-level) design AND
Detailed design High-level design: identification of different modules and
the control relationships among them and the definition ofthe interfaces among these modules. Outcome of high-level design is called the program structure or softwarearchitecture.
Detailed design: data structure and the algorithms of thedifferent modules are designed. Outcome of this designstage is usually known as the module-specificationdocument.
-
8/3/2019 Software Design and Coding Conecpts
7/15
Design Principles The design process should suffer from tunnel vision- i.e., should
consider various alternative approaches based on requirements The design should be traceable to the requirements analysis model The design should not reinvent the wheel Reuse!
Design should be uniform and exhibit integrity- like one persondeveloped the entire system, rules for style & format Design should accommodate change Design should minimize coupling between modules (dependence) Design should accommodate unusual circumstances and should be
structured to degrade gently It should terminate gracefully and not bomb suddenly
Design is not coding, coding is not design Design should have quality assessment during creation, not afterwards
This is to reduce development time Design should be reviewed to minimize on conceptual errors -- Formal
design reviews!
-
8/3/2019 Software Design and Coding Conecpts
8/15
Product Design
Design of the product to be built
-
8/3/2019 Software Design and Coding Conecpts
9/15
Data Design The primary activity during data design is to select
logical representation of data objects (data structures)identified during the requirements analysis &
specification phase.Well-designed data can lead to better program
structure and modularity, and reduced proceduralcomplexity.
All data structures and the operations to be performedon each should be identified
A data dictionary should be established and used todefine both data and program design.
-
8/3/2019 Software Design and Coding Conecpts
10/15
Data Dictionary How analyst, designer and programmer maintain
consistency in naming of data objects?
Where is this data object used?What else will have to change if we modify it?
What will the overall impact of the change be?
-
8/3/2019 Software Design and Coding Conecpts
11/15
Data Dictionary Is an organized listing of all data elements that are pertinent to
the system, with precise definitions so that both user and systemanalyst will have a common understanding of inputs, outputs,components of stores and intermediate calculations.
Most of the data dictionaries contain following info Name- primary name of the data or control item, the data store, or
an external entity Alias other names used for the first entry Where-used/how used- a listing of the processes that use the data
or control item and how it is used(e.g., input to the process, outputfrom the process, as a store, as an external entity)
Content description- a notation for representing content Supplementary information- other information about data types,
preset values (if known), restrictions or limitations, etc.
-
8/3/2019 Software Design and Coding Conecpts
12/15
Data Dictionary Once a data object or control item name and aliases
are entered into the data dictionary, consistency innaming can be enforced.
Almost always implemented as part of a CASEstructure analysis and design tools
When a dictionary entry is created, the CASE tool
scans DFDs and CFDs to determine which processesuse the data or control information and how it is used.Therefore, where-used/how-used info is recordedautomatically.
-
8/3/2019 Software Design and Coding Conecpts
13/15
Data Dictionary-content
description notationNotation Meaning
= Is composed of
+ And
[ | ] Either-or
{ }n n repetitions of
( ) Optional data
* * Delimits comments
-
8/3/2019 Software Design and Coding Conecpts
14/15
Data dictionary- exampleName Telephone numberAliases None
Where used/how used Get contact Info/ Dial phone
Description Telephone number=[local extension | outside number]
Further refinement of Local extension and outside number:
Telephone number= [local extension | outside number]
Local extension= [500 | 501 ..| 550]
Outside number= [local number | std number]
Local number= any sixdigit string
Std number= 0 + ten digit number
-
8/3/2019 Software Design and Coding Conecpts
15/15
Architectural design Primary objective is to develop a modular program
structure and present the control relationshipsbetween modules.