Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Lecture content:
I Introduction to software engineering
I Software development with UML
I Advanced software engineering
I Software testing
I Software processes
I Software management
I Contact:
I mail: robert.dyja@icis.pcz.pl
I webpage: http://icis.pcz.pl/˜dyja
I Attending lectures — recommended
I Attending laboratories — required
Wear
Wear
Change
Actual curve
Idealized curve
Time
Time
I System software
I Real-time software
I Business software
I Engineering and scientific software
I Embedded software
I Personal computer software
I Web-based software
Practitioner’s myths
I Once we write the program and get it to work, our job is done
I Until I get the program ”running” I have no way of assessing
its quality
I The only deliverable work product for a successful project is
the working program
I Software engineering will make programmers create
voluminous and unnecessary documentation and will invariably
slow them down
Requirements
Definition
Design
Implementation
Testing
Maintenance
Disadvantages:
I High cost of mistakes made in early phases
I Long time between client contact
I Enforces software developers strict order of phases
Phases:
I defining the overall objectives for the software
I ”quick design” and construction of prototype
I evaluation by the customer/user
I identification of software requirements
I the actual software is engineered with use of the waterfall
model
Advantages:
I better understanding of consumer needs
I possibility of demonstration working system early
I possibility of future users training before full version is finished
Disadvantages:
I additional cost of prototype preparation
I necessity of waiting for a full version after the prototype is
accepted
I partial implementation
I high-level languages
I reusable components
I quick-and-dirty programming
I user interface generators
I exploratory programming
Basic System
requirements implementation
definition
System Disadvantages:
testing
I It is impossible to hold a
sound system structure
System
Yes No
I Testing is only possible by
Does it work?
delivery
client
Requirements
specification
Iterative
Outline
process
description
Choosing features
of nth version
Design, implementation
and testing of nth version
Delivery of
nth version
Advantages:
I Short time between contacts with client
I Client can use finished fragments of system before full system
is finished
I It is easy to react when delays occurs
Disadvantages:
I Additional cost when it is not possible to isolate set of
independent requirements
It is based on:
I libraries
I fourth generation languages
I standalone applications
Disadvantages:
I additional cost of preparation reusable components
I risk of high dependence on component supplier
I shortcomings of tools
Planning Risk
assessment
Validation Developing
I Challenge of legacy
I Maintenance and modification of large, running systems with
important business functions
I Challenge of diversity
I Software runs on very diverse systems; from large scale
distributed systems to hand-held computers
I Challenge of delivery
I Requirement of delivery working software in deadline without
loose of quality
I Confidentiality
I You should normally respect the confidentiality of your
employers or clients irrespective of whether or not a formal
confidentiality agreement has been signed.
I Competence
I You should not misrepresent your level of competence. You
should not knowingly accept work that is outside your
competence.