The document provides an introduction to software engineering, highlighting its definition, challenges, and development processes. It discusses the distinction between computer science and software engineering, emphasizes the need for responsibility in software development, and outlines various software development practices. The document also addresses the difficulties in creating software, such as changing requirements and schedule pressures.
Software: A definition
“SoftwareSystems are perhaps the most
intricate and complex … of the things humanity
makes.”
-Fred Brooks
5.
Software engineering
• Hasprogressed very far in a short time:
– 50 years ago, most programming were done
by Scientists trying to solve mathematical
problems.
– Today, we build monstrous systems used
everywhere.
• But, software industry is in crisis:
– A software project overshoots its schedule
by a half.
– Three quarters of all large systems are
operating failures.
6.
Computer Science: Adefinition
“Computer science is a discipline that involves
the understanding and design of computers and
computational processes. In its most general
form it is concerned with the understanding of
information transfer and transformation.
Particular interest is placed on making
processes efficient and endowing them with
some form of intelligence.”
-CSAB
7.
Engineering: A definition
“Thesystematic and regular application of
scientific and mathematical knowledge to the
design, construction, and operation of machines, systems,
and so on of practical use and, hence, of economic
value. Particular characteristic of engineers is that they
take seriously their responsibility for correctness,
suitability, and safety of the results of their efforts.
In this regard they consider themselves to be responsible
to their customer (including their employers where
relevant), to the users of their machines and systems, and
to the public at large.”
-Robert Baber
8.
Software Engineering asEngineering
• Practical use, economic value:
– We need to determine the content and build
the best product value.
• Responsibility for correctness, suitability and
safety:
– The work you do could impact the safety,
business and well being of the customer.
• Regular application of scientific and
mathematical knowledge:
– Computer Science, psychology, economics
and management
9.
Software Engineering: ADefinition
“Software engineering is the application of a
systematic, disciplined, quantifiable approach to
the development, operation, and maintenance of
software; that is, the application of engineering
to software”
-IEEE
Software Development Practices
•You will learn MANY software development
practices.
• You’ll find:
– A practice is good for safety-critical
software.
– Another is better for small projects.
• Engineering is about selecting the most
appropriate method for a set of circumstances.
• You can use the practices and build a software
process with them.
13.
Software Development Process
Theprocess by which user needs are translated
into a software product. The process involves
translating user needs into software
requirements, transforming the software
requirements into design, implementing the
design in code, testing the code, and sometimes
installing and checking out the software for
operational use. Note: these activities might
overlap or be performed iteratively
- IEEE
14.
Software process model
PlanDriven
The cost can be
minimized by
creating detailed
plans and by
constructing and
inspecting
architecture and
design documents.
Agile
Time is spent
planning and
gathering
requirements for
small iterations
throughout the
entire lifecycle of
the project.
The programmer
The programmer,like the poet, works only
slightly removed from pure thought-stuff. He
builds his castles in the air, from air, creating by
exertion of the imagination.
-Frederick Brooks
17.
Software Engineering Challenges
•Tractable Medium
– The constraints of physical medium can
serve to simplify alternatives.
• Changing requirements
– It is hard for customers to express what
they want in a product.
• Schedule Optimism
– We are an optimistic crew.
• Schedule Pressure
– Every product is late before it’s even started
18.
Credits
Based on:A (Partial)
Introductionto
Software Engineering
Practices and Methods
• By Laurie Williams
• Available in:
http://agile.csc.ncsu
.edu/SEMaterials/C
oursePack.pdf