SE Chapter5 Models Architecture Choosing
SE Chapter5 Models Architecture Choosing
CHAPTER 5.
ANALYSIS AND SELECTING
SOFTWARE DEVELOPMENT MODEL
AND ARCHITECTURE
Case study;
REFERRENCES
Fundamentals of Software Architecture: An
Engineering Approach, Mark Richards, Neal Ford,
2020.
Software Engineering (10th Edition), Ian
Sommerville, 2016.
1. Analysis and selecting software development model
Overview
There is no one-size-fits-all software development model;
Each model has its own advantages as well as disadvantages for different software projects
and development teams.
It can be selected by keeping the advantages and disadvantages of various models in mind.
The choice of software development model depends on the following basic factors:
(4) Size, skills, software engineering capabilities and suitability of the development
team for the software project?
(5) Which model is suitable for the technology chosen to implement the solution?
1. Analysis and selecting software development model
Criteria that should be set when analyzing and choosing a software
development model (cont’d):
(6) What are the customer and stakeholder concerns and priorities?
(9) Have the risks in the development process been identified, analyzed and proposed
solutions to prevent?
(10) What is the cost and time spent on the software project?
1. Analysis and selecting software development model
The factors contribute to choosing the Waterfall model
Short-term projects.
Clear, fixed, and well-documented requirements.
Static technology that is understood.
Stable product definition.
A variety of resources for product support.
Low Product Owner Involvement.
Strictly-set timeline.
Fixed budget that cannot be changed.
1. Analysis and selecting software development model
The factors contribute to choosing the V-Shaped model
The project team has a full understanding of the project and the technology.
1. Analysis and selecting software development model
The factors contribute to choosing the Iterative model
When the team learns new technology and works on the project simultaneously.
Specific resources are to be used only when they are required for specific iterations
according to the contract.
When the business goals might change in the future due to high-risk features.
1. Analysis and selecting software development model
The factors contribute to choosing the Spiral model
There’s a budget limit and you need to foresee risks.
You have a medium or high-risk project to carry out.
There is a long-term project, and changes might occur.
The requirements are vague to the customer and need more clarity due to
their complexity
The primary product has to be released in several stages to get valuable
customer feedback.
You expect major changes to the product during the SDLC.
1. Analysis and selecting software development model
The factors contribute to choosing the Prototype model
Major challenge
how to produce “agile” software architectures that
Procedure
(1) Select the architectural patterns in accordance
Each architectural style supports some quality features and has its advantages,
Choosing the right architectural style to satisfy required quality attributes is also very
Implementation attributes
Runtime attributes
observable at runtime
Business attributes
2. Analysis and selecting software architecture
Quality attributes classification
Implementation attributes
Interoperability;
Maintainability;
Extensibility:
Testability;
Portability;
Scalability;
Flexibility;
2. Analysis and selecting software architecture
Quality attributes classification
Runtime attributes
Availability;
Security;
Performance;
Usability;
Bussiness attributes
Time to market;
Cost;
Lifetime;
Quality attributes trade-off
Such reliability features come at the cost of time efficiency, compared with the simpler and faster C
consistency of all servers (e.g., to make sure that each server has the same logically consistent data),