ICS 52: Introduction to Software Engineering - PowerPoint PPT Presentation

About This Presentation
Title:

ICS 52: Introduction to Software Engineering

Description:

Recommended textbooks. Brooks, F. The Mythical Man-Month. Schach ... Good, soon, cheap. Scalability, functionality, performance. Topic 1. 37. Your First Tasks ... – PowerPoint PPT presentation

Number of Views:73
Avg rating:3.0/5.0
Slides: 38
Provided by: ICS95
Learn more at: https://ics.uci.edu
Category:

less

Transcript and Presenter's Notes

Title: ICS 52: Introduction to Software Engineering


1
ICS 52 Introduction to Software Engineering
  • Lecture Notes for Summer Quarter, 2003
  • Michele Rousseau
  • Set 1
  • Partially based on lecture notes written by Ian
    Sommerville, Richard N. Taylor, André van der
    Hoek, Dan Frost Doris Tonne. Duplication of
    course material for any commercial purpose
    without the written permission of the lecturers
    is prohibited.

2
Todays Lecture
  • Administrative details
  • Introduce software engineering and to explain its
    importance

3
Who Is Who?
  • Instructor
  • Michele Rousseau (michele_at_ics.uci.edu)
  • Office hrs. (ICS2 - 227) TBA
  • for the first week by appointment
  • Teaching assistants
  • Girish Suryanarayana(gsuryana_at_uci.edu)

4
Course Materials
  • Required textbook
  • Sommerville
  • Software Engineering
  • Recommended textbooks
  • Brooks, F.
  • The Mythical Man-Month
  • Schach
  • Classical and Object-Oriented Software
    Engineering
  • Horstmann, Cornell
  • Core Java 2, Volume 1 Fundamentals

5
Add/Drop Policy
  • Second week of classes
  • Deadline to add
  • Second week of classes
  • Deadline to drop

6
How to be successful in ICS 52
  • Attend class
  • Much is covered that is not in the textbook
  • Material is core part of the exams
  • What is said in class supercedes all else
  • Official place for announcements
  • Visit course Web site on a regular basis
  • Assignments
  • Copy of announcements
  • Read e-mail frequently
  • Use discussion section and office hours
  • Ask questions

7
Help each other but dont share work
  • You cheat, you fail!
  • Final grade is F, irrespective of partial
    grades
  • Project, midterm, final
  • To avoid being a cheater
  • Always do your work by yourself
  • Do not borrow work
  • Do not lend work
  • Do not put your work on the Web
  • Use good Judgment
  • Your TA is your friend, but your friend is not
    your TA
  • Your friends help may be cheating

8
Assignments (1)
  • If a deadline is on a class day it is due 1 hour
    before class starts
  • Turn in to distribution center before class
  • Hand in on time
  • You do get sufficient time
  • Course is six credits
  • Do not wait until the last minute
  • Assignments take time
  • Printers break, paper runs out
  • You are not the only one
  • No late assignments

9
Assignments (2)
  • Package properly
  • Every assignment
  • lists your student ID
  • lists your name
  • has a cover page with class title and assignment
  • is properly stapled
  • No handwriting
  • Floppies (when needed) are properly attached
  • Failure results in loss of points
  • Do no more and do no less

10
Grading
  • Performed by TA
  • Might be double-checked by Me
  • Disagreements
  • Resolve with TA first, then with professor
  • The points-game does not work
  • TA and professor have limited time
  • TAs are human too
  • Double check before you bring it in
  • Always check your (partial) grades

11
Exceptions
  • Only granted by professor
  • Contact the professor as soon as possible
  • Valid reasons
  • Serious illness, accident, family emergency, etc.
  • Not-so-valid reasons
  • No ink in my printer, didnt know it was due
    today, my computer crashed, couldnt find
    parking, etc.

12
Questions
  • When in doubt
  • Ask the TA
  • Ask the professor
  • Open door policy
  • E-mail questions
  • Questions will generally be answered within 24
    hours (except weekends)
  • So dont leave your questions to the day before
    an assignment is due

13
Miscellaneous
  • ICS 52 mimics the real-world
  • Package your homework properly
  • Use proper language and proper form
  • You get out of ICS 52 what you put into it
  • Class is intense, you need to participate from
    the beginning playing catch up is not
    recommended
  • Attend discussion section (when it is being held)
  • Follow instructions
  • Read and study the textbook and slides
  • Help is available, do not be afraid to ask
    questions

14
Focus
  • Your detailed knowledge and understanding of the
    concepts employed in software engineering
  • Your ability to practice software engineering

15
Assignment and grading
Project Special Requirements Design Implementation Testing 50 3 15 12 10 10
Midterm 20
Final 30
16
What is software?
  • Computer programs and associated documentation
  • Software products may be developed for a
    particular customer or may be developed for a
    general market

17
What is Software Engineering?
  • A discipline that deals with the building of
    software systems which are so large that they are
    built by a team or teams of engineers. Ghezzi,
    Jazayeri, Mandrioli
  • Multi-person construction of multi-version
    software. Parnas
  • A discipline whose aim is the production of
    fault-free software, delivered on-time and within
    budget, that satisfies the users needs.
    Furthermore, the software must be easy to modify
    when the users needs change. Schach
  • Software engineering is concerned with theories,
    methods and tools for professional software
    development Sommerville

18
What is Software Engineering? (2)
  • Software engineering is an engineering discipline
    which is concerned with all aspects of software
    production
  • Software engineers should adopt a systematic and
    organised approach to their work and use
    appropriate tools and techniques depending on the
    problem to be solved, the development constraints
    and the resources available

19
Why Software Engineering?
  • To reduce the Software Crisis (Brooks)
  • Late
  • Over Budget
  • Wrong product
  • To reduce Costs and increase quality

20
Software Costs
  • Software costs often dominate system costs. The
    costs of software on a PC are often greater than
    the hardware cost
  • Software costs more to maintain than it does to
    develop. For systems with a long life,
    maintenance costs may be several times
    development costs

21
Software Engineering is like
  • Throwing a party.
  • Building a house or building.
  • Getting married.
  • Writing a textbook.
  • Creating laws.
  • Any complex project involving many people and
    multiple phases.

22
Software Engineering is like Architecture
  • Architecture Requirements, sketch, blueprints,
    construction
  • Strengths of analogy
  • Phasing of activities, intermediate products
  • User input and review, mostly for reqs and
    sketch
  • User only minimally involved in construction
  • Weaknesses of analogy
  • Lots of domain knowledge on the part of the
    consumer
  • 10,000 years of know-how
  • Progress easily measurable

23
Software Engineering is like Legislation
  • Legislation Commission, committee, congress,
    bureaucracy
  • Strengths of analogy
  • Intangible product
  • Unforeseen consequences
  • Difficult to measure progress
  • Laws get "patched"
  • Importance of careful reviews highlighted
  • Weakness of analogy
  • Difficult to test laws
  • Legislation not executed predictably

24
Software Engineering is not programming
Small project You Build what you want One product Few sequential changes Short-lived Cheap Small consequences Huge project Teams Build what they want Family of products Many parallel changes Long-lived Costly Large consequences
Programming
Engineering
25
Differences from Programming
  • Software Engineering includes
  • determining what to build
  • eliciting requirements from user(s)
  • organizing teams to build systems cooperatively
  • designing a software architecture
  • analysis and design of modules
  • testing
  • lifecycle system engineering
  • writing documentation

26
The five Ps of Software Engineering
  • People - who develop, manage, and run the
    software
  • Product - the software itself
  • Project - the activity of creating the software
  • Process - the manner in which the project
    proceeds
  • Professionalism - the attitude of all involved

27
From Programming to Engineering
  • People
  • Who else would do the work?
  • Range from novice to very experienced
  • Processes
  • To organize and manage the efforts of individuals
  • Range from informal to very formal
  • Tools
  • To support the people and the processes
  • Range from simple to very advanced

People Processes Tools ? Product
28
People
  • The single most important factor in the
    success/failure of a product
  • Scarce resource
  • Quality
  • Suitability
  • Cost
  • Many different kinds of people
  • Managers
  • Programmers
  • Technical writers

29
Processes
  • Essential to achieve a quality product
  • (Time is a) scarce resource
  • Quality
  • Suitability
  • Cost
  • Many different kinds of processes
  • Bug tracking
  • Change approval
  • Quality assurance

Focus of ICS 52
30
Tools
  • Needed to support people and processes
  • Scarce resource
  • Quality
  • Suitability
  • Cost
  • Many different kinds of tools
  • Drawing
  • Analysis
  • Project management
  • Source code management

people support
process support
31
Product
  • Result of applying people, processes, and tools
  • Consists of many deliverables
  • Software
  • Documentation
  • User manuals
  • Test cases
  • Design documents
  • Intrinsic qualities
  • Safety
  • Reliability
  • User friendliness

32
People, Processes, Tools, Products
  • Products are always the eventual goal
  • Selling products creates revenue
  • Selling good products creates lots of revenue
  • Selling bad products creates little revenue
  • People, processes, and tools are retained by
    organization
  • Build a reputation through the quality of
    products
  • Create organizational culture
  • Important to keep the team intact

People Processes Tools ? Product
33
Choose the Right Solution
Hawaii
Tijuana
Europe
34
Matters of Scale
  • Choose appropriate technique for problem
  • elephant gun to kill a fly?
  • fly-swatter to ward off an elephant?

35
What Makes It Engineering?
  • Project plans
  • Teams are assembled
  • Processes are designed
  • Tools are purchased
  • Goals are established
  • Difficulties are anticipated
  • Tradeoffs
  • Limited resources
  • Repetition
  • Same basic principles hold in many different
    settings

36
Components of Software Engineering
  • Science empirical studies theories
    characterizing aggregate system behavior (e.g.
    reliability)
  • Management organizing teams, directing
    activities, correcting problems
  • Human factors / psychology user task
    understanding and modeling ergonomics in user
    interface design
  • Engineering tradeoffs, canonical solutions to
    typical problems, skill and art
  • A common quip pick any two
  • Good, soon, cheap
  • Scalability, functionality, performance

37
Your First Tasks
  • Be proficient in Java 1.4
  • Be familiar with Microsoft tools
  • Microsoft Word, PowerPoint
  • Read and study slides of this lecture
  • Read and study Chapters 1 3 of Sommerville

No discussion until announced in class
Write a Comment
User Comments (0)
About PowerShow.com