What qualities should a good engineer have?
Answer:
A software quality factor is a non-functional requirement for a software program which is not called up by the customer's contract, but nevertheless is a desirable requirement which enhances the quality of the software program. Note that none of these factors are binary; that is, they are not "either you have it or you don't" traits. Rather, they are characteristics that one seeks to maximize in one's software to optimize its quality. So rather than asking whether a software product "has" factor x, ask instead the degree to which it does (or does not).
Some software quality factors are listed here:
Understandability--clarity of purpose. This goes further than just a statement of purpose; all of the design and user documentation must be clearly written so that it is easily understandable. This is obviously subjective in that the user context must be taken into account: for instance, if the software product is to be used by software engineers it is not required to be understandable to the layman.
Completeness--presence of all constituent parts, with each part fully developed. This means that if the code calls a subroutine from an external library, the software package must provide reference to that library and all required parameters must be passed. All required input data must also be available.
Conciseness--minimization of excessive or redundant information or processing. This is important where memory capacity is limited, and it is generally considered good practice to keep lines of code to a minimum. It can be improved by replacing repeated functionality by one subroutine or function which achieves that functionality. It also applies to documents.
Portability--ability to be run well and easily on multiple computer configurations. Portability can mean both between different hardware---such as running on a PC as well as a smartphone---and between different operating systems---such as running on both Mac OS X and GNU/Linux.
Consistency--uniformity in notation, symbology, appearance, and terminology within itself.
Maintainability--propensity to facilitate updates to satisfy new requirements. Thus the software product that is maintainable should be well-documented, should not be complex, and should have spare capacity for memory, storage and processor utilization and other resources.
Testability--disposition to support acceptance criteria and evaluation of performance. Such a characteristic must be built-in during the design phase if the product is to be easily testable; a complex design leads to poor testability.
Usability--convenience and practicality of use. This is affected by such things as the human-computer interface. The component of the software that has most impact on this is the user interface (UI), which for best usability is usually graphical (i.e. a GUI).
Reliability--ability to be expected to perform its intended functions satisfactorily. This implies a time factor in that a reliable product is expected to perform correctly over a period of time. It also encompasses environmental considerations in that the product is required to perform correctly in whatever conditions it finds itself (sometimes termed robustness).
Structuredness--organisation of constituent parts in a definite pattern. A software product written in a block-structured language such as Pascal will satisfy this characteristic.
Efficiency--fulfillment of purpose without waste of resources, such as memory, space and processor utilization, network bandwidth, time, etc.
Security--ability to protect data against unauthorized access and to withstand malicious or inadvertent interference with its operations. Besides the presence of appropriate security mechanisms such as authentication, access control and encryption, security also implies resilience in the face of malicious, intelligent and adaptive attackers.
Some software quality factors are listed here:
Understandability--clarity of purpose. This goes further than just a statement of purpose; all of the design and user documentation must be clearly written so that it is easily understandable. This is obviously subjective in that the user context must be taken into account: for instance, if the software product is to be used by software engineers it is not required to be understandable to the layman.
Completeness--presence of all constituent parts, with each part fully developed. This means that if the code calls a subroutine from an external library, the software package must provide reference to that library and all required parameters must be passed. All required input data must also be available.
Conciseness--minimization of excessive or redundant information or processing. This is important where memory capacity is limited, and it is generally considered good practice to keep lines of code to a minimum. It can be improved by replacing repeated functionality by one subroutine or function which achieves that functionality. It also applies to documents.
Portability--ability to be run well and easily on multiple computer configurations. Portability can mean both between different hardware---such as running on a PC as well as a smartphone---and between different operating systems---such as running on both Mac OS X and GNU/Linux.
Consistency--uniformity in notation, symbology, appearance, and terminology within itself.
Maintainability--propensity to facilitate updates to satisfy new requirements. Thus the software product that is maintainable should be well-documented, should not be complex, and should have spare capacity for memory, storage and processor utilization and other resources.
Testability--disposition to support acceptance criteria and evaluation of performance. Such a characteristic must be built-in during the design phase if the product is to be easily testable; a complex design leads to poor testability.
Usability--convenience and practicality of use. This is affected by such things as the human-computer interface. The component of the software that has most impact on this is the user interface (UI), which for best usability is usually graphical (i.e. a GUI).
Reliability--ability to be expected to perform its intended functions satisfactorily. This implies a time factor in that a reliable product is expected to perform correctly over a period of time. It also encompasses environmental considerations in that the product is required to perform correctly in whatever conditions it finds itself (sometimes termed robustness).
Structuredness--organisation of constituent parts in a definite pattern. A software product written in a block-structured language such as Pascal will satisfy this characteristic.
Efficiency--fulfillment of purpose without waste of resources, such as memory, space and processor utilization, network bandwidth, time, etc.
Security--ability to protect data against unauthorized access and to withstand malicious or inadvertent interference with its operations. Besides the presence of appropriate security mechanisms such as authentication, access control and encryption, security also implies resilience in the face of malicious, intelligent and adaptive attackers.
First answer by ID3673687490. Last edit by ID3673687490. Question popularity: 20
[recommend question].
Can you answer these Job Training and Career Qualifications questions?
Shopping for Job Training and Career Qualifications deals?
Find Coupons and Promo Codes on Coupons by Answers.com
Why join?
Joining is free and easy. You can still be anonymous; just choose any username and password.- Get notified about updated answers
- Follow your favorite categories
- Get credit for your contributions
- Customize your profile
- Answer questions more easily
Lost your password?
You may already have an Answers.com account.
Click here to connect your accounts.
If you don't want to connect accounts, you can start a new one from scratch.
Click here to connect your accounts.
If you don't want to connect accounts, you can start a new one from scratch.
Minor details...
Connect your accounts...
Why do we need your email address?
We will use your email address to send you updates (if you request them) about questions you ask, answer or track, and to help you retrieve your password if you forget it.Your email address will not be used for any other purpose without your permission.
Already have an Answers.com account? Connect your accounts!
By doing so, you include all of your history (contributions, messages, profile) from your Answers.com account in your Facebook account.If you don't connect accounts, your new account will be starting from scratch.
Home
Welcome
Help center
Browse categories
- Animal Life
- Business & Finance
- Cars & Vehicles
- Entertainment & Arts
- Food & Cooking
- Health
- History, Politics & Society
- Hobbies & Collectibles
- Home & Garden
- Humor & Amusement
- Jobs & Education
- Law & Legal Issues
- Literature & Language
- Relationships
- Religion & Spirituality
- Science
- Shopping
- Sports
- Technology
- Travel & Places
- WikiAnswers Local
Random question
Community forum

