Archive for the ‘Software Engineering’ Category
Software Quality Factors and Software Reengineering Methodologies
Software Quality Factors
McCall has defined quality factors during 1970s that are still implementable up to today. The objective of implementing the software quality standards is that software should possess quality factors that are knows as today by the name "McCall’s Quality Factors". These are almost twelve factors but the most important are as follows:
Software Quality Standard
There are available two main software quality standards:
- International Standard Organization (ISO) 9002.
- Capability Maturity Model (CMM).
Generations of Software Programming Tools
There are five generations of software programming tools (William, Sawyer, Hutchinson 2001).
- 1st generation: Machine Language.
- 2nd generation: Assembly Language.
- 3rd generation: High Level Language.
- 4th generation: Automate Code generators and query Language.
- 5th generation: Natural Language (Declarative Language).
Computer Aided Software Engineering Tools
The software tools that we use during the different phases of the software methodologies are called Computer Aided Software Engineering tools. There are three types of CASE tools.
- Upper CASE.
- Lower CASE.
- Cross life cycle CASE.
Object Oriented Model
Object oriented process model is like the spiral model (Roger S. Pressman 2001). Object oriented programming process model starts with the customer communication phase. The developer will communicate with the customer during the customer communication phase to identify and select the problem for which he/she wants to develop the software.
Evolutionary or Spiral or Incremental Model
The main phases of evolutionary model are as follows:
- Communication with the customer.
- Planning.
- Risk Analysis.
- Engineering.
- Testing.
- Customer Evaluation.
Prototype and Types of Prototype and Rapid Application Development
Prototype
- Listen to the customer.
- Develop a demonstrating (demo) version of the software.
- Evaluate by the customer.
Software Engineering and Software Main Processes
Many people have defined Software Engineering in different ways. It is the use of sound engineering principles to develop economical, reliable and efficient software. In general, software engineering is composed of processes, methods and tools (Pressman 2001). Processes define the framework to perform different software development activities. The methods are the different techniques used to accomplish the processes. The tools help to design and code the software. Software processes are also knows as methodologies. Methodology is a standard process to analyze, design and develop software. Each software has its life cycle, which is known as system development life cycle (SDLC). System development life cycle is a traditional process followed in an organization to develop, maintain and replace the software systems.