Вы находитесь на странице: 1из 8

Software Engineering Fundamentals

Introduction
1 Software Engineering ?

Dr. Petru Florin Mihancea

Based on:
I. Summerville - Software Engineering 8, Ch.1 Introduction
R. Pressman - Software Engineering, Ch. 1 The Product V20140219 Dr. Petru Florin Mihancea

1 2

The beginning ... Reason


The major cause of the software crisis is that the machines have become
several orders of magnitude more powerful! To put it quite bluntly: as long
as there were no machines, programming was no problem at all; when we had a few
The “software crisis” in the 60’s weak computers, programming became a mild problem, and now we have gigantic
computers, programming has become an equally gigantic problem.
Edsgar Dijkstra

• Major projects were years late


Larger and more complex programs
• Software costs much higher than predicted
• Unreliable software become possible, but ...
• Difficult cu maintain, understand and change the software
• etc.
... the informal
software development practices
(for previous smaller programs)

at that time were insufficient!


Dr. Petru Florin Mihancea Dr. Petru Florin Mihancea
3 4
Software Engineering
First use @ NATO Software Engineering Conference (1968)

... is an engineering discipline that is


concerned with all the aspects of software
production from the early stages of system specification to
maintaining the system after it has gone into use
2 Do I really need this ?
or
Interesting questions, ideas and dangerous myths (misinformation) :)
Engineering discipline
•select and apply the adequate tools and techniques to solve a problem
considering also resource constraints
• find solutions even when there are no applicable theories

All aspects of software production


• all technical processes of professional software development
•usage and development of methods, techniques and tools to support
software development

Dr. Petru Florin Mihancea Dr. Petru Florin Mihancea

5 6

What is software ?
What is the difference between software
engineering and computer science ? Developer myth: The only deliverable work
product for a successful project is the
working program NG!
Computer science WRO
Concerned with theories and methods that underlies computer and
software systems

Software engineering A. Instructions (computer programs) that when executed provide


Concerned with the practical problem of producing software desired function + data structures that enable programs to manipulate
information
+
B. Documents that describe the operation and use of the programs
(i.e. documentation)
Software engineers must often use ad hoc er
mput
approaches (not covered by CS theories) to
d g e of co ftware
developing software
know
le r so
ial fo
Some is essent ers
ce e
scien engin
Dr. Petru Florin Mihancea Dr. Petru Florin Mihancea
7 8
Types of software Special characteristics of
software (I)
Software is developed or engineered, it is not
1. Generic products
manufactured in the classical sense
developed by an organization and “sold” on open market (e.g. text
editors); specifications are set by the organization for hardware

2. Customized products
developed for a particular customer (e.g. air traffic control) and manufacturing
following his specifications

http://www.timetools.co.uk

http://hubpages.com/hub/digital-clock-using-microcontroller-89C5289S52 a physical form

engineered
Dr. Petru Florin Mihancea Dr. Petru Florin Mihancea

9 10

Special characteristics of Which are the main activities to apply in


order to (successfully) build a software ?
software (I)
A software process is a set of activities and
Software is developed or engineered, it is not associated results that produce a software
manufactured in the classical sense product
Fundamental activities:
for software
1. Software specification
defining the software to be produced
Logical
"product"
2. Software development
designing and programming
3. Software validation
checking to ensure that it is what the customer required
4. Software evolution
Software costs are modification to adapt to customer / market requirements

engineered concentrated in engineering


A software process model = a simplified representation of a process
Dr. Petru Florin Mihancea Dr. Petru Florin Mihancea
11 12
Some general models Customer myth: A general statement of
objectives is sufficient to begin writing
Various ways in which these activities can be programs - we can fill details later
“chained” NG!
WRO

A. Waterfall approach A poor up-front definition is a major cause of failed


separate steps for specification, design, implementation, etc. projects
complete a phase and only after move to the next one

Detailed (formal) description of domain, function,


B. Iterative development
behavior, performance, interfaces, validation criteria is
interleaves specification, development, validation activities, etc. essential
fast development of an initial system and refine it with the
customer
Communication with the customer is mandatory
ns
os/co
us pr
Vario e later :)
- se
Dr. Petru Florin Mihancea Dr. Petru Florin Mihancea

13 14

What is the cost distribution over the Special characteristics of


software process activities ?
software (II)
Software does not “wear out”

for hardware

Summerville - Software Engineering 8

Coding is NOT the y


main cost :) or :( e on l
t h e se ar ment
And p
evelo
al” d ts !
“initi cos
Pressman - Software Engineering

Dr. Petru Florin Mihancea Dr. Petru Florin Mihancea


15 16
Special characteristics of Software must evolve
software (II)
Software does not “wear out”
Software systems must be continually
adapted to new requirements else they
for software
become progressively less satisfactory
One of the Lehman’s software
evolution laws

?
Why

Pressman - Software Engineering

Dr. Petru Florin Mihancea Dr. Petru Florin Mihancea

17 18

So back ... what is the cost distribution over Customer myth: Project requirements
the software process activities ? continually change, but change can be easily
Developer myth: Once we write the program accommodated because software is flexible
NG!
and get it work our work is done WRO
NG!
WRO

Summerville - Software Engineering 8

Always, design (a program) 4 Pressman - Software Engineering

change
Dr. Petru Florin Mihancea Dr. Petru Florin Mihancea
19 20
Special characteristics of Software aging
software (II)
Programs, like people, get old!
Software does not “wear out”
D. Parnas - Software aging

ClassA ClassB ClassA ClassB G ClassB


How ?

ClassA
F

Changes are not necessary performed by


Cl
ClassC ClassD ClassC ClassD as
sC

the original developers


ClassD

Those that modify a system do not fully


understand it and thus, may deteriorate
the program (including its internal
structure)

After several such modifications nobody


understand the modified product :)
it
... but es !!!
iorat
Reverse Engineering & Reengineering

d e t e r Pressman - Software Engineering


try to deal and delay
the aging process
Dr. Petru Florin Mihancea Dr. Petru Florin Mihancea

21 22

Management myth: If we get behind Management myth: If we get behind


schedule, we can add more programmers and schedule, we can add more programmers and
catch up catch up
NG! NG!
WRO WRO

Brooks - Mythical MM
Brooks - Mythical MM Brooks - Mythical MM Brooks - Mythical MM

Partially independent tasks ... and when too much


Completely independent subtasks Non decomposable task (extra time for communication) communication is required :)

Dr. Petru Florin Mihancea Dr. Petru Florin Mihancea


23 24
Special characteristics of Developer myth: Software engineering will
make us create voluminous and necessary
software (III) documentation and will invariably slow us
Although the industry is moving towards down RON
G!
W
component-based assembly, most software
continues to be custom built

for hardware S.E. is NOT about documents


select standard components, It is about creating quality
having well defined functions,
interfaces, etc. Better quality leads to reduce rework
Reduce rework results in faster delivery
times (and costs).
http://hubpages.com/hub/digital-clock-using-microcontroller-89C5289S52

In the software world, this component reuse


is something that has only begun to be
achieved http://www.timetools.co.uk
Dr. Petru Florin Mihancea Dr. Petru Florin Mihancea

25 26

Quality or what are the attributes of good Developer myth: Until I get the program
software ? “running” I have no way of assessing its
quality
NG!
Two categories of attributes WRO

a. functional e.g. meet customer requirements


b. non-functional e.g. understandability of code Software reviews can be applied from the
inception of the project and found to be
Maintainability i.e. easy to evolve effective in finding certain classes of
problems
Efficiency i.e. do not waste resources
Usability i.e. easy to use by the user (e.g.good UI, documentation)
Dependability i.e. reliability, security, safety Some design analyses can be run while
writing the code
t also
importan ion
most applicat
h are he
Whic ends on t
Dr. Petru Florin Mihancea de p Dr. Petru Florin Mihancea
27 28
What fundamentals ? What is CASE ?
Computer-Aided Software Engineering

Processes A wide range of different types of programs


what are the phases and what is the flow that are used to support software process
activities
Techniques
Lower CASE
how to accomplish some phases
back-end activities e.g. programming, debugging, testing

Tools
some tool support, including to automate some tasks
Upper CASE
front-end activities e.g. requirements and design e.g.

...
Dr. Petru Florin Mihancea Dr. Petru Florin Mihancea

29 30

Вам также может понравиться