Software engineering over the past decade has seen a tremendous drop in their level of professionalism. Risk factors associated with the decline in professionalism level are poor software qualities, a high cost of software development, failed deadline, poor implementation, poorly coordinated stages of software development, lack of proper staff motivation, and low return on investment. More surprisingly, a lot of unqualified and inexperienced software developers regularly are being hired to run software development at the expense of qualified software developer who has abandoned the industry and left to ruin. Statistics indicates that over 80 percent of software developments projects fail to reach their deployment stage and meet user expectation. In addition, the most software development project is adjourned in the early stages only to be substituted with a new software invention. As such, they incur losses which negatively impact the economy as well as the Information Technology (IT) field (Sommerville 52). This trend can be altered if the movers and shakers commit to intervening to gain back the momentum. The next section in the paper will examine four key attributes for professional software development in addition to other equally important attributes in the field.
Attributes for professional software
Professional software development should incorporate maintainability of the software in professional software. Progressive technological advancement taking place require professional software to be maintainable to keep up the pace with software and technological evolution. It is tedious and tiresome to rewrite software codes every time developers need to make changes to update their software to meet the current technological advancement (McConnell 36). Designing a software application entails writing apt codes, proper documentation, and a comprehensive framework. Accordingly, when making software update in the process of maintainability, all the aforementioned rules must be followed.
Security and dependability
All software must be dependable and secured to avoid risk factors associated with their damage than can result in a financial burden to an institution. Well-designed software should have minimum bugs running in their codes. In the event of a software malfunction, system damage is contained maintain their integrity (McConnell 38). Most importantly, software security should be a top priority incorporated in all the design stage. Take, for example, the menace and chaos and unsecured banking software or a website would cause to the institution if software security is not incorporated to guard their accounts and systems to avert cyber threats attacks and intruding programs.
Professional design software ought to utilize all the resource in a system to optimize its functionality and batch processing for an intended output. Inefficient software freezes a system slowing major processes within because it underutilizes system resource (McConnell 43). Efficient professional software improves output process saving time as well as finances.
Good software should meet all user expectation and satisfy their intended outcome. It should be able to run on different platforms and meet all the requirement of the specification. This goes for all software application including web-based platform (McConnell 43). They should be designed to operate on different web browsers with a friendly user interface.
Other four important professional software attributes
Properly designed software should be able to function efficiently on network system without breaking down or jamming a network (McConnell 40). This helps avoid challenges associated with the software since it is able to manage numerous computation operations at the same time and maintain connections.
It is important to design a software application that keeps up with the existing standards and conventional use and design process (McConnell 40). It help facilitates the improvement on the design when the software is updated as well as adhering to the current codes of ethic which lead to the next important attribute.
Professional software should uphold the moral standard and not violate user experience or of privacy. Therefore, good design software should only be linked to the user in terms of copyright and patent other than that, once a user purchases it, they are entitled solely over it and their security guaranteed.
Software design strategies should incorporate methods of distribution of the software either on a device or over a network. In addition to that, it should be able to operate on numerous platforms without glitches
Software Engineering code of ethics and professional practice
The best example various social media platform such as Facebook, twitter, Instagram among other (Gotterbarn & Miller 67) have a special program that compensates individual who is able to identify problems associated with their web application if they can determine and allocate the malfunction within their application which can lead to a potential public endanger such as cyber threats and intrusion programs.
Software engineers are mandated to meet their client specification by designing a software application that meets their demand before being deployed before to the market (Gotterbarn & Miller 67). For example, Prescription Drug Monitoring Program in the US implemented in the various states is still being a review to make appropriate adjustment to meet users and patient demand.
Software engineering organization ensures they develop a feasible project they can achieve and deliver within the specified time limit.
A good example is design process of a software application; software engineers are mandated to ensure no third party influence their decision as per the customer’s request to alter the design process or bug the software.
Various technological companies such Intellectsoft, on Infomedia, DCSL software maintain high work ethics and culture where top managers and executive ensure software deployment satisfy user specific and maintain the moral standard.
Various software engineering organization ensure product recalls incident relating to software glitches and system, for example, GM motor recalled over 4 million vehicles due to software malfunction with the air bag.
All professional software engineers support each other to stick to ethical codes of conduct as well as the use candid criteria to inspect their colleagues work.
All professional software engineers are expected to improve their knowledge of this code of conduct by constantly reviewing and familiarizing themselves with it.
Generic software process model
A system to control anti-locking braking in the car should be designed with a prototyping model since most of the software development will be influence with the already existing equipment and a lot of tests done to incorporate the system to function properly (Wohlin 27). A virtual reality system to support software maintenance will use the exploratory model to design the system by exploring various strategies that can be used to implement the best software maintenance strategy with a virtual reality. A university accounting system that replaces the existing system will use component-based system engineering since most of the component of the existing software will be integrated with the current software. An interactive travel planning system will be developed using the verification model since each stage will involve interacting with the customer to produce the intended application the meets all the demand specification. Software testing stage is an incremental stage because it involves exploring user demands and incorporating process left out in the design stage. Therefore, software developers are not the best people to test their program because it is user tailored needing to solve their problem, not the programmers.
Gotterbarn, Donald and Keith W. Miller. "The Public Is The Priority: Making Decisions Using The Software Engineering Code Of Ethics". Computer 42.6 (2009): 66-73. Web.
McConnell, Steve. "Professional software development." Addison-Wesley (2004).
Sommerville, Ian. "Software Engineering. International computer science series." ed: Addison Wesley (2004).
Wohlin, Claes, et al. Experimentation in software engineering. Springer Science & Business Media, 2012.