• No results found

• Software design means to plan a solution of the problem specified by the system analyst OR It is technical part of the software

N/A
N/A
Protected

Academic year: 2022

Share "• Software design means to plan a solution of the problem specified by the system analyst OR It is technical part of the software "

Copied!
32
0
0

Loading.... (view fulltext now)

Full text

(1)

Unit-3 Software design

• Software design means to plan a solution of the problem specified by the system analyst OR It is technical part of the software

engineering process.

• Three types of activities in software design are:

• External design

• Architectural design or System design

• Detailed design

(2)

1) External design:

a) To conceive or to form an idea b) Begins during analysis phase c) Planning out

2) Architectural design:

a) Conceptual design

b) Identify modules in the system c) Specify their interaction

3) Detailed design:

a) Extension of system deign

b) Specify internal logic of each module

(3)

The software design process

(4)

Design objective:

• The goal of the design process is not simply to

produce a design for the system, instead the

goal is to find the best possible design within

the limitations imposed by the requirement,

physical and social environment in which the

system will operate.

(5)

Properties of good design

The important properties a good design should possess are:

Correctness: the design of a system is correct if a system according to the design satisfies the requirements of that system.

Verifiability: it is concerned with how easily the correctness of the design can be observed or simply means the design must be such that it is easy to check its correctness.

Completeness: requires that all the specifications are implemented it should specify all the relevant data structures, mathematical model of data, modules & their interface.

Traceability: means all the design elements should be traceable to some requirements.

(6)

Properties of good design

Consistency: requires that there are no inherent inconsistencies in the design e.g. If two different functions called a similar function then the called function must have some prototype in both the functions.

Efficiency: it is concerned with the proper use of expensive resources by the system and the need for efficiency arises due to the cast considerations. Costly resources must be used efficiently.

Simplicity: it is the most important quality criteria for software system because it directly affects the maintenance of software, which is usually considered as an expensive activity. A simple and understandable design will go long way in walking the job of the maintainer easier and inexpensive.

(7)

Design Principle

Design process is a set of interaction steps that

enable the designer to describe all aspects of

the software to be built. Creative skills past

experience, a sense of what makes good

software and an over all commitment to

quality are critical success factors for a

competent design. The basic principles that

enables the software engineers to navigate

the design process are :

(8)

Design Principle

The design process should not suffer from “tunnel vision . It is a condition in which one can not see well things or inability to see or understand the wider aspects of the solution. A good designer should consider alternative approaches.

The design should be traceable to the analysis model. A single element of the design model can trace the multiple requirements.

The design should not re-invent the wheel means reusable design components should always be chose as an alternative to re- invention i.e. design time should be invested in representing truly new ideas and integrating those pasterns that already exists.

The design should minimize the intellectual distance between the software and problem as it exists in the real world.

(9)

Design Principle

The design should exhibit uniformity and integration. A design is uniform if it appears that one person develop the entire things. So rules of style and format should be defined for a design team before design work begins. A design is integrated if care is taken in defining interfaces between design components.

The design should be structured to accommodate changes.

The design should be structured to degrade gently in the case of abnormal situation.

Design is not coding, coding is not design. The decisions taken at the design time reflect in the coding, however vice-versa is not true.

The design should be assist for quality.

The design should be reviewed to minimize conceptual errors.

(10)

Design Concepts/Design Fundamentals

1. Abstraction: it is tool that permits a designer to consider a component at an abstract level without knowing the details of the implementation of the component.

• Abstraction used for existing component as

well as component that are being designed.

(11)

Design Concepts/Design Fundamentals

Functional abstraction: a module OS specified by the function it performs .eg. Log, sqrt, math, open a door.

Data abstraction: it involves specifying are a data type or data object by specifying legal operations on objects i.e. data is not treated simply as object but as an object with some predefined operation on it.

Control abstraction: it implies a program control

mechanism without stating the exact mechanism

control. e.g. If statement, if else statement, do while

etc.

(12)

Design Concepts/Design Fundamentals

2. Step wise refinement: it is top down technique for decomposing a system from high level specifications into more elementary levels.

It is also known as step wise program development or successive refinement.

• Abstraction and refinement are complementary

concepts. Abstraction enables a designer to

specify a procedure and data and yet suppress.

(13)

Design Concepts/Design Fundamentals

3. Modularity:

C (P

1

) ➔ complexity of problem1 C (p

2

) ➔ complexity of problem2

Let C (p

1

)>C (P

2

)

So, E (P

1

) >E (P

2

)

C (p1+p2)>c (p1) +c (p2)

E (p1+p2)>E (p1) +E (p2

(14)

Modularity

Modularity refers to the extent to which a software/Web application may be divided into smaller modules.

Software modularity indicates that the number

of application modules are capable of serving

a specified business domain.

(15)
(16)

Design Methodologies

• A design methodology is a systematic approach to create a design by applying a set of techniques and guidelines, most design methodologies on the system design.

• These methodologies offer set of guide lines that can be used by the developer to design a system.

• In other words system design problem oriented activity and methodologies can only provide certain guidelines.

There are two main design methodologies used for software design.

(17)

Functional design or Functional oriented design

• The system is designed from a functional view port starting with a high level view and progressively refining into more detailed.

• Each module represents a function or an

operation to perform an activity in the system.

(18)

Functional design or Functional oriented design

• In the functional a software system consists of data items that represent some information and set of procedure that manipulate the data.

• In functional approach often the data

structure can notified by function other than

required to manipulate the system behavior.

(19)

Object oriented design

• Concern with developing an object oriented

mode of a software system to implements the

identified requirements.

(20)

Characteristics of object oriented design

• Objects are abstraction of re4al world which are responsible to manage their and may offer services to other objects.

• Objects are independent entities that may change without reference to other system design.

• Shared data areas are eliminated object communicate by calling all services by other objects rather than shared variable.

• Object may be distributed and may execute either sequentially or parallel.

• System functionally is express in term of operation

associated with each object.

(21)

Conventional design Vs object oriented design

• The data design transforms the information domain model created during analyses into data structure that will be required to implement software.

• The architecture designs define the major structure element of the program. It is the design representation or the modular frame work of the program derived from the analysis model.

• Interface design describes how the software

communication within itself to system that interpreted

with it and which rename who use it. The data or

control flow diagrams provide the information required

for interface design.

(22)

Object Oriented Design

• Subsystem layer contains a representation of each of the subsystem that enables the software to achieve a customer defined requirement and to implement a technical infrastructure that supports customer requirements.

• This contains the class hierarchy and design representation of each object.

• The message layer contains the details that enable each object to communicate with its collaboration. This layer establishes the internal and external interface for the system.

• Responsibilities layer contain the data structure and algorithmical design for all attributes and operation for each object.

(23)

Object Oriented Design

Procedural design

Interface design

Architectural design

Data design

Responsibilities

Message design

Class & object

Sub system

(24)

USER INTERFACE DESIGN

• It is one of the scales to measure the performance of a software system.

• An interface which all difficult to we will result in

a high level of user errors. at worst it will cause

software system to be discarded irrespective in a

confusing or leading way the user may

misunderstand the meaning of an item of

information. They may initiative a sequence of

actions which corrupt data or even cause a

system failure.

(25)

TEXTUAL INTERFACE Vs GRAPHICAL INTERFACE

• Textual Interface:-

i) These are now easy to learn and use, a brief training design is required.

ii) Only one task can be carried out of one time in an interactive manner.

iii) System interaction is through keyboard.

Interface cannot make full use of pointing devices.

iv) Several commands are required to remember to

effectively use the system.

(26)

TEXTUAL INTERFACE Vs GRAPHICAL INTERFACE

v) User frequently makes errors in expressing commands.

This requires error handling and message generation facilities to be included in the command language processor.

vi) Content dependent help is not available.

vii) Language processing techniques are well developed because of the work done on compiler techniques and hence creating a command language processor is usually much easier.

viii) The interface can be made concise with little typing

effort on the part of the user. e.g. DOS, UNIX,

WINDOWS, X-WINDOWS, NOVEL NETWORK 3.1

(27)

GRAPHICAL INTERFACE

I).Are relatively easy to learn and use. Users with no computing experiences can learn to use the system after few instructions.

ii).The user has multiple windows for system interaction, switching from one task to another is possible without losing site of information generated during the first task.

iii) Fast, full screen information is possible with immediate access to anywhere on the screen by using a pointing device.

iv).Commands needs not to be remembered they are always presented with a valid command list meaningful command names imply the command function.

(28)

GRAPHICAL INTERFACE

v).Typing effort is minimal some kind of users errors are avoided command syntax errors are never made.

vi).It is easy to keep track of the user’s context and to link this with the help of system creating a graphical interface is much more complex than simple textual interface.

vi).Experienced regular computer users sometimes prefer a textual interface as the overhead un-mount in menu selection irritates then and slows down their work (However it is better occasional who cannot type quickly).

e.g. LINUX, WINDOWS, UNIX with X-WINDOWS, NOVEL 5.2

(29)

CODING STYLE

• The goal of good coding style is to provide

easily understand straight forward elegant and

efficient code. It has been recognized that

good coding style can overcome many of the

deficiencies of programming language while

poor style can defect the feature of an

excellent language.

(30)

DO’ s OF GOOD CODING STYLE:-

• - Use a few standard agreed upon control construct.

• - use gotos in a disciplined way.

• - introduce user defined data types to model entities in the problem domain.

• - hide data structure behind access functions.

• -isolate machine dependencies in a few routines.

• -provides standard documentation prolongs for each subprogram and/or compilation unit.

• - # carefully examine routines having fewer than 5 or more than 25 executable statements is use indentation ,parenthesis ,blank spaces, blank lines and borders around comment block to enhance reliability.

(31)

DON’Ts OF GOOD CODING STYLE

i). Don’t be too clever

ii).Avoid null then statements iii).Avoid then if statements iv).Don’t nest too deeply

v).Avoid observe side effects vi).Don’t sub optimize

vii).Carefully examine routines having more than five formal parameters.

viii).Don’t use an identifier for multi-purpose.

(32)

THANK YOU

Salim Istyaq

(Assistant Professor) Computer Engineering

University Polytechnic, faculty of Engineering &Technology, A.M.U. Aligarh Whatsapp: +919412563748

Email: saleemishtiyak@gmail.com

References

Related documents

The Congo has ratified CITES and other international conventions relevant to shark conservation and management, notably the Convention on the Conservation of Migratory

Corporations such as Coca Cola (through its Replenish Africa Initiative, RAIN, Reckitt Benckiser Group and Procter and Gamble have signalled their willingness to commit

These gains in crop production are unprecedented which is why 5 million small farmers in India in 2008 elected to plant 7.6 million hectares of Bt cotton which

INDEPENDENT MONITORING BOARD | RECOMMENDED ACTION.. Rationale: Repeatedly, in field surveys, from front-line polio workers, and in meeting after meeting, it has become clear that

The three verification methods we consider are design walkthrough, critical design review, and consistency checkers.... ✓ A design walkthrough is a manual method

Based on the call for a more nuanced understanding of illegal wildlife trade and why individuals engage in these activities, this study interviewed 73 convicted wildlife

Daystar Downloaded from www.worldscientific.com by INDIAN INSTITUTE OF ASTROPHYSICS BANGALORE on 02/02/21.. Re-use and distribution is strictly not permitted, except for Open

Ethics Committee of Assam University has formulated the Standard Operating Procedure for the smooth functioning of the researchers in the university involving human subjects