PPT Introduction to Software Engineering

27
Introduction to Software Engineering

Transcript of PPT Introduction to Software Engineering

Page 1: PPT Introduction to Software Engineering

Introduction to Software Engineering

Page 2: PPT Introduction to Software Engineering

Software• Software is a general term for the various kinds of programs used to operate computers and related devices.

•systems software : Includes the operating system and all the utilities that enable the computer to function.•applications software : Includes programs that do real work for users. For example, word processors, spreadsheets, and database management systems fall under the category of applications software.

Page 3: PPT Introduction to Software Engineering

Software products may be…

– Generic - developed to be sold to a range of different customers• E.g. PC software such as Excel or

Word– Bespoke (custom) - developed for a

single customer according to their specification.

Page 4: PPT Introduction to Software Engineering

Engineering

• The application of scientific and mathematical principles to practical ends such as the design, manufacture, and operation of efficient and economical structures, machines, processes, and systems.

Page 5: PPT Introduction to Software Engineering

Software Engineering

• Is a profession dedicated to designing, implementing, and modifying software so that it is of higher quality, more affordable, maintainable, and faster to build.

• The systematic application of scientific and technological knowledge, through the medium of sound engineering principles, to the production of computer programs, and to the requirements definition, functional specification, design description, program implementation, and test methods that lead up to this code.

Page 6: PPT Introduction to Software Engineering

Difference between Software Engineering and Computer Science

Computer Science is defined as..• The study of the theoretical foundations of

information and computation, and of practical techniques for their implementation and application in computer systems.

• Computer science is concerned with theory and fundamentals; software engineering is concerned with the practicalities of developing and delivering useful software.

Page 7: PPT Introduction to Software Engineering

Difference between Software Engineering and System Engineering

Systems engineering ..• to identify the roles of hardware, software,

people, database and other system elements involved with that system which is going to be developed.

• is an interdisciplinary field of engineering that focuses on how complex engineering projects should be designed and managed.

Page 8: PPT Introduction to Software Engineering

Software Process

• A set of activities whose goal is the development or evolution of software.

Page 9: PPT Introduction to Software Engineering

Generic activities in all software processes are:

Specification - what the system should do and its development constraints

Development - production of the software system

Validation - checking that the software is what the customer wants

Evolution - changing the software in response to changing demands.

Page 10: PPT Introduction to Software Engineering

Software development activities

• Planning• Implementation, testing and documenting• Deployment and maintenance

Page 11: PPT Introduction to Software Engineering

Implementation, testing and documenting

• Implementation is the part of the process where software engineers actually program the code for the project.

• Software testing is part of the process ensures that defects are recognized as early as possible.

• Documenting the internal design of software for the purpose of future maintenance and enhancement is done throughout development.

Page 12: PPT Introduction to Software Engineering

Deployment and maintenance

• Deployment starts after the code is appropriately tested, is approved for release and sold or otherwise distributed into a production environment.

• Maintaining and enhancing software to cope with newly discovered problems or new requirements can take far more time than the initial development of the software.

Page 13: PPT Introduction to Software Engineering

Software Development Models

• A simplified representation of a software process, presented from a specific perspective.

• Examples of process perspectives are Workflow perspective - sequence of activities Data-flow perspective - information flow Role/action perspective - which does what.

Page 14: PPT Introduction to Software Engineering

Cost of Software Engineering

• Roughly 60% of costs are development costs, 40% are testing costs. For custom software, evolution costs often exceed development costs.

• Costs vary depending on the type of system being developed and the requirements of system attributes such as performance and system reliability.

• Distribution of costs depends on the development model that is used.

Page 15: PPT Introduction to Software Engineering

Activity Cost Distribution

Page 16: PPT Introduction to Software Engineering

Product Development Cost

Page 17: PPT Introduction to Software Engineering

Software Engineering Methods

• Refers to the framework that is used to structure, plan, and control the process of developing an information system.

• Consist of:A software development philosophy, with the

approach or approaches of the software development process

Multiple tools, models and methods, to assist in the software development process.

Page 18: PPT Introduction to Software Engineering

Topics Regarding Software Development Engineering

• View Model framework which provides the viewpoints on the

system and its environment, to be used in the software development process. It is a graphical representation of the underlying semantics of a view.

• Business process and data modeling Graphical representation of the current state of

information provides a very effective means for presenting information to both users and system developers.

Page 19: PPT Introduction to Software Engineering

• Computer-aided Software Engineering the scientific application of a set of tools and

methods to a software which results in high-quality, defect-free, and maintainable software products.

CASE systems are often used for method support.• Upper-CASE– Tools to support the early process activities of

requirements and design• Lower-CASE– Tools to support later activities such as

programming, debugging and testing.

Page 20: PPT Introduction to Software Engineering

Attributes of a Good Software

The software should deliver the requiredfunctionality and performance to the user andshould be maintainable, dependable and usable.

Maintainability - Software must evolve to meet changing needs

Dependability - Software must be trustworthy Efficiency - Software should not make wasteful use

of system resources Usability - Software must be usable by the users for

which it was designed

Page 21: PPT Introduction to Software Engineering

What are the key challenges facing software engineering?

• Heterogeneity Developing techniques for building software that can

cope with heterogeneous platforms and execution environments

• Delivery Developing techniques that lead to faster delivery of

software• Trust

Developing techniques that demonstrate that software can be trusted by its users

Page 22: PPT Introduction to Software Engineering

Professional and ethical responsibility

• Software engineering involves wider responsibilities than simply the application of technical skills.

• Software engineers must behave in an honest and ethically responsible way if they are to be respected as professionals.

• Ethical behavior is more than simply upholding the law.

Page 23: PPT Introduction to Software Engineering

Issues of professional responsibility

• Confidentiality– Engineers should normally respect the

confidentiality of their employers or clients irrespective of whether or not a formal confidentiality agreement has been signed.

• Competence– Engineers should not misrepresent their level of

competence. They should not knowingly accept work which is outwitting their competence.

Page 24: PPT Introduction to Software Engineering

• Intellectual property rights– Engineers should be aware of local laws governing

the use of intellectual property such as patents, copyright, etc. They should be careful to ensure that the intellectual property of employers and clients is protected.

• Computer misuse– Software engineers should not use their technical

skills to misuse other people’s computers. Computer misuse ranges from relatively trivial (game playing on an employer’s machine, say) to extremely serious (dissemination of viruses).

Page 25: PPT Introduction to Software Engineering

Code of ethics - preamble• PreambleThe short version of the code summarizes aspirations at a high level of

the abstraction; the clauses that are included in the full version give examples and details of how these aspirations change the way we act as software engineering professionals. Without the aspirations, the details can become legalistic and tedious; without the details, the aspirations can become high sounding but empty; together, the aspirations and the details form a cohesive code.

• 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:

Page 26: PPT Introduction to Software Engineering

Code of ethics – principles

• PUBLIC– Software engineers shall act consistently with the public interest.

• 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.

• PRODUCT– Software engineers shall ensure that their products and related

modifications meet the highest professional standards possible.• JUDGMENT

– Software engineers shall maintain integrity and independence in their professional judgment.

Page 27: PPT Introduction to Software Engineering

• MANAGEMENT– Software engineering managers and leaders shall subscribe to

and promote an ethical approach to the management of software development and maintenance.

• PROFESSION– Software engineers shall advance the integrity and reputation

of the profession consistent with the public interest.• COLLEAGUES

– Software engineers shall be fair to and supportive of their colleagues.

• 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.