User talk:Wafa bayan

Abstract

The main objectives of this report is to highlight and explain what is the software engineering all about, the relations between different software products, determine the main attributes of a good software, define the tools that the software engineer used for software development, list the ethical issues of the software engineer and the importance of his technical skills.

Introduction

This report contains main keys in software engineering, which is very important to understand it, and used it in correct place, which firstly talking about the definition of software engineering. Then discuses about the software product which is talking about what is software product consist, and what is the attributes of good software, next the report talking about the software process which take the definition of it, then mention main of this process and discusses it in shortly description. After that the report talking about what is software engineering methods and what the aim to use it, then talking about CASE tools and discuses what is it, and why the software engineer used it, and talking some of CASE tools more used. Finally we talking about the Software Engineers Responsibilities and Software Engineering Code of Ethics and Professional Practice, the first one talking about what the responsibilities of software engineer must know, and working under it, and the second one talking about the ethics of software engineering and his practice and mentions this practice.

Software Engineering

Software engineering is concerned with developing and maintaining software systems that behave reliably and efficiently, are affordable to develop and maintain, and satisfy all the requirements that customers have defined for them. It is important because of the impact of large, expensive software systems and the role of software in safety-critical applications. It integrates significant mathematics, computer science and practices whose origins are in engineering.

Software Product

Software products consist of developed programs and associated documentation, the developed programs that is product which contain the functions needed by users, or organization which is ready to used and maintained, and the associated documentation the document which contain explain of the project functionality and contain manual how to use this software, and contain the requirements of this software. And the good software must have four main attributes: 1) Maintainability. 2) Dependability. 3) Efficiency. 4) Usability. The maintainability is ability of software to retuned to original form in case any failure happens, and the dependability its how the user can applied your software, and can you make your software dependable by improve the specification of the software. The efficiency mean that the software get its goals in the good time and good quality and is all data retrieved correct, and the usability mean is the quality of a piece of software that enables it to be used again in another application, be it partial, modified or complete.

Software Process

A software process is a structure imposed on the development of a software product. There are several models for such processes, each describing approaches to a variety of tasks or activities that take place during the process. The software consists of activities that are involved in developing software products, Such as software specification, development and validation. The software specification describing the software to be written, possibly in a rigorous way In practice, most successful specifications are written to understand and fine-tune applications that were already well-developed, although safety-critical software systems are often carefully specified prior to application development, a good way to determine whether the specifications are sufficiently precise is to have a third party review the documents making sure that the requirements and Use Cases are logically sound. The development is concern in three phassis design, implementation and testing the Implementation is the part of the process where software engineers actually program the code for the project, software testing is an integral and important part of the software development process. This part of the process ensures that bugs are recognized as early as possible. The validation concern in bugs fixing in all previous activities, and make sure no more bugs in the system, and ensure the system get all function needed.

Software Engineering Methods

Software Engineering Methods aims to examine some of the more specific processes required for the production of high quality software, for example, methods for testing software, ensuring reliability or performance in software. At the conclusion of this subject students are expected to understand the principles of software testing, to know how to apply software testing techniques to the development of quality software, to understand the principles of software reliability and methods for assessing software reliability; to understand and apply a range of engineering methods, and these methods are structured approaches to software development, and it’s including model descriptions, rules, recommendations, and process guidance.

CASE (Computer Aided Software Engineering) Tools A CASE tool is a computer-based product aimed at supporting one or more software engineering activities within a software development process. It can be used to mean any computer-based tool for software planning, development, and evolution. Some of CASE tools: • Configuration management tools. • Data modeling tools. • Model transformation tools. • Refactoring tools. • Source code generation tools. • Unified Modeling Language.

Software Engineers Responsibilities

The software engineers must concerned in two way of responsibility first the Intellectual property rights, and the second one he should not use their technical skills to misuse other people’s computers. They strive for a good integration of rules and consequences to achieve ethical behavior and to assess moral responsibility in the profession: preeminence of human values and crucial consideration of consequences. And the primary responsibilities of a Software Engineering are to analyze the problem and gather the information about a particular program. And then on the basis of the analysis the programmer makes an error free program/software which meets all the requirement of the company. The Developer is also responsible for making a program with in due date. He should do proper documentation of the program so that it will be easier for a newcomer to easily understand the code and modify/change it according to required needs.

Software Engineering Code of Ethics and Professional Practice

Software engineers shall commit themselves to making the analysis, specification, design, development, testing and maintenance of software a beneficial and respected profession. In accordance with their commitment to the health, safety and welfare of the public, software engineers shall adhere to the following Eight Principles: 1. PUBLIC - Software engineers shall act consistently with the public interest. 2. 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. 3. PRODUCT - Software engineers shall ensure that their products and related modifications meet the highest professional standards possible. 4. JUDGMENT - Software engineers shall maintain integrity and independence in their professional judgment. 5. MANAGEMENT - Software engineering managers and leaders shall subscribe to and promote an ethical approach to the management of software development and maintenance. 6. PROFESSION - Software engineers shall advance the integrity and reputation of the profession consistent with the public interest. 7. COLLEAGUES - Software engineers shall be fair to and supportive of their colleagues. 8. 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.

Reference: Ian Sommerville/Software Engineering/2007/Adison-wesley/Person education limited 1989,1995,2001,2004,2007