Software Design vs Software Architecture (2)

August 30, 2009 · Posted in Software · Comment 

After explaining about Software Design in previous post, we can continue part 2, Sofware Architecture..

The software architecture of a system is the set of structures needed to reason about the system, which comprise software elements, relations among them, and properties of both.The term also refers to documentation of a system’s software architecture. Documenting software architecture facilitates communication between stakeholders, documents early decisions about high-level design, and allows reuse of design components and patterns between projects. (Wikipedia)

The field of computer science and complexity of the problem encountered related to the formation from it. Complex by the developer to solve the problem earlier by selecting the right data structure, the development of algorithms and by applying the concept of separation of concerns. Although the term “software architecture” is relatively new to the industry, the fundamental principle of the field scattered by the pioneer of software engineering to apply from the mid-1980s. Early attempts to capture and explain the system’s software architecture is inaccurate and confusing, often depicted as a box and line diagram. In the 1990s has been concentrated during the definition and compilation of the results of the fundamental aspects of discipline.

Initial set of design patterns, styles, best practices, describe the language and form of management is learning to be developed at that time. Software architecture discipline in reducing complexity through abstraction and concern around the idea of ??separation. The answer is still on the term “software architecture” is not a precise definition of the protocol. However, this does not mean that individuals without their own definitions of what software architecture is. Because many people use the same language to describe the different ideas, which leads to problems. As there is no clear charter of a mature discipline in the right way to establish the system design software architecture is still a mixture of art and science.

Software architecture of the “art” aspect is, as a commercial software system supports some aspect of business or mission. System supports key business drivers through the scene described how, when not running the system requirements, also known as quality attributes, how to determine system performance. This can be thought of as parallel to the mission statement and business strategy in the value system. Each system is unique due to the nature of its support business drivers, such as a system of quality attributes such shortcomings on display tolerance, reverse compatibility, extensibility, reliability, maintainability, availability, safety, practicality, and so Other – ilities will vary with each implementation. To bring software architecture user ‘s perspective to the software architecture, the software architecture can be said that the direction to take steps and to do so in each user’ involved in the task; that s areas of expertise and stakeholder interest in software systems, software developers, software operations support team, software maintenance specialists, deployer, testers and enterprise end-users [citation needed]. This truly is the system software architecture is always multi-perspective of the merger. The fact that several different points of view can be pooled into the software architecture as software architecture alongside the needs and justify the creation of the defense, get in the maturity of software development projects before.

Software Design vs Software Architecture (1)

August 12, 2009 · Posted in Software · Comment 

Let’s discuss about Software Design first,

Software design is a process of problem solving and planning for a software solution. After the purpose and specifications of software are determined, software developers will design or employ designers to develop a plan for a solution. It includes low-level component and algorithm implementation issues as well as the architectural view. (wikipedia)

Software development process software requirement analysis (SRA) step produces the specifications for software engineering. If the software is “semiautomated” or user is concentrated, software design may involve user-generated sequence of broadcast experience in the design table to help determine those specifications. If the software is completely automated (meaning the user or user interface), software design may be as simple as a planned sequence of events described in the flow chart or text. But also as uniform shaping shaping the language and fundamental concepts of semi-standard way. However some programs are usually designed product literature. Software design may be platform independent or platform specialization, as required by the design of the accessibility. Software design can be considered as investment in the hands of the available capacity on the use of questions. Therefore, software analysis and design of the main difference between the analysis of the problem of software products that will solve the smaller problems, and it should not be very off, even if it is held by a different team or even by different groups. However, because the design depends on the capabilities, we will host the solution environment can have the same issue of the ability of different design (it is an OS, network, mobility and even an example of the new cloud computing). Answer will also depend on the development environment (whether you build from scratch or use a reliable framework to answer or at least implement some of the appropriate design style)

Design Concept
The design concepts provide the software designer with a foundation from which more sophisticated methods can be applied. A set of fundamental design concepts has evolved. They are:

  1. Abstraction – Abstraction is the process or result of generalization by reducing the information content of a concept or an observable phenomenon, typically in order to retain only information which is relevant for a particular purpose.
  2. Refinement - It is the process of elaboration. A hierarchy is developed by decomposing a macroscopic statement of function in a stepwise fashion until programming language statements are reached. In each step, one or several instructions of a given program are decomposed into more detailed instructions. Abstraction and Refinement are complementary concepts.
  3. Modularity – Software architecture is divided into components called modules.
  4. Software Architecture - It refers to the overall structure of the software and the ways in which that structure provides conceptual integrity for a system. A good software architecture will yield a good return on investment with respect to the desired outcome of the project, e.g. in terms of performance, quality, schedule and cost.
  5. Control Hierarchy – A program structure that represent the organization of a program components and implies a hierarchy of control.
  6. Structural Partitioning – The program structure can be divided both horizontally and vertically. Horizontal partitions define separate branches of modular hierarchy for each major program function. Vertical partitioning suggests that control and work should be distributed top down in the program structure.
  7. Data Structure – It is a representation of the logical relationship among individual elements of data.
  8. Software Procedure – It focuses on the processing of each modules individually
  9. Information Hiding – Modules should be specified and designed so that information contained within a module is inaccessible to other modules that have no need for such information.

(continue)

Network Application Architectures

February 14, 2009 · Posted in Networking · Comment 

Before diving into the software code, you should have your application architecture of a broad plan. Remember that application ‘s architecture and network structure is clearly different. From the application developer ‘s perspective, the network structure is fixed and specific set of services for the applications. Application architecture, on the other hand, is designed by the application developer and dictate how the application is constructed in a variety of end systems. In the choice of application architecture, application developers for modern network applications may be one of two main buildings will draw examples: client-server architecture or the peer to peer (P2P) architecture.

In client-server architecture, there is always the master name server, requests from many other services for the owner, said customers. Customers can host sometimes or always. A classic example is always on a network server running the client from the master browser requests a Web service application. When the network server from a client when the owner receives a request object, the object of its response by sending a request to the client host. Attention and client-server architecture, clients do not communicate directly with each other; For example, in Web applications, two browsers do not directly communicate. Other typical client-server architecture the server has a fixed, well-known address, called we ‘IP addresses (; ll talk about shortly). Because the server has a fixed, well-known address, and, because the server is always, always with the client through the packet sent to a server linked server ‘s address. Some client-server architecture with the more well-known applications, including network, F1 ‘R Telnet and e-mail.

Usually in the client-server application, a single server host is not competent to keep its customers from all requests. For example, if it is only one server to handle all its requests, a popular social networking sites can quickly become overwhelmed. To this end, the main groups – sometimes referred to as server farms – is commonly used to create a powerful virtual server on the client server architecture. According to the application of client-server architecture is service-intensive infrastructure, because they require service providers to purchase, often install and maintain the server farm. In addition, service providers must pay the recurring costs of interconnection and bandwidth to send data an4 receiving to / from the Internet. Common services such as search engines (ie, Google), Internet commerce (that is, Amazon and e bay), v Internet-based mail (ie, Yahoo mail), social sharing networks (ie, MySpace and Facebook) and the video (ie, YouTube) are infrastructure-intensive and expensive to provide.

In the P2P architecture, there is minimal (or no) trust is always in infrastructure server. Instead, the direct application of the use of intermittently connected communication between the owner, said the peer. Peers not by the service provider has, but the user control of the desktop and laptop computers have at home, mostly universities and office peers. Because peer communication, without passing through a dedicated server architecture, said to the other. Many of today ‘s most popular and traffic intensiye application architecture based on P2P. The application documentation issue (ie, BitTorrent), document retrieval or sharing (ie, eMule, and LimeWire), Intemet phone (ie, Skype) and IPTV (ie, PPLive).

  •  

    February 2012
    M T W T F S S
    « Jul    
     12345
    6789101112
    13141516171819
    20212223242526
    272829