Like all engineering discipline, software engineering has also three major attributes:

  1. Cost
  2. Schedule
  3. Quality

The cost of developing a system is the cost of the resources used for system. Which in the case of software is determined by the manpower cost, as development is largely labor-intensive. Hence, the cost of a software project is often measured in terms of person-month spent in a project.

Person-month: In software engineering Person-month is a measure of work effort. It can be converted into dollar amount by multiplying it with average dollar cost. Calculation: If a project will take 2 months to finish with 3 people working full time on it, the project requires 2*3=6 person-month effort. If an employee worked 20 days on a project, his contribution to the project is 1*20/30 = 0.6666 person-month. (Note that month is considered 30 days in such calculations.)

Schedule is also an important factor in software projects. Business trends are dictating that the time to market of a product should be reduced; i.e. the cycle time from concept to delivery should be small. For software this means that it needs to be developed faster. The other major attribute of any production discipline is quality. Today, quality is the main thing. So, clearly developing high quality Software is another fundamental goal of software engineering. However the concept of quality in the context of software needs further discussion. We use the international standard on software product quality as the basis of our discussion here. According to the quality model adopted by this standard, software quality comprise of six main attributes as shown in the fig

  • Functionality: The Capability to provide functions which meet stated and implied needs when the software is used.
  • Reliability: The capability to maintain a specified level of performance.
  • Usability: The capability to be understood, learned, and used.
  • Efficiency: The capability to provide appropriate performance relative to the amount of resources used.
  • Maintainability: The capability to be modified for the purpose of making corrections, improvements etc.
  • Portability: The capability of the software to be work properly in different environment without applying any action.


Blogs

  • Medical Upgrade- The Rise of 3D Printing
  • Reskilling- Upscaling Human's Digital Sophistication
  • Data-Driven Policing- Countering Data Breaches and Cyber-Attacks
  • Autonomous Driving
  • Democratization
  • 5G Technology
  • HyperAutomation
  • Robotic Process Automation (RPA)
  • Artificial Intelligence (AI) and Machine Learning
  • Software Engineering
  • SOFTWARE ENGINEERING PROCESSES
  • SOFTWARE QUALITY ATTRIBUTES
  • Software Testing
  • STRUCTURAL TESTING (WHITE BOX TESTING)