software design and coding conecpts

Upload: piyush-gaur

Post on 07-Apr-2018

222 views

Category:

Documents


0 download

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.