Beruflich Dokumente
Kultur Dokumente
Chapter 1:
The Scope of Software Engineering
Recall what a software is and identify its categories. Understand what software engineering is.
Understand why software engineering is important. Know answers to key questions related to the software
engineering discipline.
Quick Look
WHAT is it?: Computer software encompasses
programs that execute within a computer of any size and architecture, documents that encompass hard-copy and virtual forms, and data that combine numbers and text but also includes representations of pictorial, video, and audio information.
Software
System Documentation
Data
Documentation
User Documentation
Types of Software
Custom / Bespoke
For a specific customer Customization is based on user requirements
Generic
Sold on open market Often called COTS (Commercial Off The Shelf)
Embedded
Intelligent products that reside in ROM Built into hardware and is hard to modify/change
10
Types of Software
Differences among custom, generic and embedded software
Number of copies in use Total processing power devoted to running this type of software Worldwide annual development effort Custom low low Generic medium high Embedded high medium
high
medium
low
11
Web-base software
Web applications that incorporates executable instructions (e.g. CGI, HTML, Perl, or Java)
14
16
Activity
Think about all the devices and systems that you encounter in your everyday life which have software controlling them
Virtually all countries depend on complex computer-based systems.
17
18
Over budget
Unreliable Difficult to maintain Performed poorly
19
20
The cost depends on: The type of software being developed, and The process used in software development Each generic approach has a different profile of cost distribution. Roughly 60% of costs are development costs, 40% are testing costs. For custom software, cost distribution depends on the process used. Evolution costs often exceed development costs.
21
Cost distribution
Generic software development (COTS)
25
50
75
100
Specification
Development
System testing
22
Cost distribution
Custom software development (Bespoke)
Software Model Cost units Cost distribution Software development activity
Specification Design Development Integration and testing
Waterfall Model
25
50
75
100
Specification
Iterative Development
System testing
Specification
Development
23
24
Software Crisis
Example 2: Ariane 5 Explosion
European Space Agency
http://www.youtube.com/watch?v=z-r9cYp3tTE
25
Software Crisis
Example 1: 2009,Computer glitch delays flights
Dozens of flights from the UK were delayed Saturday after
a glitch in an air traffic control system in Scotland, but the problem was fixed a few hours later.
The agency said it reverted to backup equipment as
delays in flights.
Read more at:
http://edition.cnn.com/2009/WORLD/europe/10/03/uk.fl ights.delayed
26
Software Crisis
Example 3: 1992, London Ambulance Service
Considered the largest ambulance service in the
world.
Caused by database overload problem.
It was unable to keep track of the ambulances
and their statuses. Sending multiple units to some locations and no units to other locations.
Generates many exceptions messages. 46 deaths.
27
Therefore A well-disciplined approach to software development and management is necessary. This is called software engineering.
28
29
30
Computer Science
Theory. Fundamentals.
Software Engineering
Practicalities of software design, development and delivery.
31
Interdisciplinary engineering field (computer, software, and process eng.). Focuses on how complex engineering projects should be designed and managed.
Systems Engineering
All aspects of computerbased systems development: HW + SW + Process. Older than SWE.
Software Engineering
Deals with the design, development and delivery of SW. Is part of Systems Engineering.
To produce software within the Other definitions: budget & time allotted IEEE: (1) the application of a systematic, disciplined, quantifiable approach to
the development, operation, maintenance of software; that is, the application of engineering to software. (2) The study of approaches as in (1). The Canadian Standards Association: The systematic activities involved in the design, implementation and testing of software to optimize its production and support.
32
33
34
36
2. Customers
Those who pay for the software
3. Software developers
Include system analysts, system designers, system builders
4. Development Managers
All four roles can be fulfilled by the same person
37
39
Functional attributes
System
performance; what the system does; capability of the software to provide functions which meet stated and implied needs when the software is used
Key
Goal: To capture the required behavior of a software system in terms of functionality and the technology implementation through a system analysis process.
40
attributes
quality; how the system does it; based on the parameters of system performance, software quality attributes, reliability and security, cost, constraints in design and implementation
Key
goal: To determine the factors that can be used to judge the operation of a system or the quality attributes of the system.
41
Usability
Easy to learn how to use the system by target users. Efficient to use the system by users to accomplish a task. Satisfying to use by intended users. Evolution qualities such as testability, extensibility. Reliability, security, safety. Response time, processing time, memory utilization. Reprogramming is not needed.
http://en.wikipedia.org/wiki/Non-functional _requirement
43
Activity
45
Heterogeneity
Delivery
Businesses are more responsive supporting software needs to evolve rapidly. Software is a part of many aspects of our lives (work, study, leisure).
Trust
System development
System evolution
46
Enhancement projects: adding new features for users Reengineering or perfective projects: changing the system internally so it is more maintainable
47
48
Such projects:
Involve plugging together components that are:
Already developed. Provide significant functionality.
Benefit from reusing reliable software. Provide much of the same freedom to innovate found in green field development.
49
50
Requirements analysis
Organizing the information
Requirements specification
Writing detailed instructions about how the software should behave
51
Software Depression
The software crisis has not been solved: - Data on 9236 projects completed in 2004
55