Академический Документы
Профессиональный Документы
Культура Документы
Presenter Ambili P K
Objectives
Understand what Software Engineering is, and why it is important
Answer fundamental questions about
Software Engineering Introduce ethical and professional responsibility issues as they relate to computer scientists and software engineers
associated documentation such as requirements documents, design models, and user manuals May be targeted for some general purpose (web browser, word processor, etc), or for a specific custom need New software can be produced from scratch, by configuring generic software systems, or by reusing existing software
that applies theories, methods, and tools to solve problems related to software production and maintenance Software engineers strive to deliver high-quality software, on time and within budget
on software Software mediates every aspect of our Internet experience The economies of all developed nations are dependent on software There is an increasing need to cost effectively develop high-quality software
usable software for today; computer science is concerned with finding fundamental truths about theoretical problems for posterity Software engineering projects have fixed budgets and schedules; computer science projects have open-ended budgets and schedules Software created by software engineers must evolve as users needs change; solutions created by Computer Scientists never change
function; computer scientists rely on mathematical principles to function Unlike physics and electrical engineering, software engineers often rely on methods and principles borrowed from other engineering disciplines instead of computer science
of computer based systems, including hardware, software and process engineering; applies tested and known principles; the discipline is thousands of years old Software Engineering is concerned with developing the software infrastructure, control, applications, and databases in the system; often apply new and untested elements in software projects; the discipline is about 50 years old
output, which result in a software product Four fundamental process activities are:
Specification: Defines what the software should do, and its operational constraints Design and implementation: Designs the solutions, and produces the source code to meet the specification Validation: Checks that the software produced is what the customer wants Evolution: Changes made to the software that meet users changing needs
presented from a particular perspective; for example, workflow (sequence of activities), dataflow (information flow), or role/action (who does what) These process models explain different approaches to software development; for example, Waterfall, Iterative, and Component Based Software Engineering
costs. Software costs more to maintain than to develop from scratch. The maintenance costs for systems with a long-life, may be several times its development costs
40% are testing costs. Evolution costs often exceed development costs in custom software Costs vary depending on the type and requirements of system under development The distribution of costs depend on the development model used
Model descriptions: Describes graphical models (i.e. object, data-flow, state machine models, etc) Rules: Constraints applied to system models (i.e. entities must have unique names) Recommendations: Best practices for designing software (i.e. include no more than nine processes in a data flow diagram) Process guidance: what activities to follow (i.e. document object attributes before defining its operations)
provide automated support for software process activities Often used for method support Upper-CASE tools support requirements gathering and design activities Lower-CASE tools support implementation, debugging, and testing activities
on different platforms, that can integrate with older legacy systems which are written in different programming languages Delivery: How to shorten the time it takes to deliver a finished software product, without compromising its quality Trust: How to develop techniques to demonstrate that software can be trusted by its users
Competence
Never misrepresent ones level of competence.
competence
and clients is protected Be aware of local laws governing use of intellectual property such as patents and copyright
Computer misuse
Never use technical skills to misuse other peoples
computers
public interest.
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.
Management:
Software engineering managers and leaders shall
subscribe to and promote an ethical approach to the management of software development and maintenance.
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.