Professional Documents
Culture Documents
University of Buea
Faculty of Engineering and Technology
Department of Computer Engineering
CEF 331
Course objectives
The main objective of this course is to provide an ability to analyze, design and
build complex software systems in the context of frequent change and to
produce a high quality software system within time.
Course objectives
Therefore, at the end of this course, you should be able to understand:
Course outline
Chapter 1: Modeling, lifecycle and methods
Chapter 2: Object technology
Chapter 3: Unified Modeling Language (UML) and its diagrams
Chapter 4: Use case diagram
Chapter 5: Class diagram
Chapter 6: Sequence diagram
Chapter 7: projects
Course outline
Chapter 1: Modeling, lifecycle and methods
Chapter 2: Object technology
Chapter 3: Unified Modeling Language (UML) and its diagrams
Chapter 4: Use case diagram
Chapter 5: Class diagram
Chapter 6: Sequence diagram
Chapter 7: projects
Course outline
Chapter 1: Modeling, lifecycle and methods
•Quality criteria for a good software
•Software Development Life Cycle models and methodologies
•System modeling
•What is a model?
•Why do we model?
•Software modeling methods
•Why object-oriented modeling method?
OOM AND UML FACULTY OF ENGINEERING AND TECHNOLOGY 6
• Waterfall Model
•V-Shaped SDLC Model
•Structured Evolutionary Prototyping Model
•Incremental SDLC Model
•Spiral SDLC Model
•Agile Model
• Waterfall Model
•V-Shaped SDLC Model
•Structured Evolutionary Prototyping Model
•Incremental SDLC Model
•Spiral SDLC Model
•Agile Model
Waterfall Model
•The waterfall model is a linear sequential flow.
•Progress is seen as flowing steadily downwards (like a
waterfall) through the phases of software
implementation.
•It is the earliest approach and most widely known that
was used for software development.
•Any phase in the development process begins only if
the previous phase is complete.
•The waterfall approach does not define the process to
go back to the previous phase to handle changes in
requirement.
OOM AND UML FACULTY OF ENGINEERING AND
TECHNOLOGY
12
Waterfall Strengths
•Easy to understand, easy to use
•Provides structure to inexperienced staff
•Milestones are well understood
•Sets requirements stability
•Good for management control (plan, staff, track)
•Works well when quality is more important than cost or schedule
Waterfall Deficiencies
•All requirements must be known upfront
•Deliverables created for each phase are considered frozen – inhibits flexibility
•Can give a false impression of progress
•Does not reflect problem-solving nature of software development – iterations of
phases
•Integration is one big bang at the end
•Little opportunity for customer to preview the system (until it may be too late)
• Waterfall Model
•V-Shaped SDLC Model
•Structured Evolutionary Prototyping Model
•Incremental SDLC Model
•Spiral SDLC Model
•Agile Model
V-Shaped Strengths
•Emphasize planning for verification and validation of the product in early stages
of product development
•Each phase has specific deliverables which must be testable
•Project management can track progress by milestones
•Simple and easy to use
•Higher chance of success over the waterfall model due to the development of
test plans early on during the life cycle.
V-Shaped Weaknesses
•Very inflexible, like the waterfall model.
•Does not easily handle concurrent events
•Does not handle iterations or phases
•Does not easily handle dynamic changes in requirements
•Does not contain risk analysis activities
•Adjusting scope is difficult and expensive.
•Costly and require more time, in addition to a detailed plan
•Excellent choice for systems requiring high reliability – hospital patient control
applications
•All the Software requirements are clearly defined and known up-front
•When it can be modified to handle changing requirements beyond analysis
phase
•Software development technologies, solutions, and tools are well-known
• Waterfall Model
•V-Shaped SDLC Model
•Structured Evolutionary Prototyping Model
•Incremental SDLC Model
•Spiral SDLC Model
•Agile Model
When to use
Structured Evolutionary Prototyping
•Requirements are unstable or have to be clarified
•As the requirements clarification stage of a waterfall model
•Develop user interfaces
•Short-lived demonstrations
•New, original development
•With the analysis and design portions of object-oriented
development.
• Waterfall Model
•V-Shaped SDLC Model
•Structured Evolutionary Prototyping Model
•Incremental SDLC Model
•Spiral SDLC Model
•Agile Model
• Waterfall Model
•V-Shaped SDLC Model
•Structured Evolutionary Prototyping Model
•Incremental SDLC Model
•Spiral SDLC Model
•Agile Model
• Waterfall Model
•V-Shaped SDLC Model
•Structured Evolutionary Prototyping Model
•Incremental SDLC Model
•Spiral SDLC Model
•Agile Model
Agile SDLC’s
•It can be used with any type of the project, but it needs more engagement from
the customer and to be interactive.
•when the customer needs to have some functional requirement ready in less
than three weeks and the requirements are not clear enough.
Summary
•SDLC is a series of phases that provide a common understanding of the software
building process.
•The quality of the development process guarantees the quality of the software.
• To get quality software, one have to:
✓ Master the software process development.
✓Control the succession of SDLC different stages and
✓Choose the suitable software development process depending on his
needs (project context, business requirement, etc.)
Software modeling
What is a Model?
•A model is a simplification of reality.
•It is used for communication among
stakeholders.
•A model may provide
✓blueprints of a system
✓Organization of the system
✓Dynamic of the system
Importance of Modeling?
Models help us
• to visualize a system as it is or as we want it to be.
• to specify the structure or behavior of a system.
• in providing a template that guides us in constructing a system.
• in providing documenting the decisions we have made.
Principles of Modeling?
• The choice of what models to create has a major influence on how a problem is
approached and how a solution is shaped.
• Every model may be expressed at different levels of precision.
•The best models are connected to reality.
•No single model is sufficient. Every nontrivial system is best approached through
a small set of nearly independent models.
•Object oriented
✓Objects or classes