A2_CS425

pdf

School

University of Nevada, Reno *

*We aren’t endorsed by this school

Course

425

Subject

Computer Science

Date

Jan 9, 2024

Type

pdf

Pages

3

Uploaded by ameliapunr

Report
1 Department of Computer Science and Engineering College of Engineering, University of Nevada, Reno CS 425 Software Engineering Assignment #2 September 22, 2023 1. Software Engineering Video Clips [40 points] https://www.youtube.com/watch?v=MAhpfFt_mWM The Engineering Process: A taco party While this video is meant for the engineering process, it can apply specifically to software engineers as it shows the process it takes to create complex software. Plus you can learn through tacos how to develop code, there's nothing better. You first have to define the problem or for software engineers, listen to what the client wants. Next you have to identify the constraints, for software it would be how realistic the idea is and if it is possible with your current resources and timeframe. Then brainstorming solutions considering the current situation and then selecting out of those ideas the best one. You then build a prototype of the software and test it while continuing to make changes until the product is in the final stages. Then you deliver the product to the client and have tacos to celebrate. https://www.youtube.com/watch?v=PV8SWTrrOhc Reality of Software Development This is important to software engineering as it gives some insight into the truth of developing. There are many downsides that are overlooked because of the pay or the rumored free snacks, but software engineering requires a lot out of you. The video talks about the need to be adaptable, how the field is constantly changing and what was once a useful skill could easily be disregarded. The struggle to keep up with rebuilding your skills will take its toll. He also mentioned how competitive the industry is and how hard the interviews are. You would have to study very complex questions that don’t relate to the job yet determine if you get rejected or not. With all the work it takes to build all the skills necessary for this field, it is also very easy to get burn out,
2 2. Code of Ethics [35 points] - Based on Exercise 1.9 in the textbook. PRODUCT - Software engineers shall ensure that their products and related modifications meet the highest professional standards possible. For software engineers to uphold the ACM/IEEE Code of Ethics “Product” principle, they must ensure that their deliverables are up to code for the type of product they were tasked to build. An example of this in another tech field would be NIST that has guidelines and frameworks for many aspects of technology. They published a framework that defines the standards for 5 aspects of cyber security: identify , protect, detect, respond, and recover . The framework has guidelines and standards for cybersecurity professionals to uphold inorder to best serve the people whose data they handle. For software engineers, they should follow the guidelines for the program they are build and have the actual software up to a standard that ensures there are little bugs or kinks while following the many plausible wishes of the customer. CLIENT AND EMPLOYER – Software engineers shall act in a manner that is in the best interests of their client and employer consistent with the public interest. For software engineers to uphold the client and employer standard, they must treat their client with respect and trust. They should be honest about their experience and abilities especially when it comes to building and delivering the product. They should also uphold confidentiality of proprietary information concerning the client as well as delivering the desired product or service to the client to the best of their ability. I also believe that software engineers should also exercise some judgment as to whether the product could be harmful to the public, and if they find it is they should report it to the proper authorities. This would include considering the standards centered around their product, and the effect it would have on the public’s privacy or quality of life. SELF – Software engineers shall participate in lifelong learning regarding the practice of their profession and shall promote an ethical approach to the practice of the profession. For software engineers to uphold the self standard, they should hold themselves to a standard that ensures their work is reliable and useful. I also believe they should always make an effort to be aware of changing standards in tech. For example, in cyber security there are constantly new attacks that continue to evolve, finding new ways to exploit vulnerabilities to compromise the victim. As a professional, they should strive to keep up to date with those new techniques and further their skills for defense or of hardening their system. For software engineers, I believe that it is very easy to overlook
3 security measures that could lead to user data being stolen or encrypted. A professional would continue to grow their skills to ensure they can reduce those risks. 3. Software licenses [25 points] (a) What is a software license? Briefly describe the FOSS and Proprietary software licenses. A software license is a legal document that holds you to their guidelines of use and distribution of the software. A FOSS or a “free and open source software” license gives the user access to the source code and allows them to change the software’s source code. Proprietary software licenses do not give access to source code like FOSS does and therefore does not allow users to change the source code. Only operational code is provided to the user. (b) What are the main differences between MIT and Apache 2.0 licenses? Apache 2.0 licenses are more rigorous than an MIT license as MIT licenses aim to be uncomplicated and painless for developers to distribute their open source software under. Developers with an Apache 2.0 license must also communicate major changes to the original source code. This modified code is also allowed to be patented by the end user, which can give them different kinds of rights to the code. These patent rights are more vague with MIT licenses. (d) Briefly describe the Permissive and the Copyleft software licenses. Copyleft licenses require that users have freedom throughout all of the code’s life cycle. This makes the code accessible to other users in the future. Permissive licenses do allow users freedom but collaborative products can become proprietary if needed.
Your preview ends here
Eager to read complete document? Join bartleby learn and gain access to the full version
  • Access to all documents
  • Unlimited textbook solutions
  • 24/7 expert homework help