Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
SDD HSC Social & Ethical Issues Mindmaps and Summary Sheets
1. SDD HSC Social & Ethical Issues Page 1 of 43
HSC
Software Design
and Development
Mindmaps
and
Summary Sheets
2. SDD HSC Social & Ethical Issues Page 2 of 43
E nti ced to u p gra de a pp l i ca ti on Resp on se to Pro bl e m s
Cro ssgra d e b y co mp e ti n g p ro du cts Q ua l i ty Id en ti fy the d eve lo p me n t p ro bl e m
In cre ase co m pu ter p owe r, sto ra g e & re li a b il i ty Und e rsta nd the d eve l op me n t p ro bl e m Cod e o f Co n du ct
o utp u t d e vi ces e ase of u se Desi g n & Te st a sol u tio n A ckn owl e dg e a l l co n tri b u to rs
con si ste n cy o f u ser Imp l e me nt th e sol u ti on Cle a ran ce to use co p yri g hte d m od u l es
i n te rface o f co de
Imp ro ve cu rren t ap p i ca ti on
d ocu me n ta ti on P ri va cy, secu ri ty of d ata secrets
In tro d uce n e w i n no vati o n sftwa re
a dh e re to sftwre sta n da rd s Use o f a p pro pri a te p rom pts
M ai n ten a nce , su pp o rt o f exi sti n g
p rod u ct
P re ve nti o n o f sp rea d of viru ses
G ov't, B u si n e ss, Ind i vid u al s S ca n re m ova bl e me di a be fo re u se Rel i a bi l i ty
Dri ve n b y m o re sop h i sti cate d Care ful vetti n g o f e m ai l P erfo rm wi th ou t fai l u e
h ard wa re & p eri p he ral s Not mi xi n g h om e /wo rk a pp l i cati o ns T ho rou g hl y che ck i n pu t da ta
M ai n tai n i ng ma rke t p osi tio n L ate st vi rus d efi n iti o n s K ee p to we l l de fi ne d & stan d p ro ce ss fo r
E ffe ct o n ma rke tpl a ce sftwre d e vl o p me nt
Rig h ts
Resp on si bi l i tes
S oftware o f De ve l o pe r
M arket
Nati o na l / In tern ati o n al L eg a l A cti o n
In te l l ectu al P ro p erty Y ea r 20 0 0 p rob l em
P la g i ari sm Com pu te r vi ruse s
S ha rewa re S oci a l & E xa m pl e s Rel i a nce on so ftwa re -> mi crowa ve
P ub l i c Dom a in P ira cy & E th i cal
O wn e rsh i p vs L i cen si ng Cop yrig h t Issu e s
Cop yrig h t L a ws
Reve rse En g i ne e ri n g
Deco mp i l ati o n Reu se o f exi sti n g m o du l es i n
L i ce n se Co n di ti o ns 4 th G en e ra ti on L an g ua g es
Network u se In fo rma ti on g ath eri n g to ol
P ro j e ct scop e i s con stra i n ed
P ira cy & co p yri g ht l a ws E vo l ves i nto ful l y wo rki n g
A uto ma ted too l s use d
Cop yrig h t l a ws & li ce nse ag ree m en ts p rog ram
Defi n e th e p rob l em Con stra i n ts: Data Fl o w
P la n th e so l u ti o n Fi na n ci a l Dia g ram
B ui l d th e so l uti o n O pe rati o na l IPO Ch a rt
Che ck th e so l uti o n T ech ni ca l A lg o rith ms
M od i fy th e so lu ti on S ch e du l i ng S yste m Flo w
Development & S tru cture d A pp ro ach
P ro to typ i ng
Dire ct co nve rsi o n
P ara l le l con versi on
Rap i d A p pl i cati o n d e ve l op m en t P ha sed con versi on
Implementation of E nd -use r de vel o pm e nt
Com bi n a ti o n o f Ap p roa che s
P il o t Co n ve rsio n
Software Solutions M eth od s of •Ou tsou rcin g
A pp roa ch es: Imp l e me nta ti on Form al to A d -h o c
G ea red to su pp o rt sp eci fi c Com me ri ca l System s
P op u la r Ap p roa che s:
a cti vi ti e s of the S yste m Dev. A cce ssi b l e to l a rge n um b er o f e mp l o ye e s
S oftware T re n ds i n S o ftwa re
Cycl e e g : S ma l l e n d u sers: off the she l f
CAS E T o ol s Deve l op me n t Deve l op me n t
T ext ed i ti ng , te st-d a ta g e ne rati o n, P op u la r l an g ua g es
d ocu me n t p rep a rati o n, fl ow ch a rt. A pp roa ch es
E mp l oym en t Tre nd s
V ersi on i n g: v1.0 v1 .1 v1 .3 v2 .0 Networke d so ftwa re
Data di cti on a ry O ff th e sh el f Pa cka g e s
3. SDD HSC Social & Ethical Issues Page 3 of 43
Concept: Social & Ethical Issues: Concept: Social & Ethical Issues: Concept: Social & Ethical Issues:
Rights responsibilities of software developers Responsibilities continued: Responsibilities continued:
code of conduct / practice: quality: measured by a number of criteria: prevention of virus spread:
§ acknowledge all contributors § reliability § scan removable media before use
§ clearance to use copyrighted modules of code § ease of use: comfort of the user § careful vetting of email
§ one should not discuss employer’s or clients § consistency of user interface: placement of similar § not mixing development on home & work
requirements or specifications without consent items in the same place machines
§ one should maintain the privacy of individuals § documentation: process & product are of high § use latest virus definitions
§ one should use non-threatening prompts or quality
message boxes. § sticking to software standards Some issues for developers:
§ portability
reliability: the ability to perform without failure. response to problems: overcome problems in an order- § backward compatibility
§ thoroughly check input data ly fashion. § modularity
§ keep to well defined & standard processes for § identify the problem § security
software development § understand the development problem § cost constraints
§ design & test a solution to the develop. problem § operational reliability with other common software
§ implement the solution
Issue: Rights of software developers: Responsibilities of software developers: Concept: Social & Ethical Issues:
Piracy & copyright:
Authorship Protection of their product against theft & Acknowledge authors & sources particularly in a devel- intellectual property: a personal ownership of the
modification opment team creative ideas that develop from someone’s mind.
Reliability Protection against operating system, Check that the product works with the hardware & OS
hardware, & program problems which that they specify. Ensure there are no run time errors plagiarism: the theft of ideas & expressions of another
may make their product unusable. when installed & run as directed. person. Often code is collected for a range of other
Quality Codes to ensure others develop programs Use thorough testing procedures & error checking code sources.
that follow the same high standard Meet the user’s expectations as much as possible
Response Not to be harassed with trivial problems Provided troubleshooting manuals, online help. Provide shareware; software that is distributed for trial use
to prob- that could have been solved by the user customer support. Quick response to major or critical before purchase.
lems reading the documentation. problems. Make bug fixes freely available to users.
Code of All developers follow the same ethical Follow the standards set by members of the profes- public domain: freeware which can be copied &
conduct standards. sional association to which they belong. distributed freely. No payment is due. Still covered
Viruses Protection of the developer’s products by Ensure they do not distribute viruses with their by copyright.
users through the use of good current products or as part of their customer contact such as
antivirus products through emails. ownership vs. licensing: payment means the purchaser
has the right to use the software but NOT the owner-
ship of the software
4. SDD HSC Social & Ethical Issues Page 4 of 43
Concept: Social & Ethical Issues: Concept: Social & Ethical Issues: Concept: Social & Ethical Issues:
Piracy & copyright: continued: Software piracy & copyright laws Software Market:
reverse/backward engineering: the process of reading Warez commercial packages that have been illegally § gov’t, business & private individuals make up the
source code & translating it to an algorithm which then copied or pirated & made publicly available. Pirateers software market.
can be modified & recoded elsewhere. have found a way to by-pass the copy-protection. § gov’t, businesses are more likely to need custom
§ distribution within Australia is illegal written software
decompilation: where object code is translated into § deprives the legitimate copyright owners of money § software market driven by more sophisticated
code that can be more easily studied by a programmer § some nations have refused to sign a universal hardware & peripherals. eg. as computers became
needing to understand the processes carried out. copyright law more powerful, word processing features advanced.
licence conditions: spells out exactly how the software relationship -> copyright laws & licence agreements: maintaining market position: aim is to make a profit.
may be used by the licence purchaser. It is a legally § licence is a contract § improve the current application
binding contract. § single-user licence § introducing new & innovative software applications
§ multi-user licence § maintenance & support is very important for sur-
network use: many programs are available for network § network licence vival of a software company
use. Licence indicates how many may use it or it may Business Software Association of Australia § active research & development program in major
be a site licence. § educate people software development companies.
§ centralized: single copy on central server § assist in software management § reputation as an ethical developer
§ distributed:individual copies on individual machines § help prosecute those in breach of licence agreemnt § bug-free software (or as close as possible)
Concept: Social & Ethical Issues: software market Concept: Social & Ethical Issues: software market
Effect on the market place Significant social & ethical issues:
Definition: software production is a multi-billion
dollar industry. National & international legal action resulting from
Summary Points: News Article: Y/N software development:
§ trumpet software vs OzEmail: OzEmail distributed
§ enticed to update their applications Winsock with their distribution disks but failed to ad-
§ crossgrade: change to a competing product eg. vise customers they had to register with Winsock. Bibliography:
go from Word to WordPerfect word processor Some documentation was omitted or chaned. OzEmail Main: Folwer’s HSC SDD text
§ more complex software needs more computer was ruled against. Supplementary: Wilson’s HSC SDD text
power. § Microsoft operating system & Internet Explorer
§ Sega vs Accolade: Accolade was within its right
to reverse engineer as it had not stolen Sega’s
creative works & only needed the secret codes for
Accolades games to work on Sega machines.
Example: eg. gaming, video editing, digital editing
More hard disk storage, RAM & processing speed Public issue:
§ Y2k millennium bug
§ computer viruses
5. SDD HSC Software Development Approaches Page 5 of 43
Concept: Software Development Approaches: Concept: Software Development Approaches: Concept: Software Development Approaches:
Approaches: commercial systems: structured approach continued structured approach continued:
structured approach: follows the software develop. § it takes little to fix a mistake at this stage but be-
cycle. It looks at the whole problem & divides it into comes more expensive in the latter stages building the solution: the programming, coding &
steps that can be systematically followed to arrive at a § feasibility of a software solution (constraints) testing phase. Everyone is involved.
solution. § top-down approach / step-wise refinement
§ it is time consuming but appropriate for complex planning the solution: involves a further, more in § peer checking, desk checking
problems. depth understanding of the needs of the users & § runtime testing
§ often a team is involved: system analyst, program- a choice of a method(s) to solve the problem.
mers, graphic designers, managers, trainers, users § planning the data & program structures checking the solution: a continuous part of the SDC
§ designing algorithms (system development cycle).
structured approach: § planning the user interface § acceptance testing: measured against the original
define the problem-> plan the solution-> build the § scheduling the project – Gantt chart specifications
solution-> check the solution-> modify the solution § choosing a programming language § real data used
§ dataflow diagrams, IPO charts used as tools § alpha / beta testing
define the problem: thoroughly understand & define § mostly involves the design & checking of § screen design, intuitive
the problem itself. algorithm & interfaces § staff training
§ interviews, collect data, observation, documents, § error handling within the program
questionnaire, surveys
§ specific requirements drawn up
Concept: Software Development Approaches: Concept: Software Development Approaches: Concept: Software Development Approaches:
structured approach: continued: structured approach: Advantages structured approach is used when:
modifying the solution: modifying the solution from § easier to write because it is broken into chunks § project is large scale, complex & is best solved
checking the solution. Further testing takes place on § easier to understand because of the use of using modularisation
the modifications. Program is either accepted or modi modules; can be easily tracked & connections seen § development budget is large
fied further. § easy to test & debug each module separately § time available is considerable
§ significant changes at this stage can be quite § easy to modify because only some modules need § a easy program to debug, write, understand &
expensive to be changed. modify is required.
§ should only be carried out if small or crucial § a project development team is involved.
§ in extreme cases, the analyst could recommend
the SDC start all over again.
6. SDD HSC Software Development Approaches Page 6 of 43
Concept: Software Development Approaches: Concept: Software Development Approaches: Concept: Software Development Approaches:
Prototyping Rapid Applications Development End-user development
Definition: involves building a working model that is Definition: any method of software design that uses Definition: where the user adapts existing software
evaluated by users. It generally has screens but little tools to quickly generate a program for a user. tools to suit their needs or to obtain a solution to a
processing. problem.
Summary Points: News Article: Y/N Summary Points: News Article: Y/N Summary Points: News Article: Y/N
§ it can become the actual solution § uses existing modules to create a solution § a larger number of programs allow the users to
§ can be used as an information gathering tool existing modules need little or no testing create their own solution
that can be used in another program § may reuse code § very informal, little documentation
§ useful where a lot of computer interaction is § may use CASE tools & templates § buttons & macros can be used to a limited degree
required eg. multimedia, internet § requirements of project are well understood § disadv. end users within the same organization
§ user gives feedback via a prototype § scope is well constrained, focused. often duplicate processes unknowingly.
§ reduced documentation & faster development § includes adding modifications to existing software
compared to structured approach. Use end user development when:
Use prototyping when: Use prototyping when: § development involves the user
§ development is small scale & small budget § very small team, low budget & minimal time § it involves existing software solutions
§ a smaller team needed § small scale projects § it involves very little cost or time
§ less time available § a small range of coding languages § it involves small problems
§ help develop another program
Concept: Software Development Approaches: Concept: Software Development Approaches: Concept: Software Development Approaches:
Combination of approaches Methods of implementation Methods of implementation Adv. & Disadv.
parallel: the old & the new program work together for parallel adv: 2 programs can be compared. Fixing is
§ Using combinations of the 4 approaches can be a period of time. simpler because old one can be used in emergency
carried out. parallel disadv: user stress both systems operated.
§ eg. the problem could be split in two & the direct cut-over: the new program immediately replaces Confusion between programs. Dual costs - more
sections worked on separately using different the old program expensive. Large changes in procedures can cause
approaches. confusion.
phased: one or more tasks of the new program are direct adv: reduced implementation costs. Less pres-
§ The ultimate objective is always to produce a gradually implemented until the new program takes sure on users – only 1 program in place
properly documented solution to the problem. over all tasks of the old program. direct disadv: data transfer done quickly. No fallback.
User stress in training before new program in place.
pilot: one section of the organization uses the new phased adv: each task individually tested. Training is
program & all other sections continue with the old easier
program until a decision is made to put the new phased disadv:difficult to separate the old & new tasks
program into place across the whole system. longer time to bring online increases costs.
pilot adv: risk confined. Fixing problem is easier as old
program is still available.
pilot disadv: larger organizations (banks) required to
use this method. Multiple sites doing same task.
7. SDD HSC Software Development Approaches Page 7 of 43
Concept: Software Development Approaches: Concept: Software Development Approaches: Concept: Software Development Approaches:
Trends in software development: Trends in software development continued: Networked software
outsourcing: hiring an outside organization to handle popular languages: Definition: software written for use on centralised
all or part of software serverices. § structured environments: C++, Visual Basic, Java networks. Needs to interact with the network oper-
§ no expense of a full Information Tech. department § informal: spreadsheets, web page,macro recording ing system which handle the security & communi-
§ effective use of scarce technological assets databases, SQL cations tasks.
§ difficulty of breaking unsatisfactory contracts § 3rd generation: COBAL & Fortran still popular Summary Points: News Article: Y/N
§ may not understand the ethos of the organisation § they all have a formal set of rules called syntax § business moving toward personal computers that
§ may feel it lost its control of is system § all use constants, variables & operators are networked.
§ some are easier to use than others and some run § security is of particular importance especially with
popular approaches: ranges for ad-hoc to formal. faster than others. financial transactions & the Internet.
§ web-page editors have encouraged end users Network software:
§ customising off the shelf software Employment trends: § user interface and the system
§ software accessible to large number of employees § less likely to be permanent employment § application: meets the needs of the end user
§ greater distribution of code libraries § will tend to be contract work to the business or § database management: manipulation & manage-
§ increasing use of hypermedia software development company ment of data on the network
§ increased use of authoring languages § increasingly high educational requirements § network: the means by which communications
takes place
Concept: Software Development Approaches: Concept: Software Development Approaches:
Customised off-the-shelf packages CASE tools
Definition: software that is purchased off the shelf & Definition: computer assisted software engineering to
can be modified to fit a scenario in a business eg. help in the task of software development & mainten-
book keeping software. ance.
Summary Points: News Article: Y/N
Summary Points: News Article: Y/N § general software to aid the software development
§ able to create a software solution from an inte- can be considered as CASE tools eg. word processor, Bibliography:
grated package eg. spreadsheets, Database, graphics, spreadsheet, graphics software Main: Fowler’s HSC SDD text
word processing § data dictionaries Supplementary: Wilson’s HSC SDD text
§ customizable interface § specialist software does exist but we have seen no
§ customizable reports practical examples.
§ conversion of old data to the new system § management of software development includes
§ lends itself to prototyping approach or an end- versioning the changes eg. v1.0->v1.1->1.1.1->1.2->
user approach. 1.3->v2.0
§ documentation generation using CASE tool
Example: MYOB, Creating a relational database for § test data generators CASE tool
a specific task. eg. Dean’s Merit Awards
9. SDD HSC Defining & Understanding the Problem Page 9 of 43
O ve ral l Desi g n
S tru cture Ch arts
Data Fl o w Di ag ra ms
In cl u de s: mo du l e s & th e
IPO d ia g ram s
i n te ra cti o ns b etwee n m o du l es
L i ne a r storyb oa rd Id en ti fyi n g th e p rob l em
Hie ra rch i al storyb oa rd P ro b l em de fi ni ti on / fe a sib i l i ty stud y
Nee d s Data De si gn :
Network sto rybo a rd
O bj e cti ve s Id en ti fy d ata ob j ects
Hyb ri d storyb oa rd
Fea si bi l i ty Id en ti fy d ata typ es
S yste m fl owcha rt
Is i t worth S o l vi n g? Id en ti fy fi le stru cture
S cre e n d esi g n
Con stra i n ts Cro ss re fe re n ce
L i mi ted Pro totyp e
Deci sio n tre e B ud g eta ry co nsi d era tio n s
Deci sio n ta b l e O pe rati o na l co n sid e rati o ns S co p e:
S tru cture ch a rt T ech ni ca l co nsi d era tio n s How the softwa re fi ts in .
S ch e du l i ng Defi n es the b ou n da ri es
P ossi bl e Al te rn a tive s Form s o f in p ut/o utp u t
S oci a l & Eth i ca l co n si d e ra ti on s d ata
Defi n in g th e Pro bl e m
Descrip ti on o f p roce ssi n g
M od e ll i n g
S co p e o f th e pro j ect
Nee d to em p owe r th e u ser Desi g n S pe ci fi ca ti o n s Data de si gn
G ive s se n se of o wn e rsh i p S DC De fi ni n g & O ve ral l p ro g ram de si gn
A ckn owl e dg e u se r's p erspe cti ve Com mu n ica ti on Und e rsta nd i n g In te rface de si gn
A cce pti n g fe ed b ack th e P ro b l em P ro ce ss Desi gn
Cro ss-re fe re n ce with req u ire me n ts Imp l e me nt. / te stin g
d efi n i ti o n G en e ra l pro cesse s fo r
Imp l e me nta ti on & te sti n g te sti n g o utl i n ed .
Deve l op e r's Pe rspe ctive In sta l la ti on o nto si te is
Data typ e s care ful l y pl a nn e d
V ari a bl e s
A lg o rith ms P ro ce ss Desi gn :
Use r's p e rsp e cti ve E ach mo du l e d e scri b ed i n d eta i l
System Development Cycle: Descrip ti on o f th e In terfa ce
A lg o rith m th at d esri b es mo d ul e
Defining Understanding the
L oca l d a ta structure s
In te rface De sig n : A ny restri cti o ns / li m i ta ti on s
Hum an -ma ch in e in te rfa ce
Problem How the use r in te ra cts.
S pe ci fi ca ti o n s th at d escri be s
Cro ss Re fere nce :
E nsu res req u i re m en ts m et b y
th e i n te rface s b e twe en
software .
m od u le s, p ro gra m & extern a l
In di cate s wh i ch mo d ul e s m e et
d evi ces
p arti cul a r re q ui re me nts.
Dev.
Data typ e s: V ari a bl e s:
P ersp ecti ve :
Is a b l e to ca ter G lo b al , l oca l A lg o rith ms:
Con verts cl i e nt's
fo r stora g e A pp rop ri ate na m e o f B re a k d o wn p ro b l em
wish e s to a
V isu a li se d b y th e i tem i n to sma l le r pro b le m s.
p rog ram .
p rog ram me r & T op -town a p pro a ch
e xp re sse d a s a
m od e l o n p a pe r
Refl e ct th e d ata
i n th e p ro bl e m.
10. SDD HSC Defining & Understanding the Problem Page 10 of 43
Concept: Define Understand the Problem: Concept: Define Understand the Problem: Concept: Define Understand the Problem:
Defining the problem: Determining the feasibility of the solution Determining the feasibility of the solution continued:
Definition: Problem definition involves examining the Definition: determines whether a problem is worth Possible alternatives: looks at all the other options
needs of the users, objectives that the solution is to solving. Constraint is a limitation placed on something. available to solve the problem.
meet, the boundaries within which the solution has to financial feasibility: the ability to develop a program § could include leaving the system unchanged
work and whether it is feasible. within the money allocated for the project. § rough cost of each alternative
§ the additional income &/or projected savings need § adv. & disadv. of each alternative
Needs: needs of the user, needs of the system (data to be more than the cost of implementing the solution. § analyst makes a recommendation with justification
types, storage of facts, perform certain processes & operational feasibility: refers to the skills & resources social & ethical considerations: impact upon people be
the output need). needed to complete and maintain the program. it lifestyle or work practices.
Objectives: are aims which are measurable. eg. maxi- § eg. artificial intelligence may be worthwhile but § right to privacy: sensitive personal information
mum response time. the skills don’t exist yet. § code from other sources need to be dealt with
Boundaries: where outputs leave one system & pass § meets the needs of the organization. May refine as per copyright.
on to the next system. a worker’s role.
§ are limits, borders technical feasibility: the availability of hardware and
§ can be hardware/software requirements software for the product to meet the needs of the
program.
scheduling feasibility: refers to time requirements.
Is it worth solving? There is usually a firm completion date. eg Y2K
bug.
Concept: Define Understand the Problem: Concept: Define Understand the Problem: Concept: Define Understand the Problem:
Design Specifications: Overall program design: Interface design:
Definition: lays down the guidelines for development Definition: One steps back and takes a look at the Definition: the interface between the user & the
and give a yardstick to measure the success of the overall design of the program. Usually quite general. program.
project. Some aspects include: human-machine interface
§ structure charts: includes modules & the § give control of the program to the user
scope of the project: how the software fits in with the interactions between modules. § enable access to other parts of the program
whole system. § consistent screen design eg. navigation
§ forms of output / input § context / dataflow diagrams § simplicity: easy to learn and use
§ description of processing to convert input to output
§ any special processing needs § input processing output charts specifications: that describe the interfaces between
data design: identifies the data objects required & the modules, program and external devices. eg. printing
resulting data types. § system flow chart from a program
§ file structure & access covered here
cross reference: checking that data items are related
to their respective files / modules.
11. SDD HSC Defining & Understanding the Problem Page 11 of 43
Concept: Define Understand the Problem: Concept: Define Understand the Problem: Concept: Define Understand the Problem:
Process design: Implementation & testing: Developer’s perspective
Definition: a description of processing. Definition: implementation & testing needs to be Definition: white-box: is concerned with what hap-
planned out & specified before they are used. pens & how it happens. Input & output are equally
§ each module is described in detail. important.
§ a description of the interface. Includes machine- § general processes for testing outlined. data types:
human centered & machine-peripherals § installation onto the actual site needs to be § converts client’s wishes to a program
§ algorithm that describes each module carefully planned. § choose data types that cater for respective storage
§ identifies any local data structures within a module § visualised by the programmer & expressed as a
§ any restrictions / limitations on the module model on paper
§ data type has to reflect the data in the problem
variables: global or local variables may be used.
variable name should have meaning.
algorithm breaks a large problem into smaller pieces.
Uses the top-down approach or step-wise refinement.
Each module of algorithm should be given a meaning-
ful name.
Concept: Define Understand the Problem: Concept: Define Understand the Problem:
Modeling: Communication
Definition: a system can be represented in some way Definition: should interact with the user throughout
to show its structure. the process.
§ data flow diagarm
§ IPO chart Summary Points: News Article: Y/N
§ linear storyboard § it empowers the user
§ hierarchical storyboard
§ network storyboard: modules may be accessed § gives the user some sense of ownership Bibliography:
directly by other modules. Main: Fowler’s SDD HSC text
§ hybrid storyboard § acknowledges the user’s perspective Supplementary: Wilson’s SDD HSC text
§ system flow chart
§ screen design § demonstrates the ability to accept feedback.
§ limited prototype
§ decision tree
§ decision table
§ structure chart
Need to know how to construct DFD, system flow
chart, decision tree/table at least to some depth.
12. SDD HSC Defining & Understanding the Problem Page 12 of 43
Concept: Define Understand the Problem: Concept: Define Understand the Problem: Concept: Define Understand the Problem:
Concept: Define Understand the Problem: Concept: Define Understand the Problem: Concept: Define Understand the Problem:
13. SDD HSC Defining & Understanding the Problem Page 13 of 43
Concept: Define Understand the Problem: Concept: Define Understand the Problem: Concept: Define Understand the Problem:
Concept: Define Understand the Problem:
14. SDD HSC Planning & Design Page 14 of 43
Id en ti fi ca ti o n o f ap p rop ri ate mo du l e s
S tru cture d P rog ram m in g In de n ti fi cati o n i n pu ts, p roce sse s &
Fun ctio n al Deco mp o si ti o n o utp u ts
Use o f M ai n mo d ul e T he sco p e o f va ri ab l es l o ca l pre ferre d
Use o f su b m od u l es P assi ng o f p a ra m ete rs
Wri tte n sep a rate l y T ho rou g h te sti n g
T este d se pa rate l y Desk ch e cki n g u si ng tra ce ta bl e s
System Development Cycle: S ho u ld b e i n de p en d en t Fi el d te stin g
Re-u se o f m o du l es P ro to typ i ng
Planning & Design M ai n ten a nce o n so m e E xte rna l do cum e nta tio n
m od u le s on l y n e ed e d In te rn al d ocu me nta ti on
L i sti n g a ssu m pti o ns
Deco mp o si ti on , reu sab i l i ty
P ro b l em So l vi n g Fun ctio n li b rari e s
S tra teg y Cal l , re tu rn me ch an i sms
Desi g n Con cep ts Fun ctio n an a to m y
Reco rds
Fun ctio n na me s
Data ba se te rmi n ol o g y
S DC Pl a nn i n g Fun ctio n in p ut
O bj e ct O rie n ted term in o l og y
Reco rds & & De sig n of M od u le s & Fun ctio n ou tpu t
Usi n g re cord s
Col l e cti o ns software Fun ctio n s Fun ctio n pro ce ssi ng
Neste d re co rds
sol u ti on s L oca l va rab l es
Col l e cti o ns
B oo l ea n fu n cti o n s
Defi n in g th e sto rag e
A rra ys (B asi c)
Defi n in g th e fu n cti o n s
S tri n g P roce ssi n g
S orti ng & S e arch in g Nam i ng , cre a ti n g a rrays
Hol d s si n gl e da ta typ e
A rra ys o f fi xe d l e ng th
S tri n g co nce pts: In de xin g arra ys
S ea rchi n g a rrays:
S tri n g m an i p ul a tio n fun cti o n s a re T ra ve rsi n g a rra ys
L i ne a r se arch
store d i n li b rari e s S wa p pi n g e l em e nts
B in a ry se arch
Con cate n ati o n o f 2 stri n g s Fi nd i ng l arg e st val u e i n arra y
S orti ng a rra ys:
tri mS tri n g Fi nd i ng p osi tio n of l a rg e st va lu e in a rra y
B ub b le sort
com p are Stri n gs S im p le l i ne a r se arch
S el e cti o n so rt
to Lo we rCase , to Up p erCase
In se rtio n so rt
stri n g Co n ta i n s
S ee Pow er Point
P re s enta tion
15. SDD HSC Planning & Design Page 15 of 43
Concept: Planning & Design: structured Concept: Planning & Design: design concepts Concept: Planning & Design: design concepts
programming & functional decomposition identification of appropriate modules: identification of inputs, processes & outputs:
§ structured programming consists of a main module § read main module first to get overview of the Input:
which activates sub-modules. aka modular program- algorithm. Examine sub-modules to get more detailed § type of data?
ming (aka = also known as) information. § source of data?
§ functional decomposition: is the breaking down of § top-down: design main module first, then the sub § method of data input?
a complex problem down into functions. modules. also known as (aka) stepwise refinement § instructions to computer to handle data input?
§ a well written module can be used over & over Process data:
§ modules should be independent § what steps are taken to process the data?
§ are loops and/or selection structures needed?
Some requirements to generate software solutions: § instructions to computer to handle data
§ identification of inputs, outputs & processing processing?
§ id & definition of required data structures Output data:
§ an understanding where/when to use random § type of data output?
numbers § method of data output?
§ thorough testing of the solution § instructions to computer to handle data output?
IPO Chart
Concept: Planning & Design: design concepts: Concept: Planning & Design: design concepts: Concept: Planning & Design: design concepts
The scope of variables: it is preferred that variables continued: continued:
can only be used in the module in which they were field testing: give the completed software to a group of External documentation: documentation for the user in
created. (local variables vs global variables) people to try out under real working conditions. print form.
§ bugs are reported to the vendor
global variables: accessed by all modules at the same § bugs are fixed by the vendor & re-released with a Internal documentation: written within the algorithm
time without the need to pass their values around. higher version number. itself.
§ use of global variable often result in errors be- § it is frowned upon when software is rushed to § can be a written block of comments that appear
cause a module may unknowingly change the value. completion that still have numerable bugs. before the actual algorithm. Introduce the reader to
the algorithm & includes a brief description of its
thorough testing: one must provide sample input data prototyping: a partially complete software product. purpose.
values, run one’s algorithm using this data & check § usually contains a user-interface & some of the § can be single lines of comments embedded in the
that the output is correct. fundamental routines. algorithm at appropriate places.
§ allows client feedback § can use comments to break up the list of coding
desk checking: one keeps track of all variables & § cheaper than producing a full product for the sake of readability.
values on paper & adjusts the values as one goes line § allows one to clarify some of the requirements
by line through the algorithm. Test data: Listing assumptions: included in introductory
§ all branches must be tested as well as the § Legal & expected values comments. It tells readers what the algorithm
conditions of all loops. § illegal but expected values supports & what it omits.
§ use trace tables with desk checking § legal but unexpected values § eg.when reading data from a file, one may say
that you assume the file exist.
16. SDD HSC Planning & Design Page 16 of 43
Concept: Planning & Design: Modules & Functions Concept: Planning & Design: Modules & Functions Concept: Planning & Design: Modules & Functions
General Issues Function anatomy Function anatomy continued:
decomposition & reusability: the algorithm is broken Definition: a function can have up to 4 parts. It must function processing: a function should do something.
down into smaller chunks. have a name & a block of instructions. It may have It does it something between keywords like BEGIN &
§ if correctly written, can be reused in other input and/or output but is not mandatory. END.
algorithms that have similar tasks: re-usable. function names: short, readable & meaningful. It tries
to indicate what the function does. eg.’findBiggest’ local variables: created within a function
function libraries: collections of well-tested & reusable § no conflict between local variables of one function
functions. function input: is the data passed to it by the calling and those of any other function.
§ functions within the library can be activated to do code. § are not shared
much of the processing. § also known as arguments or parameters. § the same name can be used in many functions
§ most programming languages have ‘standard
function libraries’ function output: we output information from a function Boolean functions: a Boolean value is either true or
by ‘returning’ it. eg. return bigNum false.
call and return mechanism: subprograms are activated § usually the last instruction in a function but not § a function that returns either true or false is called
by being called. Once the subprogram is finished it necessarily so. a Boolean function.
returns back to the place from which it was called. § when return is activated the function is ended at § called ‘query function’ because they usually
that instant. also known as: short circuiting perform a test on the value of their input.
§ often have a name starting with ‘is’ eg. isVoter
Concept: Planning & Design: Arrays: basic concepts Concept: Planning & Design: Advanced sorting & Concept: Planning & Design: String Processing
searching techniques Definition: string manipulation routines are found in
libraries.
concatenation: joins two or more strings together to
form one string.
trimString: removes all the spaces from the front &
rear of a string since users often accidentally types the
spaces in.
See Power Point Presentation See Power Point Presentation compareStrings: test the alphabetical order of two
on arrays on searching, sorting strings.
toLowerCase, to UpperCase: changes all the char-
acters of a string to lower or upper case. Should use
when accepting input from a user & comparing it to a
answer eg. Hangman, Sight Reading
stringContains: sees if one string is located inside
another string.
string insertion, string length, separation into
substrings
17. SDD HSC Planning & Design Page 17 of 43
Concept: Planning & Design: Records & collections Concept: Planning & Design: Records & collections Concept: Planning & Design: Selection of language to
Definition: a record can hold more than one data collections: refers to the storage & management of be used.
type. A record has fields & each field is an array. several or many records. Event-driven software: uses actions to trigger an event
eg. Person is a record containing § collections are stored in an array of records for our eg. mouse click, key presses
name, a string purposes. Features: menus, buttons, other objects
age, a whole number Program logic: polling to check status of events; event
END Defining the storage: is an algorithm that creates an parsing to execute the events that are activated by the
array of records eg. 20 Stock records user (Wilson text)
§ a record encapsulates the two variables because Uses: games, GUI, computer controlled systems
the Person record is like a capsule. Defining the function: defines the fields of a record.
§ a record is the encapsulation of several variables sequential programming: follows a set of steps to solve
as fields in the one structure files: are blocks of data treated as single units a given problem.
§ the definition of a record is like a template that Features: standard control structures, variables used,
shows how a particular type of record is structured. sequential access: one must go through each record in assignment is to transfer data from one memory
sequence to get to it. Like a cassette music tape. location to another.
Nested records: we can use records within records. Program logic: order of execution is defined by the
Date is a record containing… random access: goes straight to the record location. programmer. Linear execution of instructions.
Person is a record containing a date (+ other fields) Like a music track on a compact disk. Uses: file & data handling programs such as word
processors, databases & spreadsheets.
Concept: Concept:
Definition: Definition:
Summary Points: News Article: Y/N Summary Points: News Article: Y/N
§ §
Bibliography
Mostly: Fowler SDD HSC text book
§ § Supplementary: Wilson SDD HSC text book
§ §
Example: Example:
18. SDD HSC Implementation Page 18 of 43
System Development Cycle:
T ech ni ca l Docu me n tati o n:
S ou rce cod e Hard wa re
Implementation
A lg o rith ms S oftware
Data Di ctio n ary E ffe ct o f em erg i ng tech n ol o gi e s
S yste ms do cum e nta tio n E ffe ct o n h u ma n e n viro n me nt Desi g n o f In d ivi d ua l scre en s
Futu re m ai n ten a nce of the cod e E ffe ct o n d e vel o pm e nt p ro cess Ide n tifi ca ti o n o f da ta re q ui re d
S oftware to a ssi st i n the DBM S ca n p rod u ce on scre e n
d ocu me n ta ti on p ro cess V B can d esi g n o wn scre en
CAS E to ol s Desi g n o f h e l p scre e ns
Hard wa re re q ui re me nts
A ud i en ce Id en ti fica ti on
Mi n i mu m co nfi g ura ti on
Con si ste ncy i n a pp ro ach
P ossi bl e ad d iti o na l ha rd wa re
E me rgi n g
A pp rop ri ate dri vers, exte nsi o ns
Form s o f do cum en ta ti o n : T ech no l og i e s
B NF, EB NF
P ro cess d ia ry Rai l roa d di a gra ms
Use r do cum e nta tio n Inte rface De sig n Mu l ti -d i me n sio n al a rra ys
Fun ctio n al d escri pti o n Hard wa re A rra ys o f re cord s
Insta l la ti on g ui d e E nvi ron me n t
Intro du ctory Ma n ua l L an g ua g e
S yste m A dm i n. ma n ua l Docu me nti o n S DC S yn tax
Ma ch in e co d e
Use r ma n ua l S oftware So l uti o n Imp l em e nta tio n CPU Instru cti o n fo rm a t
O nl i n e h el p o f S o ftwa re Rol e Use o f re gi sters a ccu mu l ato rs
S el f-do cum e nta tio n of the cod e S tru ctu re d a pp ro ach to a co mp l ex S ol u tio n s Cou n te r, fe tch-e xecu te cycl e
sol u ti on . A dd resse s o f ca l l ed rou ti ne s
O ne l og i ca l task pe r su b rou ti ne L in ki ng , use of DLL s
S tu b s
Fla g s P ro g ram
Isol a tio n of e rro rs Me th od s of T ra n sl a ti on :
Deve lo p me n t
Deb u gg i ng o utp ut state me n ts T ra n sla ti on Com pi l a tio n
T ech ni q ue s
E le g an ce o f so l u ti o n Me th od s Inte rpre tati o n
Wri ti ng for m ai n ten a nce Incre me n ta l i nte rpre tati o n
Dete cti n g & co rrecti n g e rro rs T ra n sla ti on p ro cess
S yn tax e rro rs L exi cal a na l ysi s (sca nn i n g)
L og i c e rrors S yn tacti c a n al ysi s (p arsi ng )
P ee r ch e ck T yp e ch e cki n g
Desk ch e cki n g Cod e g e ne ra ti o n
Use o f e xpe cte d ou tpu t T he l in ke r
Run -tim e e rrors T he l oa d er
Deb u gg i ng too l s T he op ti mi se r
B re a kpo i nts A dv. Di sa dv of com p il e r,
Rese tti n g va ria b l e con te nts i nte rpre ter, i ncre me n ta l co m pi l e r
P ro g ram tra ces
S in g l e l i ne step p in g