Solved by verified expert:PLEASE REVIEW ATTACHED FILE BEFORE ANSWERING Software Engineering Ethics:Discuss the primary role of the Software Engineer and the professional ethics embraced by the Software Engineering discipline.Develop a plan for implementation of appropriate Software Engineering profession ethics in your selected organization.Summarize what you have learned about your role as a software engineer and discuss how you would serve in that capacity in your selected organization.
sethholley_swe311_ip3.docx
Unformatted Attachment Preview
This task contains portions of material that were originally submitted during the [IT425] with [Crispin Jose].
Colorado Technical University
SWE311-1704A-01 Software Engineering Profession
Software Engineering Research Document
Student: Seth Holley
26 Oct 2017
Contents
Project Outline ……………………………………………………………………………………………………………………………. 3
Software Engineering Practices ……………………………………………………………………………………………………. 6
Software Engineering Standards ………………………………………………………………………………………………….. 8
Software Engineering Communications ………………………………………………………………………………………. 12
Software Engineering Ethics and Roles ……………………………………………………………………………………….. 15
Software Engineering Issues ………………………………………………………………………………………………………. 16
References ……………………………………………………………………………………………………………………………….. 17
Project Outline
Joe’s Auto Parts is an automotive industry that was founded in 1972 with a goal winning
many customers/friends through giving them honest information and direction if it couldn’t
manage to make a sale. Its headquarters are located in Pagosa Springs, Colorado United States and
have a company size of 10 employees (Keep up with Joy Auto Parts, n.d.). Joe’s Auto Parts was
incorporated in the year 1973 and in 1992 it began providing motorists with comprehensive auto
parts and services (Oak, n.d.). Its main stores are located in Green Brook and Chester NJ.
Joe’s Auto Parts started by providing motorists with some of the following products and services.
Products
•
Classic Car Parts
•
Antique Car Parts
•
Mechanical Fuel Pumps
•
Drum Cutting
•
Rotor Cutting
•
Resurfacing Flywheels
•
Press work
•
Etc.
Services
•
Computer Services
•
Hoses
•
Batteries
•
Machine Shop
•
Custom Paint Services
•
Garage Card Rewards
•
Loaner Tool Program
•
Wholesale Delivery
Its main goal was to offer its customers with the best auto parts and services that would keep
them coming back. Having achieved this goal, the company is currently in need of a software that
will help it boost its productivity, and perform all its functions more accurately. This document is
therefore intended to help the company select an appropriate Software Engineering methodology
and practices for their software development efforts.
The whole process of implementing the software is systematic and involve applying clear
techniques in and a disciplined and organized way. The IEEE and ISO have standardized many
well-accepted practices. The Software Engineering methodology and practices used will affect the
company systems such as inventory management systems, Customer Relationship Management
Systems (CRM) and, live chat management systems, and database management systems
(Information Technology in the Automotive Industry, 2017). All these systems will be combined
together during the development practices to come up with one distributed system that could
perform all those functions.
Following the standard practices of software engineering, the first practice/step is to identify
the requirements including both the system and software requirements. In this step, most IT
systems will be affected as the company may decide to improve or do away with some systems.
Based on the software requirement i.e. both the functional and non-functional requirements, the
company might be required to change its computers if the current ones do not meet the
requirements. The company will need some more powerful workstations to make it more
productive. Still, in the requirement analysis, the company will determine the type of data that will
be stored in the database. This may require the current data to be changed if it doesn’t fit the
system. The data should be tested using prototypes that will be used through the implementation.
A backup should be made for the current data in the company to avoid losing it during the
implementation. Having identified and analyzed the requirements successfully, the other activities
will follow sequentially. I.e. design, code, integration, and testing.
Software Engineering Practices
In order to achieve the best software with minimum cost and very few chances of failure,
I would recommend the company to use Agile Software Methodology. Agile software
development methodologies give software development team-high chances of success with very
few challenges in the process of development.
Agile Software Development is a software development methodology that gives the product
owners and development team a disciplined software management process which allows continues
interactions and alterations in throughout the development of the project (Top 12 Software
Development Methodologies & its Advantages / Disadvantages, 2015). This methodology will
minimize risk by allowing the development team to develop the software in modules known as
iterations. These iterations last for one to two weeks.
Some of the ways to improve Agile Development methodology and its practices include (Agile, 2017)
Remove impediments: this is one of best ways to improve Agile Development Methodology. It
involves taking impediments into consideration during the development process. The company
should ensure the developers understand all its requirements by writing down some user stories
and answering any relevant question from the development team. It should also ensure the
development team is well secured from stakeholders in the whole process.
Team size: the selected team should be as small as possible not exceeding 9 people. This will
ensure there are good communications among the team members. This eliminates the problems
that occur during discussions. In case the team has more members, the company should consider
splitting the team into two or more teams.
Daily meetings: the development team should meet regularly and hold a discussion of about 15 to
30 minutes. This will give each member of the team an overview of how the work is progressing.
Open discussions should be encouraged after the official meetings where suggestions are allowed.
Avoid multitasking: though multitasking happens in almost all the organizations, it should be
highly avoided as it reduces the productivity and quality of the end product. The team should
ensure every task is completed successfully before beginning another task.
Software Engineering Standards
Software Engineering Standards are documented agreements that contain technical specifications
or other precise criteria that must be used consistently as definitions, guidelines or rules. These
Standards strive to ensure that the identified materials, products, services and processes fit for
their purposes. Standards provide regulations, heuristics, and guidelines which deliver an
assurance of substantial practice (Medvidovic, 2010). The most common Software Engineering
Standards used typically attributed to the Institute of Electrical and Electronic Engineers (IEEE)
and International Organization for Standardization (ISO). The standards presented by ISO and
IEEE Include;
ISO 9126 Software Quality- This ISO Standard addresses the quality of the model,
internal metrics, external metrics and general quality in use of metrics. The characteristics and
features of the software product that satisfy the needs of a client are stated Software quality is
typically evaluated by functionality, usability, reliability, maintainability, efficiency, and
portability (Laporte, 2013).
ISO 12207 Software Lifecycle processes – This software standard covers all the tasks
required in the creation, development, and maintenance of software. The activities and
operations involved in the acquisition and configuration of the systems’ services also form part
of the ISO 12207 Standard. The software Engineering standard recommends the adaptation of a
set of procedures and activities that are by the software project (Laporte, 2013). The primary
processes involve comprising of fundamental, support and organizational. Among the sections
included in this standard are agreement, an organizational project enabling, project, technical,
software implementation, software support and software reuse.
IEEE Std.1008, Software Testing- The IEEE Standard aims to specify a standard
approach in software unit testing that can be used a sound engineering practice in software
development (Vyatkin, 2013). The software testing standard also seeks to describe the software
engineering concepts and testing assumptions. This standard strives to provide guidance and
resource information that aid in the implementation and usage of the identified testing unit
approach.
Software Engineering is highly efficient when training software engineers and other project
development participants such as project managers, developers, and quality analysists. Software
standards offer guidelines and speculations that can improve the operations of the project team.
Moreover, standards contribute to the improvement of the management of software (Medvidovic,
2010). The project schedules and budgets are more likely to be met. Quality goals and standards
will be easily attained by the project development team. Software standards allow better
management of employee training and turnover.
Software Standards allow a business to be more sustainable. It helps an organization to have a
closer look on how the software development is using energy and resources. Using software
standards can allow the organization to reduce expenses and improves its reputation while
benefiting its customers (Medvidovic, 2010). In today’s technologically-driven dynamic business
environment, software standards encourage an organization to utilize the abundant available
opportunities efficiently. The rules set frameworks and guidelines that make it easy for an
organization to innovate.
Software Standards enable the maximization of revenue. As such, it improves the speed of a
launched software into the market. Quality assurance and timeliness achieved from software
standards enhance the acceptance of the product in public. The efficiencies enabled by software
standards allow an organization to improve its performance and subsequently achieved a
competitive advantage.
The ISO 9126 Software quality affects the software design and development process. This step
involves an attempt to translate the identified requirements and programs into a credible
adequately designed and engineering software solution. The software quality standard lays down
the rules of functionality, maintenance, and usability to be used in the design process (Laporte,
2013). As such, the software engineering team attempts to ensure that the software product
design and development is by the client’s functionality, maintenance, and usability expectations.
The ISO 12207 Software Lifecycle Processes affects all the engineering processes in the creation
of software. Software Engineering processes comprise of; software requirement analysis,
software design, coding, implementation, testing, and maintenance. ISO 12207 Standard
recommends the set or activities to be included in the software engineering processes (Laporte,
2013). It strives to ensure that the procedures support the available organization resources,
creative abilities and general maintenance of the product.
The IEEE 1008 Software Testing affects the process of testing in software engineering. Once the
design, coding, and implementation processes have been completed, the agile team begins testing
and debugging. Testing in software engineering involves verification and validation, black and
white testing techniques, integration and acceptance testing. The 1008 software standard
provides a broad understanding of testing assumptions to the responsible software team
(Vyatkin, 2013). It also provides guidance and resource information that allows the project team
to choose a suitable testing technique efficiently.
Implementation of Software Standards in software engineering is critical processes prior the
launch of software. Successful implementation of standards is achieved through some
considerations. The software team should highly monitor the standard practices of business
management and the strategic goals. The engineering team should then engage the involved
shareholders to ensure that they are all on board with the identified software standards. It is
essential to involve the entire project team using a credible internal communication. Moreover,
the team should compare the existing software standards with the newly identified engineering
standards.
The project manager should ensure that the involved people are well trained for the process of
implementation of software standards. A proper analysis of the implications of the rules on the
software engineering should also be undertaken to ensure that the identified specifications will
meet the expectations of a client. The project manager should establish a suitable implementation
team and ensure that any documented standards are widely shared among the project members.
Software Engineering Communications
Software documentation is an illustration or written text that accompanies computer
software or it can be embedded in the source code. It should be noted that software
documentation explains how the software operates or how to use it. However, software
document may mean different things to different people (Lethbridge, 2013).
Documentation is an essential part of software engineering. Software documentation includes:
Requirements – it is documentation that describes what given software shall do or does. It is
used throughout software development to communicating how the software functions or how
it operates. It can also be used as a foundation for agreement on what software does. It is
important to note that requirements are consumed or produced by everyone that is involved in
software production: customers, end users, product managers, sales, project managers,
software architects, interaction designers and testers (Lethbridge, 2013).
Architecture
Also referred to as software architecture description, architecture documentation is a design
document. It should be noted that architecture is a third derivative from code (code document
being first, and design document being second derivative). However, the architecture
document does not describe how to programming a given routine. The architecture document
usually contains physical and logical design elements. The main purpose behind architecture
is to create a common source that can be used by all players in the organization. The potential
users include:
a) Database administrators
b) Database designers
c) Application designers
d) Application developers
Technical documentation – it is related to the documentation of algorithms, code, APIs and
interfaces. The technical documentation mainly focuses on specific aspects of systems and
recommends alternative approaches. It could be at the code, user interface or design.
The set of process that describe the communication flow of the information:
Downward – in this process, communication flows from one level of organization or group to a
lower level. Downward communication is used by managers or group leaders to assigning goals
and provides job instructions, inform employees of procedures and policies and points out problem
that should be addressed.
Lateral – the communication takes place among members of work groups at same level, among
members of same working groups, among managers and directors at same levels or among
horizontally equivalent personnel. Lateral communication is considerably important for help to
save time and enhance coordination.
In order to enhance and increase effectiveness across the organization, simplify the IT
management, be productive, stimulate employee motivation, and find user-friendly solutions, it
has become fundamentally important for businesses to adapt new changes. Communication has
one core area where change has been necessary. In most businesses, communication tools enable
medium-sized, small and large companies to realize their goals (Weimann, 2012).
Below are descriptions of tools that are necessary to support the processes.
a) Social intranet software – it is important to have a central portal in the organization where
the employees can be able to access all the relevant information, documents,
communications and contracts in one place. The social intranet software helps to save your
business money by reducing IT maintenance cost.
b) Chat, group messaging or private tools – in essence, project groups and teams require tools
to helping them being more effective in workplace. Without a designated or platform where
they can be able to collaborate, it can become considerably difficult to progress
successfully. Chat, group and private tools help the project teams to be more effective and
offer an easy way of reporting any made progress (Marus, 2015). Collaborative spaces with
group, private messaging and chat capabilities offer the necessary communication tools to
keeping the project team working together.
c) Ticketing/tracking software – it is an important tool that enables your employees or
customers to submit ticket or case, get them assigned to the right employees and have them
resolved on time. In addition, issue tracking software can help to centralizing customer
support queries, track team productivity and track open issues.
Software Engineering Ethics and Roles
Software Engineering Issues
References
Laporte, C. Y. (2013). International systems and software engineering standards for very small
entities.
Medvidovic, N. &. (2010). Software architecture: foundations, theory, and practice. ACM/IEEE
International Conference on Software Engineering.
Vyatkin, V. (2013). Software engineering in industrial automation: State-of-the-art review. IEEE
Transactions on Industrial Informatics.
Lethbridge, T. C., Singer, J., & Forward, A. (2013). How software engineers use documentation:
The state of the practice. IEEE software, 20(6), 35-39.
Marcus, A., Maletic, J. I., & Sergeyev, A. (2015). Recovery of traceability links between
software documentation and source code. International Journal of Software Engineering and
Knowledge Engineering, 15(05), 811-836.
Weimann, G. (2012). On the importance of marginality: One more step into the two-step flow of
communication. American Sociological Review, 764-773.
…
Purchase answer to see full
attachment
You will get a plagiarism-free paper and you can get an originality report upon request.
All the personal information is confidential and we have 100% safe payment methods. We also guarantee good grades
Delivering a high-quality product at a reasonable price is not enough anymore.
That’s why we have developed 5 beneficial guarantees that will make your experience with our service enjoyable, easy, and safe.
You have to be 100% sure of the quality of your product to give a money-back guarantee. This describes us perfectly. Make sure that this guarantee is totally transparent.
Read moreEach paper is composed from scratch, according to your instructions. It is then checked by our plagiarism-detection software. There is no gap where plagiarism could squeeze in.
Read moreThanks to our free revisions, there is no way for you to be unsatisfied. We will work on your paper until you are completely happy with the result.
Read moreYour email is safe, as we store it according to international data protection rules. Your bank details are secure, as we use only reliable payment systems.
Read moreBy sending us your money, you buy the service we provide. Check out our terms and conditions if you prefer business talks to be laid out in official language.
Read more