Software Design and Construction 1 SOFT2201 / COMP9201 Introduction to Software Construction & Design
Dr. Xi Wu
School of Computer Science
The University of Sydney
Page 1
Copyright Warning
COMMONWEALTH OF AUSTRALIA Copyright Regulations 1969 WARNING
This material has been reproduced and communicated to you by or on behalf of the University of Sydney
pursuant to Part VB of the Copyright Act 1968 (the Act).
The material in this communication may be subject to copyright under the Act. Any further copying or communication of this material by you may be the subject of copyright protection under
the Act.
Do not remove this notice.
The University of Sydney Page 2
Agenda
– Workplace Health and Safety
– Course Arrangements and Information – Software Engineering
– Software Modeling
– The Unified Process
The University of Sydney
Page 3
WHS Induction
The University of Sydney Page 4
Emergency procedures (on campus)
– Intheunlikelyeventofanemergencywemayneedtoevacuatethebuilding.
– Ifweneedtoevacuate,wewillaskyoutotakeyourbelongingsandfollow
the green exit signs.
– Wewillmoveasafedistancefromthebuildingandmaintainphysical distancing whilst waiting until the emergency is over.
– Insomecircumstances,wemightbeaskedtoremaininsidethebuildingforour own safety. We call this a lockdown or shelter-in-place.
– Furtherinformationisavailableatwww.sydney.edu.au/emergency
The University of Sydney
Page 5
Keeping our community safe
We can all help reduce the spread of COVID-19 through following good hygiene practices:
– Washhandsregularly,foratleast20secondswithsoapandwater,orusean alcohol-based hand rub.
– Coveryourmouthwhencoughingandsneezingwithatissueoraflexed elbow.
– Maintainadistanceofatleast1.5mbetweenyourselfandothers,where possible.
– Avoid large gatherings, where possible.
– Avoidclosecontactwithanyonewithcoldorflusymptoms,e.g.fever,cough,
runny nose or shortness of breath.
The University of Sydney
Page 6
Keeping our community safe
– Allstudentsandstaffwhohavecoldorflusymptomsshouldisolatethemselves from others.
– Ifyouareunwellwithanysymptomspleaseexcuseyourselffromthisclassand get tested for COVID-19 as soon as possible. We will support you to continue the work remotely.
– Makesureyoureadtheinformationonspecialconsiderationintheunit outline.
The University of Sydney
Page 7
Keeping our community safe
– TheUniversityisfollowingadvicefromthegovernmentandrelatedpublic health authorities.
– Forthelatestinformation,seetheadviceontheUniversitywebsite.
– Insomeclasses,especiallythoseinvolvinguseofsharedequipment,please
follow additional advice from your coordinators.
– Pleasetakecareofeachotherandyourselvesandifyouneedsupportreach out to your unit coordinator or the health and wellbeing area of the Current Students website.
The University of Sydney
Page 8
Tips for students learning online
– For tips and guides on learning online and the tools you will use, refer to Learning while off campus resources in Canvas.
The University of Sydney Page 9
Do you have a disability?
You may not think of yourself as having a ‘disability’ but the definition under the Disability Discrimination Act (1992) is broad and includes temporary or chronic medical conditions, physical or sensory disabilities, psychological conditions and learning disabilities.
The types of disabilities we see include:
Anxiety // Arthritis // Asthma // Autism // ADHD Bipolar disorder // Broken bones // Cancer Cerebral palsy // Chronic fatigue syndrome
Crohn’s disease // Cystic fibrosis // Depression Diabetes // Dyslexia // Epilepsy // Hearing impairment // Learning disability // Mobility impairment // Multiple sclerosis // Post-traumatic stress // Schizophrenia // Vision impairment
and much more.
Students needing assistance must register with Disability Services. It is advisable to do this as early as possible. Please contact us or review our website to find out more http://sydney.edu.au/study/academic-support/disability-support.html
The University of Sydney
Disability Services Office sydney.edu.au/disability 02-8627-8422
Page 10
Other support
– Learningsupport
– http://sydney.edu.au/study/academic-support/learning-support.html
– Internationalstudents
– http://sydney.edu.au/study/academic-support/support-for-international-
students.html
– AboriginalandTorresStraitIslanders
– http://sydney.edu.au/study/academic-support/aboriginal-and-torres-
strait-islander-support.html
– Studentorganization(canrepresentyouinacademicappealsetc) – http://srcusyd.net.au/orhttp://www.supra.net.au/
The University of Sydney
Page 11
Assistance
– There are a wide range of support services available for students
– Please make contact, and get help
– You are not required to tell anyone else about this
– If you are willing to inform the unit coordinator, they may be able to work with other support to reduce the impact on this unit
– egprovideadviceonwhichtasksaremostsignificant
The University of Sydney Page 12
Special Consideration (University policy)
– If your performance on assessments is affected by illness or misadventure
– Follow proper bureaucratic procedures
– Have professional practitioner sign special USyd form
– Submit application for special consideration online, upload scans
– Note you have only a quite short deadline for applying
– http://sydney.edu.au/current_students/special_consideration/
– Also, notify coordinator by email as soon as anything begins to go wrong
– There is a similar process if you need special arrangements, e.g., for
religious observance, military service, representative sports The University of Sydney
Page 13
Academic Integrity (University policy)
–
“The University of Sydney is unequivocally opposed to, and intolerant of, plagiarism and academic dishonesty.”
– Academic dishonesty means seeking to obtain or obtaining academic advantage for oneself or for others (including in the assessment or publication of work) by dishonest or unfair means.
– Plagiarism means presenting another person’s work as one’s own work by presenting, copying or reproducing it without appropriate acknowledgement of the source.” [from site below]
– http://sydney.edu.au/elearning/student/EI/index.shtml
Submitted work is compared against other work (from students, internet, etc) – Turnitin for textual tasks (through eLearning), other systems for code
Penalties for academic dishonesty or plagiarism can be severe
Complete self-education AHEM1001 (required, canvasàassessment info)
–
– –
The University of Sydney Page 14
Unit/Course Overview
The University of Sydney Page 15
SOFT2201/COMP9201 Lectures and Tutorials
– Lecture:
– Monday,5pmto7pm(AEST),Zoom(w1tow12)
– Tutorial:
– SOFT2201:2htutorial,onTuesdaysandWednesdays,Zoom(w1tow12) – COMP9201:2htutorial,onThursday,Zoom(w1tow12)
– Checkyourtimetable
• AttendONE(gotothetutorialyou’rescheduledfor) – Hands-onpracticalexercises
• Tutorstosuperviseyourlearningandprovideguidance
The University of Sydney
Page 16
Tips for students joining online
– Please mute your microphone when not speaking.
– Try not to talk over someone else.
– When you have questions during lectures:
– if questions are public and can be read in recording mode, feel free to type them on zoom chat and I will read and answer them during the lecture
– if questions are private and are not expected to be read in recording mode, please stay on zoom after the lecture. I will stop the recording after the lecture and answer your questions then
– When you have questions during tutorials:
– feel free to ask questions to tutors during group discussion or Q&A session
The University of Sydney
Page 17
SOFT2201/COMP9201 Staff
Course Coordinator and Lecturer: – Dr. Xi Wu (xi.wu@sydney.edu.au)
– Consultation:Friday,4pmto5pm(AEST),Zoom Tutors:
– Martin McGrane (mmcg5982@sydney.edu.au)
– Tyson Thomas (ttho6664@uni.sydney.edu.au)
– Richard Antony (rant0871@uni.sydney.edu.au)
– Darius Zhu (dzhu5718@uni.sydney.edu.au)
– Benjamin (Ben) Gane (bgan7208@uni.sydney.edu.au)
Tutor allocation can be found via Staff and Contact Details on canvas
The University of Sydney
Page 18
SOFT2201/COMP9201 Resources
– Canvas (eLearning)
– Announcements(important)
– Modules:Copiesoflectureslides,Tutorialinstructions – Assignments:Assignmentinstructions
– RecordedLecturers
• Lecturerecordings(usuallyuploadafter1~2hoursofthelivelectures) – Zoom:Livelecturesandtutorials
– Ed
• Thebestplacetoasktechnicalquestionsaboutthecourse.
• Youwillgetfasteranswersherefromstaffandpeersthanthroughemail.
The University of Sydney Page 19
Prerequisites
– This course has the following prerequisites:
– INFO1113 OR INFO1103 OR INFO1105 OR INFO1905
– This means that we expect students who enroll in this course to be: – Confident Java programmers
– Familiar with data-structures – Prohibitions
– INFO3220 OR COMP9201 (for SOFT2201 students) – INFO3220 OR SOFT2201 (for COMP9201 students)
The University of Sydney
Page 20
Main Resources
• We recommend the following textbooks
Link to USYD Library Link to USYD Library
The University of Sydney
Page 21
Additional Resources
• We recommend the following textbooks
Link to USYD Library
Link to USYD Library
The University of Sydney
Page 22
Topics Overview
Week
Contents
Week
1
Introduction; Software Engineering, Software Modeling, The Unified Process
2
OO Theory I: Java Knowledge Revisited
3
UML & Software Modelling Case Studies
4
OO Theory II: Software Design Principles and Design Smells
5
Design Pattern: Factory Method & Builder
Design Pattern: Strategy & State
6
7
Testing
Code Review
8
9
Design Pattern: Adapter & Observer
Design Pattern: Prototype & Memento
10
11
Design Pattern: Singleton, Decorator and Facade
12
Unit Review
The University of Sydney Page 23
Tutorial Work
– 2-hour tutorial work:
– 1hr40minutestutorialcontent+20minutesQ&Asession – Checkyourscheduleandallocationonthetimetable
– Great opportunity for interactive and hands-on learning experience
– Respect your tutors and value their feedback
– Respect your classmates
– Tutors will supervise your learning, provide you guidance
– Nottodebugyourcode,orsolvetheproblemsforyou
The University of Sydney
Page 24
Language and Tools
– Your coding will be in Java 11
– You will use IntelliJ for writing your code
– You will use JavaFX for designing your GUIs
– You will use supporting tools such as Gradle, Git, etc.
The University of Sydney
Page 25
Assessment
What (Assessment)*
When (due)
How
Value
Weekly Exercises
Weekly
Submission on Canvas
10%
Software Construction Stage 1
Week 4
Individual Submission on Canvas
5%
Software Construction Stage 2
Week 7
Individual Submission on Canvas
15%
Software Construction Stage 3
Week 11
Individual Submission on Canvas
20%
Exam
Exam period
Individual exam
50%
The University of Sydney Page 26
Weekly Exercises
– Weekly exercises can be found under each week module on Canvas.
– Exercises cover contents from recent tutorials and lectures
– Timeframe:
– Exercisesandsubmissionportalsarereleasedat8am(AEST)Tuesday
– Exercisesdueandsubmissionportalsareclosedat23.59pm(AEST)Friday
– Youcandotheexerciseanytimeafteritisopenandbeforeitsdue
– However,onceitisclosed,withoutSCON,youcannotre-takeitifyoumissit
– Total marks: 10%
The University of Sydney Page 27
Assignment
–
1. 2.
3.
Three individual assignments (40% marks): Design a computer game using UML diagrams
– You are going to submit UML diagrams + presentation recording (5 minutes) Implement the computer game using Java with JavaFX
– You are going to submit implementation code + report about the design principles/design patterns in your implementation + presentation recording (10 minutes)
Test, review and extend somebody else’s code
– You are going to submit implementation code + report about the design principles/design
patterns of the receiver code and your extensions + test cases + presentation recording (15 minutes)
The University of Sydney Page 28
Late Assignments
– Suppose you hand in your assignments after the deadline:
– If you have not been granted special consideration or arrangements – Apenaltyof5%oftheavailablemarkwillbetaken,perdaylate
• E.g.,yourworkwouldhavescored60%andis1daylateyouget50%
– Assignmentsafter10calendardayslateget0
– Latepenaltydoesn’tapplytoweeklyexercises;youcannotre-taketheexerciseif
you miss it
– Warning: submission sites get very slow near deadlines
– Submit early; you can resubmit if there is time before the deadine
The University of Sydney Page 29
Online Final Exam
– 2hrs, will be organized by Exam Office during Exam period
– More details will be announced at the end of the semester (w12)
– Total marks: 50%
The University of Sydney Page 30
Passing this unit
– To pass this unit you must do all of these: – Get a total mark of at least 50%
– Get at least 40% for your final exam mark
The University of Sydney Page 31
SOFT2201/COMP9201 Expectations
– Students attend scheduled classes, and devote an extra 10 hours per week
– Prepare and review lecture and tutorial materials
– Revise and integrate with ideas
– Carry on the required assessments
– Practice and self-assess
– Students are responsible learners
– Participateinclasses,constructively
• Respectforoneanother(criticizeideas,butnotpeople)
• Humility:noneofusknowsitall;eachofusknowsvaluablethings
– CheckeLearningsiteveryfrequently – KnowtheUni/schoolpolicies
The University of Sydney
Page 32
Q&A and Feedback
– A discussion forum is setup:
– Please use ED for technical questions so that everybody can benefit from
the questions and answers, e.g. you can’t understand the contents – Talk to us:
– After lectures/tutorials
– During teaching staff consultation
– Feedback to you will take many forms:
– Verbally by your tutor
– As comments accompanying hand marking of your assignment work and
exercises work
The University of Sydney Page 33
Advice
– Metacognition
– Pay attention to the learning outcomes in unit outline
– Self-check that you are achieving each one
– Think how each assessment task relates to these
– Time management
– Watch the due dates
– Start work early, submit early
– Networking and community-formation
– Make friends and discuss ideas with them
– Know your tutor, lecturer, coordinator
– Keep them informed, especially if you fall behind
• Don’t wait to get help – Enjoy the learning!
The University of Sydney
Page 34
Advice for doing well in this unit
– To do well in this unit you should – Organize your time well
– Devote extra 10 hours a week in total to this unit – Read.
– Think.
– Practice.
“Tell me and I forget, teach me and I may remember, involve me and I learn.” – Benjamin Franklin
The University of Sydney
Page 35
Why Software Engineering?
The University of Sydney Page 36
• • •
Software is Everywhere!
Societies, businesses and governments dependent on SW systems
• Power, Telecommunication, Education, Government, Transport, Finance, Health
• Work automation, communication, control of complex systems Large software economies in developed countries
• IT application development expenditure in the US more than $250bn/year1
• Total value added GDP in the US2: $1.07 trillion
Emerging challenges
• Security, robustness, human user-interface, and new computational platforms
1 Chaos Report, Standish group Report, 2014 2 softwareimpact.bsa.org
The University of Sydney
Page 37
Why Software Engineering?
Need to build high quality software systems under resource constraints
• Social
• Satisfy user needs (e.g., functional, reliable, trustworthy)
• Impact on people’s lives (e.g., software failure, data protection)
• Economical
• Reduce cost; open up new opportunities
• Average cost of IT development ~$2.3m, ~$1.3m and ~$434k for large, medium
and small companies respectively3
• Time to market
• Deliver software on-time
3 Chaos Report, Standish group Report, 2014
The University of Sydney Page 38
Software Failure – Ariane 5 Disaster
What happened?
• European large rocket – 10 years development, ~$7 billion
• Unmanaged software exception resulted from a data conversion
from 64-bit floating point to a 16-bit signed integer
• Backup processor failed straight after using the same software
• Exploded 37 seconds after lift-off
Why did it happen?
• Design error, incorrect analysis of changing requirements, inadequate validation and verification, testing and reviews, ineffective development processes and management
http://iansommerville.com/software-engineering-book/files/2014/07/Bashar-Ariane5.pdf
The University of Sydney Page 39
Nissan Recall – Airbag Defect
What happened?
• ~3.53 million vehicles recall of various models 2013-2017
• Front passenger airbag may not deploy in an accident
Why did it happen?
• Software that activates airbags deployment improperly classify occupied passenger seat as empty in case of accident
• Software defect that could lead to improper airbag function (failure)
• No warning that the airbag may not function properly
• Software sensitivity calibration due to combination of factors (high engine vibration and
changing seat status)
http://www.reuters.com/article/us-autos-nissan-recall/nissan-to-recall-3-53-million-vehicles-air-bags-may-not-deploy-idUSKCN0XQ2A8 https://www.nytimes.com/2014/03/27/automobiles/nissan-recalls-990000-cars-and-trucks-for-air-bag-malfunction.html
The University of Sydney Page 40
Software Project Failures
Project
Duration
Cost
Failure/Status
e-borders (UK Advanced passenger Information System Programme)
2007 – 2014
Over £ 412m (expected), £742m (actual)
Permanent failure – cancelled after a series of delays
Pust Siebel – Swedish Police case management (Swedish Police)
2011 – 2014
$53m (actual)
Permanent failure – scraped due to poor functioning, inefficient in work environments
US Federal Government Health Care Exchange Web application
2013 – ongoing
$93.7m (expected), $1.5bn (actual)
Ongoing problems – too slow, poor performance, people get stuck in the application process (frustrated users)
https://en.wikipedia.org/wiki/List_of_failed_and_overbudget_custom_software_projects
The University of Sydney Page 41
Software Engineering – No Silver Bullet7
No Silver Bullet – Essence and Accidents in Software Engineering
“There is no single development, in either technology or management technique, which by itself promises even one order-of-magnitude improvement within a decade in productivity, in reliability, in simplicity.” ! – Frederick P. Brooks
•
•
• Mosttechniquesattacktheaccidentsofsoftwareengineering
Essence: difculties inherent (or intrinsic) in the nature of SW Accidents: difculties related to the production of software
7 No Silver Bullet – Essence and Accident in Software Engineering – http://www.itu.dk/people/hesj/BSUP/artikler/no-silver-bullit.pdf The University of Sydney
Page 42
Software Engineering – Essence7
• Complexity
• Many diverse software entities – interactions increase exponentially
• Intrinsic complexity cannot be abstracted – aircraft software, air traffic control
• Conformity
• Arbitrary changes from environment (people, systems) – no unifying principle
• Changeability
• Changing a building model vs. a software
• Stakeholders understanding of software changes
• Invisibility
• Software is intangible (invisible)
• Building model vs software models (UML – 13 diagram types)
The University of Sydney
Page 43
What is Software Engineering?
The University of Sydney Page 44
What is Software Engineering?
http://www.purplesoft.com.au/wp-content/uploads/2017/03/software.jpg
The University of Sydney Page 45
Software Engineering
“An engineering discipline that is concerned with all aspects of software production from the early stages of system specification through to maintaining it after it is has gone into use.”
• NOT programming/coding! a lot more is involved
• Theories, methods and tools for cost-effective software production
• Technical process, project management and development of tools, methods to support software production
• System Engineering (Hardware & Software) – software often dominates costs
The University of Sydney Page 46
Software Engineering
– Theories, methods, tools, techniques and approaches – Solve concrete SWEN problems
– Increase productivity of the engineering process
– Produce effective software
– Produce efficient software
– Control social and technical aspects in the development process – Manage complexity, changeability, invisibility and conformity
The University of Sydney
Page 47
Software Engineering
“The Roman bridges of antiquity were very inefficient structures. By modern standards, they used too much stone, and as a result, far too much labour to build. Over the years we have learned to build bridges more efficiently, using fewer materials and less labour to perform the same task.” !
– Tom Clancy (The Sum of All Fears)
• The art of managing social, economical and technical factors
• Efficient and effective development processes and management
• Delivering software on-time and on-budget with all the necessary requirements
• The art of analysing and managing complexity
• Ability to understand complex systems
• Apply various abstraction and analytical thinking
The University of Sydney Page 48
Software Engineering Fundamentals
• Software processes for managing and developing of SW systems • Waterfall vs. Incremental and agile software development
• Attributes of good software system
• Maintainability, dependability and security, efficiency and acceptability
• Importance of Dependability and Performance
• Need for specifications and requirements
• Software reuse to save costs
• Careful consideration – Ariane 5 reused software from Arian 4!
The University of Sydney
Page 49
Software Engineering Body of Knowledge
• Software Requirements
• Software Design / Modelling
• Software Construction
• Software Testing
• Software Maintenance
• Software Configuration Management
• Software Engineering Process
• Software Engineering Tools and Methods
• Software Quality
Software Engineering Body of Knowledge (SWEBOK) https://www.computer.org/web/swebok/ The University of Sydney
Page 50
Software Design/Modelling & Construction
The University of Sydney Page 51
Software Modelling
• The process of developing conceptual models of a system at different
levels of abstraction
• Fulfilthedefinedsystemrequirements
• Focusonimportantsystemdetailstodealwithcomplexity
• Object-oriented design approach
• Concepts in the domain problem are modelled as interacting objects
• Using graphical notations (e.g., UML) to capture different views or perspectives
The University of Sydney
Page 52
Software Modelling – The Art of Abstraction
• Conceptual process to derive general rules and concepts from concrete information in a certain context
• Analysis and understanding of domain-specific problems
• Decompose large problems into smaller understandable piece
• Language required to break down complexity, i.e., find abstractions
• SW models with different levels of abstraction
• Focus on certain details in each phase of the SW development process
• SW models with different views/perspectives • Time, structural, requirements, etc.
The University of Sydney
Page 53
Software Abstraction – Example
Real world
Software world
Abstraction
Animal
Dog Cat
Cat http://s1.thingpic.com/images/ZP/L4FtpQYKNZzCXV8r34PWhqCF.jpeg
Dog https://s7d2.scene7.com/is/image/PetSmart/SV0401_CATEGORY_HERO-Dog-Dog-20160818?$SV0401$
The University of Sydney
Page 54
Data Abstraction – Example
View level
Logical level (conceptual data model)
Physical level (data model)
The University of Sydney
Page 55
UML Principles
• Graphical notations to visually specify and document design artifacts software
systems using OO concepts
• Industry standard managed by Object Management Group (OMG)
• Is not OO Analysis and Design (OOA&D) or method!
• Is a language for OOA&D communicating visual models of the software being designed
• Is not a skill, but how to design software with different level of abstractions
• Many software diagraming tools, hand sketches are good too
• Combines techniques from data modeling (ER diagrams), business modeling (workflows), object and component modeling
• Capture system activities (jobs), system components and its interaction, software entities and its interaction, run-time behavior, external interfaces
The University of Sydney Page 56
UML Principles (Cont.)
•
•
UML is not “Silver Bullet”
• No tool/technique in software will make dramatic order-of-magnitude difference in productivity, reliability or simplicity
• Design knowledge and thinking in objects is critical Three ways to apply UML
• Sketching to explore part of the problem or solution space
• Blueprint: detailed design diagrams for:
• Reverse engineering to visualize and understand existing code
• Forward engineering (code generation)
• Programming language (Model Driven Engineering): executable specification of a system
“Agile Modeling” emphasizes UML as a sketch
• Not waterfall mindset
The University of Sydney Page 57
•
UML Diagrams
Structural (static) View
• Static structure of the system (objects, attributes, operations and relationships)
Behavioural (dynamic) View
• Dynamic behavior of the system (collaboration among objects, and changes to the internal states of objects)
• Interaction (subset of dynamic view) – emphasizes flow of control and data
https://en.wikibooks.org/wiki/Introduction_to_Software_Engineering/UML
The University of Sydney
Page 58
The Rational Unified Process
The University of Sydney Page 59
Iterative and Evolutionary Development
Requirements Design
Implementation & Test & Integration & More Design
Final Integration & System Test
3 weeks (for example)
Requirements Time Design
Implementation & Test & Integration & More Design
Final Integration & System Test
Iterations are fixed in length, or timeboxed.
Feedback from iteration N leads to refinement and adaptation of the requirements and design in iteration N+1.
The University of Sydney
Page 60
The system grows incrementally.
Rational Unified Process (UP)
• Software development process utilizing iterative and risk-driven approach to develop OO software systems
• Iterative incremental development
• Iterative evolutionary development
The University of Sydney
Page 61
UP Phases and Disciplines
Sample UP Disciplines
Business Modeling
Requirements
Design
Implementation
incep- elaboration tion
construction
transi- tion
The University of Sydney
Page 62
…
…
The relative effort in disciplines shifts across the phases.
This example is suggestive, not literal.
UP Phases and Disciplines
iteration
development cycle phase
ela
borat
ion
con
struction
The University of Sydney
Page 63
inc.
milestone
An iteration end- point when some significant decision or evaluation occurs.
release
A stable executable subset of the final product. The end of each iteration is a minor release.
increment
The difference (delta) between the releases of 2 subsequent iterations.
final production release
At this point, the system is released for production use.
transition
•
Imagine this will ultimately be a 20- iteration project.
In evolutionary iterative development, the requirements evolve over a set of the early iterations, through a series of requirements workshops (for example). Perhaps after four iterations and workshops, 90% of the requirements are defined and refined. Nevertheless, only 10% of the software is built.
UP – Example
Iterative and evolutionary analysis and design
• Firs five iterations of 20
• 3-week iteration
1 2 3 4 5 …
20
The University of Sydney
kickoff meeting clarifying iteration goals with the team. 1 hour
team agile modeling & design, UML whiteboard sketching. 5 hours
start coding & testing
de-scope iteration goals if too much work
final check-in and code- freeze for the iteration baseline
Use-case modeling during the workshop
demo and 2-day requirements workshop
next iteration planning meeting; 2 hours
Page 64
requirements workshops
requirements
software
requirements
software
20% 30% 2%
20%
Iteration 5
M T W Th F
5% Iteration 1 Iteration 2
8%
10%
week 1
week 3
M T W Th F
M T W Th F
a 3-week iteration
Most OOA/D and applying UML during this period
50%
Iteration 3
week 2
Iteration 4
90%
90%
Software Construction / Implementation
• Realization of design to produce a working software system • Meet customer requirements
• Design and implementation activities often interleaved • Agile development to accommodate for changes
• Object-Oriented design and Implementation model
• Encapsulation • Abstraction
• Reuse
• Maintenance
The University of Sydney
Page 65
Software Engineering
http://themetapicture.com/media/funny-software-engineer-comic.jpg
The University of Sydney Page 66
Tasks for Week 1
– Active your Ed account by clicking on Ed tab on canvas
– Install gradle and IntelliJ before you attend this week’s tutorial – Instruction can be found in either Ed announcement or tutorial document – Get help from tutors during tutorials if you have questions on installation
– Submit weekly exercise on canvas before 23.59pm Friday
– Download code scaffold on canvasàmodule 1. Start to read
the code and get yourself familiar with this provided code
– If you haven’t heard about JSON format, please start to learn
JSON by find resources online (e.g., JSON tutorials)
The University of Sydney Page 67
What are we going to learn next week?
– OO Theory I: Java Knowledge Revisited – Encapsulation
– Inheritance
– Variable Binding & Polymorphism – Virtual Dispatch
– Abstract Classes
– Interfaces
The University of Sydney
Page 68