SDD HSC Notes
SDD HSC Notes
Chapter 1
Software is increasingly becoming more prevalent in the aspects of our lives. It is used to control the
provision of essential services such as electricity, gas and water.
When software is inappropriately developed or used the impacts have the potential to be significant
In the 1960s and 70s, storage was so expesnive that software was required to use the minimum
amount of storage space.
So, developers often used only 2 digits to represent the years.
It was never envisaged that these products would still be in use in the Year 2000.
As a result, computers would think that the year was 1900 not 2000.
Similar problems in the software where 1960 would be interpreted as 2060.
Computer Malware
Malware or malicious software includes any software which performs an unwanted and
uninvited task.
E.g Viruses, worms, Trojan horses and spyware.
Virus is any program that alters the functioning of computer software without the permission
of the computer user. It has the ability to execute, duplicate itself and perform malicious
processing . The duplicates are then passed onto other computer systems via email and other
forms of electronic communication.
Worms are a type of virus that aims to slow down a system. Worms exploit a security flaw in
the operating system and then installs themselves on the hard drive. They replicate until the
entire hard drive is completely consumed by them which results in slower software.
Spyware aims to steal your information through web browsing habits, reading your email
contacts or even reading keystrokes as you enter passwords and credit card details. Criminals
then use this information for various illegal acts such as accessing your bank account and
identity theft.
Trojan horses are used to install malware that enables an outside user or program to take
control of your computer. It is also a malicious software masquerading as a legitimate software
but instead executes unwanted processes such as deleting or corrupting files.
Social networking
Huge amounts of information are publicly available through the internet regardless of the
qualifications, expertise or experience of the uploader.
Use these questions as a guideline to make an accurate judgement of the website:
o Who is the author?
o Is the information up-to-date?
o Who is the intended audience?
o Is the information accurate and unbiased?
o What is the purpose of the information?
Developers are accountable to their customers to provide solutions that are of high quality,
free of malware and perform their stated task correctly.
Responsible developers provide systems that to respond to problems developed by users.
Quality
Software piracy is the illegal copying and use of software. It is when the intellectual property rights of
the developer are infringed and occurs when an individual illegally installs software on his or her own
machine. Software piracy can also occur when unscrupulous businesses distribute copies of copyrighted
software for financial gain.
The legal system provides certain rights and protection for owners of property. Intellectual property
that is made from the fruits of mental labour can be protected with the copyright laws. Often done
through the process of a licence agreement that formalises the contract between the author and the
purchaser. Licence agreements help enforce copyright laws and in addition they routinely include
details of warranties( Purchaser) and limited liability clauses( Seller).
Plagiarism
Is the appropriating or imitation of another’s ideas and manner of expressing them and claiming
them as your own.
Copyright laws
Copyright laws are in place to safeguard the legal intellectual property rights of authors of any
original works.
Purpose is to incentivise creative endeavour through economic encouragement.
Copyright protects the expression of ideas rather than the ideas themselves.
The copyright laws give the owner the sole right to reproduce their work.
It includes the right to
o Reproduce the copyrighted work
o Make derivative works
o Distribute copyrighted works to the public
o Perform certain works in public
o Display certain works in public
Common amendments to copyright laws particular to software:
o One copy may be made for backup purposes only.
o When ownership of a license is transferred, all copies must be handed over or destroyed
o Decompilation and reverse engineering are not permitted. However can be done to
determine whether it interferes with another copyrighted product.
Commercial
Shareware
Public Doman
The source code is developed collaboratively and is available to all to modify and redistribute.
The aim of open source licences is to ensure users can freely use and modify software without
fear of legal challenge.
Ownership vs Licensing
Software obtained from outside sources is not generally owned by the user
The software developer who is the author of the product retains ownership of the product.
The purchaser of this product is licensed to use it but not copy or distribute copies unless stated
As the software developer, it is up to them to create a legal license agreement to accompany
any product they distribute.
License Terminology
License- Formal permission or authority to use a product. Licences are non-exclusive meaning
they can be licensed to multiple users. It does not give users ownership of the software, but
are granted the right to use the software
Agreement- A mutual agreement or contract between parties by acceptance of terms and
conditions.
Term- The period of time the agreement is in force.
Warranty- A guarantee of the usability of the software. Software products normally contain
limited warranties, but a large-scale application is replaced by statements limiting the
software developer’s liability should a problem occur.
Limited Use- Software licenses have a limit to the usage of the product, often restricted to a
single machine.
Liability- An obligation or debt as a consequence of some event.
Program- Refers to the computer software and includes executable and data files.
Reverse Engineer- Decompiling the product to identity its structure and components.
Backup copy- A copy of the software made for archival purposes. If software is destroyed or
sold, backup copy must be deleted as well.
Non-copyable datasheet
The user needed to enter codes or answers from datasheet to continue using the software
Other software products included datasheets printed using inks that could not be
photocopied.
Some copy protected disks included data on areas of the disk that were not normally able to
be read or placed the data on specific sectors of the disk
Most copying software at that time was unable to replicate these features and copying the
disk was not possible.
.
Registration code
A registration code is used to activate software products during the initial stage in the
installation process.
For single software license the registration code is unique to the installation,
Site licenses commonly share a single registration code and provides some facility for
automating the activation process for multiple machines.
Some software uses an algorithm to verify if the registration code is correct.
Encryption key
Encryption effectively scrambles the data or executable code in such a way that it is
impossible to make sense.
The decryption code is required to reverse the encryption process.
Single key or secret key encryption used the same key to both encrypt and decrypt the data.
o Hard to implement as the common key must be securely transmitted to the other
party for the system to be secure.
Two key systems use two to encrypt and decrypt. These systems operate within secure
sockets layer protocol and is used to perform most financial transactions online.
o The public key can be shared with anyone as the owner of the private key will be able
to decrypt the message.
o Once transfer is complete, the keys are destroyed.
Hardware Serial numbers
Back-to-base authentication
The application contacts the software publisher’s server to verify the user or computer holds
a valid software license.
If the license is verified then the program will execute.
It can be used when installing or when the software is to be run.
Most useful when there is an internet connection to prevent piracy.
Maintaining a software company’s standing and position in the market requires that the company
consider social and ethical issues will result in undermining the confidence of consumers to trust the
assertions of software companies. Marketing is often described in the four P’s of marketing namely
product, place, price and promotion.
Products should be made with full understanding of customer needs, requirements and
expectations before selling.
If produced without these, sales people are forced to exaggerate and make false assertions
about the product’s capabilities which is unethical, resulting in industry dissatisfaction with
the production and reduced sales.
The physical place where a product is sold is related to the type of product and its intended
audience.
Software is distributed in various locations using various methods.
o Shop fronts, software retailers
o Industry specific distributors
o Direct sales e.g internet, direct mail, mail order
The place where the software is sold can have an effect on the perceived ethical status of the
product.
Software markets have an ethical responsibility about what they say and how they say it
when selling to prospective customers.
Advertising can be helpful to consumers who are investigating what is available in the
marketplace.
These advertising activities should provide accurate information that is not offensive nor
misleading.
Word of mouth is another powerful promotional technique.
It is important to consider existing customer’s needs as part of the promotional technique.
In any market, when there is one dominant product it becomes the default
It occurs in the operating system market, word processor and spreadsheet market.
Microsoft’s Window family of operating systems is sold preinstalled on the large majority of
personal computers and laptops.
The open source community has produced Open office that has similar functionality to MS
office but free of charge.
Although there are still companies and products that dominate existing software markets,
there is still room for new players.
New developers emerge with an unique software from their inventiveness that breaks new
ground.
Legal Implications
Software implemented on systems throughout a country can result in significant legal action if the
software contravenes the law of the country in some way or its development does not comply with the
legal contract between the software developer and the customer.
The NSW T card system was a proposal put forward by the NSW State Government in 1996 to
replace the automated ticketing system using Smart Card technology
It was hoped that it would be completed by the Sydney 2000 Olympic Games.
However various legal wrangling between the two parties hindered development and the
deadline soon flew by.
Finally in 2002, the contract for the development of the system was finally awarded to the ERG
group and development commenced with a 2005 deadline for full ticket integration.
The project was plagued with delays from both the NSW State Government and the ERG Group
blaming each other for failure to deliver on particular milestones.
A trial by school students began in 2005 and by 2006 had included some private bus companies.
Delays continued and when the second deadline for commuter trails expired in 2008 without
delivery being met, the State Government terminated the contract with the ERG group and
sought damages of $95 million.
The school student Tcard System was also brought to an end
Lawyers for the ERG Group alleged that the NSW State Government refused to allow live testing
of its system and it had also stipulated that nothing could be installed until the system was
100% perfect.
ERG alleges that it didn’t receive sufficient cooperation from operators such as RailCorp and
that they were not provided with reliable system testing reports throughout the development
of the project
ERG filed a counter claim in the NSW supreme court for $200 million for illegal termination of
contract by the NSW State Government.
Chapter 2
A software development approach is a model of the general technique used to produce a software
product. All software development approaches use the five steps of the software development cycle.
These steps are as follows:
The approach or methodology chosen is influenced by a number of factors, including the size and
nature of product, skills of the development personnel, the detail of the requirements, the finances
available to fund the product development.
Structured Approach
Agile Approach
The general nature of the problem is determined, and the development team is formed
A basic plan is created as well as the general design for the software
Once an initial, simplified solution is implemented, it is immediately tested, evaluated and
released for use.
The users see exactly what has been achieved and provide feedback and make suggestions for
future development.
This acts as the ‘Defining and understanding” stage of the structured approach.
The new design will incorporate the feedback as well as new ideas and are coded immediately.
It is then thoroughly evaluated before released to the public.
This process is repeated with each iteration implementing further functionality and detail.
Prototyping approach
Concept Prototypes
A software development approach that allows usable systems to be built within a small amount
of time.
Advantages: RAD aims to reduce development time so that most requirements can be met and
implemented as quickly as possible.
Often software developments took so long, the requirements for the system had
fundamentally changed by the time the new system was ready for use.
Disadvantages: Reduced quality of the final product compromises the product’s usability and
its development into a fully featured or efficient product.
Made as a result of Fourth Generation Languages which enable a ‘visual’ production of user
interfaces and the integration of reusable components into new products with very little hard
programming.
Many applications can be developed with very little coding taking place at all.
The team must work very closely – Multiskilled
Requires continual feedback to determine priority of requirements, which are met and ignored.
Rapid Prototyping : Uses a prototyping methodology to achieve its purposes, prototypes used
to help clarify requirements for new system.
Advantages:
Disadvantages:
End User
Application packages have been released onto the market that can be customised by users with
limited software development expertise.
Involves businesses creating their own products by customising other applications using
wizards and other automatic code generating devices.
Many advantages for small businesses and home users as they would not otherwise be able to
afford customised solutions.
Gives small business the ability to automate their functions at low cost.
Disadvantages: The final product needs to be a compromise between the requirements of the
business and the functionality of the product being customised.
Will not be as efficient and performance may be less than satisfactory, lower quality.
Characteristics of end user approach
Computer Aided Software Engineering tools are used to assist and coordinate the activities involved in
the process of software development. Any tools that is used to assist developers can be classified as a
CASE tool. Simple drawing programs can be used to create dataflow diagrams, system flowcharts or
algorithms.
Methods of Installation
Once a new software product has been produced it must be installed and then implemented on site.
There are a number of methods of introducing anew system and each of these methods suits a different
circumstance.
Direct Cut-over
Involves the old system being completely dropped and the new system being completely
installed at the same time.
The old system is no longer available.
It must be absolutely sure that the new system is totally functional and operational.
It is used when it is not feasible to continue operating two systems together.
Any data used in the new system must be converted and imported from the old system.
Users must be fully trained in the operation of the new system before the conversion occurs.
Parallel
Phased
Involves a gradual introduction of the new system whilst the old system is progressively
discarded.
Can be achieved through introducing new parts of the new product one at a time while the
older parts being replaced are removed.
Often used when the product is still in development.
Completed modules are released to customers when they become available.
Pilot
The information technology environment is becoming increasingly more complex. It is becoming more
difficult for information technology departments to keep abreast of all these changes in hardware
platforms and software products.
Networks of computers, and in particular the internet, have created a new and growing
environment for software development.
Developers from across the globe can collaborate on software projects.
Managing and combining the contributions from a wide variety of contributors would be
impossible without suitable CASE tools.
Developers today work much differently than they used to- in isolation. Now, they are multi-
skilled and work together with other developers and users as the development process
progresses
Changing nature of applications
Defining and understanding the problem is the first stage of the software development cycle. This initial
stage is very important in identifying the precise problem to be solved and determining if an existing
solution is viable or a new solution is needed. Software developers must take steps to carefully define
and understand the problem before moving onto the planning and design phase.
The problem needs to be defined precisely so that both the developer and the client
understands what will be done
Some questions to identify the problem are:
o What are the client’s needs which will be met by this product
o Compatibility issues with other existing software and hardware
o Possible performance issues, particularly for internet and graphics intensive systems
o What are the boundaries of the new system?
Compatibility Issues
Performance issues
Often the specs of the computers used by developers far exceed those likely to be present in a
typical user’s computer.
Multi-user applications and applications that access large files and databases will perform very
differently under real world conditions.
Although a new solution may well meet the current identified needs there are other areas that
should be considered prior to investing time and money in the development of a solution.
Will a new solution provide enough advantages to the organisation to be worth the time, effort
and money involved in its development and implementation?
Different methods and approaches to the solution of a problem should be considered prior to
commencing design and implementation.
It is important that each method or approach to the solution be targeted at achieving the same
set of requirements.
It is wise to research existing software products as often an existing product will be more cost
effective.
Design specifications
Developing a set of design specifications of one of the most important steps before the actual design is
planned. The design specifications form the basis for planning and designing the solution. The aim of
the design specifications is to accurately interpret the needs, requirements and boundaries identified
into a set of workable and realistic specifications from which a final solution can be created.
Developer’s perspective
Any design specifications that influence the experience of the end user and if the solution fully
meets their needs.
Standards for interface design will be specified to ensure continuity of design across the project
Use of menus, use of frames to group items, use of colour and placement of elements.
Ergonomic issues such as shortcuts, movement between screens and aesthetics.
User’s environment- existing applications and incorporate so the skills can be applied.
Communication and in particular feedback from users is important to determine user based
design specifications – screen designs and concept prototypes.
Communication Issues
The needs of the users should be considered at all stages of the software development cycle.
It is vital to open the communication channels between the users and the software
development team.
Communication is two-way: lines of communication should be created that empowers the
users and enable them to provide feedback to the development team.
Assists in incorporating users feedback to prevent future support issues
Should include:
o Meetings
o Questionnaire
o Memos
o Interviews
o Phone calls and emails
o Concept prototypes
A model of a system is a representation of that system designed to show the structure and
functionality of the system.
Most in the form of diagrams which gives a broad view whilst at the same time conveys
necessary details.
The model gives direction and specifications to the builders of the product.
A design to imitate a real world situation
System flowcharts
System flowcharts are used to represent the logic and movement of data between the
components including hardware, software and manual components
Describe the interactions that occur between input, processing, output and storage as well as
the nature of each of these components.
Dataflow diagrams
Data flow diagrams describe the path data takes through a system.
Data flows or vectors are used to join the entities and processes within the model.
A label is placed on the vector to indicate the nature of the data.
The origin of data input into the system is known as source.
A destination for data output from the system is known as sink.
External entities are often groups of people or other systems.
o Both the source and sink are known as external
entities and are represented by either a square
or rectangle symbol.
Processes are the actions that take place on the data
within the system that transforms input to output.
o Processes are represented as circles.
All processes will include 1 or more inputs coming in and
1 or more outputs coming out.
Data stores are repositories for data.
o They usually represent databases or files,
however manual storage such as filing cabinets
or paper files may also be included
o Represented by an open rectangle
Data flow diagrams are used to assist the understanding of flow of information through a
system and also helps the analyst to separate processing into distinct unitys resulting in a
better understanding of the problem.
Widget Sales graph
Level two
Structure charts
Structure charts are used to model the hierarchy of subroutines within a system along with
the sequence in which these subroutines take place.
Data movements between subroutines are also included
Provides top-down design of the program as well as the order in which subroutines are
called.
Lines drawn between processes are known as call lines or control lines- shows connections
between processes. Represents a call to a subroutine from the subroutine above
Decisions about whether a call should be made are indicated by a small diamond
Repetition of calling a subroutine multiple times is indicated by a circular aroow
Data items passed between modules are known as parameters
Control parameters affect the order in which tasks are executed- usually a flag.
Flags are data times that indicate whether a certain criterion has been met.
Automotive spare parts business
Input Process Output diagrams
Used to describe the data entering a process, the nature of the processing performed on the
data and resulting information leaving the process.
Data dictionary
Data dictionary is a repository where the information of all variable names or identifiers are
documented,
It is available in most software development CASE tools.
A data dictionary should include a thorough description of each variable used by the program
and each field in each database and file used or accessed by the program.
A separate data dictionary is created for each module, database and file used by the
program.
Commonly a data dictionary will contain:
Identifier name(field name)
Data type( including data structure if applicable)
Length (number of characters or decimal places if applicable
Scope of the variable
Purpose or description
The exact columns used will be determined by the data of the application used.
Storyboards
Used to describe screens used in a project together with how each screen interacts with
other screens.
Collection of screen designs together with a diagram describing the links between the
screens.
Storyboards for software products usually include a series of screen designs together with a
diagram illustrating the possible navigation paths between screens.
This diagram will show each screen as a rectangle with arrows leading to and from other
screens.