Professional Documents
Culture Documents
Good professional practice: To make use of the expertise of others and to build
on previous work, with proper attribution.
Unethical and academic plagiarism: To use the efforts of others without
attribution.
Projects
Good Software
General characteristics
Usability
Maintainability
Dependability
Efficiency
Programming quality is the means to the end, not the end itself.
Professional Responsibility
Organizations put trust in software developers:
Software Process
Fundamental Assumption:
Good processes lead to good software
Good processes reduce risk
Good processes enhance visibility
1. Requirements analysis
2. Requirements definition
3. Requirements specification
Design
System design: Partition the requirements to hardware or software systems.
Establishes an overall system architecture
Software design: Represent the software system functions in a form that can be
transformed into one or more executable programs
Implementation
Programming
Testing
Acceptance
The complete system is delivered to the client and released into production.
Operation and maintenance
Sequence of Processes
Every software project will include these basic processes, in some
shape or form, but:
Process visibility
Separation of tasks
Quality control
Cost control
Disadvantages:
Each stage in the process reveals new understanding of the previous stages, that
requires the earlier stages to be revised.
Modified Waterfall Model
Iterative
Refinement
Phased Development
Concept
A simple system with basic functionality is brought quickly into production (Phase
1).
Subsequent phases are based on experience gained from users of each previous
phase.
Advantages
subsequent phases
Observations about Software Processes
Completed projects should have the basic process steps
but ... the development process is always partly evolutionary.
Risk is lowered by:
Prototyping key components
Dividing into phases
Following a visible software process
Making use of reusable components
Conclusion
It is not possible to complete each step and throw it over the wall.
Feasibility Studies
A feasibility study is a study made before committing to a project.
A feasibility study leads to a decision:
go ahead
do not go ahead
think again
In production projects, the feasibility study often leads to a budget request.
There must be an outline plan with a rough timetable and staff allocation.
The plan must have a very large margin for contingencies. (Projects typically
require twice the staff and/or time envisaged in the feasibility plan.)
External
Every system interacts with others. Are the others committed to the
necessary efforts?
Where are the external pressures and obstacles?
These very rough numbers are fed into the provisional plan that is used to estimate
the staffing, timetable, equipment needs, etc.
Feasibility Study: Planning and Resources
The feasibility study should include an outline plan:
Estimate the staffing and equipment needs, and the preliminary timetable
Identify major decision points
Identify interactions with and dependences on external systems
Provide a preliminary list of deliverables and delivery dates
Risks
demonstration
mock-up
walk through
Outline budget:
Phases/milestones:
Feasibility Report
A written document
Except works for hire, where the employer owns the copyright.
Transfer of copyright
Registration
In the USA, copyright is established automatically when something is created. In
many countries, it is necessary for the creator to register it to claim copyright.
In the USA, copyright gives the owner exclusive right to:
reproduce
distribute
perform
display
license others to reproduce, distribute, perform, or display
Special exceptions
First sale. The owner of an object, e.g., a book, can sell the object without
permission of the copyright owner.
Fair use. Limited use is permitted without permission of the copyright owner,
e.g., in a review or short quotation.
Copyright: Derivative Software
When software is derived from other software:
If you write S, which includes code derived from A, B, C and D, you cannot distribute
or licenses S unless you have right, from the copyright owner, to distribute each of
A, B, C and D.
Contracts and Licences
Contracts allow intellectual property to be sold
Enforceable by courts
International differences
If you learn trade secrets when working for one employer, you must not
disclose them to another employer.
Trademark
Privacy
Invasions of privacy:
intrusion
appropriation of name or likeness
unreasonable publicity
false light
Privacy in Email
Mail loses its special protected status once it leaves the letter carrier's
grasp
For email,
Email loses its protected status at the mail server whether you have
read it or not
Business Email
Free Speech
In the USA, the First Amendment protects many aspects of free speech, including
news reporting, religious expression, etc., but there are major exceptions (e.g., state
secrets, defamation, obscenity, racial hatred). In the USA, some aspects (e.g.,
obscenity) are governed by state laws with big differences among states. Laws in
other countries may be very different (e.g., blasphemy, criticism of the
government).
Special Situations
Internet Service Providers
Ecommerce
Every state has strict and complex laws about recruitment, hiring, termination
(firing), on-job conditions, and terms and conditions of employment. If you
supervise other people, you need to know the basics of these laws.
Many employers run short courses for their supervisors or have a booklet with the
key issues.
If in doubt, consult an expert.
Business Law: Your Next Job ...
Your employment contract may restrict your next job (not working for
competitors, etc.)
Requirements
The requirements analysis and definition establish the system's services,
constraints and goals by consultation with users. They are then defined in a
manner that is understandable by both users and development staff.
This phase can be divided into:
Requirements analysis
Requirements definition
Requirements specification
Describe the requirements in a manner that is clear to the people who will
design and implement the system.
The Requirements Documentation is the defining document
that describes the goals of the system that is being built.
It may form a legal contract between client and software developers.
The Requirements Process
Requirements Analysis
High-level abstract description of requirements:
Overview
Functional Requirements
Usability requirements
Non-functional requirements
System models
Scenarios
Use cases
Models used during analysis
Detailed specifications
Therefore...
Clients often confuse the current system with the underlying requirement.
Functional Requirements
Requirements about the functions that the system must perform that will be
identified by analyzing the use made of the system
Functionality
Data
User interfaces
Understanding and specifying the functional requirements is the theme of the next
three lectures.
Non-Functional Requirements
Requirements that are not directly related to the functions that the
system must perform
Performance
Supportability
Resources
Unspoken Requirements
Examples:
Resistance to change
Departmental friction
Client
Senior management
Production staff
Computing staff
Customers etc., etc., etc.,
Domain understanding
Viewpoint Analysis
Example: University Admissions System
Applicants
University administration
Admissions office
Financial aid office
Special offices (e.g., athletics, development)
Computing staff
Operations
Software development and maintenance
Academic departments
Models
A model is a simplification of reality.
We build models so that we can better understand the system we are
developing.
We build models of complex system because we cannot comprehend such a
system in its entirety.
Models can be informal or formal. The more complex the
project the more valuable a formal model becomes.
Principles of Modeling
The choice of what models to create has a profound influence on how a problem
is attacked and how a solution is shaped.
Every model can be expressed at different levels of precision.
The best models are connected to reality.
No single model is sufficient. Every nontrivial system is best approached
through a small set of nearly independent models.