Please enable JavaScript.
Coggle requires JavaScript to display documents.
programming & development approaches - Coggle Diagram
programming & development approaches
software engineering
application of a systematic, disciplined, quantifiable approach to the development, operation and maintenance of software
Build or buy
bespoke
tailor made solution designed and developed to meet a set of agreed reqs
ready made
COTS - commercial off the shelf
Adv
cost
cheaper than bespoke
KIV licence renewal fees
time
quality
doc & training
Maintenance & enhancement
try before you buy
Disadv
not 100% fit to reqs
ownership
financial stability of the vendor
lack of competitive asv
ltd legal redress
changing reqs
ready made software, purchased, leased or licensed
no direct influence on features or qualities
open source software
ready made solution - gain access to the source code to enable in house or 3rd party tailoring to precise needs
zero cost but still subject to license agreement
developed and maintained in the public domain
need resources for ongoing support/maintenance
sometimes supported through public collaboration
quality can be risk
minimise costs and delivery time
Considered in line with organisational approach
software component
something that can be deployed as a black box.
it has external spec which is independent of its internal mechanisms
has na inside and an outside
can exist independently or assembled together to build new
solutions
development processes
defined
based on defined process control & management model
manufacturing mainly
product = software
each piece of work understood, good inputs = good outputs, every time
operate predictably & repeatably
eg batch processing / online tranasction processing / web development
product always the same
empirical
agile based
exploratory
collaborative
focus on working software
flexible
Rapid Application Development (RAD)
iterative development & prototyping
paradigms
3 most prevalent
Structured programming (SP)
aim = improve clarity & quality of a computer program, whilst reducing development time
3 basic programming constructs
sequence - block structures & subroutines
selection - conditional execution of statements using keywords such as
if..then..else
iteration - repetition of a group of statements using key words
while, repeat, for
variation = Jackson Structure Programming (JSP) - adopted for COBOL programs
Object-oriented development (OOD)
object (discrete package of functions/operations relating to a real-world concept or entity
classified by classes - define attributes & operations
encapsulation - messages from objects to other objects to invoke operations
correlation to component based development
Service-oriented development (SOD)
technology agnostic
required services match with available services
cloud
a model for enabling convenient, on demand network access to a shared pool of configurable computing resources that can be rapidly provisioned and released with minimal management effort or service provider interaction
Software as a service (SaaS)
provision of apps in the cloud
vendors = App service providers (ASPs) - host and manage the apps, customer access =remote via web
solution scalable
lower licensing costs
low maintenance costs
Platform as a service (PaaS)
provision of services that enable the customer to deploy applications in the cloud using tools provided by the supplier
infrastructure as a service (IaaS)
provision of computing power, storage and network capacity that enable the customer to run software (inc OS & apps) in the cloud
flexibility - accessed anywhere
multitude of IT services as not limited to locally installed software
not dependent on storage capacity of local computer network
offers scalable IT resource without complexity of IT infrastructure and app upgrades from traditional apps
on demand software = subset of SOD - software licensed as a service on demand - pay for usage
model driven architecture (MDA)
executable software from a set of design models without human intervention
built around UML
reduced cost
increased speed of development
model & physical systems stay synchronised
software produced by specialist software tool through automated transformations