Strategies for Ethical Decision-Making
Steps for Software Development
Steps for Software Development
The software development life cycle is the process of developing, testing, implanting and maintenance of software.
Information Gathering and Planning
This is the first step in software development, in which teams gather the business requirements. At this phase, the primary emphasis of the project team and project managers is to identify the specific features required from any program under consideration. Clients give programmers an abstract view of what they need the program to do, at this time IT Professionals communicate whether or not the client's specification are able to be reached. Sometimes Clients have requirements that contradict one another and this may make it difficult for the programmer to do their job. At this point, it may best for the programmer to provide the client a demonstration of code to communicate better what the client wants or expects. Scope document states what the client expects from the project, describes the objectives and costs. If the project is developed outside of the company or organization the scope could be used as a legally binding document. The scope should contain the following:
- The Project Name
- The project definitions
- The project owner, sponsors, and stakeholder
- The problem statement
- The project goals and objectives
- The project requirements
- The project deliverable
- Milestones
- Cost Estimates
Programmers may also want to review current systems (if any) to
identify any existing procedures that may continue in the new system.
During the planning process IT professionals may want to replace the
hardware in order to facilitate the new system.Finally, a requirement
specification document is created to act as a guidance for the next
stage of the software development process.
Design
This is
the next stage in the software development process. The prototype design
for the application is created in this stage using the requirement
specification document. System designs aid in the specification of
hardware as well as system needs. In software architecture, it also aids
in the definition of an entire system. The system design specifications
are used as input for the next step of the software development
methodology. The testers build test strategies during this phase by
describing what to test and how to check it.
Development and Testing
During the development phase, IT workers develop system interfaces, screen layouts and how the system would generate reports. Users would then review and approve these features. Software designers may decide to input redundancy has to protect the system from failure if an error occurs. Programmers then complete the program, writes the code and test the software with different testing techniques. The testing ensures the software works as specified in the project scope. If the project fails to meet a milestone, the budget, or the project requirements the clients may sue IT professionals for any of the following:
- Fraud
- Misrepresentation
- Breach of Contract
Implementation, Documentations and Testing
The implementation process begins with the client and IT workers coming together to create a strategy of implementation. Following the receipt of the design documentation for the software to be built, the work is split evenly into numerous parts and modules. This is where the actual code starts. The production of excellent codes by the software developers is the major emphasis of this phase. This is the most time-consuming phase of the entire process. This stage is important for the developers. If anything goes wrong during the testing step, or if any errors are discovered in the codes, the coding process will have to be repeated, and the cycle will continue until the project is completed. All types of functional testing, including integration testing, unit testing, system testing, acceptance testing, and non-functional testing, are completed at this point. This strategy covers the who, what, when, where and how. Then the process of correcting and converting data to the new system begins. Procedures for both users and IT workers are created. Documentation should contain the following:
- procedures
- instructions to end-users
- flowcharts data flow diagrams
- Archive, purge, and retrieval
- Backup, storage, and recovery
The organization's IT workers and End-users should be trained in the
use and maintenance of the new system. The system is then retested to
make sure the system works as expected and to discover any bugs.
Maintenance
During
the maintenance phase, they correct bugs discovered either through the
testing phase or through use by end users. Maintenance may also happen
when the companies have new requirements of the system. The maintenance
phase may be the most time consuming of all because you may need to add
code that does not fit the original design. If the maintenance cost
becomes out of control it may be more prudent to rebuild the system then
continue with the one currently used.
Ethical Issues in software development process
The
demand for morally good software is growing as our dependence on
software-supported activities grows. Software companies are finding
themselves in a situation where they are being held liable for
unfavorable results and prejudices resulting from the usage of software
or the development process.
Software security is inextricably linked to ethics and professionalism.
To protect the public's safety, ethics, and obedience to the law are
essential. Any deviation from the principles of ethics and
professionalism may jeopardize the system's and hence the public's
safety. Organizations that care about their employees' safety should
demand and promote adherence to a code of ethics. It should also create a
climate where employees may easily utilize, promote, and debate the
code of ethics. Because of the gravity of the issue, Safety Critical
development teams, more than anybody else, should be aware of their
legal obligations when designing software. A safety-critical system is
frequently accountable for the user's life or death, which is a huge
responsibility.