Professional Documents
Culture Documents
2
Software Engineering
3
What is Software Engineering
• Engineering discipline that is concerned with all aspects of software
production.
– Design
– Development
– Maintenance
4
Importance of Software Engineering?
The importance of Software engineering is as follows:
– Reduces complexity
– Minimizes software cost
– Decreases time
– Handles big projects
– Reliable software
– Effectiveness
5
Required Tasks in Software Engineering?
Ability to quickly learn new and diverse disciplines and business processes
Ability to communicate with domain experts, extract an abstract model of the
problem, and formulate a solution.
Ability to design the software systems for the proposed solution to meet the business
needs for many years.
6
The Role of Software Engineering
7
The Role of Software Engineering
Customer:
Requires a computer system to achieve some business goals
by user interaction or interaction with the environment
in a specified manner
System-to-be
Environment
Software-to-be
User
9
Introduction: Software is Complex
Complex ≠ Complicated
Nailing Painting
Setting posts Cutting wood
[ 2 time units for unpainted; [ 5 time units for uncut wood;
[ 3 time units ] [ 2 time units ]
3 time units otherwise ] 4 time units otherwise ]
In what order should these tasks be carried out to complete the project
in the shortest possible time?
Communication link
1
4 2
7 5 3
8 6
0 9
Bank’s
remote
ATM machine
datacenter
Bank
customer
12
How ATM Machine Might Work
Domain model Domain Model
created with help
of domain expert
Transaction
How may I record
help you? Cash
Bookkeeper
Speakerphone Safe
Safe keeper
Phone
Window clerk
Datacenter
liaison
Dispenser
Bank’s
remote
datacenter 13
Customer
Cartoon Strip: How ATM Machine Works
A Enter B C Verify
account
D
your PIN
XYZ
Verify
this
account
Dispensing!
Withdraw Dispense
H
$60 $60
Please take
your cash
14
Software Engineering Lifecycle
• Any product development process includes the following phases:
• Planning/specification
• Design
• Implementation
• Evaluation
15
Software Development Methods
Waterfall – Activities are proceed in a sequential manner, not practical
16
Waterfall Method
Requirements
Design
Implementation
Testing
Waterfall
method Deployment &
Maintenance
proceeds sequentially
finish this step before moving to the next
17
Modeling Languages
• Modeling is the designing of software applications before coding.
– Activity diagram
– Sequence diagram
18
UML – Language of Symbols
UML = Unified Modeling Language
«interface»
Stereotype
BaseInterface
«⋅⋅⋅» provides
ClassName additional info/
+ operation()
annotation/
# attribute_1 : int explanation
Three common # attribute_2 : boolean
compartments: # attribute_3 : String
1. Classifier name Inheritance
+ operation_1() : void relationship:
+ operation_2() : String Class1Implement Class2Implement
2. Attributes BaseInterface
+ operation_3(arg1 : int) is implemented
+ operation() + operation()
3. Operations by two classes
Software Class
Actor Comment Software Interface Implementation
doSomething()
doSomethingElse()
Interaction Diagram
doSomethingYetElse()
Online information:
http://www.uml.org
19
Requirements Analysis and System Specification
• Requirement analysis is the first step of software development process.
Use Cases – describes the interaction between the System and Actors
20
ATM: Gallery of Players
1
4 2
7 5 3
8 6
0 9
1
4 2
7 5 63 1
8 4 2
0 9 7 85 6 3
0 9
D E XYZ
Please take
your cash withdrew
$60
1
4 2
7 5 63
8
0 9
Collecting
cash …
Acknowledged
23
Domain Model
• Models the inside of the system.
we imagine having a courier run to a nearest bank depository to retrieve the requested
money
24
How ATM Machine Works (2)
Domain Model (2)
Alternative Solution
modification
solution
Transaction
How may I record
help you?
Bookkeeper
Speakerphone
Draftsman
Window clerk
Dispenser
Customer
How ATM Machine Works (3)
Domain Model (3)
Alternative Solution
modification
solution
Transaction
How may I record
help you?
Bookkeeper
Speakerphone
Courier
Window clerk
Dispenser
Remote
bank
Customer
Software Design
27
Effort Estimation and Quality measurement
Formal hedge pruning
28
Sizing the Problem (1)
Step 1: Divide the problem into small & similar parts
Step 2:
Estimate relative
sizes of all parts
Size( )=4
Size( ) = 7
Size( ) = 10
Size( ) = 3
Size( ) = 4
Size( ) = 2
Size( ) = 4
Size( ) = 7
Sizing the Problem (2)
• Step 3: Estimate the size of the total work
After the first iteration you can use the measured velocity to obtain a more
accurate estimate of the project duration 31
Sizing the Problem (3)
• Advantages:
– Velocity estimate may need to be adjusted (based on
observed progress)
Estimation accuracy
Estimation cost
Estimation
error
36
Conceptual Maps
Concept maps are graphical tools for organizing and representing knowledge and
concepts. Represented by:
circles or boxes of some type, and
relationships between the concepts are connected by lines linking two
concepts.
37
Conceptual Maps
Useful tool for problem domain description
I
Proposition Concept Relation Concept
have
1. I have friend
2. friend engages in coding friend
program
is
Search the Web for Concept Maps new
38
Conceptual Maps
39
Conceptual Maps
40
Conceptual Maps
41
Conceptual Maps
42
Concept Map for Home Access Control
tenant
enters
wishes key
can be
upper bound on failed attempts
causes valid key invalid key
lock opened
can be prevented by enforcing
may signal
43
Conceptual Maps
Benefits of Concept Mapping
45