Design models provide a concrete specification for the construction of the software. It represents the characteristics of the software that help the practitioners to construct it effectively. Design modeling represents the dummy model of the thing that is to be built. In software systems, the design model provides different views of the system.
A set of design principles when applied creates a design that exhibits both internal and external quality factors. A high quality design can be achieved.
- The work of analysis model is to describe the information domain of problem, user functions, analysis classes with methods. The work of design model is to translate information from analysis model into an architecture. The design model should be traceable to analysis model.
- A data design simplifies program flow, design and implementation of software components easier. It is as important as designing of processing functions.
- In design modeling, the interfaces should be designed properly. It will make integration much easier and increase efficiency.
- Design should always start considering the architecture of the system that is to be built.
- End user plays an important role in developing a software system. User Interface is the visible reflection of the software. User Interface should be in terms of the end-user.
- Component functionality should focus on one and only one function or sub-function.
- In design modeling, the coupling among components should be as low as is needed and reasonable.
- Design models should be able to give information developers, testers and people who will maintain the software. In other words, it should be easily understandable.
- Design models should be iterative in nature. With each iteration, the design should move towards simplicity.
Thursday, July 14, 2011
What are the principles of Design Modeling?
Posted by
Sunflower
at
7/14/2011 11:52:00 AM
0
comments
Labels: Architectural design, Attributes, Customer, Data, Design Modeling, Domain, Functions, Internal, Models, Principles, Representation, Requirements, Software
![]() | Subscribe by Email |
|
Wednesday, July 13, 2011
What are the principles of Analysis Modeling?
Analysis models represent customer requirements. Design models provide a concrete specification for the construction of the software. In analysis models, software is depicted in three domains. These domains are information domain, functional domain and behavioral domain.
Analysis modeling focuses on three attributes of software: information to be processed, function to be delivered and behavior to be exhibited. There are set of principles which relate analysis methods :
- The data that flows in and out of the system and data stores collectively are called information domain. This information domain should be well understood and represented.
- The functions of the software effect the control over internal and external elements. These functions need to be well defined.
- The software is influenced with external environment. Software behaves in a certain manner. This behavior should be well defined.
- Partitioning is a key strategy in analysis modeling. Divide the models depicting information, function and behavior in a manner which uncovers detail in hierarchical way.
- Description of problem from end-user's perspective is the start point of analysis modeling. Task should move from essential information toward implementation detail.
Posted by
Sunflower
at
7/13/2011 12:52:00 PM
1 comments
Labels: Analysis, Analysis Modeling, Attributes, Customer, Data, Domain, Functions, Internal, Models, Principles, Representation, Requirements, Software
![]() | Subscribe by Email |
|
Tuesday, April 12, 2011
What is Design Engineering? What are different design concepts?
Design engineering focuses on the creation of a representation or model that are concentrated on architecture of the software, data structures, interfaces and components that are necessary to implement the software.
The design process is an iterative process of refinement, i.e.from a higher level of abstraction to lower levels of abstraction. The design should implement both explicit and implicit requirements. It should be readable and understandable. It provides an over-all illustration of the software from the perspective of the data, function and behavior.
Design concepts provides the software engineer a foundation from which design methods can be applied. These concepts include:
- Abstractions: Software engineers different levels of abstractions as we design the blueprint of the software. Two types of abstraction called data and procedural abstractions are defined.
- Modularity: It leads to information hiding and encourages functional independence.
- Coupling: It is the degree of interconnectedness between design objects. Two types of coupling are used: Interaction and Inheritance Coupling.
- Cohesion: It is the measure to which an element contributes to a single purpose.
- Refinement: Abstraction complements refinement as they enable a software engineer to specify the behavior and data of a class or module yet suppressing low levels of detail.
- Refactoring: It simplifies the design of the component without changing its function and behavior.
The work product of the design engineering phase is the design model which consists of the architectural design, data design, interface design and component-level design and deployment level design.
Posted by
Sunflower
at
4/12/2011 01:44:00 PM
0
comments
Labels: Abstraction, Cohesion, Concepts, Coupling, Data structure, Design Engineering, Information, Iterative, Modularity, Refactoring, Refinement, Representation
![]() | Subscribe by Email |
|
Monday, March 14, 2011
Architectural Design - Refining the Architecture into Components and Describing Instantiations of the System
Refining the Architecture into Components
As the software architecture is refined into components, structure of the system begins to emerge. Components of the software architecture are derived from three sources:
- the application domain
- the infrastructure domain
- the interface domain
Because analysis modeling does not address infrastructure, one should allocate sufficient design time to consider it carefully.
In order to find the components that are most suitable for refining the software architecture, you need to start by using the classes which were described in the analysis model. The analysis classes in turn are representations of business entities that architecture is trying to describe. You could also base these components on an infrastructure model rather than the business model. If you went purely by the business model, you would not be able to depict many of those infrastructure components such as database components, components used for communication etc.
Whatever interfaces are described in the architecture context diagram imply one or more specialized components that process the data that flow across the interface.
Describing Instantiations of the System
The context of the system has been represented, the archetypes indicating important abstractions are defined, the overall structure of system apparent and major software components are identified, however further refinement is necessary which is accomplished by developing an actual instantiation of architecture. The architecture is applied to a specific problem with the intent of demonstrating that the structure and components are appropriate.
Posted by
Sunflower
at
3/14/2011 10:17:00 PM
0
comments
Labels: Analysis Classes, Archetypes, Architectural, Architectural design, Classes, Define, Design, Domain, Entity, Infrastructure, Models, Refining, Representation, Software, Software Architectue, Structure
![]() | Subscribe by Email |
|
Tuesday, March 8, 2011
Software Architecture Design - why is it important?
The architecture is not the operational software, rather it is a representation that enables a software engineer to analyze the effectiveness of the design in meeting its stated requirements, consider architectural alternatives at a stage when making design changes is still relatively easy and reduce the risk associated with the construction of the software.
- Software architecture enables and shows communication between all parties interested in the development of a computer based system.
- Early design decisions that has a profound impact on software engineering work is highlighted through architecture.
- Architecture constitutes a relatively small, intellectually graspable model of how the system is structured and how its components work together.
The architectural design model and the architectural patterns contained within it are transferable. Architectural styles and patterns can be applied to the design of other systems and represent a set of abstractions that enable software engineers to describe architecture in predictable ways.
Software architecture considers two levels of design pyramid - data design and architectural design. The software architecture of a program or computing system is the structure or structures of the system, which compose software components, the externally visible properties of those components and the relationships among them.
Posted by
Sunflower
at
3/08/2011 06:08:00 PM
1 comments
Labels: Architecture, Communication, Components, computers, Design, Impact, Levels, Operational, Patterns, program, Representation, Software, Software Architectue, Stages, Structures
![]() | Subscribe by Email |
|
Thursday, March 3, 2011
How do we create an architectural design....an overview
Design is an activity concerned with making major decisions, often of a structural nature. It is a multi-step process in which representations of data and program structure, interface characteristics, and procedural detail are synthesized from information requirements.
Architectural design represents the structure of data and program components that are required to build a computer based system. It considers the architectural style that the system will take, the structure and properties of the components that constitute the system, and the interrelationships that occur among all architectural components of a system. A software engineer can design both data and architecture, the job is often allocated to specialists when large, complex systems are to be built. A database or data warehouse designer creates the data architecture for a system. The system architect selects an appropriate architectural style for the requirements derived during system engineering and software requirements analysis.
Architectural design provides with the big picture and ensures that you have got it right in a same manner as before building a house, you need a blueprint. Architectural design begins with data design and then proceeds to the derivation of one one or more representations of the architectural structure of the system. Alternative architectural styles or patterns are analyzed to derive the structure that is best suited to customer requirements and quality attributes. Once an alternative has been selected, the architecture is elaborated using an architectural design method.
An architecture model encompassing data architecture and program structure is created during architectural design. In addition, component properties and relationships are also described. At each stage, software design work products are reviewed for clarity, correctness, completeness, and consistency with requirements and with one another.
Posted by
Sunflower
at
3/03/2011 08:21:00 PM
0
comments
Labels: Architectural design, Architecture, Completeness, Components, Correctness, Design, Design models, Models, Patterns, Process Requirements, Representation, Steps, Structure, Work Products
![]() | Subscribe by Email |
|
Saturday, February 26, 2011
How to design conventional components - Program Design Language and Comparison of Design Notation
Conventional component level design requires the representation of data structures, interfaces, and algorithms for a program module. The designer uses one of a number of design notations that represent component level detail in either graphical, tabular, or text based formats.
PROGRAM DESIGN LANGUAGE
Program design language is also called pseudo code. In this, vocabulary of one language and overall syntax of another language is used. Program design language(PDL) is used as a generic reference for a design language.
The difference between a PDL and a real programming language lies in the use of narrative text embedded directly within PDL statements.
- PDL cannot be complied.
- Tools can translate PDL into a programming language.
- These tools also produce nesting maps, design operation index, cross reference tables and other information.
- PDL may be simple transposition of a language.
- Basic PDL syntax should include constructs for component definition, interface description, data declaration, block structuring, condition and repetition constructs.
- PDL can be extended to include keywords for multitasking, interrupt handling, interprocess synchronization.
COMPARISON OF DESIGN NOTATION
- Design notation leads to procedural representation which is easy to understand and review.
- Design notation should enhance "code to" ability.
- Design representation must be easily maintainable so that design always represents the program correctly.
- PDL offers the best combination of characteristics.
- However, it does not follow that other design notations are inferior.
- Activity diagrams and flowcharts provides a perspective on control flow that many designers prefer.
Posted by
Sunflower
at
2/26/2011 09:04:00 PM
0
comments
Labels: Component Level Design, Components, Conventional, Design, Design Notation, Embedded, Format, Information, Languages, Notation, PDL, Procedural, Program Design Language, Representation
![]() | Subscribe by Email |
|
Wednesday, January 26, 2011
Introduction to Content Design - Content Objects and Content Design Issues
Content design focuses on two different design issues, each addressed by individuals with different skill sets. In content design :
- a design representation is developed for content objects and
- mechanisms are represented that are required to initiate their relationships to one another.
- representation of information within a specific content object is concerned.
It is design activity that is conducted by copywriters, graphic designers, and others who generate the content to be used within a web application.
A content object is closely aligned with a data object. A content object has attributes that include content specific information and implementation specific attributes that are specified as part of design.
UML association and aggregation may be used to represent relationships between content objects.
Once all the content objects are modeled, the information that each object is to deliver must be authored and then formatted to best meet the customer's needs. Content authoring is the job of specialists who design the content object by providing an outline of information to be delivered and an indication of the types of generic content objects that will be used to deliver the information.
As content objects are designed, they are chunked to form web application pages. The number of content objects incorporated into a single page is a function of user needs, constraints imposed by download speed of internet connections, and restrictions imposed by the amount of scrolling that the user will tolerate.
Posted by
Sunflower
at
1/26/2011 11:40:00 PM
0
comments
Labels: Application, Attributes, Content, Content Design, Content Object, Design, Issues, Objects, Relationships, Representation, software engineering, Web Applications, WebApp, WebApps
![]() | Subscribe by Email |
|
Monday, January 24, 2011
What are different tasks representing WebApp interface design?
The user interface design begins with
- identification of user.
- identification of task.
- identification of environmental requirements.
Once these are identified, user scenarios are created and analyzed.
TASKS REPRESENTING WEB APPLICATION INTERFACE DESIGN ARE:
- The information that is contained in the analysis model is reviewed and refined as required.
- A rough sketch of web application interface layout is developed.
- The user objectives should be mapped into specific interface actions.
- A set of user tasks associated with action should be defined.
- Each interface action should have a storyboard screen image which depicts the interface response to user interaction.
- The input from aesthetic design should be used to refine the interface layout and storyboards.
- Implementing interface requires user interface objects. These user interface objects should be identified which may require a search through an existing object library.
- A procedural representation of user's interaction with interface is developed.
- A behavioral representation of the interface is also developed. It may use UML state diagrams to represent state mechanisms.
- Each state's interface layout is described using design information developed in tasks 2 and tasks 5.
- The interface design model should be refined and reviewed.
Posted by
Sunflower
at
1/24/2011 12:49:00 PM
0
comments
Labels: Actions, Application, Define, Design, Images, Interface, Layout, Mapping, Representation, software engineering, Tasks, User, User Interface, Web Applications, WebApp
![]() | Subscribe by Email |
|
Friday, January 21, 2011
The WebApp Design - Attributes, Goals and Web Design Pyramid
Design is an engineering activity that leads to a high quality product. The major attributes of quality for web applications are:
- Security : The main emphasis of security is the ability of the web application and its environment to avoid unauthorized access or attack.
- Availability : Web application will not meet users needs if its unavailable. Availability is the measure of the percentage of time that a web application is available for use.
- Scalability : Is the variation in volume handled significantly by the web applications and the system. It is important to build a web application that can accommodate the burden of success.
- Time to market : It is a measure of quality from business point of view.
What should be considered when assessing content quality?
- Scope and depth of content be easily determined so that it meets user's needs?
- Background and authority of content's author be easily identified?
- Possibility of determining the currency of content, last update?
- Stability of content and location?
- Credibility of content?
- Uniqueness of content?
- Is content well organized?
- Is content valuable?
Design Goals
The design goals for every web application are:
- Simplicity
- Consistency
- Identity
- Robustness
- Navigability
- Visual appeal
- Compatibility
Web Design Pyramid
Each level of the pyramid represents the design activities:
- Interface Design : It describes structure and organization of the user interface. It includes screen layout, interaction modes, navigation mechanisms.
- Aesthetic Design : It describes the look and feel of the application.
- Content Design : It defines layout, structure and outline of all content.
- Navigation Design : It describes the navigational flow for web application.
- Architectural Design : It represents the overall hypermedia structure.
- Component Design : It develops detailed processing logic.
Posted by
Sunflower
at
1/21/2011 01:04:00 PM
0
comments
Labels: Activity, Aesthetic, Application, Architectural, Attributes, Content, Design Pyramid, Goals, Interface, navigation, Product, Quality, Representation, Scope, User, Web Applications, WebApp
![]() | Subscribe by Email |
|