Download Software Engineering Exam: Introduction to Concepts and Methods and more Exams Software Engineering in PDF only on Docsity!
Ivan Marsic
Rutgers University
LECTURE 1: Introduction
Lecture time: 1 hr. 20 min.
Course Information
Web:
http://www.ece.rutgers.edu/~marsic/Teaching/SE
Lecture Notes:
http://www.ece.rutgers.edu/~marsic/books/SE
Textbooks (see more on the course website)
- (^) Bruegge & Dutoit: Object-Oriented Software Engineering: Using UML, Patterns and Java, Third Edition, Prentice Hall, 2010. | ISBN 0-13-
- Miles & Hamilton: Learning UML 2.0 , O’Reilly Media, 2006. ISBN: 0-596-00982- 2
Complexity Example:
Scheduling Fence Construction Tasks
Setting posts
[ 3 time units ]
Cutting wood
[ 2 time units ]
Painting
[ 5 time units for uncut wood;
4 time units otherwise ]
Nailing
[ 2 time units for unpainted;
3 time units otherwise ]
Setting posts Nailing, Painting Cutting Nailing
…shortest possible completion time =?
4 [ “simple” problem, but hard to solve without a pen and paper ]simple” problem, but hard to solve without a pen and paper ]
More Complexity
Suppose today is Tuesday, November 29
What day will be on January 3?
[ To answer, we need to bring the day names and the day numbers into coordination, and for that we may need again a pen and paper ]
The Role of Software Engg. (1)
Customer Customer
Programmer
A bridge from customer needs to programming implementation
First law of software engineering
Software engineer is willing to learn the problem domain
(problem cannot be solved without understanding it first) (^) 7
The Role of Software Engg. (2)
8 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 Software-to-be System-to-be Software-to-be User Software Engineer’s task:
To understand how the system-to-be needs to interact with
the user or the environment so that customer’s requirement is met
and design the software-to-be
Programmer’s task:
To implement the software-to-be
designed by the software engineer
Environment
May be the
same person
Problem-solving Strategy
Divide-and-conquer:
Identify logical parts of the system that each
solves a part of the problem
Easiest done with the help of a domain
expert who already knows the steps in the
process (“how it is currently done”)
Result:
A Model of the Problem Domain
(or “domain model”)
10
How ATM Machine Might Work
Window clerk
Bookkeeper
Safe keeper
Datacenter
liaison
Dispenser
Safe
Cash
Transaction
record
Phone
Speakerphone
Bank’s remote datacenter Domain Model How may I help you? Customer 11
Software Engineering Blueprints
Specifying software problems and solutions
is like cartoon strip writing
Unfortunately, most of us are not artists, so
we will use something less exciting:
UML symbols
However …
13
Second Law of Software Engineering Software should be written for people first
- (^) ( Computers run software, but hardware quickly becomes outdated )
- (^) Useful + good software lives long
- (^) To nurture software, people must be able to understand it 14
Waterfall Method
Deployment &
Maintenance
Requirements
Design
Implementation
Testing
Waterfall
method
16
Each activity confined to its “phase”.
Unidirectional, no way back;
finish this phase before moving to the next
UML – Language of Symbols
«interface» BaseInterface
- operation() Actor ClassName
attribute_1 : int
attribute_2 : boolean
attribute_3 : String
- operation_1() : void
- operation_2() : String
- operation_3(arg1 : int) Software Class Three common compartments:
- Classifier name
- Attributes
- Operations Comment Class1Implement + operation() Class2Implement + operation() Software Interface Implementation Interaction Diagram doSomething() instance1 : Class1 instance5 : Class2 instance8 : Class doSomethingElse() doSomethingYetElse() Inheritance relationship: BaseInterface is implemented by two classes Stereotype «» provides additional info/ annotation/ explanation 17
UML = Unified Modeling Language
Online information:
http://www.uml.org
Understanding the Problem
Domain
System to be developed
Actors
– Agents external to the system that interact with it
Concepts/ Objects
– Agents working inside the system to make it function
Use Cases
– Scenarios for using the system
19
ATM: Gallery of Players
Actors (Easy to identify because they are visible!)
Bank’s remote datacenter System (ATM machine) Bank customer (^1 ) 7 48563 0 9 (^1 ) 7 48563 0 9 Bank’s remote datacenter System (ATM machine) Bank customer 20