Software Design Principles
#1

[attachment=12628]
Software Design Principles
“Producing the software blueprint”
Lecture Objectives
To understand the importance of design in developing quality software
To describe the translation from the requirements analysis model to the design model
To understand the principles that guide proper design of software
Designing A House
If you are asked to design a house…
What Is Design?
Explaining the idea/concept of something
Usually with graphical diagrams
With the intention to build from the explanation
The design is a representation of a product or a system with sufficient detail for implementation
The Second Task
Designing Software
From our understanding of the problem, we start building the software
Translate the analysis model into the design model
Map the information from the analysis model to the design representations - data design, architectural design, interface design, procedural design
Translation Model
Design Principles
Design process should not suffer from “tunnel vision”
The design should be traceable to the analysis model
The design should not reinvent the wheel; Time is short
The design should “minimize intellectual distance” between the software and the problem in the real world
Design Principles (Continued)
The design should exhibit uniformity and integration
The design should be structured to accommodate change
The design should be structured to degrade gently.
Design Principles (Continued)
Design is not coding, coding is not design

The design should be assessed for quality as it is being created, not after the fact
The design should be reviewed to minimize conceptual errors
Design Concepts
Abstraction
Refinement
Modularity
Software Architecture
Control Hierarchy
Abstraction
Identifying important features for representation
There are many levels of abstraction depending on how detailed the representation is required
Data abstraction - representation of data objects
Procedural abstraction - representation of instructions
Refinement
Stepwise refinement - top-down design strategy by Niklaus Wirth
Starting at the highest level of abstraction, every step of refinement ‘decompose’ instructions into more detailed instructions
Complementary to abstraction
Modularity
Software is divided into separately named and addressable modules
“Divide and conquer” approach - problem is broken into manageable pieces
Solutions for the separate pieces then integrated into the whole system
Divide And Conquer
Software Architecture
Modules can be integrated in many ways to produce the system
Software architecture is the overall structure of the software
The hierarchy of components and how they interact, and the structure of data used by the components
Use of framework models, and possible reuse of architectural patterns
Software Architecture Patterns
Recurring pattern help designers reuse successful designs by basing new designs on prior experience.
A designer who is familiar with such patterns can apply them immediately to design problems without having to rediscover them.
Why use Design Patterns?
Reuse successful practices.
Not new – recognised that this is something that engineers have done for years.
Improve communication
Step towards a software engineer’s handbook
Examples of Software Architecture
Control Hierarchy
Hierarchy of modules representing the control relationships
A super-ordinate module controls another module
A subordinate module is controlled by another module
Measures relevant to control hierarchy: depth, width, fan-in, fan-out
Structure Terminology
Structural Partitioning
Program structure partitioned horizontally and vertically
Horizontal partitioning defines separate branches for each major program function - input, process, output
Vertical partitioning (aka factoring) defines control (decision-making) at the top and work at the bottom
Software Procedure
Processing details of individual modules
Precise specification of processing, including sequence of events, exact decision points, repetitive operations, and data organization/structure
Procedure is layered - subordinate modules must be referenced in processing details
Information Hiding
Information (procedure and data) contained within a module is inaccessible to other modules that have no need for such information
Effective modularity is achieved by independent modules, that communicate only necessary information
Ease of maintenance - testing, modification localized and less likely to propagate
References
“Software Engineering: A Practitioner’s Approach” 5th Ed. by Roger S. Pressman, Mc-Graw-Hill, 2001
“Software Engineering” by Ian Sommerville, Addison-Wesley, 2001
Reply
#2
To reiterate, you are not only getting more of a natural workout wearing MBT shoes, but you are also repairing your posture from the ground up. They won’t put you on the cover of a muscle magazine but you’ll feel much better about yourself.
__________________________________________________________________________________________cheap mbt shoes
Reply
#3
good thanks !!!!!!!!!!!111111
Reply
#4
Is very interesting and new knowledge.
Reply
#5

To get more information about the topic " Software Design Principles" please refer the page link below
http://studentbank.in/report-software-design-principles
Reply
#6
Great sharing!!one of my friend tell me about this site,i see is really good and have encouraging stuff......












Cabinets[/url]
Reply
#7


to get information about the topic"Software Design Principles" refer the page link bellow

http://studentbank.in/report-software-design-principles
Reply
#8

the main software design principle is water fall model: there are 6 steps to design a software-
The waterfall model is a sequential design process, often used in software development processes, in which progress is seen as flowing steadily downwards (like a waterfall) through the phases of Conception, Initiation, Analysis, Design, Construction, Testing, Production/Implementation and Maintenance.

1. Requirement,
2. Design,
3. Construction,
4. Testing,
5. Production/Implementation,
6. Maintenance.

hotel lake buena vista orlando
Reply

Important Note..!

If you are not satisfied with above reply ,..Please

ASK HERE

So that we will collect data for you and will made reply to the request....OR try below "QUICK REPLY" box to add a reply to this page
Popular Searches: principles that guide software design, explain software design principles, software design principles, arcade cabinets, principles of modern software management, uniformity design principles, modularity,

[-]
Quick Reply
Message
Type your reply to this message here.

Image Verification
Please enter the text contained within the image into the text box below it. This process is used to prevent automated spam bots.
Image Verification
(case insensitive)

Possibly Related Threads...
Thread Author Replies Views Last Post
  Software Requirements Specification seminar class 5 8,369 07-06-2012, 12:08 PM
Last Post: seminar details

Forum Jump: