diff --git a/These are my answers b/These are my answers new file mode 100644 index 0000000..7fb6cb0 --- /dev/null +++ b/These are my answers @@ -0,0 +1,11 @@ +1. Software Engineering is the discipline of computer science that entails the designing,developing, testing and maintaining software systems. +2. Software engineering mainly involves developing and designing software systems while Traditional programming involves writing code to set a function. +3. a) Requirements- collecting and documenting information that one will need. b) Design- creating what the sofware will do and how the user will se it. c) Implementation - writing code and functioning it to the design specifications. d) Testing- asssesing whether the software is functioning the way it is meant to. e) Deployment- Releasing the software to users. f) Maintenace- regularly monitoring the perfomance od the software and providing updates where needed. +4. Water Fall Model: This model arranges phases in a sequence such that the new phase depends on the results of the previous phase. The Waterfall model is more Suitable in small software development programmes where it's easy to arrange requirements. Agile Model arranges phases into several development cycles, delivering small software changes in each cycle. This model is more suitable for complex projects. +5. Requirements Engineering is the process of creating and maintaining the requiremnts of a software. It includes processes that specify what a software can do. Requirements Engineering helpst the software development cycle by making the expectations of the sofware clear and improving the software quality by implementing well defined requirements. +6. Modularity involves breaking down software into manageable and self functioning components known as modules. Modularity improves maintainability by enabaling software to be easily debugged and tested due to the isolation of modules. Modularity improves maintenace by simplifying and containing specific modules that require maintenace. +7. a) Unit Test - Tests components in isolation and focuses on the small testable parts. b)Intergration Test - Test on how two components interact,and if they work well together. c) System Testing - test of the whole system, usssually to test if the sytem is fully functional. d) Acceptance Testing - Test done to determine if it the software is ready for user deployment, by assessing user needs and software requirements. Testing helps ensure that the sofware developed is efficient, reliable, secure and user needs based. +8. Version control systems are tools that provide various benefits for software development, such as managing codes, allowing collaborations, tracking and merging changes. example: Git, which has features such as branching and merging. +9. A software project manager is the person that ensures that projects meet the specified requirements and quality standards within the given budget. Some key responsibilities of a software project manager is planning the project, managing the team, risk management and quality management. Software project management contains challenges such as: difficulties in adressing and intergrating complex technical issues into the project, dealing with different opinions on how to fix problems within the team and keeping up to date with evolving technology. +10. Software maintenace in the process of correcting software faults, and updating software to improve their perfomances, this maintenace is done continuosly to ensure the durability of the software. Corrective maintenace involves identifying, and diagnosing problems and then correcting them to ensure the effectiveness of the software. Preventative Maintenace involves conducting regular tests to identify future potential issues and preventing such issues occuring. Maintenace is important as it ensures the quality of the software is functional and that users are satisfied with the software. +11. Sofware Engineers handle user pernal data and they should ensure not to mix it up or expose it, they need to ensuAre that software is not vulnerable to hacking, they should be careful and avoid plagiarisms of unauthorized codes and they need to be transparent with clients on any issues experienced. To ensure adherance, software engineers should ensure compliance with the relevant codes of ethics.