Академический Документы
Профессиональный Документы
Культура Документы
Software?
Makes computer do specific task
Engineering?
Building machines to do useful things
Science
Discovering rules of nature
Technology
Products of engineering
Art?
Mehdi Jazayeri--SE-Intro (vers. 2001) / TU Wien 3
Outline
n Introduction n History n The process n Process and product n Process and product qualities
machine (the hardware) that in principle can solve any problem n Transforms it into a special-purpose abstract machine that solves a specific problem in the real world n The hardware is useless without the software!
2 Mehdi Jazayeri--SE-Intro (vers. 2001) / TU Wien 4
software systems
Large and complex Built by teams Exist in many versions Last many years Undergo changes n Multi-person construction of multi-
practical problems by applying scientific knowledge in building software artifacts in the service of mankind
cost-effective practical problems scientific knowledge building things service of mankind
5 Mehdi Jazayeri--SE-Intro (vers. 2001) / TU Wien 7
Engineering
version software
Mehdi Jazayeri--SE-Intro (vers. 2001) / TU Wien
operation, maintenance, deployment, retirement of software n Methodological and managerial discipline concerning the systematic production and maintenance of software products that are developed and maintained within anticipated and controlled time and cost limits
Mehdi Jazayeri--SE-Intro (vers. 2001) / TU Wien 6
Application
n Networked systems: HW - System SW -
Middleware - Application
Mehdi Jazayeri--SE-Intro (vers. 2001) / TU Wien 9
Market / customer
Developer
Understands domain Evaluates feasibility Masters technology Masters development/ deployment/ maintenance processes Interacts with customer/ is market-aware
control)
Has needs Expresses requirements Knows technology and how it can affect business Selects IT provider Defines contract Controls contractors Accepts delivered product/service
10
12
Engineering: evolution
Art: ad-hoc solutions intuition talented amateur invent/reinvent (slow transmission of knowledge) Routine production Management + production techniques Science
Developer
Engineering
13
15
Engineering tasks
Routine design
solution of familiar problems reuse of previous solutions
n n
Innovative design
novel solutions for unfamiliar problems
16
Bridges normally built on-time, on- budget, and do not fall n Software is rarely on-time and on-budget
Why?
17 Mehdi Jazayeri--SE-Intro (vers. 2001) / TU Wien 19
Common complaint
n n
Traditional engineering
n Extreme detail of design n Alternative designs can be validated
Software is still immature Other branches of industry do better than software factories in terms of
Quality of the products Quality of the process
through models
n Design is frozen and contractor has
applications and services that are at the heart of business n Frozen specifications and designs do not accommodate changes in the business practices n Continuous change and evolution
Mehdi Jazayeri--SE-Intro (vers. 2001) / TU Wien 21
failures
We seldom analyze failures!
Mehdi Jazayeri--SE-Intro (vers. 2001) / TU Wien 23
Software is different
n Requests for change and rapid
adaptation n Software products are necessarily less stable than other products n Other products are intrinsically unable to evolve n Development processes have to deal with changing requirements
Mehdi Jazayeri--SE-Intro (vers. 2001) / TU Wien 22
software engineer
identifies requirements and develops specifications designs a component to be combined with other components, developed, maintained, used by others; component can become part of several systems works in a team (requires communication)
Mehdi Jazayeri--SE-Intro (vers. 2001) / TU Wien 24
Examples
n
Domain knowledge
n
A telephone system
when one picks up the phone, the tone must be heard within x msec.
Plays a fundamental role in sw development n To develop a banking system, one must understand how banks work
How does the process of issuing a loan work?
n
25
Requirements&Specification
n
Skills
n n n n n n
From requirements and knowledge of the environment one derives a specification of the application
Exercise:
1. Do it for the document management system 2. Do it for word -processing of multi-file documents
Technical Project management Cognitive Enterprise organization Interaction with different cultures Domain knowledge Development technology is important Quality of human engineer is fundamental
Other examples:
traffic control systems hospital administration systems banking systems
Mehdi Jazayeri--SE-Intro (vers. 2001) / TU Wien 26
28
methods and standards and management n Automation n Verifiable quality n Componentization n . From art to industry
Term software engineering defined in a NATO conference in Garmisch, Oct. 1968
Mehdi Jazayeri--SE-Intro (vers. 2001) / TU Wien 31
n n
From computing to information management Requests for new (custom) software explode
users designers EDP centers and software houses
of large systems
New high level languages n First large projects and first fiasco's
time and budget, human cooperation failures wrong specifications
n Critical
systems
$ size of applications
Average development cost for
Large company
2,3 million $
Needs
n Recent (2000) study by Microsoft with
Medium company
1,3 million $
Small company
430.000 $
33
35
Relevance
n In 1996 software was the third industrial
are canceled before they are completed! n About 53% of projects cost 190% of original estimates
And hidden costs due to lost opportunities!!! Example: failure to produce reliable software for baggage handling at Denver airport cost over 1 million $ per day!
Mehdi Jazayeri--SE-Intro (vers. 2001) / TU Wien 37
A waterfall model
Feasibility study Requirements analysis& specification Design Coding&Unit test Integration&System test Deployment
38 Mehdi Jazayeri--SE-Intro (vers. 2001) / TU Wien
Maintenance
40
10
Feasibility study
n n n
The 5 Ws
Who
who will use the system n n
Cost/benefits analysis Determines whether the project should be started (e.g., buy vs make), possible alternatives, needed resources Produces a Feasibility Study Document
Preliminary problem description Scenarios describing possible solutions Costs and schedule for the different alternatives
Mehdi Jazayeri--SE-Intro (vers. 2001) / TU Wien 41
Why
why should it be developed + why will the users use it
n n
Where
where will it be used, on which architecture
When
when and how long will it be used
43
Analyze the domain in which the application takes place Identify requirements Derive specifications for the software
Requires interaction with the user Requires understanding of the properties of the domain
Required properties
Precise Complete Consistent
May include
Preliminary User Manual System Test Plan
44
11
Design
n n
Coding&Unit test
Each module is implemented using the selected programming language Each module is tested in isolation by the modules developer Programs include their documentation
Goal
Support concurrent development, separate responsibilities
Integration&System test
n
Design requires creativity Designer (engineer) creates something that did not exist before Architectural styles try to capture common structures in software design (static) Design patterns try to capture recurring parts of designs (more dynamic issues)
Mehdi Jazayeri--SE-Intro (vers. 2001) / TU Wien 46
Modules are integrated into (sub)systems and integrated (sub)systems are tested This phase and the previous may be integrated in an incremental implementation scheme Complete system test needed to verify overall properties Often we have alpha test and beta test
Mehdi Jazayeri--SE-Intro (vers. 2001) / TU Wien 48
12
Effort distribution
n
Maintenance
n n
All changes that follow delivery Unfortunate term: software does not wear out
if a failure occurs, the cause was there from the beginning
49
51
Deployment
Maintenance
n
Distribute the application and manage the different installations and configurations at the clients sites
50
52
13
Quality dimensions
Process vs. Product Internal vs. External Internal qualities affect external qualities Process quality affects product quality
53 Mehdi Jazayeri--SE-Intro (vers. 2001) / TU Wien 55
Coordination of phases
Correctness
n n
Software is correct if it satisfies the specifications If specifications are stated formally, since programs are formal objects, correctness can be defined formally
It can be proven as a theorem or disproved by counterexamples (testing)
54
56
14
Performance
n n
Can be verified
complexity analysis performance evaluation (on a model, via simulation)
n n
Performance can affect usability (see next) Performance may change with technology
Mehdi Jazayeri--SE-Intro (vers. 2001) / TU Wien 59
Reliability
Reliability, robustness
Usability
n n
informally, user can rely on it can be defined mathematically as probability of absence of failures for a certain time period if specs are correct, all correct software is reliable, but not vice-versa (in practice, however, specs can be incorrect )
n
Expected users find the system easy to use Important: define the expected user
if the user is an installer, ease of installation is part of usability
n n n n
Robustness
software behaves reasonably even in unforeseen circumstances (e.g., incorrect input, hardware failure)
Mehdi Jazayeri--SE-Intro (vers. 2001) / TU Wien 58
Other terms: ergonomic, user friendly Rather subjective, difficult to evaluate Evaluation made less subjective via panels Affected mostly by user interface
e.g., visual vs textual
60
15
Key SE principles
n n n n n n n
Rigor and formality Separation of concerns Modularity Abstraction Anticipation of change Generality Incrementality
Mehdi Jazayeri--SE-Intro (vers. 2001) / TU Wien 61
Reference
C. Ghezzi, M. Jazayeri, D. Mandrioli Fundamentals of software engineering, Prentice Hall, 1991
62
16