DOC PREVIEW
Toronto CSC 340 - CSC 340 Lecture Notes

This preview shows page 1-2-19-20 out of 20 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 20 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 20 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 20 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 20 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 20 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

University of TorontoDepartment of Computer Science© Easterbrook 20041Lecture 3:What is Engineering? What is engineering about? Engineering vs. Science Devices vs. Systems How is software engineering different? Engineering as a profession Engineering Projects Project Management Project Initiation Project Lifecycles Software Engineering lifecycles: Waterfalls, spirals, etc Requirements LifecyclesUniversity of TorontoDepartment of Computer Science© Easterbrook 20042Engineering vs. Science Traditional View:Scientists… Engineers…create knowledge apply that knowledgestudy the world as it is seek to change the worldare trained in scientific method are trained in engineering designuse explicit knowledge use tacit knowledgeare thinkers are doers More realistic ViewScientists… Engineers…create knowledge create knowledgeare problem-driven are problem-drivenseek to understand and explain seek to understand and explaindesign experiments to test theories design devices to test theoriesprefer abstract knowledge prefer contingent knowledgebut rely on tacit knowledge but rely on tacit knowledgeBoth involve a mix of design and discoveryUniversity of TorontoDepartment of Computer Science© Easterbrook 20043“Engineering is the development of cost-effective solutions to practicalproblems, through the application of scientific knowledge”What is engineering?“…Cost-effective…” Consideration of design trade-offs, esp. resource usage Minimize negative impacts (e.g. environmental and social cost)“… Solutions …” Emphasis on building devices“… Practical problems …” solving problems that matter to people improving human life in general through technological advance“… Application of scientific knowledge …” Systematic application of analytical techniquesUniversity of TorontoDepartment of Computer Science© Easterbrook 20044Devices vs. Systems Normal design: Old problems, whose solutions are well known Engineering codifies standard solutions Engineer selects appropriate methods and technologies Design focuses on well understood devices Devices can be studied independent of context Differences between the mathematical model and the reality are minimal Radical design: Never been done, or past solutions have failed Often involves a very complex problem Bring together complex assemblies of devices into new systems Such systems are not amenable to reductionist theories Such systems are often soft: no objective criteria for describing the system Examples: Most of Computer Engineering involves normal design All of Systems Engineering involves radical design (by definition!) Much of Software Engineering involves radical design (soft systems!)University of TorontoDepartment of Computer Science© Easterbrook 20045Is software different? Software is different! software is invisible, intangible, abstract its purpose is to configure some hardware to do something useful there are no physical laws underlying software behaviour there are no physical constraints on software complexity software never wears out …traditional reliability measures don’t apply software can be replicated perfectly …no manufacturing variability Software Myths: Myth: Cost of software is lower than cost of physical devices Myth: Software is easy to change Myth: Computers are more reliable than physical devices Myth: Software can be formally proved to be correct Myth: Software reuse increases safety and reliability Myth? Computers reduce risk over mechanical systemsUniversity of TorontoDepartment of Computer Science© Easterbrook 20046Professional Responsibility ACM/IEEE code of ethics: PUBLIC - act consistently with the public interest. CLIENT AND EMPLOYER - act in a manner that is in the best interests of your clientand employer, consistent with the public interest. PRODUCT - ensure that your products and related modifications meet the highestprofessional standards possible. JUDGEMENT - maintain integrity and independence in your professional judgment. MANAGEMENT - subscribe to and promote an ethical approach to the management ofsoftware development and maintenance. PROFESSION - advance the integrity and reputation of the profession consistent withthe public interest. COLLEAGUES - be fair to and supportive of your colleagues. SELF - participate in lifelong learning and promote an ethical approach to the practiceof the profession. Of particular relevance in RE: Competence - never misrepresent your level of competence Confidentiality - respect confidentiality of all stakeholders Intellectual property rights - respect protections on ideas and designs Data Protection - be aware of relevant laws on handling personal dataUniversity of TorontoDepartment of Computer Science© Easterbrook 20047Project Management A manager can control 4 things: Resources (can get more dollars, facilities, personnel) Time (can increase schedule, delay milestones, etc.) Product (can reduce functionality - e.g. scrub requirements) Risk (can decide which risks are acceptable) To do this, a manager needs to keep track of: Effort - How much effort will be needed? How much has been expended? Time - What is the expected schedule? How far are we deviating from it? Size - How big is the planned system? How much have we built? Defects - How many errors are we making? How many are we detecting? And how do these errors impact quality? Initially, a manager needs good estimates …and these can only come from a thorough analysis of the problem.You cannot control that which you cannot measure!You cannot control that which you cannot measure!University of TorontoDepartment of Computer Science© Easterbrook 20048Project Types Reasons for initiating a software development project Problem-driven: competition, crisis,… Change-driven: new needs, growth, change in business or environment,… Opportunity-driven: exploit a new technology,… Legacy-driven: part of a previous plan, unfinished work, … Relationship with Customer(s): Customer-specific - one customer with specific problem May be another company, with contractual arrangement May be a division within the same company Market-based - system to be sold to a general market In some cases the product must generate customers


View Full Document

Toronto CSC 340 - CSC 340 Lecture Notes

Documents in this Course
Scoping

Scoping

10 pages

Load more
Download CSC 340 Lecture Notes
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view CSC 340 Lecture Notes and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view CSC 340 Lecture Notes 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?