Vous êtes sur la page 1sur 29

SDD HSC notes

Chapter 1

The impact of software

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

The Year 2000 (Y2K) Problem

 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

 A group of people who associate with each other.


 The concept of social networking has expanded into the online world. E.g Facebook, LinkedIn
 Private and personal information is all too easily shared and can lead to variety of problems
including identity theft, stalking and online bullying.
 Comments made on an online site can remain accessible indefinitely.

Evaluating information available through the internet

 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?

Rights and responsibilities of software developers

 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

 Correctness: Does it do what it is supposed to do


 Reliability: Does it do it all of the time
 Efficiency: Does it do it the best way possible
 Integrity: Is it secure
 Useability: Is it designed for the end user
 Maintainability: Can it be understood?
 Flexibility: Can it be modified?
 Testability: Can it be tested?
 Portability: Will it work with other hardware?
 Re-useability: Can parts of it be used in another project?
 Interoperability: Will it work with other software?
Software piracy and copyright

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

 Covered by copyright. Only one copy can be made.


 Product cannot be modified, distributed or reverse engineered. Source code not distributed.

Shareware

 Covered by copyright. Copies can be made for distribution purposes.


 Product cannot be modified, or reverse engineered. Source code is not distributed.

Public Doman

 Not covered by copyright.


 Copies and modification can be made without restriction.
 Source code may be distributed alongside the executable code.

Open Source License

 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.

Current and emerging technologies used to combat software piracy

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.

Disk Copy protection

 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.
.

Site license Installation Counter on a network

 In larger organisations, software is installed from a network server.


 They purchase a site license which specifies the maximum number of machines who may
either install or execute the product.
 The network server includes a utility which monitors the number of times the software has
been installed or being executed.
 If the number of installations has exceeded the licensed number of installations, the program
refuses to provide installation files.
 Counter is incremented when new user executes the product and decremented as the user
exits.

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

 Hardware components within every computer include an embedded serial number


 Software was designed so it examined these serial numbers and if they didn’t match, the
program would not execute.
 In effect, the software is linked to a particular machine

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.

The software market

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.

Product-What do you sell?

 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.

Price- What do you sell it for?

 There are two commonly used methods for pricing a product.


 First is based on a ‘cost-plus’ basis, and the second is referred to as ‘consumer-based pricing’.
 Cost-plus: Take the cost of producing the product and add the profit margin
 Consumer-based pricing: Looking at what the consumer wants and how much they are
prepared to pay for
Place-Where do you sell it?

 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.

Promotion- How do you spread the word?

 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.

The effect of dominant developers of software

 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.

Impact of new developers and software products

 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.

National Legal Action

NSW T card system

 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

Approaches used in commercial systems

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:

1. Defining and understanding the problem


2. Planning and designing
3. Implementation
4. Testing and evaluation
5. Maintenance

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

 Very structured, step by step stages


 These stages must be executed in order and cannot move on unless the previous one is
completed. There is a distinct start and finish and each step is completed in a precise order.
 It is particularly suited to software development where all the requirements of the product are,
or can be defined and understood before any planning and design commences.
 The structured approach has many advantages for custom systems that are being built for
large-scale implementation where the specifications can be defined properly.
 Specific to a particular industry or product and perform quite specific set of tasks

Agile Approach

 A response to the ‘adhoc’ reality of many software development projects


 Emphasis on team development rather than following predefined structured development
processes
 Agile method removes the need for detailed requirements and complex design documentation
 They encourage cooperation and team work and consist of small teams- Mutiskilled
 Well-suited to web-based software development and other software applications that are
modified regularly such that they evolve and are updated over time.
 Focus is on the user and the user stories are prioritised for the development of an iteration.
Characteristics:

o Speed of getting a working solution to market. Basic functionality is included initially so


operational software can be released as soon as possible
o Interaction within the team and users which allows the solution to be selectively refined
throughout the development process.
o Working versions of the software are regularly delivered. Each version adds the next most
important functions
o Responds well to changing specifications
o Development team and clients collaborate closely throughout development.
o No detailed specifications exist – they emerge and change during development.
o The budget and time is fixed while the
specifications change and once the
resources are exhausted, the current
solution becomes the final solution.
Needs significant trust
o The client is heavily involved
throughout the development process
and receive a product that better
meets their actual and current
requirements.

 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

 The prototyping approach lies between the


traditional structured approaches and agile
approaches.
 It involves intense interaction between
customers and the software developers.
 However, prototypes are created to
progressively refine user requirements and is
iterative like agile approaches. Each successive
prototype better meets the original and realised
requirements for the final product.
 The final prototype can be developed into the
final product but often the prototypes are
simply interactive models of the user interface.
 The traditional structured approach was unable
to react to changing requirements once the planning and design phase had begun.
 The prototyping model acknowledges that the requirements for the system are collected in
evolutionary fashion as new, previously unknown requirements tart to emerge, existing
requirements become modified and some already identified requirements may be discarded.

Concept Prototypes

 Never meant to be final product


 Aim to promote discussion and
further enhance the developer’s
knowledge of the customer’s
requirements
 Multiple prototypes may be
presented to the customer
simultaneously
 Each may be the result of different approaches to the solution of the same problem.
 Rapid, throw away, experimental or exploratory prototypes.
 Concept is presented to assist in developing and modifying requirements and specifications.
Evolutionary Prototypes

 Intended to be the forerunner to the final product –


eventually becomes the final product.
 Each successive generation of the prototypes is an
improvement on its predecessor.
 Eventually it reaches a level of functionality, that it
becomes the final product
 Works well for software solutions as manufacturing
and distribution costs are minimal compared to most
other products.
 This method acknowledges that software products
are never perfect, but that the developers continually
strive for this perfection.

RAD( Rapid Application Development)

 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:

 Buying modules can save money than building from scratch


 Greatly reduced manual coding
 Fewer code errors as produced for CASE tools
 Shorter software development cycle resulting in reduced costs

Disadvantages:

 Buying modules may be more expensive than building from scratch


 Installation of other software
 Less efficient code because not hand crafted
 Reliance on third party modules may sacrifice needed functionality
 Reliance on third party modules may add unneeded functionality
 Using third party components may create legal problems

Characteristics of the RAD approach:

 Lack of formal stages


 Use of existing routines
 Appropriate applications to develop RAD solutions
 Communication between developer and client
 Short time period
 Small-scale project
 Low budget

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

 Use of standard software packages


 End user as the developer and maintainer
 Small budget and or short time period for development
 Lack of formal stages

Case tools in large system development

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

 Involves operating both systems together for a period


 Allows any major problems with the new system to be encountered and corrected without loss
of data.
 Gives user sufficient time to familiarise themselves fully with the operation of the new system.
 The old system remains operational as a backup for the new system.
 Once the new system is found to be meeting requirements, then operation of the old system
can cease.
 It involves double the workload for users as all functions must be done on the old and new
 Useful when the product is of a crucial nature, meaning dire consequences would occur if the
new system failed.
 Developers must continue to support the previous versions of the product until the conversion
is completed.

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 new system is installed for a small number of users.


 These users learn, use and evaluate the new system
 Once the new system is deemed satisfactory, then the system is installed and used by everyone
 Particularly useful for new products, as it ensures functionality is at a level that can perform in
a real operational setting.
 Allows a small portion of users to be familiar with the new system whom can assist other users
in adapting to the new system.
 ‘Final testing’ of a product as both developer and customer are able to evaluate the product in
an operational environment prior to its full installation.

Current Trends in Software Development

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.

Trends in software development

Environment in which developers work

 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

 The nature of software applications has undergone rapid change.


 Software developers have been writing applications for desktop computers or for servers.
 The recent changes are largely due to the widespread public acceptance and use of internet
and mobile devices.
 Software developers need to continually update their skills to take account of public demand
for internet connected software applications.
o Web-based software
 A certain user has specific files for their own use stored on a server which they can access
via a website.
 Languages such as PHP are used to communicate between the web server and the web
browser, so the browser can display the user’s own files and generate dynamic content
based on the user’s data.
 Technologies such as HTML5, web 2,0 tools and cloud computing are used by web pages
to properly communicate data to the user.
 Google products used technologies such as merging software to integrate, demonstrate
and manifest data from different users.
o Learning objects
 Digital learning objects are collections of digital resources to teach some chunk of
knowledge.
 Learning Management System is a management system for digital learning objects.
Learning Management Content System produces and publish digital content which will
form part of one or more learning objects.
 The LMS is used to deliver the learning objects to students through a web browser or
school’s LAN.
 The LMS can also monitor student progress, deliver assessment items and tests and
record student results within its linked database.
o Widgets
 Widgets refer to the graphical user interface elements such as text boxes, menus, radio
buttons and checkboxes
 It also refers to desktop widgets that are small applications that utilise the internet to
update their content at regular intervals.
 These inform the users with information such as the time or weather, e.g. clock, weather
forecasts.
o Apps
 Shortened form of application
 App has evolved to refer to applications executed on mobile phones due to its emerging
popularity.
 Due to restricted RAM and secondary storage, apps are much smaller applications
compared to desktop versions.
o Applets
 Essentially a small application such as notepad and paint which perform basic tasks but
are not as fully featured.
o Web 2.0 Tools
 Web 2.0 tools are websites that encourage user participation and collaboration to
contribute to the site’s content and allow users to discuss, share and view data as well as
information.
o Cloud Computing
 Cloud computing is where the applications runs over the internet with some parts
executing on the client where the rest of the application runs on the remote server.
 Allows traditional documents to be accessed by multiple users.
Chapter 3

Defining and understanding the problem

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.

Defining the problem

 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?

Needs of the client

 A need is an instance in which some necessity or want exists


 Some form of solution is required to meet this need.
 Without articulating the needs clearly, it will be difficult to develop a clear picture of the precise
problem to be solved.
 Through consultation and analysis, a set of functionality requirements is created.
 Meeting these requirements is the central aim of the entire software development process.
 Analysing needs is an important aspect of beginning to define the problem and for large
systems a professional systems analyst is used.
 Tools and techniques that are available for analysis include:
o Surveys - Gathering information from large numbers of people, however they often
limit the detail and explanations participants are able to provide.
o Interviews - Personal interviews will allow participants to more freely express thir
needs.
o Time management studies – How much time is really spent on each specific function.
o Business analysis- Examining different aspects of a business’ activities in search of
areas where improvement can be made.
 A product must be able to meet the needs of the market so it won’t become obsolete.
Functionality requirements

 Describes what the system will do.


 These are what you are aiming to achieve
 Will provide direction to the project and should be constantly examined to ensure that they
are being fulfilled.
 The final evaluation of a project’s success or failure is based on how well the original
requirements have been achieved.

Compatibility Issues

 Software of various types runs on a variety of operating systems, browsers, hardware


configurations and even a range of different devices, such as smart phones and tablet
computers.
 When designing software developers must ensure their products are compatible with a wide
range of likely user devices and network conditions
 Any existing hardware, software and communications systems must be documented and then
taken into account when defining the problem to ensure the solution will be compatible wwith
these existing resources.

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.

Boundaries of the problem

 Boundaries define the limits of the problem or system to be developed.


 It is vital to determine the boundaries of a problem to be solved to know what is and not a part
of the system.
 Items that are not part of the system, that is items in the environment need to be considered
if they have an influence on the system.
 If it influences the system, then there must be an interface with the system as items in the
environment can affect the system
Issues relevant to a proposed solution

 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

 Framework in which the team of developers will operate


 Methods to model the system- System flowcharts, dataflow diagrams, IPO diagrams.
 Method and depth of algorithm description to be used, data structures, data type and variable
names are to be allocated.
 A system for maintaining an accurate data dictionary needs to be specified.
 Used in conjunction with case tools to ensure team complies with these design specifications.
User’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

System modelling tools

 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.

 Program for maintaining an inventory file of all the


products in stock within a warehouse

 Managing patient’s information


Context diagrams

 Context diagrams represent the entire system as a single process.


 Each data flow label should clearly identify the nature of data using simple clear words.
 Widgets sales graph

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.

Vous aimerez peut-être aussi