Professional Documents
Culture Documents
An Introduction to Software
Engineering
Figure 4.1
the software life cycle
Figure 4.2
Evolutionary development
©Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 1 Slide 29
1.1.6 Component-based software
Figure 4.3
component-based software engineering
CBSE : Component-based software engineering
0 25 50 75 1 00
0 25 50 75 1 00
Figure 1.2 Develo pment an d evo lution costs for lon g-lifetime syst ems
0 10 20 0 30 400
software engineering
activity cost distribution
Sy stem develo pment Sy stem ev olutio n
0 25 50 75 100
Figure 1.3
Pc software product development costs
Rules Constraints which always apply to system Every entity in the system
models. model must have a
unique name.
Recommendatio Experience advice on good design No object should have
ns (design) practice. Followed these recommendation more than seven sub-
should lead to a well-organized system objects associated with
model. it.
Process Descriptions of the activities in the system Object attributes should
guidance model and organization of these activities. be documented before
defining the operations
associated with an object.
©Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 1 Slide 42
1.1.8 Conclusion
Upper-CASE
• Tools to support the early process activities of
requirements and design;
Lower-CASE
• Tools to support later activities such as programming,
debugging and testing.
1. Maintainability
• Software should be written in such a way that it may develop to meet
the changing needs of customers.
• This is a critical attribute because software change is an inevitable
(unavoidable) consequence of a changing business environment.
2. Dependability (reliable)
• Software dependability has a range of characteristics, including
reliability, security (avoid hacker) and safety.
• Dependable software should not cause physical or economic
damage in the event of system failure.
3. Efficiency
• Software should not make wasteful use of system
resources such as memory and processor cycles.
• Efficiency therefore includes responsiveness, processing
time, memory utilization (useful) rate, budget control, etc.
4. Usability (Acceptability)
• Software must be usable and accepted by the users for
which it was designed. This means it must be
understandable (adequate documentation), usable and
compatible with other systems (appropriate user interface).
3. Trust
• As software is beside us with all aspects of our lives:
• It is essential that we can trust that software.
• This is especially true for remote software systems
accessed through a web page or web service interface.
• The trust challenge is to develop techniques that
demonstrate that software can be trusted by its users.
Confidentiality
• Engineers should normally respect the confidentiality
of their employers or clients, doesn’t matter whether
or not a formal confidentiality agreement has been
signed.
Competence (ability)
• Engineers should not misrepresent their level of
competence. They should not accept work which is
outside their competence. (Mean’s sometime you
talk too big).
4. JUDGMENT
• Software engineers shall maintain integrity (honesty) and
independence in their professional judgment.
5. MANAGEMENT
• Software engineering managers and leaders shall support and
promote an ethical approach to the management of software
development and maintenance.
6. PROFESSION
• Software engineers shall promote the integrity and reputation
of the profession consistent (unchanging) with the public interest.
7. COLLEAGUES
• Software engineers shall be fair to and supportive of
their colleagues.
8. SELF
• Software engineers shall participate in lifelong
learning regarding the practice of their profession
and shall promote an ethical approach to the
practice of the profession.
Disadvantages of certification
Certification tends to lead to protectionism where certified
members tend not to protect others from criticism.
Certification does not guarantee competence merely that
a minimum standard was reached at the time of
certification.
Certification is expensive and will increase costs to
individuals and organisations.
Certification tends to failure change. This is a particular
problem in an area where technology developments are
very rapid.