Sei sulla pagina 1di 60

• IEEE defines Software Engineering as

– application of systematic, disciplined,


quantifiable approach to the development,
operation and maintenance of software i.e.
application of engineering to software and
– the study of approaches as in.
• Establishment and use of sound engineering
principles in order to obtain reliable and
efficient software economically.
Soewar Engin ring ≠ Soewar
Programming
• Software programming
– Single developer
– “Toy” applications
– Short lifespan
– Single or few stakeholders
• Architect = Developer = Manager = Tester = Customer = User
– One-of-a-kind systems
– Built from scratch
– Minimal maintenance
Soewar Engin ring ≠ Soewar
Programming
• Software engineering
– Teams of developers with multiple roles
– Complex systems
– Indefinite lifespan
– Numerous stakeholders
• Archit ct ≠ D v lop r ≠ Manag r ≠ T st r ≠ Custom r ≠ Us r
– System families
– Reuse to amortize costs
– Maintenance accounts for 60%-80% of overall
development costs
Software Qualities
• Critical Quality Attributes • Other Attributes
– Correctness – Completeness
– Maintainability – Compatibility
– Portability
– Dependability
– Internationalization
– Usability
– Understandability
– Reliability
– Scalability
– Robustness
– Testability
– Reusability
– Customizability
– Efficiency
What is the difference between software
engineering and computer science?

Computer Science Software Engineering


is concerned with
Ø theory Ø the practicalities of developing
Ø fundamentals Ø delivering useful software

Computer science theories are currently insufficient to


act as a complete underpinning for software
engineering, BUT it is a foundation for practical aspects
of software engineering
Process Framework
Software Process Process Framework
Process framework
Umbrella Activities

Umbrella Activities
Framework activities
Framework activity 1
work tasks
work products
milestones & deliverables
QA checkpoints
Framework activity n
The V-Model

22
The Incremental Model

increment # n
Co m m u n i c a t i o n
Pla nni ng

M ode ling
analysis Co n s t ru c t i o n
design
code De p l o y m e n t
t est de l i v e ry
fe e dba c k

delivery of
increment # 2 nt h increment

Co m m u n i c a t i o n
Pl a n n i ng

Modeling
analysis Co n s t ru c t i o n
design code De p l o y m e n t
t est d e l i v e ry
feedback
delivery of
increment # 1 2nd increment

Co m m u n i c a t i o n
Pl a n n i n g
Modeling
analysis Co n s t ru c t i o n
design code De p l o y m e n t
t est d e l i v e ry delivery of
feedback
1st increment

project calendar time


24
Evolutionary Models: Prototyping

Q u i Quick
ck p l a n
plan
Co m m u n icat io n
communication

MoModeling
d e lin g
Q u i ck
Quick d e si g n
design

Deploym ent
Deployment
Ddelivery
e live r y&
&feedback
Fe e d b ack Co n st r u ct io n
Construction
Construction
o fof prototype
of prototype
p r o t o t yp e

30
Evolutionary Models: Concurrent
none

M o d e lin g a c t iv it y

r ep r es ent s t he s t at e
Under o f a s o f t w ar e eng ineer ing
ac t iv it y o r t as k
d e v e lo p m e n t

A w a it in g
c hanges

U n d e r r e v ie w

Under
r e v is io n

B a s e lin e d

Done

31
Still Other Process Models
• Component based development—the process to
apply when reuse is a development objective
• Formal methods—emphasizes the mathematical
specification of requirements
• AOSD—provides a process and methodological
approach for defining, specifying, designing, and
constructing aspects
• Unified Process—a “use-case driven, architecture-
centric, iterative and incremental” software
process closely aligned with the Unified Modeling
Language (UML)

40

Potrebbero piacerti anche