Download presentation
Presentation is loading. Please wait.
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
Topic 1 2 Today’s Lecture n Administrative details n Introduce software engineering and to explain its importance
3
Topic 1 3 Who Is Who? n Instructor –Michele Rousseau (michele@ics.uci.edu)@ics.uci.edu –Office hrs. (ICS2 - 227): TBA – for the first week by appointment n Teaching assistants –Girish Suryanarayana(gsuryana@uci.edu)gsuryana@uci.edu
4
Topic 1 4 Course Materials n Required textbook –Sommerville Software Engineering n Recommended textbooks –Brooks, F. The Mythical Man-Month –Schach Classical and Object-Oriented Software Engineering –Horstmann, Cornell Core Java 2, Volume 1: Fundamentals
5
Topic 1 5 Add/Drop Policy n Second week of classes –Deadline to add n Second week of classes –Deadline to drop
6
Topic 1 6 How to be successful in ICS 52 n 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 n Visit course Web site on a regular basis –Assignments –Copy of announcements n Read e-mail frequently n Use discussion section and office hours n Ask questions
7
Topic 1 7 Help each other but don’t share work n You cheat, you fail! –Final grade is “F”, irrespective of partial grades –Project, midterm, final n 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 n Your TA is your friend, but your friend is not your TA –Your friend’s help may be cheating
8
Topic 1 8 Assignments (1) n If a deadline is on a class day it is due 1 hour before class starts n Turn in to distribution center before class n 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 n No late assignments
9
Topic 1 9 Assignments (2) n 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 n Do no more and do no less
10
Topic 1 10 Grading n Performed by TA n Might be double-checked by Me n 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 n Always check your (partial) grades
11
Topic 1 11 Exceptions n Only granted by professor –Contact the professor as soon as possible n Valid reasons –Serious illness, accident, family emergency, etc. n Not-so-valid reasons –“No ink in my printer”, “didn’t know it was due today”, “my computer crashed”, “couldn’t find parking”, etc.
12
Topic 1 12 Questions n When in doubt –Ask the TA –Ask the professor Open door policy n E-mail questions n Questions will generally be answered within 24 hours (except weekends) –So don’t leave your questions to the day before an assignment is due
13
Topic 1 13 Miscellaneous n ICS 52 mimics the real-world –Package your homework properly –Use proper language and proper form n 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
Topic 1 14 Focus –Your detailed knowledge and understanding of the concepts employed in software engineering –Your ability to practice software engineering
15
Topic 1 15 Assignment and grading Project Special Requirements Design Implementation Testing 50% 3% 15% 12% 10% Midterm20% Final30%
16
Topic 1 16 What is software? n Computer programs and associated documentation n Software products may be developed for a particular customer or may be developed for a general market
17
Topic 1 17 What is Software Engineering? n “ 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] n “Multi-person construction of multi-version software.” [Parnas] n A discipline whose aim is the production of fault-free software, delivered on-time and within budget, that satisfies the user’s needs. Furthermore, the software must be easy to modify when the user’s needs change.” [Schach] n Software engineering is concerned with theories, methods and tools for professional software development [Sommerville]
18
Topic 1 18 What is Software Engineering? (2) n Software engineering is an engineering discipline which is concerned with all aspects of software production n 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
Topic 1 19 Why Software Engineering? n To reduce the Software Crisis (Brooks) –Late –Over Budget –Wrong product n To reduce Costs and increase quality
20
Topic 1 20 Software Costs n Software costs often dominate system costs. The costs of software on a PC are often greater than the hardware cost n 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
Topic 1 21 Software Engineering is like… n Throwing a party. n Building a house or building. n Getting married. n Writing a textbook. n Creating laws. n Any complex project involving many people and multiple phases.
22
Topic 1 22 Software Engineering is like Architecture n Architecture: Requirements, sketch, blueprints, construction n Strengths of analogy: –Phasing of activities, intermediate products –User input and review, mostly for req’s and sketch –User only minimally involved in construction n Weaknesses of analogy: –Lots of domain knowledge on the part of the consumer –10,000 years of know-how –Progress easily measurable
23
Topic 1 23 Software Engineering is like Legislation n Legislation: Commission, committee, congress, bureaucracy n Strengths of analogy: –Intangible product –Unforeseen consequences –Difficult to measure progress –Laws get "patched" –Importance of careful reviews highlighted n Weakness of analogy: –Difficult to test laws –Legislation not executed predictably
24
Topic 1 24 Software Engineering is not programming ProgrammingEngineering 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
25
Topic 1 25 Differences from Programming n 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
Topic 1 26 The five P’s of Software Engineering n People - who develop, manage, and run the software n Product - the software itself n Project - the activity of creating the software n Process - the manner in which the project proceeds n Professionalism - the attitude of all involved
27
Topic 1 27 From Programming to Engineering n People –Who else would do the work? –Range from novice to very experienced n Processes –To organize and manage the efforts of individuals –Range from informal to very formal n Tools –To support the people and the processes –Range from simple to very advanced People + Processes + Tools Product
28
Topic 1 28 People n The single most important factor in the success/failure of a product n Scarce resource –Quality –Suitability –Cost n Many different kinds of people –Managers –Programmers –Technical writers
29
Topic 1 29 Processes n Essential to achieve a quality product n (Time is a) scarce resource –Quality –Suitability –Cost n Many different kinds of processes –Bug tracking –Change approval –Quality assurance Focus of ICS 52
30
Topic 1 30 Tools n Needed to support people and processes n Scarce resource –Quality –Suitability –Cost n Many different kinds of tools –Drawing –Analysis –Project management –Source code management people support process support
31
Topic 1 31 n Result of applying people, processes, and tools n Consists of many deliverables –Software –Documentation –User manuals –Test cases –Design documents n Intrinsic qualities –Safety –Reliability –User friendliness Product
32
Topic 1 32 People, Processes, Tools, Products n Products are always the eventual goal –Selling products creates revenue –Selling good products creates lots of revenue –Selling bad products creates little revenue n 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
Topic 1 33 Choose the Right Solution Tijuana Europe Hawaii
34
Topic 1 34 Matters of Scale n Choose appropriate technique for problem –elephant gun to kill a fly? –fly-swatter to ward off an elephant?
35
Topic 1 35 What Makes It Engineering? n Project plans –Teams are assembled –Processes are designed –Tools are purchased –Goals are established –Difficulties are anticipated n Tradeoffs –Limited resources n Repetition –Same basic principles hold in many different settings
36
Topic 1 36 Components of Software Engineering n Science: empirical studies; theories characterizing aggregate system behavior (e.g. reliability) n Management: organizing teams, directing activities, correcting problems n Human factors / psychology: user task understanding and modeling; ergonomics in user interface design n Engineering: tradeoffs, canonical solutions to typical problems, skill and art –A common quip: “pick any two:” Good, soon, cheap Scalability, functionality, performance
37
Topic 1 37 Your First Tasks 1. Be proficient in Java 1.4 2. Be familiar with Microsoft tools –Microsoft Word, PowerPoint 3. Read and study slides of this lecture 4. Read and study Chapters 1 – 3 of Sommerville No discussion until announced in class
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.