Friday, October 29, 2010

Important Software Design Criteria

A. A design should exhibit a hierarchical organisation that intelligently makes use of control among components of the software

B. A design should be modular; which means that the software would be partitioned into logical components with specific functions and sub-functions

C. A design should contain distinct & separable representation of data and procedure

D. A design should lead to modules (subroutines or procedure) that houses an independent functional characteristics

E. A design should lead to interfaces that attempts to reduce the complexity of connection among modules and the external environment

F. A design should be derived from repeatable method and the driving factor should be the information obtained from requirements engineering activity

Wednesday, October 27, 2010

Input/Outputs to software design

Inputs: The artifacts that result from requirements engineering will acts as inputs to the software design stage. These artifacts are the following models:
- Information model
- Behavioural model
- Functional model
- Among other requirements

Outputs: Following will be the result of engaging in design processes:
- Data design (resulting data structure)
- Architectural design (relationship among structural parts)
- Procedural design (procedural description of the structural parts)

Process of software design

There are at least four processes in the design stage:
i. Intuition & judgment based on prior experience developing similar entities
ii. A set of principles &/or heuristics to guide the way the model evolves and matures
iii. A set of criteria to help judge the quality
iv. A process-of-iteration that ultimately yields a final design representation

Tuesday, October 26, 2010

What should a software designer produce/output?

A software designer is responsible to produce/output a model or representation of an entity which is desired to be built at later stages.

What is software design?

Design is the first step in the development of any engineering product or a system. Hence, design is the process of applying various techniques & principles for the purpose of defining a system in sufficient detail to permit its manifestation.

What is Software Architecture?

The art & science of designing and erecting software. A style & method of designing software-construction. And orderly management of parts.

Friday, February 27, 2009

What is software architecture?

A software architecture is a result of a system design which is intended for obtaining expected behivour form the system. Here the system design has to take into account the following:
  • identify the subsystems which the desired system need to contain
  • identify the interfaces for the above subsystems
  • outline rules of interaction among these subsystems
Reference: A Concise Introduction to Software Engineering (Undergraduate Topics in Computer Science) by Pankaj Jalote, Springer-Verlag London, 2008