software design
TYPES OF SOFTWARE DEVELOPMENT
‣ desktop application development
‣ embedded systems development
‣ security software development
‣ back end development
‣ front end development
‣ AI & machine learning
‣ mobile development
‣ API development
‣ data science
‣ cloud computing
‣ web development
RAPID SOFTWARE DEVELOPMENT
‣ rapid development and delivery is now often the most important requirement for
software systems
‣ software has to evolve quickly to reflect changing business needs
‣ in rapid software development specification, design and implementation are inter-
leaved
‣ user interfaces are often developed using an IDE and graphical toolset
SOFTWARE APPROACHES
‣ agile and plan driven approaches are the most commonly used software
development methodologies
‣ in practice, most practical processes include elements of both plan driven and
agile approaches
‣ there are no right or wrong software processes, and the choice of an appropriate
process always depends on the project itself and the development team
characteristics
software design 1
, ‣ in plan driven approaches all of the software process activities are planned in
advance and progress is measured against this plan
‣ in agile approaches, planning is incremental and it is easier to change the process
to reflect changing customer requirements
‣ software process is a structured set of activities required to develop a software
system
‣ the plan may be contracted using a software process model - an abstract
representation of a process, that presents a description of a process from some
particular perspective
evaluation of SDLC:
plan driven development approach
waterfall:
features
‣ project is divided into sequential phases
‣ extensive written documents
‣ formal reviews and approval are required at the end of each phase
‣ requirements must be very clear
strengths
software design 2
, ‣ simple to be understood and applied
‣ ideal for supporting less experienced teams
‣ the orderly sequence of development steps helps ensure the quality,
reliability, and maintainability of the developed software
‣ progress is measurable
weaknesses
‣ inflexible, slow and costly due to significant structure and tight control
‣ depends upon early identification and specification of requirements
‣ late problem discovery, as it delays testing until after the finalization of the
project
‣ difficult to respond to changes
‣ produce excessive documentation and keeping it updated is time
consuming
‣ working models aren’t available until the latter stages of a project
v-shaped:
features
‣ expands the waterfall model
‣ based on the association of a testing phase for each corresponding
development stage, development of each step directly associated with the
testing phase
‣ focuses on the validation of the software system
‣ ensures adequate quality measurements and testing
software design 3
TYPES OF SOFTWARE DEVELOPMENT
‣ desktop application development
‣ embedded systems development
‣ security software development
‣ back end development
‣ front end development
‣ AI & machine learning
‣ mobile development
‣ API development
‣ data science
‣ cloud computing
‣ web development
RAPID SOFTWARE DEVELOPMENT
‣ rapid development and delivery is now often the most important requirement for
software systems
‣ software has to evolve quickly to reflect changing business needs
‣ in rapid software development specification, design and implementation are inter-
leaved
‣ user interfaces are often developed using an IDE and graphical toolset
SOFTWARE APPROACHES
‣ agile and plan driven approaches are the most commonly used software
development methodologies
‣ in practice, most practical processes include elements of both plan driven and
agile approaches
‣ there are no right or wrong software processes, and the choice of an appropriate
process always depends on the project itself and the development team
characteristics
software design 1
, ‣ in plan driven approaches all of the software process activities are planned in
advance and progress is measured against this plan
‣ in agile approaches, planning is incremental and it is easier to change the process
to reflect changing customer requirements
‣ software process is a structured set of activities required to develop a software
system
‣ the plan may be contracted using a software process model - an abstract
representation of a process, that presents a description of a process from some
particular perspective
evaluation of SDLC:
plan driven development approach
waterfall:
features
‣ project is divided into sequential phases
‣ extensive written documents
‣ formal reviews and approval are required at the end of each phase
‣ requirements must be very clear
strengths
software design 2
, ‣ simple to be understood and applied
‣ ideal for supporting less experienced teams
‣ the orderly sequence of development steps helps ensure the quality,
reliability, and maintainability of the developed software
‣ progress is measurable
weaknesses
‣ inflexible, slow and costly due to significant structure and tight control
‣ depends upon early identification and specification of requirements
‣ late problem discovery, as it delays testing until after the finalization of the
project
‣ difficult to respond to changes
‣ produce excessive documentation and keeping it updated is time
consuming
‣ working models aren’t available until the latter stages of a project
v-shaped:
features
‣ expands the waterfall model
‣ based on the association of a testing phase for each corresponding
development stage, development of each step directly associated with the
testing phase
‣ focuses on the validation of the software system
‣ ensures adequate quality measurements and testing
software design 3