Download - 8[1]. Software Engineering Concepts
-
8/8/2019 8[1]. Software Engineering Concepts
1/28
1
Summer 2009
Lesson - 8
Software Engineering
Concepts
CSE 101
-
8/8/2019 8[1]. Software Engineering Concepts
2/28
2
What is software?
Computer programs andassociated documentation
Software products may be developed for a particularcustomer or may be developed for a general market
Software products may be
Generic - developed to be sold to a range ofdifferent customers
Bespoke (custom) - developed for a single customer accordingto their specification
-
8/8/2019 8[1]. Software Engineering Concepts
3/28
3
Importance of Software
The economies of ALL developed nations aredependent on software.
More and more systems are software controlled
Software engineering is concerned with theories,methods and tools for professional softwaredevelopment.
Expenditure on software represents asignificant fraction of Gross National Product (GNP) in
all developed countries.
-
8/8/2019 8[1]. Software Engineering Concepts
4/28
4
What is software engineering?
Software engineering is an engineering disciplinewhich is concerned with all aspects of softwareproduction
Software engineers should adopt a systematic and organisedapproach to their work
use appropriate tools and techniques depending on the problem to be solved,
the development constraints and
the resources available
-
8/8/2019 8[1]. Software Engineering Concepts
5/28
5
What is the difference between software
engineering and computer science?
Computer Science Software Engineering
is concerned with
Computer science theories are currently insufficient to act asa complete underpinning for software engineering, BUT it is
a foundation for practical aspects of software engineering
theory
fundamentals
the practicalities of developing
delivering useful software
-
8/8/2019 8[1]. Software Engineering Concepts
6/28
6
What is the difference between software
engineering and system engineering?
System engineering is concerned with all aspects of computer-based systems development including hardware, software andprocess engineering.
Software engineering is part of this process concerned with
developing the software infrastructure, control, applications anddatabases in the system. So this is a part of System engineering.
System engineers are involved in
system specification,
architectural design
Integration.
-
8/8/2019 8[1]. Software Engineering Concepts
7/28
7
What is a software process?
A set of activities whose goal is the development orevolution of software.
Generic activities in all software processes are:
Specification - what the system should do and itsdevelopment constraints
Development - production of the software system
Validation - checking that the software is what the customerwants
Evolution - changing the software in response to changingdemands.
-
8/8/2019 8[1]. Software Engineering Concepts
8/28
8
What are software engineering methods?
Structuredapproaches to software development which includesystemmodels, notations, rules, designadvice and processguidance.
Examples: DeMacro, JSD, UML etc.
Method Components:
Model descriptions: Descriptions of graphical models which should beproduced;
Rules: Constraints applied to systemmodels;
Recommendations: Advice on gooddesign practice; Process guidance: What activities to follow.
-
8/8/2019 8[1]. Software Engineering Concepts
9/28
9
What is CASE (Computer-Aided Software
Engineering)
Upper-CASE
Tools to support the early processactivities of requirements anddesign
Lower-CASE
Tools to support later activities such asprogramming, debugging and testing
Software systems which are intended to provideautomated support for software process activities,such as requirements analysis, system modelling,debugging and testing
-
8/8/2019 8[1]. Software Engineering Concepts
10/28
10
What are the attributes of good software?
The software shoulddeliver the required functionalityandperformance to the user and should be maintainable, dependableandacceptable.
Maintainability Software must evolve to meet changing needs (scalable);
Dependability Software must be trustworthy (reliable, securedand safe);
Efficiency Software shouldnot make wasteful use of system resources;
Acceptability Software must accepted by the users for which it was designed. Thismeans it must be understandable, usable and compatible with othersystems.
-
8/8/2019 8[1]. Software Engineering Concepts
11/28
11
What are the key challenges facing
Software Engineering?
Heterogeneity
Developing techniques for building software that can cope withheterogeneous platforms and execution environments;
Delivery
Developing techniques that lead to faster delivery of software;
Trust
Developing techniques that demonstrate that software can betrusted by its users.
Reliable, Securedand Safe.
-
8/8/2019 8[1]. Software Engineering Concepts
12/28
12
Generic Software Process Models
A simplified representation ofa software process,presented froma specific perspective
Examples ofprocess perspectives:
Workflow perspective represents inputs, outputs and
dependencies Data-flow perspective represents data transformationactivities
Role/action perspective represents the roles/activities of thepeople involved in software process
Generic process models
Waterfall
Evolutionary development
Formal transformation
Integration from reusable components
-
8/8/2019 8[1]. Software Engineering Concepts
13/28
13
Engineering Example
Building a house:
Land and finances
garden, garage, you are used to age wine,
enjoy to sit by the fireplace, lots of storage,
dont like Bauhaus
Architect will define number of floors and
rooms, orientation of the driveway, size of the
garage
type of bricks, color of the walls,
Construction
Entering
Living in the house
Fixing minor problems, leaking in the roof
System Feasibility
Software Plans and Requirements
Product Design
Detailed Design
Code
Integration (Product Verification)
Integration (System Test)
Operations and Maintenance
-
8/8/2019 8[1]. Software Engineering Concepts
14/28
14
he Waterfall Model
System Feasibility Validation
Plans +
RequirementsValidation
Product Design Verification
Detailed Design Verification
Code Unit Test
IntegrationProduct
Verification
Integration System Test
Operation +
MaintenanceRevalidationDidnt we forget something ?
-
8/8/2019 8[1]. Software Engineering Concepts
15/28
15
he Waterfall Model
System Feasibility Validation
Plans +
RequirementsValidation
Product Design Verification
Detailed Design Verification
Code Unit Test
IntegrationProduct
Verification
Integration System Test
Operation +
MaintenanceRevalidation
-
8/8/2019 8[1]. Software Engineering Concepts
16/28
16
Weaknesses:
Usually requirements change, are incomplete
or even not known
Communication ! (see Mars Orbiter)
Result: Thats not what I meant ! ( go back to
last step )
WF-Model reacts very statically:
Each stage must be completed before next
one starts
Review of Waterfall Model
-
8/8/2019 8[1]. Software Engineering Concepts
17/28
17
System Feasibility Validation
Plans +
RequirementsValidation
Product Design Verification
Detailed Design Verification
Code Unit Test
IntegrationProduct
Verification
Integration System Test
Operation +
MaintenanceRevalidation
Too expensiveDoesnt force to discipline
Dont show this to your boss !
otal FeedBack
-
8/8/2019 8[1]. Software Engineering Concepts
18/28
18
ValidationFinal
version
DevelopmentIntermediate
versions
SpecificationInitial
version
Outlinedescription
Concurrentactivities
Evolutionary Process Model
-
8/8/2019 8[1]. Software Engineering Concepts
19/28
19
Waterfall High risk for new systems because of specificationand
design problems.
Low risk for well-understooddevelopments using familiartechnology.
Prototyping
Low risk for new applications because specificationandprogram stay in step.
High risk because of lack of process visibility.
Transformational
High risk because ofneed for advanced technologyandstaff skills.
Process Model Problem
-
8/8/2019 8[1]. Software Engineering Concepts
20/28
20
Riskanalysis
Riskanalysis
Riskanalysis
Riskanalysis Proto-
type 1
Prototype 2
Prototype 3Opera-
tionalprotoype
Concept ofOperation
Simulations, models, benchmarks
S/Wrequirements
Requirementvalidation
DesignV&V
Product
design Detaileddesign
Code
Unit test
Integrationtest
AcceptancetestService Develop, verify
next-level product
Evaluate alternativesidentify, resolve risks
Determine objectivesalternatives and
constraints
Plan next phase
Integrationand test plan
Developmentplan
Requirements planLife-cycle plan
REVIEW
Spiral Process Model
-
8/8/2019 8[1]. Software Engineering Concepts
21/28
21
Focuses attention on reuse options.
Focuses attention on early error elimination.
Puts quality objectives up front.
Integrates development andmaintenance.
Provides a framework for hardware/softwaredevelopment.
Spiral Model Advantages
-
8/8/2019 8[1]. Software Engineering Concepts
22/28
22
Contractual development often specifiesprocess model anddeliverables inadvance.
Requires risk assessment expertise.
Spiral Model Problems
-
8/8/2019 8[1]. Software Engineering Concepts
23/28
23
User Programmer
SOFTWARE
Customer Designer
Programmers view:
Some (holy) lines of code
A technical challenge
A pet
...
he Human Factor
-
8/8/2019 8[1]. Software Engineering Concepts
24/28
24
User Programmer
SOFTWARE
Customer Designer
Users view: A miracle
A wonderful tool making things easier
An incombprehensible tool
unnecessarilly complicating life
Something that simply should work !
he Human Factor
-
8/8/2019 8[1]. Software Engineering Concepts
25/28
25
User Programmer
SOFTWARE
Customer DesignerCustomers view:
A hopefully affordable tool to enhance profit.
he Human Factor
-
8/8/2019 8[1]. Software Engineering Concepts
26/28
26
User Programmer
SOFTWARE
Customer DesignerDesigners view:
A reasonably complicated
tool to fulfill the needs
A technical challenge
he Human Factor
-
8/8/2019 8[1]. Software Engineering Concepts
27/28
27
Professional and ethical responsibility
Software engineering involves wider responsibilitiesthan simply the application of technical skills.
Software engineers must behave in an honest andethically responsible way if they are to be respected
as professionals. Ethical behaviour is more than simply upholding the
law.
-
8/8/2019 8[1]. Software Engineering Concepts
28/28
28
Question???