SDD HSC Social & Ethical Issues Page 1 of 43 HSC Software Design and Development Mindmaps and Summary Sheets
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 ovt, 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
SDD HSC Social & Ethical Issues Page 3 of 43Concept: 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 & workrequirements 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 qualitymessage boxes. § sticking to software standards Some issues for developers: § portabilityreliability: 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 § securitysoftware development § understand the development problem § cost constraints § design & test a solution to the develop. problem § operational reliability with other common software § implement the solutionIssue: 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 otherQuality 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 possibleResponse Not to be harassed with trivial problems Provided troubleshooting manuals, online help. Provide shareware; software that is distributed for trial useto 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 coveredViruses 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
SDD HSC Social & Ethical Issues Page 4 of 43Concept: 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 thesource 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 softwaredecompilation: where object code is translated into § deprives the legitimate copyright owners of money § software market driven by more sophisticatedcode that can be more easily studied by a programmer § some nations have refused to sign a universal hardware & peripherals. eg. as computers becameneeding 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 applicationbinding 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 companyuse. Licence indicates how many may use it or it may Business Software Association of Australia § active research & development program in majorbe 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 marketEffect on the market place Significant social & ethical issues:Definition: software production is a multi-billiondollar industry. National & international legal action resulting fromSummary 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 textpower. § 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 editingMore hard disk storage, RAM & processing speed Public issue: § Y2k millennium bug § computer viruses
SDD HSC Software Development Approaches Page 5 of 43Concept: 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 checkingproblems. 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 originaldefine the problem-> plan the solution-> build the § scheduling the project – Gantt chart specificationssolution-> check the solution-> modify the solution § choosing a programming language § real data used § dataflow diagrams, IPO charts used as tools § alpha / beta testingdefine the problem: thoroughly understand & define § mostly involves the design & checking of § screen design, intuitivethe problem itself. algorithm & interfaces § staff training§ interviews, collect data, observation, documents, § error handling within the programquestionnaire, surveys§ specific requirements drawn upConcept: 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 solvedchecking the solution. Further testing takes place on § easier to understand because of the use of using modularisationthe modifications. Program is either accepted or modi modules; can be easily tracked & connections seen § development budget is largefied 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 recommendthe SDC start all over again.
SDD HSC Software Development Approaches Page 6 of 43Concept: Software Development Approaches: Concept: Software Development Approaches: Concept: Software Development Approaches:Prototyping Rapid Applications Development End-user developmentDefinition: involves building a working model that is Definition: any method of software design that uses Definition: where the user adapts existing softwareevaluated 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 aprocessing. 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 solutionthat 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 degreerequired 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 softwarecompared 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 programConcept: 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.
SDD HSC Software Development Approaches Page 7 of 43Concept: Software Development Approaches: Concept: Software Development Approaches: Concept: Software Development Approaches:Trends in software development: Trends in software development continued: Networked softwareoutsourcing: hiring an outside organization to handle popular languages: Definition: software written for use on centralisedall 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 withpopular 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 placeConcept: Software Development Approaches: Concept: Software Development Approaches:Customised off-the-shelf packages CASE toolsDefinition: software that is purchased off the shelf & Definition: computer assisted software engineering tocan 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/NSummary 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 textword 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 toolExample: MYOB, Creating a relational database for § test data generators CASE toola specific task. eg. Dean’s Merit Awards
SDD HSC Software Development Approaches Page 8 of 43Concept: Software Development Approaches: Concept: Software Development Approaches: Concept: Software Development Approaches:Definition: Definition: Definition:Summary Points: News Article: Y/N Summary Points: News Article: Y/N Summary Points: News Article: Y/N§ § §§ § §§ § §Example: Example: Example:Concept: Software Development Approaches: Concept: Software Development Approaches: Concept: Software Development Approaches:Definition: Definition: Definition:Summary Points: News Article: Y/N Summary Points: News Article: Y/N Summary Points: News Article: Y/N§ § §§ § §§ § §Example: Example: Example:
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 rs 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 rs 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 rs 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 nts 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.
SDD HSC Defining & Understanding the Problem Page 10 of 43Concept: 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 optionsneeds 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 unchangedwork 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 alternativeNeeds: needs of the user, needs of the system (data to be more than the cost of implementing the solution. § analyst makes a recommendation with justificationtypes, storage of facts, perform certain processes & operational feasibility: refers to the skills & resources social & ethical considerations: impact upon people bethe 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 informationmum response time. the skills don’t exist yet. § code from other sources need to be dealt withBoundaries: 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 & theand 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 userscope of the project: how the software fits in with the interactions between modules. § enable access to other parts of the programwhole 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 betweendata design: identifies the data objects required & the modules, program and external devices. eg. printingresulting data types. § system flow chart from a program§ file structure & access covered herecross reference: checking that data items are relatedto their respective files / modules.
SDD HSC Defining & Understanding the Problem Page 11 of 43Concept: Define Understand the Problem: Concept: Define Understand the Problem: Concept: Define Understand the Problem:Process design: Implementation & testing: Developer’s perspectiveDefinition: 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: CommunicationDefinition: a system can be represented in some way Definition: should interact with the user throughoutto 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 chartNeed to know how to construct DFD, system flowchart, decision tree/table at least to some depth.
SDD HSC Defining & Understanding the Problem Page 12 of 43Concept: 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:
SDD HSC Defining & Understanding the Problem Page 13 of 43Concept: Define Understand the Problem: Concept: Define Understand the Problem: Concept: Define Understand the Problem: Concept: Define Understand the Problem:
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
SDD HSC Planning & Design Page 15 of 43Concept: Planning & Design: structured Concept: Planning & Design: design concepts Concept: Planning & Design: design conceptsprogramming & 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 ChartConcept: Planning & Design: design concepts: Concept: Planning & Design: design concepts: Concept: Planning & Design: design conceptsThe 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 increated. (local variables vs global variables) people to try out under real working conditions. print form. § bugs are reported to the vendorglobal variables: accessed by all modules at the same § bugs are fixed by the vendor & re-released with a Internal documentation: written within the algorithmtime 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 appearcause 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 itsthorough 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 thethat the output is correct. fundamental routines. algorithm at appropriate places. § allows client feedback § can use comments to break up the list of codingdesk 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 requirementsby 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 algorithmconditions 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.
SDD HSC Planning & Design Page 16 of 43Concept: Planning & Design: Modules & Functions Concept: Planning & Design: Modules & Functions Concept: Planning & Design: Modules & FunctionsGeneral 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 functionfunction libraries: collections of well-tested & reusable § no conflict between local variables of one functionfunctions. 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 sharedmuch of the processing. § also known as arguments or parameters. § the same name can be used in many functions§ most programming languages have ‘standardfunction 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 calledby 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. isVoterConcept: 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
SDD HSC Planning & Design Page 17 of 43Concept: Planning & Design: Records & collections Concept: Planning & Design: Records & collections Concept: Planning & Design: Selection of language toDefinition: 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 eventeg. 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; eventEND 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 systemsthe 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 solveas 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 theDate 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:
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